diff --git a/CLAUDE.md b/CLAUDE.md index 360edd6a..a7fdacc9 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -10,10 +10,6 @@ Claude-mem is a Claude Code plugin providing persistent memory across sessions. **Current Version**: 6.0.9 -## IMPORTANT: Skills Are Auto-Invoked - -**There is no `/skill` command.** Skills auto-invoke based on description metadata matching user queries. Don't document manual invocation (e.g., "Run `/skill troubleshoot`"). Instead: "The troubleshoot skill auto-activates when issues are detected." - ## Critical Architecture Knowledge ### The Lifecycle Flow @@ -25,7 +21,7 @@ Claude-mem is a Claude Code plugin providing persistent memory across sessions. 2. **UserPromptSubmit** → `new-hook.ts` runs - Creates session record in SQLite - - Saves raw user prompt for FTS5 search + - Saves raw user prompt for vector search 3. **PostToolUse** → `save-hook.ts` runs - Captures your tool executions @@ -55,20 +51,17 @@ Claude-mem is a Claude Code plugin providing persistent memory across sessions. **Database** (`src/services/sqlite/`) - SQLite3 with better-sqlite3 (NOT bun:sqlite - that's legacy) - Location: `~/.claude-mem/claude-mem.db` -- FTS5 virtual tables for full-text search -- `SessionStore` = CRUD, `SessionSearch` = FTS5 queries +- FTS5 virtual tables maintained for backward compatibility (not used for search) +- `SessionStore` = CRUD, `SessionSearch` = filter-only queries -**Search Skill** (`plugin/skills/mem-search/SKILL.md`) +**Mem-Search Skill** (`plugin/skills/mem-search/SKILL.md`) - Provides access to all search functionality via HTTP API + skill -- Auto-invoked when users ask about past work, decisions, or history -- Uses HTTP endpoints instead of MCP tools (~2,250 token savings per session) -- 10 search operations: observations, sessions, prompts, by-type, by-file, by-concept, timelines, etc. **Chroma Vector Database** (`src/services/sync/ChromaSync.ts`) -- Hybrid semantic + keyword search architecture +- Vector-first semantic search architecture - Automatic vector embedding synchronization - 90-day recency filtering for relevant results -- Combined with SQLite FTS5 for optimal search performance +- SQLite provides filter-only queries for date ranges and metadata filtering **Viewer UI** (`src/ui/viewer/`) - React + TypeScript web interface accessible at http://localhost:37777 @@ -187,8 +180,8 @@ When investigations fail persistently, use Task agents for comprehensive file an ### Why PM2 Instead of Direct Process Hooks have strict timeout limits. PM2 manages a persistent background worker, allowing AI processing to continue after hooks complete. -### Why SQLite FTS5 -Enables instant full-text search across thousands of observations without external dependencies. Automatic sync triggers keep FTS5 tables synchronized. +### Why Vector-First Search (ChromaDB) +Enables semantic search that understands meaning, not just keywords. ChromaDB handles all text queries. SQLite provides filter-only queries for date ranges and metadata that vector databases can't handle efficiently. FTS5 tables exist for backward compatibility but are no longer used. ### Why Graceful Cleanup Changed from aggressive DELETE requests to marking sessions complete. Prevents interrupting summary generation and other async operations. diff --git a/package.json b/package.json index 63503808..37ce023e 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,8 @@ "worker:start": "pm2 start ecosystem.config.cjs", "worker:stop": "pm2 stop claude-mem-worker", "worker:restart": "pm2 restart claude-mem-worker", - "worker:logs": "pm2 logs claude-mem-worker", + "worker:logs": "pm2 flush claude-mem-worker && pm2 logs claude-mem-worker --lines 100 --nostream", + "worker:logs:no-flush": "pm2 logs claude-mem-worker --lines 100 --nostream", "changelog:generate": "node scripts/generate-changelog.js", "usage:analyze": "node scripts/analyze-usage.js", "usage:today": "node scripts/analyze-usage.js $(date +%Y-%m-%d)" diff --git a/plugin/scripts/search-server.cjs b/plugin/scripts/search-server.cjs new file mode 100755 index 00000000..2e5e749f --- /dev/null +++ b/plugin/scripts/search-server.cjs @@ -0,0 +1,648 @@ +#!/usr/bin/env node +"use strict";var Jl=Object.create;var Hs=Object.defineProperty;var Yl=Object.getOwnPropertyDescriptor;var eu=Object.getOwnPropertyNames;var tu=Object.getPrototypeOf,ru=Object.prototype.hasOwnProperty;var H=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports),su=(s,e)=>{for(var r in e)Hs(s,r,{get:e[r],enumerable:!0})},au=(s,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of eu(e))!ru.call(s,t)&&t!==r&&Hs(s,t,{get:()=>e[t],enumerable:!(a=Yl(e,t))||a.enumerable});return s};var Mt=(s,e,r)=>(r=s!=null?Jl(tu(s)):{},au(e||!s||!s.__esModule?Hs(r,"default",{value:s,enumerable:!0}):r,s));var Wn=H((cs,Qn)=>{(function(s,e){typeof cs=="object"&&typeof Qn<"u"?e(cs):typeof define=="function"&&define.amd?define(["exports"],e):e(s.URI=s.URI||{})})(cs,(function(s){"use strict";function e(){for(var _=arguments.length,h=Array(_),b=0;b<_;b++)h[b]=arguments[b];if(h.length>1){h[0]=h[0].slice(0,-1);for(var P=h.length-1,O=1;O= 0x80 (not a basic code point)","invalid-input":"Invalid input"},$=p-g,D=Math.floor,C=String.fromCharCode;function F(_){throw new RangeError(j[_])}function I(_,h){for(var b=[],P=_.length;P--;)b[P]=h(_[P]);return b}function A(_,h){var b=_.split("@"),P="";b.length>1&&(P=b[0]+"@",_=b[1]),_=_.replace(N,".");var O=_.split("."),B=I(O,h).join(".");return P+B}function M(_){for(var h=[],b=0,P=_.length;b=55296&&O<=56319&&b>1,h+=D(h/b);h>$*y>>1;O+=p)h=D(h/$);return D(O+($+1)*h/(h+v))},z=function(h){var b=[],P=h.length,O=0,B=S,K=w,ae=h.lastIndexOf(R);ae<0&&(ae=0);for(var le=0;le=128&&F("not-basic"),b.push(h.charCodeAt(le));for(var Se=ae>0?ae+1:0;Se=P&&F("invalid-input");var fe=Q(h.charCodeAt(Se++));(fe>=p||fe>D((m-O)/me))&&F("overflow"),O+=fe*me;var oe=xe<=K?g:xe>=K+y?y:xe-K;if(feD(m/ve)&&F("overflow"),me*=ve}var ue=b.length+1;K=X(O-se,ue,se==0),D(O/ue)>m-B&&F("overflow"),B+=D(O/ue),O%=ue,b.splice(O++,0,B)}return String.fromCodePoint.apply(String,b)},pe=function(h){var b=[];h=M(h);var P=h.length,O=S,B=0,K=w,ae=!0,le=!1,Se=void 0;try{for(var se=h[Symbol.iterator](),me;!(ae=(me=se.next()).done);ae=!0){var xe=me.value;xe<128&&b.push(C(xe))}}catch(Ft){le=!0,Se=Ft}finally{try{!ae&&se.return&&se.return()}finally{if(le)throw Se}}var fe=b.length,oe=fe;for(fe&&b.push(R);oe=O&&HeD((m-B)/Ge)&&F("overflow"),B+=(ve-O)*Ge,O=ve;var it=!0,jt=!1,ht=void 0;try{for(var wr=h[Symbol.iterator](),Hr;!(it=(Hr=wr.next()).done);it=!0){var zr=Hr.value;if(zrm&&F("overflow"),zr==O){for(var or=B,ir=p;;ir+=p){var mt=ir<=K?g:ir>=K+y?y:ir-K;if(or>6|192).toString(16).toUpperCase()+"%"+(h&63|128).toString(16).toUpperCase():b="%"+(h>>12|224).toString(16).toUpperCase()+"%"+(h>>6&63|128).toString(16).toUpperCase()+"%"+(h&63|128).toString(16).toUpperCase(),b}function Ce(_){for(var h="",b=0,P=_.length;b=194&&O<224){if(P-b>=6){var B=parseInt(_.substr(b+4,2),16);h+=String.fromCharCode((O&31)<<6|B&63)}else h+=_.substr(b,6);b+=6}else if(O>=224){if(P-b>=9){var K=parseInt(_.substr(b+4,2),16),ae=parseInt(_.substr(b+7,2),16);h+=String.fromCharCode((O&15)<<12|(K&63)<<6|ae&63)}else h+=_.substr(b,9);b+=9}else h+=_.substr(b,3),b+=3}return h}function St(_,h){function b(P){var O=Ce(P);return O.match(h.UNRESERVED)?O:P}return _.scheme&&(_.scheme=String(_.scheme).replace(h.PCT_ENCODED,b).toLowerCase().replace(h.NOT_SCHEME,"")),_.userinfo!==void 0&&(_.userinfo=String(_.userinfo).replace(h.PCT_ENCODED,b).replace(h.NOT_USERINFO,Re).replace(h.PCT_ENCODED,t)),_.host!==void 0&&(_.host=String(_.host).replace(h.PCT_ENCODED,b).toLowerCase().replace(h.NOT_HOST,Re).replace(h.PCT_ENCODED,t)),_.path!==void 0&&(_.path=String(_.path).replace(h.PCT_ENCODED,b).replace(_.scheme?h.NOT_PATH:h.NOT_PATH_NOSCHEME,Re).replace(h.PCT_ENCODED,t)),_.query!==void 0&&(_.query=String(_.query).replace(h.PCT_ENCODED,b).replace(h.NOT_QUERY,Re).replace(h.PCT_ENCODED,t)),_.fragment!==void 0&&(_.fragment=String(_.fragment).replace(h.PCT_ENCODED,b).replace(h.NOT_FRAGMENT,Re).replace(h.PCT_ENCODED,t)),_}function pt(_){return _.replace(/^0*(.*)/,"$1")||"0"}function Ee(_,h){var b=_.match(h.IPV4ADDRESS)||[],P=d(b,2),O=P[1];return O?O.split(".").map(pt).join("."):_}function ge(_,h){var b=_.match(h.IPV6ADDRESS)||[],P=d(b,3),O=P[1],B=P[2];if(O){for(var K=O.toLowerCase().split("::").reverse(),ae=d(K,2),le=ae[0],Se=ae[1],se=Se?Se.split(":").map(pt):[],me=le.split(":").map(pt),xe=h.IPV4ADDRESS.test(me[me.length-1]),fe=xe?7:8,oe=me.length-fe,ve=Array(fe),ue=0;ue1){var de=ve.slice(0,Ve.index),He=ve.slice(Ve.index+Ve.length);Ze=de.join(":")+"::"+He.join(":")}else Ze=ve.join(":");return B&&(Ze+="%"+B),Ze}else return _}var Dt=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,Ie="".match(/(){0}/)[1]===void 0;function ce(_){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},b={},P=h.iri!==!1?u:l;h.reference==="suffix"&&(_=(h.scheme?h.scheme+":":"")+"//"+_);var O=_.match(Dt);if(O){Ie?(b.scheme=O[1],b.userinfo=O[3],b.host=O[4],b.port=parseInt(O[5],10),b.path=O[6]||"",b.query=O[7],b.fragment=O[8],isNaN(b.port)&&(b.port=O[5])):(b.scheme=O[1]||void 0,b.userinfo=_.indexOf("@")!==-1?O[3]:void 0,b.host=_.indexOf("//")!==-1?O[4]:void 0,b.port=parseInt(O[5],10),b.path=O[6]||"",b.query=_.indexOf("?")!==-1?O[7]:void 0,b.fragment=_.indexOf("#")!==-1?O[8]:void 0,isNaN(b.port)&&(b.port=_.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?O[4]:void 0)),b.host&&(b.host=ge(Ee(b.host,P),P)),b.scheme===void 0&&b.userinfo===void 0&&b.host===void 0&&b.port===void 0&&!b.path&&b.query===void 0?b.reference="same-document":b.scheme===void 0?b.reference="relative":b.fragment===void 0?b.reference="absolute":b.reference="uri",h.reference&&h.reference!=="suffix"&&h.reference!==b.reference&&(b.error=b.error||"URI is not a "+h.reference+" reference.");var B=be[(h.scheme||b.scheme||"").toLowerCase()];if(!h.unicodeSupport&&(!B||!B.unicodeSupport)){if(b.host&&(h.domainHost||B&&B.domainHost))try{b.host=ne.toASCII(b.host.replace(P.PCT_ENCODED,Ce).toLowerCase())}catch(K){b.error=b.error||"Host's domain name can not be converted to ASCII via punycode: "+K}St(b,l)}else St(b,P);B&&B.parse&&B.parse(b,h)}else b.error=b.error||"URI can not be parsed.";return b}function xt(_,h){var b=h.iri!==!1?u:l,P=[];return _.userinfo!==void 0&&(P.push(_.userinfo),P.push("@")),_.host!==void 0&&P.push(ge(Ee(String(_.host),b),b).replace(b.IPV6ADDRESS,function(O,B,K){return"["+B+(K?"%25"+K:"")+"]"})),(typeof _.port=="number"||typeof _.port=="string")&&(P.push(":"),P.push(String(_.port))),P.length?P.join(""):void 0}var ft=/^\.\.?\//,Ct=/^\/\.(\/|$)/,kt=/^\/\.\.(\/|$)/,we=/^\/?(?:.|\n)*?(?=\/|$)/;function ze(_){for(var h=[];_.length;)if(_.match(ft))_=_.replace(ft,"");else if(_.match(Ct))_=_.replace(Ct,"/");else if(_.match(kt))_=_.replace(kt,"/"),h.pop();else if(_==="."||_==="..")_="";else{var b=_.match(we);if(b){var P=b[0];_=_.slice(P.length),h.push(P)}else throw new Error("Unexpected dot segment condition")}return h.join("")}function Fe(_){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},b=h.iri?u:l,P=[],O=be[(h.scheme||_.scheme||"").toLowerCase()];if(O&&O.serialize&&O.serialize(_,h),_.host&&!b.IPV6ADDRESS.test(_.host)){if(h.domainHost||O&&O.domainHost)try{_.host=h.iri?ne.toUnicode(_.host):ne.toASCII(_.host.replace(b.PCT_ENCODED,Ce).toLowerCase())}catch(ae){_.error=_.error||"Host's domain name can not be converted to "+(h.iri?"Unicode":"ASCII")+" via punycode: "+ae}}St(_,b),h.reference!=="suffix"&&_.scheme&&(P.push(_.scheme),P.push(":"));var B=xt(_,h);if(B!==void 0&&(h.reference!=="suffix"&&P.push("//"),P.push(B),_.path&&_.path.charAt(0)!=="/"&&P.push("/")),_.path!==void 0){var K=_.path;!h.absolutePath&&(!O||!O.absolutePath)&&(K=ze(K)),B===void 0&&(K=K.replace(/^\/\//,"/%2F")),P.push(K)}return _.query!==void 0&&(P.push("?"),P.push(_.query)),_.fragment!==void 0&&(P.push("#"),P.push(_.fragment)),P.join("")}function ke(_,h){var b=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},P=arguments[3],O={};return P||(_=ce(Fe(_,b),b),h=ce(Fe(h,b),b)),b=b||{},!b.tolerant&&h.scheme?(O.scheme=h.scheme,O.userinfo=h.userinfo,O.host=h.host,O.port=h.port,O.path=ze(h.path||""),O.query=h.query):(h.userinfo!==void 0||h.host!==void 0||h.port!==void 0?(O.userinfo=h.userinfo,O.host=h.host,O.port=h.port,O.path=ze(h.path||""),O.query=h.query):(h.path?(h.path.charAt(0)==="/"?O.path=ze(h.path):((_.userinfo!==void 0||_.host!==void 0||_.port!==void 0)&&!_.path?O.path="/"+h.path:_.path?O.path=_.path.slice(0,_.path.lastIndexOf("/")+1)+h.path:O.path=h.path,O.path=ze(O.path)),O.query=h.query):(O.path=_.path,h.query!==void 0?O.query=h.query:O.query=_.query),O.userinfo=_.userinfo,O.host=_.host,O.port=_.port),O.scheme=_.scheme),O.fragment=h.fragment,O}function nt(_,h,b){var P=o({scheme:"null"},b);return Fe(ke(ce(_,P),ce(h,P),P,!0),P)}function Be(_,h){return typeof _=="string"?_=Fe(ce(_,h),h):a(_)==="object"&&(_=ce(Fe(_,h),h)),_}function Vr(_,h,b){return typeof _=="string"?_=Fe(ce(_,b),b):a(_)==="object"&&(_=Fe(_,b)),typeof h=="string"?h=Fe(ce(h,b),b):a(h)==="object"&&(h=Fe(h,b)),_===h}function qs(_,h){return _&&_.toString().replace(!h||!h.iri?l.ESCAPE:u.ESCAPE,Re)}function et(_,h){return _&&_.toString().replace(!h||!h.iri?l.PCT_ENCODED:u.PCT_ENCODED,Ce)}var Rr={scheme:"http",domainHost:!0,parse:function(h,b){return h.host||(h.error=h.error||"HTTP URIs must have a host."),h},serialize:function(h,b){var P=String(h.scheme).toLowerCase()==="https";return(h.port===(P?443:80)||h.port==="")&&(h.port=void 0),h.path||(h.path="/"),h}},un={scheme:"https",domainHost:Rr.domainHost,parse:Rr.parse,serialize:Rr.serialize};function dn(_){return typeof _.secure=="boolean"?_.secure:String(_.scheme).toLowerCase()==="wss"}var Tr={scheme:"ws",domainHost:!0,parse:function(h,b){var P=h;return P.secure=dn(P),P.resourceName=(P.path||"/")+(P.query?"?"+P.query:""),P.path=void 0,P.query=void 0,P},serialize:function(h,b){if((h.port===(dn(h)?443:80)||h.port==="")&&(h.port=void 0),typeof h.secure=="boolean"&&(h.scheme=h.secure?"wss":"ws",h.secure=void 0),h.resourceName){var P=h.resourceName.split("?"),O=d(P,2),B=O[0],K=O[1];h.path=B&&B!=="/"?B:void 0,h.query=K,h.resourceName=void 0}return h.fragment=void 0,h}},pn={scheme:"wss",domainHost:Tr.domainHost,parse:Tr.parse,serialize:Tr.serialize},Dl={},Cl=!0,fn="[A-Za-z0-9\\-\\.\\_\\~"+(Cl?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",ot="[0-9A-Fa-f]",kl=r(r("%[EFef]"+ot+"%"+ot+ot+"%"+ot+ot)+"|"+r("%[89A-Fa-f]"+ot+"%"+ot+ot)+"|"+r("%"+ot+ot)),Ll="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",jl="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",Fl=e(jl,'[\\"\\\\]'),Ml="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",ql=new RegExp(fn,"g"),nr=new RegExp(kl,"g"),Ul=new RegExp(e("[^]",Ll,"[\\.]",'[\\"]',Fl),"g"),hn=new RegExp(e("[^]",fn,Ml),"g"),Bl=hn;function Us(_){var h=Ce(_);return h.match(ql)?h:_}var mn={scheme:"mailto",parse:function(h,b){var P=h,O=P.to=P.path?P.path.split(","):[];if(P.path=void 0,P.query){for(var B=!1,K={},ae=P.query.split("&"),le=0,Se=ae.length;le{"use strict";Kn.exports=function s(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var a,t,n;if(Array.isArray(e)){if(a=e.length,a!=r.length)return!1;for(t=a;t--!==0;)if(!s(e[t],r[t]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(n=Object.keys(e),a=n.length,a!==Object.keys(r).length)return!1;for(t=a;t--!==0;)if(!Object.prototype.hasOwnProperty.call(r,n[t]))return!1;for(t=a;t--!==0;){var o=n[t];if(!s(e[o],r[o]))return!1}return!0}return e!==e&&r!==r}});var Yn=H((_m,Jn)=>{"use strict";Jn.exports=function(e){for(var r=0,a=e.length,t=0,n;t=55296&&n<=56319&&t{"use strict";ro.exports={copy:sp,checkDataType:ma,checkDataTypes:ap,coerceToTypes:np,toHash:ga,getProperty:ya,escapeQuotes:_a,equal:ls(),ucs2length:Yn(),varOccurences:cp,varReplace:lp,schemaHasRules:up,schemaHasRulesExcept:dp,schemaUnknownRules:pp,toQuotedString:va,getPathExpr:fp,getPath:hp,getData:gp,unescapeFragment:yp,unescapeJsonPointer:Ea,escapeFragment:_p,escapeJsonPointer:ba};function sp(s,e){e=e||{};for(var r in s)e[r]=s[r];return e}function ma(s,e,r,a){var t=a?" !== ":" === ",n=a?" || ":" && ",o=a?"!":"",i=a?"":"!";switch(s){case"null":return e+t+"null";case"array":return o+"Array.isArray("+e+")";case"object":return"("+o+e+n+"typeof "+e+t+'"object"'+n+i+"Array.isArray("+e+"))";case"integer":return"(typeof "+e+t+'"number"'+n+i+"("+e+" % 1)"+n+e+t+e+(r?n+o+"isFinite("+e+")":"")+")";case"number":return"(typeof "+e+t+'"'+s+'"'+(r?n+o+"isFinite("+e+")":"")+")";default:return"typeof "+e+t+'"'+s+'"'}}function ap(s,e,r){switch(s.length){case 1:return ma(s[0],e,r,!0);default:var a="",t=ga(s);t.array&&t.object&&(a=t.null?"(":"(!"+e+" || ",a+="typeof "+e+' !== "object")',delete t.null,delete t.array,delete t.object),t.number&&delete t.integer;for(var n in t)a+=(a?" && ":"")+ma(n,e,r,!0);return a}}var eo=ga(["string","number","integer","boolean","null"]);function np(s,e){if(Array.isArray(e)){for(var r=[],a=0;a=e)throw new Error("Cannot access property/index "+a+" levels up, current level is "+e);return r[e-a]}if(a>e)throw new Error("Cannot access data "+a+" levels up, current level is "+e);if(n="data"+(e-a||""),!t)return n}for(var i=n,l=t.split("/"),u=0;u{"use strict";var bp=rr();so.exports=Ep;function Ep(s){bp.copy(s,this)}});var no=H((Sm,ao)=>{"use strict";var Ot=ao.exports=function(s,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var a=typeof r=="function"?r:r.pre||function(){},t=r.post||function(){};us(e,a,t,s,"",s)};Ot.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0};Ot.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Ot.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Ot.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function us(s,e,r,a,t,n,o,i,l,u){if(a&&typeof a=="object"&&!Array.isArray(a)){e(a,t,n,o,i,l,u);for(var d in a){var f=a[d];if(Array.isArray(f)){if(d in Ot.arrayKeywords)for(var m=0;m{"use strict";var Mr=Wn(),oo=ls(),hs=rr(),ds=Sa(),xp=no();lo.exports=$t;$t.normalizeId=It;$t.fullPath=ps;$t.url=fs;$t.ids=Op;$t.inlineRef=xa;$t.schema=ms;function $t(s,e,r){var a=this._refs[r];if(typeof a=="string")if(this._refs[a])a=this._refs[a];else return $t.call(this,s,e,a);if(a=a||this._schemas[r],a instanceof ds)return xa(a.schema,this._opts.inlineRefs)?a.schema:a.validate||this._compile(a);var t=ms.call(this,e,r),n,o,i;return t&&(n=t.schema,e=t.root,i=t.baseId),n instanceof ds?o=n.validate||s.call(this,n.schema,e,void 0,i):n!==void 0&&(o=xa(n,this._opts.inlineRefs)?n:s.call(this,n,e,void 0,i)),o}function ms(s,e){var r=Mr.parse(e),a=co(r),t=ps(this._getId(s.schema));if(Object.keys(s.schema).length===0||a!==t){var n=It(a),o=this._refs[n];if(typeof o=="string")return Rp.call(this,s,o,r);if(o instanceof ds)o.validate||this._compile(o),s=o;else if(o=this._schemas[n],o instanceof ds){if(o.validate||this._compile(o),n==It(e))return{schema:o,root:s,baseId:t};s=o}else return;if(!s.schema)return;t=ps(this._getId(s.schema))}return io.call(this,r,t,s.schema,s)}function Rp(s,e,r){var a=ms.call(this,s,e);if(a){var t=a.schema,n=a.baseId;s=a.root;var o=this._getId(t);return o&&(n=fs(n,o)),io.call(this,r,n,t,s)}}var Tp=hs.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function io(s,e,r,a){if(s.fragment=s.fragment||"",s.fragment.slice(0,1)=="/"){for(var t=s.fragment.split("/"),n=1;n{"use strict";var wa=vs();po.exports={Validation:uo(Ip),MissingRef:uo(Pa)};function Ip(s){this.message="validation failed",this.errors=s,this.ajv=this.validation=!0}Pa.message=function(s,e){return"can't resolve reference "+e+" from id "+s};function Pa(s,e,r){this.message=r||Pa.message(s,e),this.missingRef=wa.url(s,e),this.missingSchema=wa.normalizeId(wa.fullPath(this.missingRef))}function uo(s){return s.prototype=Object.create(Error.prototype),s.prototype.constructor=s,s}});var Oa=H((Tm,fo)=>{"use strict";fo.exports=function(s,e){e||(e={}),typeof e=="function"&&(e={cmp:e});var r=typeof e.cycles=="boolean"?e.cycles:!1,a=e.cmp&&(function(n){return function(o){return function(i,l){var u={key:i,value:o[i]},d={key:l,value:o[l]};return n(u,d)}}})(e.cmp),t=[];return(function n(o){if(o&&o.toJSON&&typeof o.toJSON=="function"&&(o=o.toJSON()),o!==void 0){if(typeof o=="number")return isFinite(o)?""+o:"null";if(typeof o!="object")return JSON.stringify(o);var i,l;if(Array.isArray(o)){for(l="[",i=0;i{"use strict";ho.exports=function(e,r,a){var t="",n=e.schema.$async===!0,o=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"),i=e.self._getId(e.schema);if(e.opts.strictKeywords){var l=e.util.schemaUnknownRules(e.schema,e.RULES.keywords);if(l){var u="unknown keyword: "+l;if(e.opts.strictKeywords==="log")e.logger.warn(u);else throw new Error(u)}}if(e.isTop&&(t+=" var validate = ",n&&(e.async=!0,t+="async "),t+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",i&&(e.opts.sourceCode||e.opts.processCode)&&(t+=" "+("/*# sourceURL="+i+" */")+" ")),typeof e.schema=="boolean"||!(o||e.schema.$ref)){var r="false schema",d=e.level,f=e.dataLevel,m=e.schema[r],p=e.schemaPath+e.util.getProperty(r),g=e.errSchemaPath+"/"+r,x=!e.opts.allErrors,j,y="data"+(f||""),R="valid"+d;if(e.schema===!1){e.isTop?x=!0:t+=" var "+R+" = false; ";var v=v||[];v.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '"+(j||"false schema")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(g)+" , params: {} ",e.opts.messages!==!1&&(t+=" , message: 'boolean schema is false' "),e.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+y+" "),t+=" } "):t+=" {} ";var E=t;t=v.pop(),!e.compositeRule&&x?e.async?t+=" throw new ValidationError(["+E+"]); ":t+=" validate.errors = ["+E+"]; return false; ":t+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else e.isTop?n?t+=" return data; ":t+=" validate.errors = null; return true; ":t+=" var "+R+" = true; ";return e.isTop&&(t+=" }; return validate; "),t}if(e.isTop){var w=e.isTop,d=e.level=0,f=e.dataLevel=0,y="data";if(e.rootId=e.resolve.fullPath(e.self._getId(e.root.schema)),e.baseId=e.baseId||e.rootId,delete e.isTop,e.dataPathArr=[""],e.schema.default!==void 0&&e.opts.useDefaults&&e.opts.strictDefaults){var S="default is ignored in the schema root";if(e.opts.strictDefaults==="log")e.logger.warn(S);else throw new Error(S)}t+=" var vErrors = null; ",t+=" var errors = 0; ",t+=" if (rootData === undefined) rootData = data; "}else{var d=e.level,f=e.dataLevel,y="data"+(f||"");if(i&&(e.baseId=e.resolve.url(e.baseId,i)),n&&!e.async)throw new Error("async schema in sync schema");t+=" var errs_"+d+" = errors;"}var R="valid"+d,x=!e.opts.allErrors,T="",N="",j,$=e.schema.type,D=Array.isArray($);if($&&e.opts.nullable&&e.schema.nullable===!0&&(D?$.indexOf("null")==-1&&($=$.concat("null")):$!="null"&&($=[$,"null"],D=!0)),D&&$.length==1&&($=$[0],D=!1),e.schema.$ref&&o){if(e.opts.extendRefs=="fail")throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'" (see option extendRefs)');e.opts.extendRefs!==!0&&(o=!1,e.logger.warn('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"'))}if(e.schema.$comment&&e.opts.$comment&&(t+=" "+e.RULES.all.$comment.code(e,"$comment")),$){if(e.opts.coerceTypes)var C=e.util.coerceToTypes(e.opts.coerceTypes,$);var F=e.RULES.types[$];if(C||D||F===!0||F&&!we(F)){var p=e.schemaPath+".type",g=e.errSchemaPath+"/type",p=e.schemaPath+".type",g=e.errSchemaPath+"/type",I=D?"checkDataTypes":"checkDataType";if(t+=" if ("+e.util[I]($,y,e.opts.strictNumbers,!0)+") { ",C){var A="dataType"+d,M="coerced"+d;t+=" var "+A+" = typeof "+y+"; var "+M+" = undefined; ",e.opts.coerceTypes=="array"&&(t+=" if ("+A+" == 'object' && Array.isArray("+y+") && "+y+".length == 1) { "+y+" = "+y+"[0]; "+A+" = typeof "+y+"; if ("+e.util.checkDataType(e.schema.type,y,e.opts.strictNumbers)+") "+M+" = "+y+"; } "),t+=" if ("+M+" !== undefined) ; ";var ee=C;if(ee)for(var Q,Y=-1,X=ee.length-1;Y{"use strict";var ys=vs(),bs=rr(),vo=gs(),$p=Oa(),mo=Ia(),Ap=bs.ucs2length,Np=ls(),Dp=vo.Validation;yo.exports=$a;function $a(s,e,r,a){var t=this,n=this._opts,o=[void 0],i={},l=[],u={},d=[],f={},m=[];e=e||{schema:s,refVal:o,refs:i};var p=Cp.call(this,s,e,a),g=this._compilations[p.index];if(p.compiling)return g.callValidate=S;var y=this._formats,v=this.RULES;try{var E=R(s,e,r,a);g.validate=E;var w=g.callValidate;return w&&(w.schema=E.schema,w.errors=null,w.refs=E.refs,w.refVal=E.refVal,w.root=E.root,w.$async=E.$async,n.sourceCode&&(w.source=E.source)),E}finally{kp.call(this,s,e,a)}function S(){var I=g.validate,A=I.apply(this,arguments);return S.errors=I.errors,A}function R(I,A,M,ee){var Q=!A||A&&A.schema==I;if(A.schema!=e.schema)return $a.call(t,I,A,M,ee);var Y=I.$async===!0,X=mo({isTop:!0,schema:I,isRoot:Q,baseId:ee,root:A,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:vo.MissingRef,RULES:v,validate:mo,util:bs,resolve:ys,resolveRef:x,usePattern:D,useDefault:C,useCustomRule:F,opts:n,formats:y,logger:t.logger,self:t});X=_s(o,Fp)+_s(l,Lp)+_s(d,jp)+_s(m,Mp)+X,n.processCode&&(X=n.processCode(X,I));var z;try{var pe=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",X);z=pe(t,v,y,e,o,d,m,Np,Ap,Dp),o[0]=z}catch(Oe){throw t.logger.error("Error compiling schema, function code:",X),Oe}return z.schema=I,z.errors=null,z.refs=i,z.refVal=o,z.root=Q?z:A,Y&&(z.$async=!0),n.sourceCode===!0&&(z.source={code:X,patterns:l,defaults:d}),z}function x(I,A,M){A=ys.url(I,A);var ee=i[A],Q,Y;if(ee!==void 0)return Q=o[ee],Y="refVal["+ee+"]",$(Q,Y);if(!M&&e.refs){var X=e.refs[A];if(X!==void 0)return Q=e.refVal[X],Y=T(A,Q),$(Q,Y)}Y=T(A);var z=ys.call(t,R,e,A);if(z===void 0){var pe=r&&r[A];pe&&(z=ys.inlineRef(pe,n.inlineRefs)?pe:$a.call(t,pe,e,r,I))}if(z===void 0)N(A);else return j(A,z),$(z,Y)}function T(I,A){var M=o.length;return o[M]=A,i[I]=M,"refVal"+M}function N(I){delete i[I]}function j(I,A){var M=i[I];o[M]=A}function $(I,A){return typeof I=="object"||typeof I=="boolean"?{code:A,schema:I,inline:!0}:{code:A,$async:I&&!!I.$async}}function D(I){var A=u[I];return A===void 0&&(A=u[I]=l.length,l[A]=I),"pattern"+A}function C(I){switch(typeof I){case"boolean":case"number":return""+I;case"string":return bs.toQuotedString(I);case"object":if(I===null)return"null";var A=$p(I),M=f[A];return M===void 0&&(M=f[A]=d.length,d[M]=I),"default"+M}}function F(I,A,M,ee){if(t._opts.validateSchema!==!1){var Q=I.definition.dependencies;if(Q&&!Q.every(function(Re){return Object.prototype.hasOwnProperty.call(M,Re)}))throw new Error("parent schema must have all required keywords: "+Q.join(","));var Y=I.definition.validateSchema;if(Y){var X=Y(A);if(!X){var z="keyword schema is invalid: "+t.errorsText(Y.errors);if(t._opts.validateSchema=="log")t.logger.error(z);else throw new Error(z)}}}var pe=I.definition.compile,Oe=I.definition.inline,De=I.definition.macro,ne;if(pe)ne=pe.call(t,A,M,ee);else if(De)ne=De.call(t,A,M,ee),n.validateSchema!==!1&&t.validateSchema(ne,!0);else if(Oe)ne=Oe.call(t,ee,I.keyword,A,M);else if(ne=I.definition.validate,!ne)return;if(ne===void 0)throw new Error('custom keyword "'+I.keyword+'"failed to compile');var be=m.length;return m[be]=ne,{code:"customRule"+be,validate:ne}}}function Cp(s,e,r){var a=go.call(this,s,e,r);return a>=0?{index:a,compiling:!0}:(a=this._compilations.length,this._compilations[a]={schema:s,root:e,baseId:r},{index:a,compiling:!1})}function kp(s,e,r){var a=go.call(this,s,e,r);a>=0&&this._compilations.splice(a,1)}function go(s,e,r){for(var a=0;a{"use strict";var Es=bo.exports=function(){this._cache={}};Es.prototype.put=function(e,r){this._cache[e]=r};Es.prototype.get=function(e){return this._cache[e]};Es.prototype.del=function(e){delete this._cache[e]};Es.prototype.clear=function(){this._cache={}}});var Do=H((Im,No)=>{"use strict";var qp=rr(),Up=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Bp=[0,31,28,31,30,31,30,31,31,30,31,30,31],Vp=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,So=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,Hp=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,zp=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,xo=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,Ro=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,To=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,wo=/^(?:\/(?:[^~/]|~0|~1)*)*$/,Po=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,Oo=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;No.exports=Ss;function Ss(s){return s=s=="full"?"full":"fast",qp.copy(Ss[s])}Ss.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":xo,url:Ro,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:So,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Ao,uuid:To,"json-pointer":wo,"json-pointer-uri-fragment":Po,"relative-json-pointer":Oo};Ss.full={date:Io,time:$o,"date-time":Xp,uri:Wp,"uri-reference":zp,"uri-template":xo,url:Ro,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:So,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Ao,uuid:To,"json-pointer":wo,"json-pointer-uri-fragment":Po,"relative-json-pointer":Oo};function Zp(s){return s%4===0&&(s%100!==0||s%400===0)}function Io(s){var e=s.match(Up);if(!e)return!1;var r=+e[1],a=+e[2],t=+e[3];return a>=1&&a<=12&&t>=1&&t<=(a==2&&Zp(r)?29:Bp[a])}function $o(s,e){var r=s.match(Vp);if(!r)return!1;var a=r[1],t=r[2],n=r[3],o=r[5];return(a<=23&&t<=59&&n<=59||a==23&&t==59&&n==60)&&(!e||o)}var Gp=/t|\s/i;function Xp(s){var e=s.split(Gp);return e.length==2&&Io(e[0])&&$o(e[1],!0)}var Qp=/\/|:/;function Wp(s){return Qp.test(s)&&Hp.test(s)}var Kp=/[^\\]\\Z/;function Ao(s){if(Kp.test(s))return!1;try{return new RegExp(s),!0}catch{return!1}}});var ko=H(($m,Co)=>{"use strict";Co.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,d="data"+(o||""),f="valid"+n,m,p;if(i=="#"||i=="#/")e.isRoot?(m=e.async,p="validate"):(m=e.root.schema.$async===!0,p="root.refVal[0]");else{var g=e.resolveRef(e.baseId,i,e.isRoot);if(g===void 0){var y=e.MissingRefError.message(e.baseId,i);if(e.opts.missingRefs=="fail"){e.logger.error(y);var v=v||[];v.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { ref: '"+e.util.escapeQuotes(i)+"' } ",e.opts.messages!==!1&&(t+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(i)+"' "),e.opts.verbose&&(t+=" , schema: "+e.util.toQuotedString(i)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),t+=" } "):t+=" {} ";var E=t;t=v.pop(),!e.compositeRule&&u?e.async?t+=" throw new ValidationError(["+E+"]); ":t+=" validate.errors = ["+E+"]; return false; ":t+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(t+=" if (false) { ")}else if(e.opts.missingRefs=="ignore")e.logger.warn(y),u&&(t+=" if (true) { ");else throw new e.MissingRefError(e.baseId,i,y)}else if(g.inline){var w=e.util.copy(e);w.level++;var S="valid"+w.level;w.schema=g.schema,w.schemaPath="",w.errSchemaPath=i;var R=e.validate(w).replace(/validate\.schema/g,g.code);t+=" "+R+" ",u&&(t+=" if ("+S+") { ")}else m=g.$async===!0||e.async&&g.$async!==!1,p=g.code}if(p){var v=v||[];v.push(t),t="",e.opts.passContext?t+=" "+p+".call(this, ":t+=" "+p+"( ",t+=" "+d+", (dataPath || '')",e.errorPath!='""'&&(t+=" + "+e.errorPath);var x=o?"data"+(o-1||""):"parentData",T=o?e.dataPathArr[o]:"parentDataProperty";t+=" , "+x+" , "+T+", rootData) ";var N=t;if(t=v.pop(),m){if(!e.async)throw new Error("async schema referenced by sync schema");u&&(t+=" var "+f+"; "),t+=" try { await "+N+"; ",u&&(t+=" "+f+" = true; "),t+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(t+=" "+f+" = false; "),t+=" } ",u&&(t+=" if ("+f+") { ")}else t+=" if (!"+N+") { if (vErrors === null) vErrors = "+p+".errors; else vErrors = vErrors.concat("+p+".errors); errors = vErrors.length; } ",u&&(t+=" else { ")}return t}});var jo=H((Am,Lo)=>{"use strict";Lo.exports=function(e,r,a){var t=" ",n=e.schema[r],o=e.schemaPath+e.util.getProperty(r),i=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,u=e.util.copy(e),d="";u.level++;var f="valid"+u.level,m=u.baseId,p=!0,g=n;if(g)for(var y,v=-1,E=g.length-1;v0||y===!1:e.util.schemaHasRules(y,e.RULES.all))&&(p=!1,u.schema=y,u.schemaPath=o+"["+v+"]",u.errSchemaPath=i+"/"+v,t+=" "+e.validate(u)+" ",u.baseId=m,l&&(t+=" if ("+f+") { ",d+="}"));return l&&(p?t+=" if (true) { ":t+=" "+d.slice(0,-1)+" "),t}});var Mo=H((Nm,Fo)=>{"use strict";Fo.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||""),m="valid"+n,p="errs__"+n,g=e.util.copy(e),y="";g.level++;var v="valid"+g.level,E=i.every(function(j){return e.opts.strictKeywords?typeof j=="object"&&Object.keys(j).length>0||j===!1:e.util.schemaHasRules(j,e.RULES.all)});if(E){var w=g.baseId;t+=" var "+p+" = errors; var "+m+" = false; ";var S=e.compositeRule;e.compositeRule=g.compositeRule=!0;var R=i;if(R)for(var x,T=-1,N=R.length-1;T{"use strict";qo.exports=function(e,r,a){var t=" ",n=e.schema[r],o=e.errSchemaPath+"/"+r,i=!e.opts.allErrors,l=e.util.toQuotedString(n);return e.opts.$comment===!0?t+=" console.log("+l+");":typeof e.opts.$comment=="function"&&(t+=" self._opts.$comment("+l+", "+e.util.toQuotedString(o)+", validate.root.schema);"),t}});var Vo=H((Cm,Bo)=>{"use strict";Bo.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||""),m="valid"+n,p=e.opts.$data&&i&&i.$data,g;p?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",g="schema"+n):g=i,p||(t+=" var schema"+n+" = validate.schema"+l+";"),t+="var "+m+" = equal("+f+", schema"+n+"); if (!"+m+") { ";var y=y||[];y.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { allowedValue: schema"+n+" } ",e.opts.messages!==!1&&(t+=" , message: 'should be equal to constant' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var v=t;return t=y.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+v+"]); ":t+=" validate.errors = ["+v+"]; return false; ":t+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" }",d&&(t+=" else { "),t}});var zo=H((km,Ho)=>{"use strict";Ho.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||""),m="valid"+n,p="errs__"+n,g=e.util.copy(e),y="";g.level++;var v="valid"+g.level,E="i"+n,w=g.dataLevel=e.dataLevel+1,S="data"+w,R=e.baseId,x=e.opts.strictKeywords?typeof i=="object"&&Object.keys(i).length>0||i===!1:e.util.schemaHasRules(i,e.RULES.all);if(t+="var "+p+" = errors;var "+m+";",x){var T=e.compositeRule;e.compositeRule=g.compositeRule=!0,g.schema=i,g.schemaPath=l,g.errSchemaPath=u,t+=" var "+v+" = false; for (var "+E+" = 0; "+E+" < "+f+".length; "+E+"++) { ",g.errorPath=e.util.getPathExpr(e.errorPath,E,e.opts.jsonPointers,!0);var N=f+"["+E+"]";g.dataPathArr[w]=E;var j=e.validate(g);g.baseId=R,e.util.varOccurences(j,S)<2?t+=" "+e.util.varReplace(j,S,N)+" ":t+=" var "+S+" = "+N+"; "+j+" ",t+=" if ("+v+") break; } ",e.compositeRule=g.compositeRule=T,t+=" "+y+" if (!"+v+") {"}else t+=" if ("+f+".length == 0) {";var $=$||[];$.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: {} ",e.opts.messages!==!1&&(t+=" , message: 'should contain a valid item' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var D=t;return t=$.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+D+"]); ":t+=" validate.errors = ["+D+"]; return false; ":t+=" var err = "+D+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { ",x&&(t+=" errors = "+p+"; if (vErrors !== null) { if ("+p+") vErrors.length = "+p+"; else vErrors = null; } "),e.opts.allErrors&&(t+=" } "),t}});var Go=H((Lm,Zo)=>{"use strict";Zo.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||""),m="errs__"+n,p=e.util.copy(e),g="";p.level++;var y="valid"+p.level,v={},E={},w=e.opts.ownProperties;for(T in i)if(T!="__proto__"){var S=i[T],R=Array.isArray(S)?E:v;R[T]=S}t+="var "+m+" = errors;";var x=e.errorPath;t+="var missing"+n+";";for(var T in E)if(R=E[T],R.length){if(t+=" if ( "+f+e.util.getProperty(T)+" !== undefined ",w&&(t+=" && Object.prototype.hasOwnProperty.call("+f+", '"+e.util.escapeQuotes(T)+"') "),d){t+=" && ( ";var N=R;if(N)for(var j,$=-1,D=N.length-1;$0||S===!1:e.util.schemaHasRules(S,e.RULES.all))&&(t+=" "+y+" = true; if ( "+f+e.util.getProperty(T)+" !== undefined ",w&&(t+=" && Object.prototype.hasOwnProperty.call("+f+", '"+e.util.escapeQuotes(T)+"') "),t+=") { ",p.schema=S,p.schemaPath=l+e.util.getProperty(T),p.errSchemaPath=u+"/"+e.util.escapeFragment(T),t+=" "+e.validate(p)+" ",p.baseId=z,t+=" } ",d&&(t+=" if ("+y+") { ",g+="}"))}return d&&(t+=" "+g+" if ("+m+" == errors) {"),t}});var Qo=H((jm,Xo)=>{"use strict";Xo.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||""),m="valid"+n,p=e.opts.$data&&i&&i.$data,g;p?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",g="schema"+n):g=i;var y="i"+n,v="schema"+n;p||(t+=" var "+v+" = validate.schema"+l+";"),t+="var "+m+";",p&&(t+=" if (schema"+n+" === undefined) "+m+" = true; else if (!Array.isArray(schema"+n+")) "+m+" = false; else {"),t+=""+m+" = false;for (var "+y+"=0; "+y+"<"+v+".length; "+y+"++) if (equal("+f+", "+v+"["+y+"])) { "+m+" = true; break; }",p&&(t+=" } "),t+=" if (!"+m+") { ";var E=E||[];E.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { allowedValues: schema"+n+" } ",e.opts.messages!==!1&&(t+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var w=t;return t=E.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+w+"]); ":t+=" validate.errors = ["+w+"]; return false; ":t+=" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" }",d&&(t+=" else { "),t}});var Ko=H((Fm,Wo)=>{"use strict";Wo.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||"");if(e.opts.format===!1)return d&&(t+=" if (true) { "),t;var m=e.opts.$data&&i&&i.$data,p;m?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",p="schema"+n):p=i;var g=e.opts.unknownFormats,y=Array.isArray(g);if(m){var v="format"+n,E="isObject"+n,w="formatType"+n;t+=" var "+v+" = formats["+p+"]; var "+E+" = typeof "+v+" == 'object' && !("+v+" instanceof RegExp) && "+v+".validate; var "+w+" = "+E+" && "+v+".type || 'string'; if ("+E+") { ",e.async&&(t+=" var async"+n+" = "+v+".async; "),t+=" "+v+" = "+v+".validate; } if ( ",m&&(t+=" ("+p+" !== undefined && typeof "+p+" != 'string') || "),t+=" (",g!="ignore"&&(t+=" ("+p+" && !"+v+" ",y&&(t+=" && self._opts.unknownFormats.indexOf("+p+") == -1 "),t+=") || "),t+=" ("+v+" && "+w+" == '"+a+"' && !(typeof "+v+" == 'function' ? ",e.async?t+=" (async"+n+" ? await "+v+"("+f+") : "+v+"("+f+")) ":t+=" "+v+"("+f+") ",t+=" : "+v+".test("+f+"))))) {"}else{var v=e.formats[i];if(!v){if(g=="ignore")return e.logger.warn('unknown format "'+i+'" ignored in schema at path "'+e.errSchemaPath+'"'),d&&(t+=" if (true) { "),t;if(y&&g.indexOf(i)>=0)return d&&(t+=" if (true) { "),t;throw new Error('unknown format "'+i+'" is used in schema at path "'+e.errSchemaPath+'"')}var E=typeof v=="object"&&!(v instanceof RegExp)&&v.validate,w=E&&v.type||"string";if(E){var S=v.async===!0;v=v.validate}if(w!=a)return d&&(t+=" if (true) { "),t;if(S){if(!e.async)throw new Error("async format in sync schema");var R="formats"+e.util.getProperty(i)+".validate";t+=" if (!(await "+R+"("+f+"))) { "}else{t+=" if (! ";var R="formats"+e.util.getProperty(i);E&&(R+=".validate"),typeof v=="function"?t+=" "+R+"("+f+") ":t+=" "+R+".test("+f+") ",t+=") { "}}var x=x||[];x.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { format: ",m?t+=""+p:t+=""+e.util.toQuotedString(i),t+=" } ",e.opts.messages!==!1&&(t+=` , message: 'should match format "`,m?t+="' + "+p+" + '":t+=""+e.util.escapeQuotes(i),t+=`"' `),e.opts.verbose&&(t+=" , schema: ",m?t+="validate.schema"+l:t+=""+e.util.toQuotedString(i),t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var T=t;return t=x.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+T+"]); ":t+=" validate.errors = ["+T+"]; return false; ":t+=" var err = "+T+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",d&&(t+=" else { "),t}});var Yo=H((Mm,Jo)=>{"use strict";Jo.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||""),m="valid"+n,p="errs__"+n,g=e.util.copy(e);g.level++;var y="valid"+g.level,v=e.schema.then,E=e.schema.else,w=v!==void 0&&(e.opts.strictKeywords?typeof v=="object"&&Object.keys(v).length>0||v===!1:e.util.schemaHasRules(v,e.RULES.all)),S=E!==void 0&&(e.opts.strictKeywords?typeof E=="object"&&Object.keys(E).length>0||E===!1:e.util.schemaHasRules(E,e.RULES.all)),R=g.baseId;if(w||S){var x;g.createErrors=!1,g.schema=i,g.schemaPath=l,g.errSchemaPath=u,t+=" var "+p+" = errors; var "+m+" = true; ";var T=e.compositeRule;e.compositeRule=g.compositeRule=!0,t+=" "+e.validate(g)+" ",g.baseId=R,g.createErrors=!0,t+=" errors = "+p+"; if (vErrors !== null) { if ("+p+") vErrors.length = "+p+"; else vErrors = null; } ",e.compositeRule=g.compositeRule=T,w?(t+=" if ("+y+") { ",g.schema=e.schema.then,g.schemaPath=e.schemaPath+".then",g.errSchemaPath=e.errSchemaPath+"/then",t+=" "+e.validate(g)+" ",g.baseId=R,t+=" "+m+" = "+y+"; ",w&&S?(x="ifClause"+n,t+=" var "+x+" = 'then'; "):x="'then'",t+=" } ",S&&(t+=" else { ")):t+=" if (!"+y+") { ",S&&(g.schema=e.schema.else,g.schemaPath=e.schemaPath+".else",g.errSchemaPath=e.errSchemaPath+"/else",t+=" "+e.validate(g)+" ",g.baseId=R,t+=" "+m+" = "+y+"; ",w&&S?(x="ifClause"+n,t+=" var "+x+" = 'else'; "):x="'else'",t+=" } "),t+=" if (!"+m+") { var err = ",e.createErrors!==!1?(t+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { failingKeyword: "+x+" } ",e.opts.messages!==!1&&(t+=` , message: 'should match "' + `+x+` + '" schema' `),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&d&&(e.async?t+=" throw new ValidationError(vErrors); ":t+=" validate.errors = vErrors; return false; "),t+=" } ",d&&(t+=" else { ")}else d&&(t+=" if (true) { ");return t}});var ti=H((qm,ei)=>{"use strict";ei.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||""),m="valid"+n,p="errs__"+n,g=e.util.copy(e),y="";g.level++;var v="valid"+g.level,E="i"+n,w=g.dataLevel=e.dataLevel+1,S="data"+w,R=e.baseId;if(t+="var "+p+" = errors;var "+m+";",Array.isArray(i)){var x=e.schema.additionalItems;if(x===!1){t+=" "+m+" = "+f+".length <= "+i.length+"; ";var T=u;u=e.errSchemaPath+"/additionalItems",t+=" if (!"+m+") { ";var N=N||[];N.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { limit: "+i.length+" } ",e.opts.messages!==!1&&(t+=" , message: 'should NOT have more than "+i.length+" items' "),e.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var j=t;t=N.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+j+"]); ":t+=" validate.errors = ["+j+"]; return false; ":t+=" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",u=T,d&&(y+="}",t+=" else { ")}var $=i;if($){for(var D,C=-1,F=$.length-1;C0||D===!1:e.util.schemaHasRules(D,e.RULES.all)){t+=" "+v+" = true; if ("+f+".length > "+C+") { ";var I=f+"["+C+"]";g.schema=D,g.schemaPath=l+"["+C+"]",g.errSchemaPath=u+"/"+C,g.errorPath=e.util.getPathExpr(e.errorPath,C,e.opts.jsonPointers,!0),g.dataPathArr[w]=C;var A=e.validate(g);g.baseId=R,e.util.varOccurences(A,S)<2?t+=" "+e.util.varReplace(A,S,I)+" ":t+=" var "+S+" = "+I+"; "+A+" ",t+=" } ",d&&(t+=" if ("+v+") { ",y+="}")}}if(typeof x=="object"&&(e.opts.strictKeywords?typeof x=="object"&&Object.keys(x).length>0||x===!1:e.util.schemaHasRules(x,e.RULES.all))){g.schema=x,g.schemaPath=e.schemaPath+".additionalItems",g.errSchemaPath=e.errSchemaPath+"/additionalItems",t+=" "+v+" = true; if ("+f+".length > "+i.length+") { for (var "+E+" = "+i.length+"; "+E+" < "+f+".length; "+E+"++) { ",g.errorPath=e.util.getPathExpr(e.errorPath,E,e.opts.jsonPointers,!0);var I=f+"["+E+"]";g.dataPathArr[w]=E;var A=e.validate(g);g.baseId=R,e.util.varOccurences(A,S)<2?t+=" "+e.util.varReplace(A,S,I)+" ":t+=" var "+S+" = "+I+"; "+A+" ",d&&(t+=" if (!"+v+") break; "),t+=" } } ",d&&(t+=" if ("+v+") { ",y+="}")}}else if(e.opts.strictKeywords?typeof i=="object"&&Object.keys(i).length>0||i===!1:e.util.schemaHasRules(i,e.RULES.all)){g.schema=i,g.schemaPath=l,g.errSchemaPath=u,t+=" for (var "+E+" = 0; "+E+" < "+f+".length; "+E+"++) { ",g.errorPath=e.util.getPathExpr(e.errorPath,E,e.opts.jsonPointers,!0);var I=f+"["+E+"]";g.dataPathArr[w]=E;var A=e.validate(g);g.baseId=R,e.util.varOccurences(A,S)<2?t+=" "+e.util.varReplace(A,S,I)+" ":t+=" var "+S+" = "+I+"; "+A+" ",d&&(t+=" if (!"+v+") break; "),t+=" }"}return d&&(t+=" "+y+" if ("+p+" == errors) {"),t}});var Aa=H((Um,ri)=>{"use strict";ri.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,R,f="data"+(o||""),m=e.opts.$data&&i&&i.$data,p;m?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",p="schema"+n):p=i;var g=r=="maximum",y=g?"exclusiveMaximum":"exclusiveMinimum",v=e.schema[y],E=e.opts.$data&&v&&v.$data,w=g?"<":">",S=g?">":"<",R=void 0;if(!(m||typeof i=="number"||i===void 0))throw new Error(r+" must be number");if(!(E||v===void 0||typeof v=="number"||typeof v=="boolean"))throw new Error(y+" must be number or boolean");if(E){var x=e.util.getData(v.$data,o,e.dataPathArr),T="exclusive"+n,N="exclType"+n,j="exclIsNumber"+n,$="op"+n,D="' + "+$+" + '";t+=" var schemaExcl"+n+" = "+x+"; ",x="schemaExcl"+n,t+=" var "+T+"; var "+N+" = typeof "+x+"; if ("+N+" != 'boolean' && "+N+" != 'undefined' && "+N+" != 'number') { ";var R=y,C=C||[];C.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '"+(R||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: {} ",e.opts.messages!==!1&&(t+=" , message: '"+y+" should be boolean' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var F=t;t=C.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+F+"]); ":t+=" validate.errors = ["+F+"]; return false; ":t+=" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else if ( ",m&&(t+=" ("+p+" !== undefined && typeof "+p+" != 'number') || "),t+=" "+N+" == 'number' ? ( ("+T+" = "+p+" === undefined || "+x+" "+w+"= "+p+") ? "+f+" "+S+"= "+x+" : "+f+" "+S+" "+p+" ) : ( ("+T+" = "+x+" === true) ? "+f+" "+S+"= "+p+" : "+f+" "+S+" "+p+" ) || "+f+" !== "+f+") { var op"+n+" = "+T+" ? '"+w+"' : '"+w+"='; ",i===void 0&&(R=y,u=e.errSchemaPath+"/"+y,p=x,m=E)}else{var j=typeof v=="number",D=w;if(j&&m){var $="'"+D+"'";t+=" if ( ",m&&(t+=" ("+p+" !== undefined && typeof "+p+" != 'number') || "),t+=" ( "+p+" === undefined || "+v+" "+w+"= "+p+" ? "+f+" "+S+"= "+v+" : "+f+" "+S+" "+p+" ) || "+f+" !== "+f+") { "}else{j&&i===void 0?(T=!0,R=y,u=e.errSchemaPath+"/"+y,p=v,S+="="):(j&&(p=Math[g?"min":"max"](v,i)),v===(j?p:!0)?(T=!0,R=y,u=e.errSchemaPath+"/"+y,S+="="):(T=!1,D+="="));var $="'"+D+"'";t+=" if ( ",m&&(t+=" ("+p+" !== undefined && typeof "+p+" != 'number') || "),t+=" "+f+" "+S+" "+p+" || "+f+" !== "+f+") { "}}R=R||r;var C=C||[];C.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '"+(R||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { comparison: "+$+", limit: "+p+", exclusive: "+T+" } ",e.opts.messages!==!1&&(t+=" , message: 'should be "+D+" ",m?t+="' + "+p:t+=""+p+"'"),e.opts.verbose&&(t+=" , schema: ",m?t+="validate.schema"+l:t+=""+i,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var F=t;return t=C.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+F+"]); ":t+=" validate.errors = ["+F+"]; return false; ":t+=" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",d&&(t+=" else { "),t}});var Na=H((Bm,si)=>{"use strict";si.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,y,f="data"+(o||""),m=e.opts.$data&&i&&i.$data,p;if(m?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",p="schema"+n):p=i,!(m||typeof i=="number"))throw new Error(r+" must be number");var g=r=="maxItems"?">":"<";t+="if ( ",m&&(t+=" ("+p+" !== undefined && typeof "+p+" != 'number') || "),t+=" "+f+".length "+g+" "+p+") { ";var y=r,v=v||[];v.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '"+(y||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { limit: "+p+" } ",e.opts.messages!==!1&&(t+=" , message: 'should NOT have ",r=="maxItems"?t+="more":t+="fewer",t+=" than ",m?t+="' + "+p+" + '":t+=""+i,t+=" items' "),e.opts.verbose&&(t+=" , schema: ",m?t+="validate.schema"+l:t+=""+i,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var E=t;return t=v.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+E+"]); ":t+=" validate.errors = ["+E+"]; return false; ":t+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",d&&(t+=" else { "),t}});var Da=H((Vm,ai)=>{"use strict";ai.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,y,f="data"+(o||""),m=e.opts.$data&&i&&i.$data,p;if(m?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",p="schema"+n):p=i,!(m||typeof i=="number"))throw new Error(r+" must be number");var g=r=="maxLength"?">":"<";t+="if ( ",m&&(t+=" ("+p+" !== undefined && typeof "+p+" != 'number') || "),e.opts.unicode===!1?t+=" "+f+".length ":t+=" ucs2length("+f+") ",t+=" "+g+" "+p+") { ";var y=r,v=v||[];v.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '"+(y||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { limit: "+p+" } ",e.opts.messages!==!1&&(t+=" , message: 'should NOT be ",r=="maxLength"?t+="longer":t+="shorter",t+=" than ",m?t+="' + "+p+" + '":t+=""+i,t+=" characters' "),e.opts.verbose&&(t+=" , schema: ",m?t+="validate.schema"+l:t+=""+i,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var E=t;return t=v.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+E+"]); ":t+=" validate.errors = ["+E+"]; return false; ":t+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",d&&(t+=" else { "),t}});var Ca=H((Hm,ni)=>{"use strict";ni.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,y,f="data"+(o||""),m=e.opts.$data&&i&&i.$data,p;if(m?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",p="schema"+n):p=i,!(m||typeof i=="number"))throw new Error(r+" must be number");var g=r=="maxProperties"?">":"<";t+="if ( ",m&&(t+=" ("+p+" !== undefined && typeof "+p+" != 'number') || "),t+=" Object.keys("+f+").length "+g+" "+p+") { ";var y=r,v=v||[];v.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '"+(y||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { limit: "+p+" } ",e.opts.messages!==!1&&(t+=" , message: 'should NOT have ",r=="maxProperties"?t+="more":t+="fewer",t+=" than ",m?t+="' + "+p+" + '":t+=""+i,t+=" properties' "),e.opts.verbose&&(t+=" , schema: ",m?t+="validate.schema"+l:t+=""+i,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var E=t;return t=v.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+E+"]); ":t+=" validate.errors = ["+E+"]; return false; ":t+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",d&&(t+=" else { "),t}});var ii=H((zm,oi)=>{"use strict";oi.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||""),m=e.opts.$data&&i&&i.$data,p;if(m?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",p="schema"+n):p=i,!(m||typeof i=="number"))throw new Error(r+" must be number");t+="var division"+n+";if (",m&&(t+=" "+p+" !== undefined && ( typeof "+p+" != 'number' || "),t+=" (division"+n+" = "+f+" / "+p+", ",e.opts.multipleOfPrecision?t+=" Math.abs(Math.round(division"+n+") - division"+n+") > 1e-"+e.opts.multipleOfPrecision+" ":t+=" division"+n+" !== parseInt(division"+n+") ",t+=" ) ",m&&(t+=" ) "),t+=" ) { ";var g=g||[];g.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { multipleOf: "+p+" } ",e.opts.messages!==!1&&(t+=" , message: 'should be multiple of ",m?t+="' + "+p:t+=""+p+"'"),e.opts.verbose&&(t+=" , schema: ",m?t+="validate.schema"+l:t+=""+i,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var y=t;return t=g.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+y+"]); ":t+=" validate.errors = ["+y+"]; return false; ":t+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",d&&(t+=" else { "),t}});var li=H((Zm,ci)=>{"use strict";ci.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||""),m="errs__"+n,p=e.util.copy(e);p.level++;var g="valid"+p.level;if(e.opts.strictKeywords?typeof i=="object"&&Object.keys(i).length>0||i===!1:e.util.schemaHasRules(i,e.RULES.all)){p.schema=i,p.schemaPath=l,p.errSchemaPath=u,t+=" var "+m+" = errors; ";var y=e.compositeRule;e.compositeRule=p.compositeRule=!0,p.createErrors=!1;var v;p.opts.allErrors&&(v=p.opts.allErrors,p.opts.allErrors=!1),t+=" "+e.validate(p)+" ",p.createErrors=!0,v&&(p.opts.allErrors=v),e.compositeRule=p.compositeRule=y,t+=" if ("+g+") { ";var E=E||[];E.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: {} ",e.opts.messages!==!1&&(t+=" , message: 'should NOT be valid' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var w=t;t=E.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+w+"]); ":t+=" validate.errors = ["+w+"]; return false; ":t+=" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { errors = "+m+"; if (vErrors !== null) { if ("+m+") vErrors.length = "+m+"; else vErrors = null; } ",e.opts.allErrors&&(t+=" } ")}else t+=" var err = ",e.createErrors!==!1?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: {} ",e.opts.messages!==!1&&(t+=" , message: 'should NOT be valid' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",d&&(t+=" if (false) { ");return t}});var di=H((Gm,ui)=>{"use strict";ui.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||""),m="valid"+n,p="errs__"+n,g=e.util.copy(e),y="";g.level++;var v="valid"+g.level,E=g.baseId,w="prevValid"+n,S="passingSchemas"+n;t+="var "+p+" = errors , "+w+" = false , "+m+" = false , "+S+" = null; ";var R=e.compositeRule;e.compositeRule=g.compositeRule=!0;var x=i;if(x)for(var T,N=-1,j=x.length-1;N0||T===!1:e.util.schemaHasRules(T,e.RULES.all))?(g.schema=T,g.schemaPath=l+"["+N+"]",g.errSchemaPath=u+"/"+N,t+=" "+e.validate(g)+" ",g.baseId=E):t+=" var "+v+" = true; ",N&&(t+=" if ("+v+" && "+w+") { "+m+" = false; "+S+" = ["+S+", "+N+"]; } else { ",y+="}"),t+=" if ("+v+") { "+m+" = "+w+" = true; "+S+" = "+N+"; }";return e.compositeRule=g.compositeRule=R,t+=""+y+"if (!"+m+") { var err = ",e.createErrors!==!1?(t+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { passingSchemas: "+S+" } ",e.opts.messages!==!1&&(t+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&d&&(e.async?t+=" throw new ValidationError(vErrors); ":t+=" validate.errors = vErrors; return false; "),t+="} else { errors = "+p+"; if (vErrors !== null) { if ("+p+") vErrors.length = "+p+"; else vErrors = null; }",e.opts.allErrors&&(t+=" } "),t}});var fi=H((Xm,pi)=>{"use strict";pi.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||""),m=e.opts.$data&&i&&i.$data,p;m?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",p="schema"+n):p=i;var g=m?"(new RegExp("+p+"))":e.usePattern(i);t+="if ( ",m&&(t+=" ("+p+" !== undefined && typeof "+p+" != 'string') || "),t+=" !"+g+".test("+f+") ) { ";var y=y||[];y.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { pattern: ",m?t+=""+p:t+=""+e.util.toQuotedString(i),t+=" } ",e.opts.messages!==!1&&(t+=` , message: 'should match pattern "`,m?t+="' + "+p+" + '":t+=""+e.util.escapeQuotes(i),t+=`"' `),e.opts.verbose&&(t+=" , schema: ",m?t+="validate.schema"+l:t+=""+e.util.toQuotedString(i),t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var v=t;return t=y.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+v+"]); ":t+=" validate.errors = ["+v+"]; return false; ":t+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",d&&(t+=" else { "),t}});var mi=H((Qm,hi)=>{"use strict";hi.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||""),m="errs__"+n,p=e.util.copy(e),g="";p.level++;var y="valid"+p.level,v="key"+n,E="idx"+n,w=p.dataLevel=e.dataLevel+1,S="data"+w,R="dataProperties"+n,x=Object.keys(i||{}).filter(Y),T=e.schema.patternProperties||{},N=Object.keys(T).filter(Y),j=e.schema.additionalProperties,$=x.length||N.length,D=j===!1,C=typeof j=="object"&&Object.keys(j).length,F=e.opts.removeAdditional,I=D||C||F,A=e.opts.ownProperties,M=e.baseId,ee=e.schema.required;if(ee&&!(e.opts.$data&&ee.$data)&&ee.length8)t+=" || validate.schema"+l+".hasOwnProperty("+v+") ";else{var X=x;if(X)for(var z,pe=-1,Oe=X.length-1;pe0||we===!1:e.util.schemaHasRules(we,e.RULES.all)){var ze=e.util.getProperty(z),Ie=f+ze,Fe=xt&&we.default!==void 0;p.schema=we,p.schemaPath=l+ze,p.errSchemaPath=u+"/"+e.util.escapeFragment(z),p.errorPath=e.util.getPath(e.errorPath,z,e.opts.jsonPointers),p.dataPathArr[w]=e.util.toQuotedString(z);var ce=e.validate(p);if(p.baseId=M,e.util.varOccurences(ce,S)<2){ce=e.util.varReplace(ce,S,Ie);var ke=Ie}else{var ke=S;t+=" var "+S+" = "+Ie+"; "}if(Fe)t+=" "+ce+" ";else{if(Q&&Q[z]){t+=" if ( "+ke+" === undefined ",A&&(t+=" || ! Object.prototype.hasOwnProperty.call("+f+", '"+e.util.escapeQuotes(z)+"') "),t+=") { "+y+" = false; ";var Ce=e.errorPath,pt=u,nt=e.util.escapeQuotes(z);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(Ce,z,e.opts.jsonPointers)),u=e.errSchemaPath+"/required";var Ee=Ee||[];Ee.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { missingProperty: '"+nt+"' } ",e.opts.messages!==!1&&(t+=" , message: '",e.opts._errorDataPathProperty?t+="is a required property":t+="should have required property \\'"+nt+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var ge=t;t=Ee.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+ge+"]); ":t+=" validate.errors = ["+ge+"]; return false; ":t+=" var err = "+ge+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u=pt,e.errorPath=Ce,t+=" } else { "}else d?(t+=" if ( "+ke+" === undefined ",A&&(t+=" || ! Object.prototype.hasOwnProperty.call("+f+", '"+e.util.escapeQuotes(z)+"') "),t+=") { "+y+" = true; } else { "):(t+=" if ("+ke+" !== undefined ",A&&(t+=" && Object.prototype.hasOwnProperty.call("+f+", '"+e.util.escapeQuotes(z)+"') "),t+=" ) { ");t+=" "+ce+" } "}}d&&(t+=" if ("+y+") { ",g+="}")}}if(N.length){var Be=N;if(Be)for(var ne,Vr=-1,qs=Be.length-1;Vr0||we===!1:e.util.schemaHasRules(we,e.RULES.all)){p.schema=we,p.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(ne),p.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(ne),A?t+=" "+R+" = "+R+" || Object.keys("+f+"); for (var "+E+"=0; "+E+"<"+R+".length; "+E+"++) { var "+v+" = "+R+"["+E+"]; ":t+=" for (var "+v+" in "+f+") { ",t+=" if ("+e.usePattern(ne)+".test("+v+")) { ",p.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);var Ie=f+"["+v+"]";p.dataPathArr[w]=v;var ce=e.validate(p);p.baseId=M,e.util.varOccurences(ce,S)<2?t+=" "+e.util.varReplace(ce,S,Ie)+" ":t+=" var "+S+" = "+Ie+"; "+ce+" ",d&&(t+=" if (!"+y+") break; "),t+=" } ",d&&(t+=" else "+y+" = true; "),t+=" } ",d&&(t+=" if ("+y+") { ",g+="}")}}}return d&&(t+=" "+g+" if ("+m+" == errors) {"),t}});var gi=H((Wm,vi)=>{"use strict";vi.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||""),m="errs__"+n,p=e.util.copy(e),g="";p.level++;var y="valid"+p.level;if(t+="var "+m+" = errors;",e.opts.strictKeywords?typeof i=="object"&&Object.keys(i).length>0||i===!1:e.util.schemaHasRules(i,e.RULES.all)){p.schema=i,p.schemaPath=l,p.errSchemaPath=u;var v="key"+n,E="idx"+n,w="i"+n,S="' + "+v+" + '",R=p.dataLevel=e.dataLevel+1,x="data"+R,T="dataProperties"+n,N=e.opts.ownProperties,j=e.baseId;N&&(t+=" var "+T+" = undefined; "),N?t+=" "+T+" = "+T+" || Object.keys("+f+"); for (var "+E+"=0; "+E+"<"+T+".length; "+E+"++) { var "+v+" = "+T+"["+E+"]; ":t+=" for (var "+v+" in "+f+") { ",t+=" var startErrs"+n+" = errors; ";var $=v,D=e.compositeRule;e.compositeRule=p.compositeRule=!0;var C=e.validate(p);p.baseId=j,e.util.varOccurences(C,x)<2?t+=" "+e.util.varReplace(C,x,$)+" ":t+=" var "+x+" = "+$+"; "+C+" ",e.compositeRule=p.compositeRule=D,t+=" if (!"+y+") { for (var "+w+"=startErrs"+n+"; "+w+"{"use strict";yi.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||""),m="valid"+n,p=e.opts.$data&&i&&i.$data,g;p?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",g="schema"+n):g=i;var y="schema"+n;if(!p)if(i.length0||x===!1:e.util.schemaHasRules(x,e.RULES.all))||(v[v.length]=w)}}else var v=i;if(p||v.length){var T=e.errorPath,N=p||v.length>=e.opts.loopRequired,j=e.opts.ownProperties;if(d)if(t+=" var missing"+n+"; ",N){p||(t+=" var "+y+" = validate.schema"+l+"; ");var $="i"+n,D="schema"+n+"["+$+"]",C="' + "+D+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(T,D,e.opts.jsonPointers)),t+=" var "+m+" = true; ",p&&(t+=" if (schema"+n+" === undefined) "+m+" = true; else if (!Array.isArray(schema"+n+")) "+m+" = false; else {"),t+=" for (var "+$+" = 0; "+$+" < "+y+".length; "+$+"++) { "+m+" = "+f+"["+y+"["+$+"]] !== undefined ",j&&(t+=" && Object.prototype.hasOwnProperty.call("+f+", "+y+"["+$+"]) "),t+="; if (!"+m+") break; } ",p&&(t+=" } "),t+=" if (!"+m+") { ";var F=F||[];F.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { missingProperty: '"+C+"' } ",e.opts.messages!==!1&&(t+=" , message: '",e.opts._errorDataPathProperty?t+="is a required property":t+="should have required property \\'"+C+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var I=t;t=F.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+I+"]); ":t+=" validate.errors = ["+I+"]; return false; ":t+=" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { "}else{t+=" if ( ";var A=v;if(A)for(var M,$=-1,ee=A.length-1;${"use strict";bi.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f="data"+(o||""),m="valid"+n,p=e.opts.$data&&i&&i.$data,g;if(p?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",g="schema"+n):g=i,(i||p)&&e.opts.uniqueItems!==!1){p&&(t+=" var "+m+"; if ("+g+" === false || "+g+" === undefined) "+m+" = true; else if (typeof "+g+" != 'boolean') "+m+" = false; else { "),t+=" var i = "+f+".length , "+m+" = true , j; if (i > 1) { ";var y=e.schema.items&&e.schema.items.type,v=Array.isArray(y);if(!y||y=="object"||y=="array"||v&&(y.indexOf("object")>=0||y.indexOf("array")>=0))t+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+f+"[i], "+f+"[j])) { "+m+" = false; break outer; } } } ";else{t+=" var itemIndices = {}, item; for (;i--;) { var item = "+f+"[i]; ";var E="checkDataType"+(v?"s":"");t+=" if ("+e.util[E](y,"item",e.opts.strictNumbers,!0)+") continue; ",v&&(t+=` if (typeof item == 'string') item = '"' + item; `),t+=" if (typeof itemIndices[item] == 'number') { "+m+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}t+=" } ",p&&(t+=" } "),t+=" if (!"+m+") { ";var w=w||[];w.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { i: i, j: j } ",e.opts.messages!==!1&&(t+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(t+=" , schema: ",p?t+="validate.schema"+l:t+=""+i,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var S=t;t=w.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+S+"]); ":t+=" validate.errors = ["+S+"]; return false; ":t+=" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",d&&(t+=" else { ")}else d&&(t+=" if (true) { ");return t}});var xi=H((Ym,Si)=>{"use strict";Si.exports={$ref:ko(),allOf:jo(),anyOf:Mo(),$comment:Uo(),const:Vo(),contains:zo(),dependencies:Go(),enum:Qo(),format:Ko(),if:Yo(),items:ti(),maximum:Aa(),minimum:Aa(),maxItems:Na(),minItems:Na(),maxLength:Da(),minLength:Da(),maxProperties:Ca(),minProperties:Ca(),multipleOf:ii(),not:li(),oneOf:di(),pattern:fi(),properties:mi(),propertyNames:gi(),required:_i(),uniqueItems:Ei(),validate:Ia()}});var wi=H((ev,Ti)=>{"use strict";var Ri=xi(),ka=rr().toHash;Ti.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],r=["type","$comment"],a=["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"],t=["number","integer","string","array","object","boolean","null"];return e.all=ka(r),e.types=ka(t),e.forEach(function(n){n.rules=n.rules.map(function(o){var i;if(typeof o=="object"){var l=Object.keys(o)[0];i=o[l],o=l,i.forEach(function(d){r.push(d),e.all[d]=!0})}r.push(o);var u=e.all[o]={keyword:o,code:Ri[o],implements:i};return u}),e.all.$comment={keyword:"$comment",code:Ri.$comment},n.type&&(e.types[n.type]=n)}),e.keywords=ka(r.concat(a)),e.custom={},e}});var Ii=H((tv,Oi)=>{"use strict";var Pi=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];Oi.exports=function(s,e){for(var r=0;r{"use strict";var Jp=gs().MissingRef;Ai.exports=$i;function $i(s,e,r){var a=this;if(typeof this._opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");typeof e=="function"&&(r=e,e=void 0);var t=n(s).then(function(){var i=a._addSchema(s,void 0,e);return i.validate||o(i)});return r&&t.then(function(i){r(null,i)},r),t;function n(i){var l=i.$schema;return l&&!a.getSchema(l)?$i.call(a,{$ref:l},!0):Promise.resolve()}function o(i){try{return a._compile(i)}catch(u){if(u instanceof Jp)return l(u);throw u}function l(u){var d=u.missingSchema;if(p(d))throw new Error("Schema "+d+" is loaded but "+u.missingRef+" cannot be resolved");var f=a._loadingSchemas[d];return f||(f=a._loadingSchemas[d]=a._opts.loadSchema(d),f.then(m,m)),f.then(function(g){if(!p(d))return n(g).then(function(){p(d)||a.addSchema(g,d,void 0,e)})}).then(function(){return o(i)});function m(){delete a._loadingSchemas[d]}function p(g){return a._refs[g]||a._schemas[g]}}}}});var Ci=H((sv,Di)=>{"use strict";Di.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,d=!e.opts.allErrors,f,m="data"+(o||""),p="valid"+n,g="errs__"+n,y=e.opts.$data&&i&&i.$data,v;y?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",v="schema"+n):v=i;var E=this,w="definition"+n,S=E.definition,R="",x,T,N,j,$;if(y&&S.$data){$="keywordValidate"+n;var D=S.validateSchema;t+=" var "+w+" = RULES.custom['"+r+"'].definition; var "+$+" = "+w+".validate;"}else{if(j=e.useCustomRule(E,i,e.schema,e),!j)return;v="validate.schema"+l,$=j.code,x=S.compile,T=S.inline,N=S.macro}var C=$+".errors",F="i"+n,I="ruleErr"+n,A=S.async;if(A&&!e.async)throw new Error("async keyword in sync schema");if(T||N||(t+=""+C+" = null;"),t+="var "+g+" = errors;var "+p+";",y&&S.$data&&(R+="}",t+=" if ("+v+" === undefined) { "+p+" = true; } else { ",D&&(R+="}",t+=" "+p+" = "+w+".validateSchema("+v+"); if ("+p+") { ")),T)S.statements?t+=" "+j.validate+" ":t+=" "+p+" = "+j.validate+"; ";else if(N){var M=e.util.copy(e),R="";M.level++;var ee="valid"+M.level;M.schema=j.validate,M.schemaPath="";var Q=e.compositeRule;e.compositeRule=M.compositeRule=!0;var Y=e.validate(M).replace(/validate\.schema/g,$);e.compositeRule=M.compositeRule=Q,t+=" "+Y}else{var X=X||[];X.push(t),t="",t+=" "+$+".call( ",e.opts.passContext?t+="this":t+="self",x||S.schema===!1?t+=" , "+m+" ":t+=" , "+v+" , "+m+" , validate.schema"+e.schemaPath+" ",t+=" , (dataPath || '')",e.errorPath!='""'&&(t+=" + "+e.errorPath);var z=o?"data"+(o-1||""):"parentData",pe=o?e.dataPathArr[o]:"parentDataProperty";t+=" , "+z+" , "+pe+" , rootData ) ";var Oe=t;t=X.pop(),S.errors===!1?(t+=" "+p+" = ",A&&(t+="await "),t+=""+Oe+"; "):A?(C="customErrors"+n,t+=" var "+C+" = null; try { "+p+" = await "+Oe+"; } catch (e) { "+p+" = false; if (e instanceof ValidationError) "+C+" = e.errors; else throw e; } "):t+=" "+C+" = null; "+p+" = "+Oe+"; "}if(S.modifying&&(t+=" if ("+z+") "+m+" = "+z+"["+pe+"];"),t+=""+R,S.valid)d&&(t+=" if (true) { ");else{t+=" if ( ",S.valid===void 0?(t+=" !",N?t+=""+ee:t+=""+p):t+=" "+!S.valid+" ",t+=") { ",f=E.keyword;var X=X||[];X.push(t),t="";var X=X||[];X.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '"+(f||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+E.keyword+"' } ",e.opts.messages!==!1&&(t+=` , message: 'should pass "`+E.keyword+`" keyword validation' `),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),t+=" } "):t+=" {} ";var De=t;t=X.pop(),!e.compositeRule&&d?e.async?t+=" throw new ValidationError(["+De+"]); ":t+=" validate.errors = ["+De+"]; return false; ":t+=" var err = "+De+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var ne=t;t=X.pop(),T?S.errors?S.errors!="full"&&(t+=" for (var "+F+"="+g+"; "+F+"{Yp.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var ji=H((nv,Li)=>{"use strict";var ki=La();Li.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:ki.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:ki.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}});var Mi=H((ov,Fi)=>{"use strict";var ef=/^[a-z_$][a-z0-9_$-]*$/i,tf=Ci(),rf=ji();Fi.exports={add:sf,get:af,remove:nf,validate:ja};function sf(s,e){var r=this.RULES;if(r.keywords[s])throw new Error("Keyword "+s+" is already defined");if(!ef.test(s))throw new Error("Keyword "+s+" is not a valid identifier");if(e){this.validateKeyword(e,!0);var a=e.type;if(Array.isArray(a))for(var t=0;t{of.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var Ma=H((cv,Qi)=>{"use strict";var Bi=_o(),sr=vs(),cf=Eo(),Vi=Sa(),lf=Oa(),uf=Do(),df=wi(),Hi=Ii(),zi=rr();Qi.exports=ye;ye.prototype.validate=ff;ye.prototype.compile=hf;ye.prototype.addSchema=mf;ye.prototype.addMetaSchema=vf;ye.prototype.validateSchema=gf;ye.prototype.getSchema=_f;ye.prototype.removeSchema=Ef;ye.prototype.addFormat=If;ye.prototype.errorsText=Of;ye.prototype._addSchema=Sf;ye.prototype._compile=xf;ye.prototype.compileAsync=Ni();var Ts=Mi();ye.prototype.addKeyword=Ts.add;ye.prototype.getKeyword=Ts.get;ye.prototype.removeKeyword=Ts.remove;ye.prototype.validateKeyword=Ts.validate;var Zi=gs();ye.ValidationError=Zi.Validation;ye.MissingRefError=Zi.MissingRef;ye.$dataMetaSchema=Hi;var Rs="http://json-schema.org/draft-07/schema",Ui=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],pf=["/properties"];function ye(s){if(!(this instanceof ye))return new ye(s);s=this._opts=zi.copy(s)||{},kf(this),this._schemas={},this._refs={},this._fragments={},this._formats=uf(s.format),this._cache=s.cache||new cf,this._loadingSchemas={},this._compilations=[],this.RULES=df(),this._getId=Rf(s),s.loopRequired=s.loopRequired||1/0,s.errorDataPath=="property"&&(s._errorDataPathProperty=!0),s.serialize===void 0&&(s.serialize=lf),this._metaOpts=Cf(this),s.formats&&Nf(this),s.keywords&&Df(this),$f(this),typeof s.meta=="object"&&this.addMetaSchema(s.meta),s.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),Af(this)}function ff(s,e){var r;if(typeof s=="string"){if(r=this.getSchema(s),!r)throw new Error('no schema with key or ref "'+s+'"')}else{var a=this._addSchema(s);r=a.validate||this._compile(a)}var t=r(e);return r.$async!==!0&&(this.errors=r.errors),t}function hf(s,e){var r=this._addSchema(s,void 0,e);return r.validate||this._compile(r)}function mf(s,e,r,a){if(Array.isArray(s)){for(var t=0;t{tc.exports=ec;ec.sync=Ff;var Ji=require("fs");function jf(s,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var a=0;a{oc.exports=ac;ac.sync=Mf;var sc=require("fs");function ac(s,e,r){sc.stat(s,function(a,t){r(a,a?!1:nc(t,e))})}function Mf(s,e){return nc(sc.statSync(s),e)}function nc(s,e){return s.isFile()&&qf(s,e)}function qf(s,e){var r=s.mode,a=s.uid,t=s.gid,n=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),i=parseInt("100",8),l=parseInt("010",8),u=parseInt("001",8),d=i|l,f=r&u||r&l&&t===o||r&i&&a===n||r&d&&n===0;return f}});var lc=H((Sv,cc)=>{var Ev=require("fs"),$s;process.platform==="win32"||global.TESTING_WINDOWS?$s=rc():$s=ic();cc.exports=Ua;Ua.sync=Uf;function Ua(s,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(a,t){Ua(s,e||{},function(n,o){n?t(n):a(o)})})}$s(s,e||{},function(a,t){a&&(a.code==="EACCES"||e&&e.ignoreErrors)&&(a=null,t=!1),r(a,t)})}function Uf(s,e){try{return $s.sync(s,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var vc=H((xv,mc)=>{var Sr=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",uc=require("path"),Bf=Sr?";":":",dc=lc(),pc=s=>Object.assign(new Error(`not found: ${s}`),{code:"ENOENT"}),fc=(s,e)=>{let r=e.colon||Bf,a=s.match(/\//)||Sr&&s.match(/\\/)?[""]:[...Sr?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],t=Sr?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",n=Sr?t.split(r):[""];return Sr&&s.indexOf(".")!==-1&&n[0]!==""&&n.unshift(""),{pathEnv:a,pathExt:n,pathExtExe:t}},hc=(s,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:a,pathExt:t,pathExtExe:n}=fc(s,e),o=[],i=u=>new Promise((d,f)=>{if(u===a.length)return e.all&&o.length?d(o):f(pc(s));let m=a[u],p=/^".*"$/.test(m)?m.slice(1,-1):m,g=uc.join(p,s),y=!p&&/^\.[\\\/]/.test(s)?s.slice(0,2)+g:g;d(l(y,u,0))}),l=(u,d,f)=>new Promise((m,p)=>{if(f===t.length)return m(i(d+1));let g=t[f];dc(u+g,{pathExt:n},(y,v)=>{if(!y&&v)if(e.all)o.push(u+g);else return m(u+g);return m(l(u,d,f+1))})});return r?i(0).then(u=>r(null,u),r):i(0)},Vf=(s,e)=>{e=e||{};let{pathEnv:r,pathExt:a,pathExtExe:t}=fc(s,e),n=[];for(let o=0;o{"use strict";var gc=(s={})=>{let e=s.env||process.env;return(s.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(a=>a.toUpperCase()==="PATH")||"Path"};Ba.exports=gc;Ba.exports.default=gc});var Sc=H((Tv,Ec)=>{"use strict";var _c=require("path"),Hf=vc(),zf=yc();function bc(s,e){let r=s.options.env||process.env,a=process.cwd(),t=s.options.cwd!=null,n=t&&process.chdir!==void 0&&!process.chdir.disabled;if(n)try{process.chdir(s.options.cwd)}catch{}let o;try{o=Hf.sync(s.command,{path:r[zf({env:r})],pathExt:e?_c.delimiter:void 0})}catch{}finally{n&&process.chdir(a)}return o&&(o=_c.resolve(t?s.options.cwd:"",o)),o}function Zf(s){return bc(s)||bc(s,!0)}Ec.exports=Zf});var xc=H((wv,Ha)=>{"use strict";var Va=/([()\][%!^"`<>&|;, *?])/g;function Gf(s){return s=s.replace(Va,"^$1"),s}function Xf(s,e){return s=`${s}`,s=s.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),s=s.replace(/(?=(\\+?)?)\1$/,"$1$1"),s=`"${s}"`,s=s.replace(Va,"^$1"),e&&(s=s.replace(Va,"^$1")),s}Ha.exports.command=Gf;Ha.exports.argument=Xf});var Tc=H((Pv,Rc)=>{"use strict";Rc.exports=/^#!(.*)/});var Pc=H((Ov,wc)=>{"use strict";var Qf=Tc();wc.exports=(s="")=>{let e=s.match(Qf);if(!e)return null;let[r,a]=e[0].replace(/#! ?/,"").split(" "),t=r.split("/").pop();return t==="env"?a:a?`${t} ${a}`:t}});var Ic=H((Iv,Oc)=>{"use strict";var za=require("fs"),Wf=Pc();function Kf(s){let r=Buffer.alloc(150),a;try{a=za.openSync(s,"r"),za.readSync(a,r,0,150,0),za.closeSync(a)}catch{}return Wf(r.toString())}Oc.exports=Kf});var Dc=H(($v,Nc)=>{"use strict";var Jf=require("path"),$c=Sc(),Ac=xc(),Yf=Ic(),eh=process.platform==="win32",th=/\.(?:com|exe)$/i,rh=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function sh(s){s.file=$c(s);let e=s.file&&Yf(s.file);return e?(s.args.unshift(s.file),s.command=e,$c(s)):s.file}function ah(s){if(!eh)return s;let e=sh(s),r=!th.test(e);if(s.options.forceShell||r){let a=rh.test(e);s.command=Jf.normalize(s.command),s.command=Ac.command(s.command),s.args=s.args.map(n=>Ac.argument(n,a));let t=[s.command].concat(s.args).join(" ");s.args=["/d","/s","/c",`"${t}"`],s.command=process.env.comspec||"cmd.exe",s.options.windowsVerbatimArguments=!0}return s}function nh(s,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let a={command:s,args:e,options:r,file:void 0,original:{command:s,args:e}};return r.shell?a:ah(a)}Nc.exports=nh});var Lc=H((Av,kc)=>{"use strict";var Za=process.platform==="win32";function Ga(s,e){return Object.assign(new Error(`${e} ${s.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${s.command}`,path:s.command,spawnargs:s.args})}function oh(s,e){if(!Za)return;let r=s.emit;s.emit=function(a,t){if(a==="exit"){let n=Cc(t,e);if(n)return r.call(s,"error",n)}return r.apply(s,arguments)}}function Cc(s,e){return Za&&s===1&&!e.file?Ga(e.original,"spawn"):null}function ih(s,e){return Za&&s===1&&!e.file?Ga(e.original,"spawnSync"):null}kc.exports={hookChildProcess:oh,verifyENOENT:Cc,verifyENOENTSync:ih,notFoundError:Ga}});var Mc=H((Nv,xr)=>{"use strict";var jc=require("child_process"),Xa=Dc(),Qa=Lc();function Fc(s,e,r){let a=Xa(s,e,r),t=jc.spawn(a.command,a.args,a.options);return Qa.hookChildProcess(t,a),t}function ch(s,e,r){let a=Xa(s,e,r),t=jc.spawnSync(a.command,a.args,a.options);return t.error=t.error||Qa.verifyENOENTSync(t.status,a),t}xr.exports=Fc;xr.exports.spawn=Fc;xr.exports.sync=ch;xr.exports._parse=Xa;xr.exports._enoent=Qa});var c={};su(c,{BRAND:()=>$u,DIRTY:()=>qt,EMPTY_PATH:()=>cu,INVALID:()=>Z,NEVER:()=>hd,OK:()=>$e,ParseStatus:()=>Pe,Schema:()=>J,ZodAny:()=>wt,ZodArray:()=>bt,ZodBigInt:()=>Bt,ZodBoolean:()=>Vt,ZodBranded:()=>Nr,ZodCatch:()=>er,ZodDate:()=>Ht,ZodDefault:()=>Yt,ZodDiscriminatedUnion:()=>Qr,ZodEffects:()=>We,ZodEnum:()=>Kt,ZodError:()=>Me,ZodFirstPartyTypeKind:()=>L,ZodFunction:()=>Kr,ZodIntersection:()=>Xt,ZodIssueCode:()=>k,ZodLazy:()=>Qt,ZodLiteral:()=>Wt,ZodMap:()=>gr,ZodNaN:()=>_r,ZodNativeEnum:()=>Jt,ZodNever:()=>tt,ZodNull:()=>Zt,ZodNullable:()=>ut,ZodNumber:()=>Ut,ZodObject:()=>qe,ZodOptional:()=>Xe,ZodParsedType:()=>U,ZodPipeline:()=>Dr,ZodPromise:()=>Pt,ZodReadonly:()=>tr,ZodRecord:()=>Wr,ZodSchema:()=>J,ZodSet:()=>yr,ZodString:()=>Tt,ZodSymbol:()=>mr,ZodTransformer:()=>We,ZodTuple:()=>lt,ZodType:()=>J,ZodUndefined:()=>zt,ZodUnion:()=>Gt,ZodUnknown:()=>_t,ZodVoid:()=>vr,addIssueToContext:()=>q,any:()=>Mu,array:()=>Vu,bigint:()=>Cu,boolean:()=>Nn,coerce:()=>fd,custom:()=>In,date:()=>ku,datetimeRegex:()=>Pn,defaultErrorMap:()=>gt,discriminatedUnion:()=>Gu,effect:()=>nd,enum:()=>rd,function:()=>Yu,getErrorMap:()=>pr,getParsedType:()=>ct,instanceof:()=>Nu,intersection:()=>Xu,isAborted:()=>Gr,isAsync:()=>fr,isDirty:()=>Xr,isValid:()=>Rt,late:()=>Au,lazy:()=>ed,literal:()=>td,makeIssue:()=>Ar,map:()=>Ku,nan:()=>Du,nativeEnum:()=>sd,never:()=>Uu,null:()=>Fu,nullable:()=>id,number:()=>An,object:()=>Hu,objectUtil:()=>zs,oboolean:()=>pd,onumber:()=>dd,optional:()=>od,ostring:()=>ud,pipeline:()=>ld,preprocess:()=>cd,promise:()=>ad,quotelessJson:()=>nu,record:()=>Wu,set:()=>Ju,setErrorMap:()=>iu,strictObject:()=>zu,string:()=>$n,symbol:()=>Lu,transformer:()=>nd,tuple:()=>Qu,undefined:()=>ju,union:()=>Zu,unknown:()=>qu,util:()=>te,void:()=>Bu});var te;(function(s){s.assertEqual=t=>{};function e(t){}s.assertIs=e;function r(t){throw new Error}s.assertNever=r,s.arrayToEnum=t=>{let n={};for(let o of t)n[o]=o;return n},s.getValidEnumValues=t=>{let n=s.objectKeys(t).filter(i=>typeof t[t[i]]!="number"),o={};for(let i of n)o[i]=t[i];return s.objectValues(o)},s.objectValues=t=>s.objectKeys(t).map(function(n){return t[n]}),s.objectKeys=typeof Object.keys=="function"?t=>Object.keys(t):t=>{let n=[];for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.push(o);return n},s.find=(t,n)=>{for(let o of t)if(n(o))return o},s.isInteger=typeof Number.isInteger=="function"?t=>Number.isInteger(t):t=>typeof t=="number"&&Number.isFinite(t)&&Math.floor(t)===t;function a(t,n=" | "){return t.map(o=>typeof o=="string"?`'${o}'`:o).join(n)}s.joinValues=a,s.jsonStringifyReplacer=(t,n)=>typeof n=="bigint"?n.toString():n})(te||(te={}));var zs;(function(s){s.mergeShapes=(e,r)=>({...e,...r})})(zs||(zs={}));var U=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ct=s=>{switch(typeof s){case"undefined":return U.undefined;case"string":return U.string;case"number":return Number.isNaN(s)?U.nan:U.number;case"boolean":return U.boolean;case"function":return U.function;case"bigint":return U.bigint;case"symbol":return U.symbol;case"object":return Array.isArray(s)?U.array:s===null?U.null:s.then&&typeof s.then=="function"&&s.catch&&typeof s.catch=="function"?U.promise:typeof Map<"u"&&s instanceof Map?U.map:typeof Set<"u"&&s instanceof Set?U.set:typeof Date<"u"&&s instanceof Date?U.date:U.object;default:return U.unknown}};var k=te.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),nu=s=>JSON.stringify(s,null,2).replace(/"([^"]+)":/g,"$1:"),Me=class s extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=a=>{this.issues=[...this.issues,a]},this.addIssues=(a=[])=>{this.issues=[...this.issues,...a]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(n){return n.message},a={_errors:[]},t=n=>{for(let o of n.issues)if(o.code==="invalid_union")o.unionErrors.map(t);else if(o.code==="invalid_return_type")t(o.returnTypeError);else if(o.code==="invalid_arguments")t(o.argumentsError);else if(o.path.length===0)a._errors.push(r(o));else{let i=a,l=0;for(;lr.message){let r={},a=[];for(let t of this.issues)if(t.path.length>0){let n=t.path[0];r[n]=r[n]||[],r[n].push(e(t))}else a.push(e(t));return{formErrors:a,fieldErrors:r}}get formErrors(){return this.flatten()}};Me.create=s=>new Me(s);var ou=(s,e)=>{let r;switch(s.code){case k.invalid_type:s.received===U.undefined?r="Required":r=`Expected ${s.expected}, received ${s.received}`;break;case k.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(s.expected,te.jsonStringifyReplacer)}`;break;case k.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(s.keys,", ")}`;break;case k.invalid_union:r="Invalid input";break;case k.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(s.options)}`;break;case k.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(s.options)}, received '${s.received}'`;break;case k.invalid_arguments:r="Invalid function arguments";break;case k.invalid_return_type:r="Invalid function return type";break;case k.invalid_date:r="Invalid date";break;case k.invalid_string:typeof s.validation=="object"?"includes"in s.validation?(r=`Invalid input: must include "${s.validation.includes}"`,typeof s.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${s.validation.position}`)):"startsWith"in s.validation?r=`Invalid input: must start with "${s.validation.startsWith}"`:"endsWith"in s.validation?r=`Invalid input: must end with "${s.validation.endsWith}"`:te.assertNever(s.validation):s.validation!=="regex"?r=`Invalid ${s.validation}`:r="Invalid";break;case k.too_small:s.type==="array"?r=`Array must contain ${s.exact?"exactly":s.inclusive?"at least":"more than"} ${s.minimum} element(s)`:s.type==="string"?r=`String must contain ${s.exact?"exactly":s.inclusive?"at least":"over"} ${s.minimum} character(s)`:s.type==="number"?r=`Number must be ${s.exact?"exactly equal to ":s.inclusive?"greater than or equal to ":"greater than "}${s.minimum}`:s.type==="bigint"?r=`Number must be ${s.exact?"exactly equal to ":s.inclusive?"greater than or equal to ":"greater than "}${s.minimum}`:s.type==="date"?r=`Date must be ${s.exact?"exactly equal to ":s.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(s.minimum))}`:r="Invalid input";break;case k.too_big:s.type==="array"?r=`Array must contain ${s.exact?"exactly":s.inclusive?"at most":"less than"} ${s.maximum} element(s)`:s.type==="string"?r=`String must contain ${s.exact?"exactly":s.inclusive?"at most":"under"} ${s.maximum} character(s)`:s.type==="number"?r=`Number must be ${s.exact?"exactly":s.inclusive?"less than or equal to":"less than"} ${s.maximum}`:s.type==="bigint"?r=`BigInt must be ${s.exact?"exactly":s.inclusive?"less than or equal to":"less than"} ${s.maximum}`:s.type==="date"?r=`Date must be ${s.exact?"exactly":s.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(s.maximum))}`:r="Invalid input";break;case k.custom:r="Invalid input";break;case k.invalid_intersection_types:r="Intersection results could not be merged";break;case k.not_multiple_of:r=`Number must be a multiple of ${s.multipleOf}`;break;case k.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(s)}return{message:r}},gt=ou;var Sn=gt;function iu(s){Sn=s}function pr(){return Sn}var Ar=s=>{let{data:e,path:r,errorMaps:a,issueData:t}=s,n=[...r,...t.path||[]],o={...t,path:n};if(t.message!==void 0)return{...t,path:n,message:t.message};let i="",l=a.filter(u=>!!u).slice().reverse();for(let u of l)i=u(o,{data:e,defaultError:i}).message;return{...t,path:n,message:i}},cu=[];function q(s,e){let r=pr(),a=Ar({issueData:e,data:s.data,path:s.path,errorMaps:[s.common.contextualErrorMap,s.schemaErrorMap,r,r===gt?void 0:gt].filter(t=>!!t)});s.common.issues.push(a)}var Pe=class s{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let a=[];for(let t of r){if(t.status==="aborted")return Z;t.status==="dirty"&&e.dirty(),a.push(t.value)}return{status:e.value,value:a}}static async mergeObjectAsync(e,r){let a=[];for(let t of r){let n=await t.key,o=await t.value;a.push({key:n,value:o})}return s.mergeObjectSync(e,a)}static mergeObjectSync(e,r){let a={};for(let t of r){let{key:n,value:o}=t;if(n.status==="aborted"||o.status==="aborted")return Z;n.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),n.value!=="__proto__"&&(typeof o.value<"u"||t.alwaysSet)&&(a[n.value]=o.value)}return{status:e.value,value:a}}},Z=Object.freeze({status:"aborted"}),qt=s=>({status:"dirty",value:s}),$e=s=>({status:"valid",value:s}),Gr=s=>s.status==="aborted",Xr=s=>s.status==="dirty",Rt=s=>s.status==="valid",fr=s=>typeof Promise<"u"&&s instanceof Promise;var V;(function(s){s.errToObj=e=>typeof e=="string"?{message:e}:e||{},s.toString=e=>typeof e=="string"?e:e?.message})(V||(V={}));var Qe=class{constructor(e,r,a,t){this._cachedPath=[],this.parent=e,this.data=r,this._path=a,this._key=t}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},xn=(s,e)=>{if(Rt(e))return{success:!0,data:e.value};if(!s.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Me(s.common.issues);return this._error=r,this._error}}};function W(s){if(!s)return{};let{errorMap:e,invalid_type_error:r,required_error:a,description:t}=s;if(e&&(r||a))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:t}:{errorMap:(o,i)=>{let{message:l}=s;return o.code==="invalid_enum_value"?{message:l??i.defaultError}:typeof i.data>"u"?{message:l??a??i.defaultError}:o.code!=="invalid_type"?{message:i.defaultError}:{message:l??r??i.defaultError}},description:t}}var J=class{get description(){return this._def.description}_getType(e){return ct(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:ct(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Pe,ctx:{common:e.parent.common,data:e.data,parsedType:ct(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(fr(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let a=this.safeParse(e,r);if(a.success)return a.data;throw a.error}safeParse(e,r){let a={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ct(e)},t=this._parseSync({data:e,path:a.path,parent:a});return xn(a,t)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ct(e)};if(!this["~standard"].async)try{let a=this._parseSync({data:e,path:[],parent:r});return Rt(a)?{value:a.value}:{issues:r.common.issues}}catch(a){a?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(a=>Rt(a)?{value:a.value}:{issues:r.common.issues})}async parseAsync(e,r){let a=await this.safeParseAsync(e,r);if(a.success)return a.data;throw a.error}async safeParseAsync(e,r){let a={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ct(e)},t=this._parse({data:e,path:a.path,parent:a}),n=await(fr(t)?t:Promise.resolve(t));return xn(a,n)}refine(e,r){let a=t=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(t):r;return this._refinement((t,n)=>{let o=e(t),i=()=>n.addIssue({code:k.custom,...a(t)});return typeof Promise<"u"&&o instanceof Promise?o.then(l=>l?!0:(i(),!1)):o?!0:(i(),!1)})}refinement(e,r){return this._refinement((a,t)=>e(a)?!0:(t.addIssue(typeof r=="function"?r(a,t):r),!1))}_refinement(e){return new We({schema:this,typeName:L.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return Xe.create(this,this._def)}nullable(){return ut.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return bt.create(this)}promise(){return Pt.create(this,this._def)}or(e){return Gt.create([this,e],this._def)}and(e){return Xt.create(this,e,this._def)}transform(e){return new We({...W(this._def),schema:this,typeName:L.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Yt({...W(this._def),innerType:this,defaultValue:r,typeName:L.ZodDefault})}brand(){return new Nr({typeName:L.ZodBranded,type:this,...W(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new er({...W(this._def),innerType:this,catchValue:r,typeName:L.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Dr.create(this,e)}readonly(){return tr.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},lu=/^c[^\s-]{8,}$/i,uu=/^[0-9a-z]+$/,du=/^[0-9A-HJKMNP-TV-Z]{26}$/i,pu=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,fu=/^[a-z0-9_-]{21}$/i,hu=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,mu=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,vu=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,gu="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Zs,yu=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,_u=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,bu=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Eu=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Su=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,xu=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Tn="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Ru=new RegExp(`^${Tn}$`);function wn(s){let e="[0-5]\\d";s.precision?e=`${e}\\.\\d{${s.precision}}`:s.precision==null&&(e=`${e}(\\.\\d+)?`);let r=s.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function Tu(s){return new RegExp(`^${wn(s)}$`)}function Pn(s){let e=`${Tn}T${wn(s)}`,r=[];return r.push(s.local?"Z?":"Z"),s.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function wu(s,e){return!!((e==="v4"||!e)&&yu.test(s)||(e==="v6"||!e)&&bu.test(s))}function Pu(s,e){if(!hu.test(s))return!1;try{let[r]=s.split(".");if(!r)return!1;let a=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),t=JSON.parse(atob(a));return!(typeof t!="object"||t===null||"typ"in t&&t?.typ!=="JWT"||!t.alg||e&&t.alg!==e)}catch{return!1}}function Ou(s,e){return!!((e==="v4"||!e)&&_u.test(s)||(e==="v6"||!e)&&Eu.test(s))}var Tt=class s extends J{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==U.string){let n=this._getOrReturnCtx(e);return q(n,{code:k.invalid_type,expected:U.string,received:n.parsedType}),Z}let a=new Pe,t;for(let n of this._def.checks)if(n.kind==="min")e.data.lengthn.value&&(t=this._getOrReturnCtx(e,t),q(t,{code:k.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),a.dirty());else if(n.kind==="length"){let o=e.data.length>n.value,i=e.data.lengthe.test(t),{validation:r,code:k.invalid_string,...V.errToObj(a)})}_addCheck(e){return new s({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...V.errToObj(e)})}url(e){return this._addCheck({kind:"url",...V.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...V.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...V.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...V.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...V.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...V.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...V.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...V.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...V.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...V.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...V.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...V.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...V.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...V.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...V.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...V.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...V.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...V.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...V.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...V.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...V.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...V.errToObj(r)})}nonempty(e){return this.min(1,V.errToObj(e))}trim(){return new s({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new s({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new s({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Tt({checks:[],typeName:L.ZodString,coerce:s?.coerce??!1,...W(s)});function Iu(s,e){let r=(s.toString().split(".")[1]||"").length,a=(e.toString().split(".")[1]||"").length,t=r>a?r:a,n=Number.parseInt(s.toFixed(t).replace(".","")),o=Number.parseInt(e.toFixed(t).replace(".",""));return n%o/10**t}var Ut=class s extends J{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==U.number){let n=this._getOrReturnCtx(e);return q(n,{code:k.invalid_type,expected:U.number,received:n.parsedType}),Z}let a,t=new Pe;for(let n of this._def.checks)n.kind==="int"?te.isInteger(e.data)||(a=this._getOrReturnCtx(e,a),q(a,{code:k.invalid_type,expected:"integer",received:"float",message:n.message}),t.dirty()):n.kind==="min"?(n.inclusive?e.datan.value:e.data>=n.value)&&(a=this._getOrReturnCtx(e,a),q(a,{code:k.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),t.dirty()):n.kind==="multipleOf"?Iu(e.data,n.value)!==0&&(a=this._getOrReturnCtx(e,a),q(a,{code:k.not_multiple_of,multipleOf:n.value,message:n.message}),t.dirty()):n.kind==="finite"?Number.isFinite(e.data)||(a=this._getOrReturnCtx(e,a),q(a,{code:k.not_finite,message:n.message}),t.dirty()):te.assertNever(n);return{status:t.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,V.toString(r))}gt(e,r){return this.setLimit("min",e,!1,V.toString(r))}lte(e,r){return this.setLimit("max",e,!0,V.toString(r))}lt(e,r){return this.setLimit("max",e,!1,V.toString(r))}setLimit(e,r,a,t){return new s({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:a,message:V.toString(t)}]})}_addCheck(e){return new s({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:V.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:V.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:V.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:V.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:V.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:V.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:V.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:V.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:V.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuee.kind==="int"||e.kind==="multipleOf"&&te.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let a of this._def.checks){if(a.kind==="finite"||a.kind==="int"||a.kind==="multipleOf")return!0;a.kind==="min"?(r===null||a.value>r)&&(r=a.value):a.kind==="max"&&(e===null||a.valuenew Ut({checks:[],typeName:L.ZodNumber,coerce:s?.coerce||!1,...W(s)});var Bt=class s extends J{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==U.bigint)return this._getInvalidInput(e);let a,t=new Pe;for(let n of this._def.checks)n.kind==="min"?(n.inclusive?e.datan.value:e.data>=n.value)&&(a=this._getOrReturnCtx(e,a),q(a,{code:k.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),t.dirty()):n.kind==="multipleOf"?e.data%n.value!==BigInt(0)&&(a=this._getOrReturnCtx(e,a),q(a,{code:k.not_multiple_of,multipleOf:n.value,message:n.message}),t.dirty()):te.assertNever(n);return{status:t.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return q(r,{code:k.invalid_type,expected:U.bigint,received:r.parsedType}),Z}gte(e,r){return this.setLimit("min",e,!0,V.toString(r))}gt(e,r){return this.setLimit("min",e,!1,V.toString(r))}lte(e,r){return this.setLimit("max",e,!0,V.toString(r))}lt(e,r){return this.setLimit("max",e,!1,V.toString(r))}setLimit(e,r,a,t){return new s({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:a,message:V.toString(t)}]})}_addCheck(e){return new s({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:V.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:V.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:V.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:V.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:V.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Bt({checks:[],typeName:L.ZodBigInt,coerce:s?.coerce??!1,...W(s)});var Vt=class extends J{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==U.boolean){let a=this._getOrReturnCtx(e);return q(a,{code:k.invalid_type,expected:U.boolean,received:a.parsedType}),Z}return $e(e.data)}};Vt.create=s=>new Vt({typeName:L.ZodBoolean,coerce:s?.coerce||!1,...W(s)});var Ht=class s extends J{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==U.date){let n=this._getOrReturnCtx(e);return q(n,{code:k.invalid_type,expected:U.date,received:n.parsedType}),Z}if(Number.isNaN(e.data.getTime())){let n=this._getOrReturnCtx(e);return q(n,{code:k.invalid_date}),Z}let a=new Pe,t;for(let n of this._def.checks)n.kind==="min"?e.data.getTime()n.value&&(t=this._getOrReturnCtx(e,t),q(t,{code:k.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),a.dirty()):te.assertNever(n);return{status:a.value,value:new Date(e.data.getTime())}}_addCheck(e){return new s({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:V.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:V.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Ht({checks:[],coerce:s?.coerce||!1,typeName:L.ZodDate,...W(s)});var mr=class extends J{_parse(e){if(this._getType(e)!==U.symbol){let a=this._getOrReturnCtx(e);return q(a,{code:k.invalid_type,expected:U.symbol,received:a.parsedType}),Z}return $e(e.data)}};mr.create=s=>new mr({typeName:L.ZodSymbol,...W(s)});var zt=class extends J{_parse(e){if(this._getType(e)!==U.undefined){let a=this._getOrReturnCtx(e);return q(a,{code:k.invalid_type,expected:U.undefined,received:a.parsedType}),Z}return $e(e.data)}};zt.create=s=>new zt({typeName:L.ZodUndefined,...W(s)});var Zt=class extends J{_parse(e){if(this._getType(e)!==U.null){let a=this._getOrReturnCtx(e);return q(a,{code:k.invalid_type,expected:U.null,received:a.parsedType}),Z}return $e(e.data)}};Zt.create=s=>new Zt({typeName:L.ZodNull,...W(s)});var wt=class extends J{constructor(){super(...arguments),this._any=!0}_parse(e){return $e(e.data)}};wt.create=s=>new wt({typeName:L.ZodAny,...W(s)});var _t=class extends J{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $e(e.data)}};_t.create=s=>new _t({typeName:L.ZodUnknown,...W(s)});var tt=class extends J{_parse(e){let r=this._getOrReturnCtx(e);return q(r,{code:k.invalid_type,expected:U.never,received:r.parsedType}),Z}};tt.create=s=>new tt({typeName:L.ZodNever,...W(s)});var vr=class extends J{_parse(e){if(this._getType(e)!==U.undefined){let a=this._getOrReturnCtx(e);return q(a,{code:k.invalid_type,expected:U.void,received:a.parsedType}),Z}return $e(e.data)}};vr.create=s=>new vr({typeName:L.ZodVoid,...W(s)});var bt=class s extends J{_parse(e){let{ctx:r,status:a}=this._processInputParams(e),t=this._def;if(r.parsedType!==U.array)return q(r,{code:k.invalid_type,expected:U.array,received:r.parsedType}),Z;if(t.exactLength!==null){let o=r.data.length>t.exactLength.value,i=r.data.lengtht.maxLength.value&&(q(r,{code:k.too_big,maximum:t.maxLength.value,type:"array",inclusive:!0,exact:!1,message:t.maxLength.message}),a.dirty()),r.common.async)return Promise.all([...r.data].map((o,i)=>t.type._parseAsync(new Qe(r,o,r.path,i)))).then(o=>Pe.mergeArray(a,o));let n=[...r.data].map((o,i)=>t.type._parseSync(new Qe(r,o,r.path,i)));return Pe.mergeArray(a,n)}get element(){return this._def.type}min(e,r){return new s({...this._def,minLength:{value:e,message:V.toString(r)}})}max(e,r){return new s({...this._def,maxLength:{value:e,message:V.toString(r)}})}length(e,r){return new s({...this._def,exactLength:{value:e,message:V.toString(r)}})}nonempty(e){return this.min(1,e)}};bt.create=(s,e)=>new bt({type:s,minLength:null,maxLength:null,exactLength:null,typeName:L.ZodArray,...W(e)});function hr(s){if(s instanceof qe){let e={};for(let r in s.shape){let a=s.shape[r];e[r]=Xe.create(hr(a))}return new qe({...s._def,shape:()=>e})}else return s instanceof bt?new bt({...s._def,type:hr(s.element)}):s instanceof Xe?Xe.create(hr(s.unwrap())):s instanceof ut?ut.create(hr(s.unwrap())):s instanceof lt?lt.create(s.items.map(e=>hr(e))):s}var qe=class s extends J{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=te.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==U.object){let u=this._getOrReturnCtx(e);return q(u,{code:k.invalid_type,expected:U.object,received:u.parsedType}),Z}let{status:a,ctx:t}=this._processInputParams(e),{shape:n,keys:o}=this._getCached(),i=[];if(!(this._def.catchall instanceof tt&&this._def.unknownKeys==="strip"))for(let u in t.data)o.includes(u)||i.push(u);let l=[];for(let u of o){let d=n[u],f=t.data[u];l.push({key:{status:"valid",value:u},value:d._parse(new Qe(t,f,t.path,u)),alwaysSet:u in t.data})}if(this._def.catchall instanceof tt){let u=this._def.unknownKeys;if(u==="passthrough")for(let d of i)l.push({key:{status:"valid",value:d},value:{status:"valid",value:t.data[d]}});else if(u==="strict")i.length>0&&(q(t,{code:k.unrecognized_keys,keys:i}),a.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let d of i){let f=t.data[d];l.push({key:{status:"valid",value:d},value:u._parse(new Qe(t,f,t.path,d)),alwaysSet:d in t.data})}}return t.common.async?Promise.resolve().then(async()=>{let u=[];for(let d of l){let f=await d.key,m=await d.value;u.push({key:f,value:m,alwaysSet:d.alwaysSet})}return u}).then(u=>Pe.mergeObjectSync(a,u)):Pe.mergeObjectSync(a,l)}get shape(){return this._def.shape()}strict(e){return V.errToObj,new s({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,a)=>{let t=this._def.errorMap?.(r,a).message??a.defaultError;return r.code==="unrecognized_keys"?{message:V.errToObj(e).message??t}:{message:t}}}:{}})}strip(){return new s({...this._def,unknownKeys:"strip"})}passthrough(){return new s({...this._def,unknownKeys:"passthrough"})}extend(e){return new s({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new s({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:L.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new s({...this._def,catchall:e})}pick(e){let r={};for(let a of te.objectKeys(e))e[a]&&this.shape[a]&&(r[a]=this.shape[a]);return new s({...this._def,shape:()=>r})}omit(e){let r={};for(let a of te.objectKeys(this.shape))e[a]||(r[a]=this.shape[a]);return new s({...this._def,shape:()=>r})}deepPartial(){return hr(this)}partial(e){let r={};for(let a of te.objectKeys(this.shape)){let t=this.shape[a];e&&!e[a]?r[a]=t:r[a]=t.optional()}return new s({...this._def,shape:()=>r})}required(e){let r={};for(let a of te.objectKeys(this.shape))if(e&&!e[a])r[a]=this.shape[a];else{let n=this.shape[a];for(;n instanceof Xe;)n=n._def.innerType;r[a]=n}return new s({...this._def,shape:()=>r})}keyof(){return On(te.objectKeys(this.shape))}};qe.create=(s,e)=>new qe({shape:()=>s,unknownKeys:"strip",catchall:tt.create(),typeName:L.ZodObject,...W(e)});qe.strictCreate=(s,e)=>new qe({shape:()=>s,unknownKeys:"strict",catchall:tt.create(),typeName:L.ZodObject,...W(e)});qe.lazycreate=(s,e)=>new qe({shape:s,unknownKeys:"strip",catchall:tt.create(),typeName:L.ZodObject,...W(e)});var Gt=class extends J{_parse(e){let{ctx:r}=this._processInputParams(e),a=this._def.options;function t(n){for(let i of n)if(i.result.status==="valid")return i.result;for(let i of n)if(i.result.status==="dirty")return r.common.issues.push(...i.ctx.common.issues),i.result;let o=n.map(i=>new Me(i.ctx.common.issues));return q(r,{code:k.invalid_union,unionErrors:o}),Z}if(r.common.async)return Promise.all(a.map(async n=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await n._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(t);{let n,o=[];for(let l of a){let u={...r,common:{...r.common,issues:[]},parent:null},d=l._parseSync({data:r.data,path:r.path,parent:u});if(d.status==="valid")return d;d.status==="dirty"&&!n&&(n={result:d,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(n)return r.common.issues.push(...n.ctx.common.issues),n.result;let i=o.map(l=>new Me(l));return q(r,{code:k.invalid_union,unionErrors:i}),Z}}get options(){return this._def.options}};Gt.create=(s,e)=>new Gt({options:s,typeName:L.ZodUnion,...W(e)});var yt=s=>s instanceof Qt?yt(s.schema):s instanceof We?yt(s.innerType()):s instanceof Wt?[s.value]:s instanceof Kt?s.options:s instanceof Jt?te.objectValues(s.enum):s instanceof Yt?yt(s._def.innerType):s instanceof zt?[void 0]:s instanceof Zt?[null]:s instanceof Xe?[void 0,...yt(s.unwrap())]:s instanceof ut?[null,...yt(s.unwrap())]:s instanceof Nr||s instanceof tr?yt(s.unwrap()):s instanceof er?yt(s._def.innerType):[],Qr=class s extends J{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==U.object)return q(r,{code:k.invalid_type,expected:U.object,received:r.parsedType}),Z;let a=this.discriminator,t=r.data[a],n=this.optionsMap.get(t);return n?r.common.async?n._parseAsync({data:r.data,path:r.path,parent:r}):n._parseSync({data:r.data,path:r.path,parent:r}):(q(r,{code:k.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[a]}),Z)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,a){let t=new Map;for(let n of r){let o=yt(n.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let i of o){if(t.has(i))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(i)}`);t.set(i,n)}}return new s({typeName:L.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:t,...W(a)})}};function Gs(s,e){let r=ct(s),a=ct(e);if(s===e)return{valid:!0,data:s};if(r===U.object&&a===U.object){let t=te.objectKeys(e),n=te.objectKeys(s).filter(i=>t.indexOf(i)!==-1),o={...s,...e};for(let i of n){let l=Gs(s[i],e[i]);if(!l.valid)return{valid:!1};o[i]=l.data}return{valid:!0,data:o}}else if(r===U.array&&a===U.array){if(s.length!==e.length)return{valid:!1};let t=[];for(let n=0;n{if(Gr(n)||Gr(o))return Z;let i=Gs(n.value,o.value);return i.valid?((Xr(n)||Xr(o))&&r.dirty(),{status:r.value,value:i.data}):(q(a,{code:k.invalid_intersection_types}),Z)};return a.common.async?Promise.all([this._def.left._parseAsync({data:a.data,path:a.path,parent:a}),this._def.right._parseAsync({data:a.data,path:a.path,parent:a})]).then(([n,o])=>t(n,o)):t(this._def.left._parseSync({data:a.data,path:a.path,parent:a}),this._def.right._parseSync({data:a.data,path:a.path,parent:a}))}};Xt.create=(s,e,r)=>new Xt({left:s,right:e,typeName:L.ZodIntersection,...W(r)});var lt=class s extends J{_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==U.array)return q(a,{code:k.invalid_type,expected:U.array,received:a.parsedType}),Z;if(a.data.lengththis._def.items.length&&(q(a,{code:k.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let n=[...a.data].map((o,i)=>{let l=this._def.items[i]||this._def.rest;return l?l._parse(new Qe(a,o,a.path,i)):null}).filter(o=>!!o);return a.common.async?Promise.all(n).then(o=>Pe.mergeArray(r,o)):Pe.mergeArray(r,n)}get items(){return this._def.items}rest(e){return new s({...this._def,rest:e})}};lt.create=(s,e)=>{if(!Array.isArray(s))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new lt({items:s,typeName:L.ZodTuple,rest:null,...W(e)})};var Wr=class s extends J{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==U.object)return q(a,{code:k.invalid_type,expected:U.object,received:a.parsedType}),Z;let t=[],n=this._def.keyType,o=this._def.valueType;for(let i in a.data)t.push({key:n._parse(new Qe(a,i,a.path,i)),value:o._parse(new Qe(a,a.data[i],a.path,i)),alwaysSet:i in a.data});return a.common.async?Pe.mergeObjectAsync(r,t):Pe.mergeObjectSync(r,t)}get element(){return this._def.valueType}static create(e,r,a){return r instanceof J?new s({keyType:e,valueType:r,typeName:L.ZodRecord,...W(a)}):new s({keyType:Tt.create(),valueType:e,typeName:L.ZodRecord,...W(r)})}},gr=class extends J{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==U.map)return q(a,{code:k.invalid_type,expected:U.map,received:a.parsedType}),Z;let t=this._def.keyType,n=this._def.valueType,o=[...a.data.entries()].map(([i,l],u)=>({key:t._parse(new Qe(a,i,a.path,[u,"key"])),value:n._parse(new Qe(a,l,a.path,[u,"value"]))}));if(a.common.async){let i=new Map;return Promise.resolve().then(async()=>{for(let l of o){let u=await l.key,d=await l.value;if(u.status==="aborted"||d.status==="aborted")return Z;(u.status==="dirty"||d.status==="dirty")&&r.dirty(),i.set(u.value,d.value)}return{status:r.value,value:i}})}else{let i=new Map;for(let l of o){let u=l.key,d=l.value;if(u.status==="aborted"||d.status==="aborted")return Z;(u.status==="dirty"||d.status==="dirty")&&r.dirty(),i.set(u.value,d.value)}return{status:r.value,value:i}}}};gr.create=(s,e,r)=>new gr({valueType:e,keyType:s,typeName:L.ZodMap,...W(r)});var yr=class s extends J{_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==U.set)return q(a,{code:k.invalid_type,expected:U.set,received:a.parsedType}),Z;let t=this._def;t.minSize!==null&&a.data.sizet.maxSize.value&&(q(a,{code:k.too_big,maximum:t.maxSize.value,type:"set",inclusive:!0,exact:!1,message:t.maxSize.message}),r.dirty());let n=this._def.valueType;function o(l){let u=new Set;for(let d of l){if(d.status==="aborted")return Z;d.status==="dirty"&&r.dirty(),u.add(d.value)}return{status:r.value,value:u}}let i=[...a.data.values()].map((l,u)=>n._parse(new Qe(a,l,a.path,u)));return a.common.async?Promise.all(i).then(l=>o(l)):o(i)}min(e,r){return new s({...this._def,minSize:{value:e,message:V.toString(r)}})}max(e,r){return new s({...this._def,maxSize:{value:e,message:V.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};yr.create=(s,e)=>new yr({valueType:s,minSize:null,maxSize:null,typeName:L.ZodSet,...W(e)});var Kr=class s extends J{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==U.function)return q(r,{code:k.invalid_type,expected:U.function,received:r.parsedType}),Z;function a(i,l){return Ar({data:i,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,pr(),gt].filter(u=>!!u),issueData:{code:k.invalid_arguments,argumentsError:l}})}function t(i,l){return Ar({data:i,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,pr(),gt].filter(u=>!!u),issueData:{code:k.invalid_return_type,returnTypeError:l}})}let n={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Pt){let i=this;return $e(async function(...l){let u=new Me([]),d=await i._def.args.parseAsync(l,n).catch(p=>{throw u.addIssue(a(l,p)),u}),f=await Reflect.apply(o,this,d);return await i._def.returns._def.type.parseAsync(f,n).catch(p=>{throw u.addIssue(t(f,p)),u})})}else{let i=this;return $e(function(...l){let u=i._def.args.safeParse(l,n);if(!u.success)throw new Me([a(l,u.error)]);let d=Reflect.apply(o,this,u.data),f=i._def.returns.safeParse(d,n);if(!f.success)throw new Me([t(d,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new s({...this._def,args:lt.create(e).rest(_t.create())})}returns(e){return new s({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,a){return new s({args:e||lt.create([]).rest(_t.create()),returns:r||_t.create(),typeName:L.ZodFunction,...W(a)})}},Qt=class extends J{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Qt.create=(s,e)=>new Qt({getter:s,typeName:L.ZodLazy,...W(e)});var Wt=class extends J{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return q(r,{received:r.data,code:k.invalid_literal,expected:this._def.value}),Z}return{status:"valid",value:e.data}}get value(){return this._def.value}};Wt.create=(s,e)=>new Wt({value:s,typeName:L.ZodLiteral,...W(e)});function On(s,e){return new Kt({values:s,typeName:L.ZodEnum,...W(e)})}var Kt=class s extends J{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),a=this._def.values;return q(r,{expected:te.joinValues(a),received:r.parsedType,code:k.invalid_type}),Z}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),a=this._def.values;return q(r,{received:r.data,code:k.invalid_enum_value,options:a}),Z}return $e(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return s.create(e,{...this._def,...r})}exclude(e,r=this._def){return s.create(this.options.filter(a=>!e.includes(a)),{...this._def,...r})}};Kt.create=On;var Jt=class extends J{_parse(e){let r=te.getValidEnumValues(this._def.values),a=this._getOrReturnCtx(e);if(a.parsedType!==U.string&&a.parsedType!==U.number){let t=te.objectValues(r);return q(a,{expected:te.joinValues(t),received:a.parsedType,code:k.invalid_type}),Z}if(this._cache||(this._cache=new Set(te.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let t=te.objectValues(r);return q(a,{received:a.data,code:k.invalid_enum_value,options:t}),Z}return $e(e.data)}get enum(){return this._def.values}};Jt.create=(s,e)=>new Jt({values:s,typeName:L.ZodNativeEnum,...W(e)});var Pt=class extends J{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==U.promise&&r.common.async===!1)return q(r,{code:k.invalid_type,expected:U.promise,received:r.parsedType}),Z;let a=r.parsedType===U.promise?r.data:Promise.resolve(r.data);return $e(a.then(t=>this._def.type.parseAsync(t,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Pt.create=(s,e)=>new Pt({type:s,typeName:L.ZodPromise,...W(e)});var We=class extends J{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===L.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:a}=this._processInputParams(e),t=this._def.effect||null,n={addIssue:o=>{q(a,o),o.fatal?r.abort():r.dirty()},get path(){return a.path}};if(n.addIssue=n.addIssue.bind(n),t.type==="preprocess"){let o=t.transform(a.data,n);if(a.common.async)return Promise.resolve(o).then(async i=>{if(r.value==="aborted")return Z;let l=await this._def.schema._parseAsync({data:i,path:a.path,parent:a});return l.status==="aborted"?Z:l.status==="dirty"?qt(l.value):r.value==="dirty"?qt(l.value):l});{if(r.value==="aborted")return Z;let i=this._def.schema._parseSync({data:o,path:a.path,parent:a});return i.status==="aborted"?Z:i.status==="dirty"?qt(i.value):r.value==="dirty"?qt(i.value):i}}if(t.type==="refinement"){let o=i=>{let l=t.refinement(i,n);if(a.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return i};if(a.common.async===!1){let i=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});return i.status==="aborted"?Z:(i.status==="dirty"&&r.dirty(),o(i.value),{status:r.value,value:i.value})}else return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then(i=>i.status==="aborted"?Z:(i.status==="dirty"&&r.dirty(),o(i.value).then(()=>({status:r.value,value:i.value}))))}if(t.type==="transform")if(a.common.async===!1){let o=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});if(!Rt(o))return Z;let i=t.transform(o.value,n);if(i instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:i}}else return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then(o=>Rt(o)?Promise.resolve(t.transform(o.value,n)).then(i=>({status:r.value,value:i})):Z);te.assertNever(t)}};We.create=(s,e,r)=>new We({schema:s,typeName:L.ZodEffects,effect:e,...W(r)});We.createWithPreprocess=(s,e,r)=>new We({schema:e,effect:{type:"preprocess",transform:s},typeName:L.ZodEffects,...W(r)});var Xe=class extends J{_parse(e){return this._getType(e)===U.undefined?$e(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Xe.create=(s,e)=>new Xe({innerType:s,typeName:L.ZodOptional,...W(e)});var ut=class extends J{_parse(e){return this._getType(e)===U.null?$e(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};ut.create=(s,e)=>new ut({innerType:s,typeName:L.ZodNullable,...W(e)});var Yt=class extends J{_parse(e){let{ctx:r}=this._processInputParams(e),a=r.data;return r.parsedType===U.undefined&&(a=this._def.defaultValue()),this._def.innerType._parse({data:a,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Yt.create=(s,e)=>new Yt({innerType:s,typeName:L.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...W(e)});var er=class extends J{_parse(e){let{ctx:r}=this._processInputParams(e),a={...r,common:{...r.common,issues:[]}},t=this._def.innerType._parse({data:a.data,path:a.path,parent:{...a}});return fr(t)?t.then(n=>({status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new Me(a.common.issues)},input:a.data})})):{status:"valid",value:t.status==="valid"?t.value:this._def.catchValue({get error(){return new Me(a.common.issues)},input:a.data})}}removeCatch(){return this._def.innerType}};er.create=(s,e)=>new er({innerType:s,typeName:L.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...W(e)});var _r=class extends J{_parse(e){if(this._getType(e)!==U.nan){let a=this._getOrReturnCtx(e);return q(a,{code:k.invalid_type,expected:U.nan,received:a.parsedType}),Z}return{status:"valid",value:e.data}}};_r.create=s=>new _r({typeName:L.ZodNaN,...W(s)});var $u=Symbol("zod_brand"),Nr=class extends J{_parse(e){let{ctx:r}=this._processInputParams(e),a=r.data;return this._def.type._parse({data:a,path:r.path,parent:r})}unwrap(){return this._def.type}},Dr=class s extends J{_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.common.async)return(async()=>{let n=await this._def.in._parseAsync({data:a.data,path:a.path,parent:a});return n.status==="aborted"?Z:n.status==="dirty"?(r.dirty(),qt(n.value)):this._def.out._parseAsync({data:n.value,path:a.path,parent:a})})();{let t=this._def.in._parseSync({data:a.data,path:a.path,parent:a});return t.status==="aborted"?Z:t.status==="dirty"?(r.dirty(),{status:"dirty",value:t.value}):this._def.out._parseSync({data:t.value,path:a.path,parent:a})}}static create(e,r){return new s({in:e,out:r,typeName:L.ZodPipeline})}},tr=class extends J{_parse(e){let r=this._def.innerType._parse(e),a=t=>(Rt(t)&&(t.value=Object.freeze(t.value)),t);return fr(r)?r.then(t=>a(t)):a(r)}unwrap(){return this._def.innerType}};tr.create=(s,e)=>new tr({innerType:s,typeName:L.ZodReadonly,...W(e)});function Rn(s,e){let r=typeof s=="function"?s(e):typeof s=="string"?{message:s}:s;return typeof r=="string"?{message:r}:r}function In(s,e={},r){return s?wt.create().superRefine((a,t)=>{let n=s(a);if(n instanceof Promise)return n.then(o=>{if(!o){let i=Rn(e,a),l=i.fatal??r??!0;t.addIssue({code:"custom",...i,fatal:l})}});if(!n){let o=Rn(e,a),i=o.fatal??r??!0;t.addIssue({code:"custom",...o,fatal:i})}}):wt.create()}var Au={object:qe.lazycreate},L;(function(s){s.ZodString="ZodString",s.ZodNumber="ZodNumber",s.ZodNaN="ZodNaN",s.ZodBigInt="ZodBigInt",s.ZodBoolean="ZodBoolean",s.ZodDate="ZodDate",s.ZodSymbol="ZodSymbol",s.ZodUndefined="ZodUndefined",s.ZodNull="ZodNull",s.ZodAny="ZodAny",s.ZodUnknown="ZodUnknown",s.ZodNever="ZodNever",s.ZodVoid="ZodVoid",s.ZodArray="ZodArray",s.ZodObject="ZodObject",s.ZodUnion="ZodUnion",s.ZodDiscriminatedUnion="ZodDiscriminatedUnion",s.ZodIntersection="ZodIntersection",s.ZodTuple="ZodTuple",s.ZodRecord="ZodRecord",s.ZodMap="ZodMap",s.ZodSet="ZodSet",s.ZodFunction="ZodFunction",s.ZodLazy="ZodLazy",s.ZodLiteral="ZodLiteral",s.ZodEnum="ZodEnum",s.ZodEffects="ZodEffects",s.ZodNativeEnum="ZodNativeEnum",s.ZodOptional="ZodOptional",s.ZodNullable="ZodNullable",s.ZodDefault="ZodDefault",s.ZodCatch="ZodCatch",s.ZodPromise="ZodPromise",s.ZodBranded="ZodBranded",s.ZodPipeline="ZodPipeline",s.ZodReadonly="ZodReadonly"})(L||(L={}));var Nu=(s,e={message:`Input not instance of ${s.name}`})=>In(r=>r instanceof s,e),$n=Tt.create,An=Ut.create,Du=_r.create,Cu=Bt.create,Nn=Vt.create,ku=Ht.create,Lu=mr.create,ju=zt.create,Fu=Zt.create,Mu=wt.create,qu=_t.create,Uu=tt.create,Bu=vr.create,Vu=bt.create,Hu=qe.create,zu=qe.strictCreate,Zu=Gt.create,Gu=Qr.create,Xu=Xt.create,Qu=lt.create,Wu=Wr.create,Ku=gr.create,Ju=yr.create,Yu=Kr.create,ed=Qt.create,td=Wt.create,rd=Kt.create,sd=Jt.create,ad=Pt.create,nd=We.create,od=Xe.create,id=ut.create,cd=We.createWithPreprocess,ld=Dr.create,ud=()=>$n().optional(),dd=()=>An().optional(),pd=()=>Nn().optional(),fd={string:(s=>Tt.create({...s,coerce:!0})),number:(s=>Ut.create({...s,coerce:!0})),boolean:(s=>Vt.create({...s,coerce:!0})),bigint:(s=>Bt.create({...s,coerce:!0})),date:(s=>Ht.create({...s,coerce:!0}))};var hd=Z;var Cr="2025-06-18";var Jr=[Cr,"2025-03-26","2024-11-05","2024-10-07"],Yr="2.0",Dn=c.union([c.string(),c.number().int()]),Cn=c.string(),md=c.object({progressToken:c.optional(Dn)}).passthrough(),Ke=c.object({_meta:c.optional(md)}).passthrough(),Ue=c.object({method:c.string(),params:c.optional(Ke)}),kr=c.object({_meta:c.optional(c.object({}).passthrough())}).passthrough(),dt=c.object({method:c.string(),params:c.optional(kr)}),Je=c.object({_meta:c.optional(c.object({}).passthrough())}).passthrough(),es=c.union([c.string(),c.number().int()]),kn=c.object({jsonrpc:c.literal(Yr),id:es}).merge(Ue).strict(),Ln=s=>kn.safeParse(s).success,jn=c.object({jsonrpc:c.literal(Yr)}).merge(dt).strict(),Fn=s=>jn.safeParse(s).success,Mn=c.object({jsonrpc:c.literal(Yr),id:es,result:Je}).strict(),Xs=s=>Mn.safeParse(s).success,Le;(function(s){s[s.ConnectionClosed=-32e3]="ConnectionClosed",s[s.RequestTimeout=-32001]="RequestTimeout",s[s.ParseError=-32700]="ParseError",s[s.InvalidRequest=-32600]="InvalidRequest",s[s.MethodNotFound=-32601]="MethodNotFound",s[s.InvalidParams=-32602]="InvalidParams",s[s.InternalError=-32603]="InternalError"})(Le||(Le={}));var qn=c.object({jsonrpc:c.literal(Yr),id:es,error:c.object({code:c.number().int(),message:c.string(),data:c.optional(c.unknown())})}).strict(),Un=s=>qn.safeParse(s).success,Bn=c.union([kn,jn,Mn,qn]),Et=Je.strict(),ts=dt.extend({method:c.literal("notifications/cancelled"),params:kr.extend({requestId:es,reason:c.string().optional()})}),vd=c.object({src:c.string(),mimeType:c.optional(c.string()),sizes:c.optional(c.array(c.string()))}).passthrough(),Lr=c.object({icons:c.array(vd).optional()}).passthrough(),jr=c.object({name:c.string(),title:c.optional(c.string())}).passthrough(),Vn=jr.extend({version:c.string(),websiteUrl:c.optional(c.string())}).merge(Lr),gd=c.object({experimental:c.optional(c.object({}).passthrough()),sampling:c.optional(c.object({}).passthrough()),elicitation:c.optional(c.object({}).passthrough()),roots:c.optional(c.object({listChanged:c.optional(c.boolean())}).passthrough())}).passthrough(),Qs=Ue.extend({method:c.literal("initialize"),params:Ke.extend({protocolVersion:c.string(),capabilities:gd,clientInfo:Vn})});var yd=c.object({experimental:c.optional(c.object({}).passthrough()),logging:c.optional(c.object({}).passthrough()),completions:c.optional(c.object({}).passthrough()),prompts:c.optional(c.object({listChanged:c.optional(c.boolean())}).passthrough()),resources:c.optional(c.object({subscribe:c.optional(c.boolean()),listChanged:c.optional(c.boolean())}).passthrough()),tools:c.optional(c.object({listChanged:c.optional(c.boolean())}).passthrough())}).passthrough(),Ws=Je.extend({protocolVersion:c.string(),capabilities:yd,serverInfo:Vn,instructions:c.optional(c.string())}),Ks=dt.extend({method:c.literal("notifications/initialized")});var rs=Ue.extend({method:c.literal("ping")}),_d=c.object({progress:c.number(),total:c.optional(c.number()),message:c.optional(c.string())}).passthrough(),ss=dt.extend({method:c.literal("notifications/progress"),params:kr.merge(_d).extend({progressToken:Dn})}),as=Ue.extend({params:Ke.extend({cursor:c.optional(Cn)}).optional()}),ns=Je.extend({nextCursor:c.optional(Cn)}),Hn=c.object({uri:c.string(),mimeType:c.optional(c.string()),_meta:c.optional(c.object({}).passthrough())}).passthrough(),zn=Hn.extend({text:c.string()}),Js=c.string().refine(s=>{try{return atob(s),!0}catch{return!1}},{message:"Invalid Base64 string"}),Zn=Hn.extend({blob:Js}),Gn=jr.extend({uri:c.string(),description:c.optional(c.string()),mimeType:c.optional(c.string()),_meta:c.optional(c.object({}).passthrough())}).merge(Lr),bd=jr.extend({uriTemplate:c.string(),description:c.optional(c.string()),mimeType:c.optional(c.string()),_meta:c.optional(c.object({}).passthrough())}).merge(Lr),Ed=as.extend({method:c.literal("resources/list")}),Ys=ns.extend({resources:c.array(Gn)}),Sd=as.extend({method:c.literal("resources/templates/list")}),ea=ns.extend({resourceTemplates:c.array(bd)}),xd=Ue.extend({method:c.literal("resources/read"),params:Ke.extend({uri:c.string()})}),ta=Je.extend({contents:c.array(c.union([zn,Zn]))}),Rd=dt.extend({method:c.literal("notifications/resources/list_changed")}),Td=Ue.extend({method:c.literal("resources/subscribe"),params:Ke.extend({uri:c.string()})}),wd=Ue.extend({method:c.literal("resources/unsubscribe"),params:Ke.extend({uri:c.string()})}),Pd=dt.extend({method:c.literal("notifications/resources/updated"),params:kr.extend({uri:c.string()})}),Od=c.object({name:c.string(),description:c.optional(c.string()),required:c.optional(c.boolean())}).passthrough(),Id=jr.extend({description:c.optional(c.string()),arguments:c.optional(c.array(Od)),_meta:c.optional(c.object({}).passthrough())}).merge(Lr),$d=as.extend({method:c.literal("prompts/list")}),ra=ns.extend({prompts:c.array(Id)}),Ad=Ue.extend({method:c.literal("prompts/get"),params:Ke.extend({name:c.string(),arguments:c.optional(c.record(c.string()))})}),sa=c.object({type:c.literal("text"),text:c.string(),_meta:c.optional(c.object({}).passthrough())}).passthrough(),aa=c.object({type:c.literal("image"),data:Js,mimeType:c.string(),_meta:c.optional(c.object({}).passthrough())}).passthrough(),na=c.object({type:c.literal("audio"),data:Js,mimeType:c.string(),_meta:c.optional(c.object({}).passthrough())}).passthrough(),Nd=c.object({type:c.literal("resource"),resource:c.union([zn,Zn]),_meta:c.optional(c.object({}).passthrough())}).passthrough(),Dd=Gn.extend({type:c.literal("resource_link")}),Xn=c.union([sa,aa,na,Dd,Nd]),Cd=c.object({role:c.enum(["user","assistant"]),content:Xn}).passthrough(),oa=Je.extend({description:c.optional(c.string()),messages:c.array(Cd)}),kd=dt.extend({method:c.literal("notifications/prompts/list_changed")}),Ld=c.object({title:c.optional(c.string()),readOnlyHint:c.optional(c.boolean()),destructiveHint:c.optional(c.boolean()),idempotentHint:c.optional(c.boolean()),openWorldHint:c.optional(c.boolean())}).passthrough(),jd=jr.extend({description:c.optional(c.string()),inputSchema:c.object({type:c.literal("object"),properties:c.optional(c.object({}).passthrough()),required:c.optional(c.array(c.string()))}).passthrough(),outputSchema:c.optional(c.object({type:c.literal("object"),properties:c.optional(c.object({}).passthrough()),required:c.optional(c.array(c.string()))}).passthrough()),annotations:c.optional(Ld),_meta:c.optional(c.object({}).passthrough())}).merge(Lr),ia=as.extend({method:c.literal("tools/list")}),ca=ns.extend({tools:c.array(jd)}),os=Je.extend({content:c.array(Xn).default([]),structuredContent:c.object({}).passthrough().optional(),isError:c.optional(c.boolean())}),cm=os.or(Je.extend({toolResult:c.unknown()})),la=Ue.extend({method:c.literal("tools/call"),params:Ke.extend({name:c.string(),arguments:c.optional(c.record(c.unknown()))})}),Fd=dt.extend({method:c.literal("notifications/tools/list_changed")}),Fr=c.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),ua=Ue.extend({method:c.literal("logging/setLevel"),params:Ke.extend({level:Fr})}),Md=dt.extend({method:c.literal("notifications/message"),params:kr.extend({level:Fr,logger:c.optional(c.string()),data:c.unknown()})}),qd=c.object({name:c.string().optional()}).passthrough(),Ud=c.object({hints:c.optional(c.array(qd)),costPriority:c.optional(c.number().min(0).max(1)),speedPriority:c.optional(c.number().min(0).max(1)),intelligencePriority:c.optional(c.number().min(0).max(1))}).passthrough(),Bd=c.object({role:c.enum(["user","assistant"]),content:c.union([sa,aa,na])}).passthrough(),Vd=Ue.extend({method:c.literal("sampling/createMessage"),params:Ke.extend({messages:c.array(Bd),systemPrompt:c.optional(c.string()),includeContext:c.optional(c.enum(["none","thisServer","allServers"])),temperature:c.optional(c.number()),maxTokens:c.number().int(),stopSequences:c.optional(c.array(c.string())),metadata:c.optional(c.object({}).passthrough()),modelPreferences:c.optional(Ud)})}),da=Je.extend({model:c.string(),stopReason:c.optional(c.enum(["endTurn","stopSequence","maxTokens"]).or(c.string())),role:c.enum(["user","assistant"]),content:c.discriminatedUnion("type",[sa,aa,na])}),Hd=c.object({type:c.literal("boolean"),title:c.optional(c.string()),description:c.optional(c.string()),default:c.optional(c.boolean())}).passthrough(),zd=c.object({type:c.literal("string"),title:c.optional(c.string()),description:c.optional(c.string()),minLength:c.optional(c.number()),maxLength:c.optional(c.number()),format:c.optional(c.enum(["email","uri","date","date-time"]))}).passthrough(),Zd=c.object({type:c.enum(["number","integer"]),title:c.optional(c.string()),description:c.optional(c.string()),minimum:c.optional(c.number()),maximum:c.optional(c.number())}).passthrough(),Gd=c.object({type:c.literal("string"),title:c.optional(c.string()),description:c.optional(c.string()),enum:c.array(c.string()),enumNames:c.optional(c.array(c.string()))}).passthrough(),Xd=c.union([Hd,zd,Zd,Gd]),Qd=Ue.extend({method:c.literal("elicitation/create"),params:Ke.extend({message:c.string(),requestedSchema:c.object({type:c.literal("object"),properties:c.record(c.string(),Xd),required:c.optional(c.array(c.string()))}).passthrough()})}),pa=Je.extend({action:c.enum(["accept","decline","cancel"]),content:c.optional(c.record(c.string(),c.unknown()))}),Wd=c.object({type:c.literal("ref/resource"),uri:c.string()}).passthrough();var Kd=c.object({type:c.literal("ref/prompt"),name:c.string()}).passthrough(),Jd=Ue.extend({method:c.literal("completion/complete"),params:Ke.extend({ref:c.union([Kd,Wd]),argument:c.object({name:c.string(),value:c.string()}).passthrough(),context:c.optional(c.object({arguments:c.optional(c.record(c.string(),c.string()))}))})}),fa=Je.extend({completion:c.object({values:c.array(c.string()).max(100),total:c.optional(c.number().int()),hasMore:c.optional(c.boolean())}).passthrough()}),Yd=c.object({uri:c.string().startsWith("file://"),name:c.optional(c.string()),_meta:c.optional(c.object({}).passthrough())}).passthrough(),ep=Ue.extend({method:c.literal("roots/list")}),ha=Je.extend({roots:c.array(Yd)}),tp=dt.extend({method:c.literal("notifications/roots/list_changed")}),lm=c.union([rs,Qs,Jd,ua,Ad,$d,Ed,Sd,xd,Td,wd,la,ia]),um=c.union([ts,ss,Ks,tp]),dm=c.union([Et,da,pa,ha]),pm=c.union([rs,Vd,Qd,ep]),fm=c.union([ts,ss,Md,Pd,Rd,Fd,kd]),hm=c.union([Et,Ws,fa,oa,ra,Ys,ea,ta,os,ca]),Ae=class extends Error{constructor(e,r,a){super(`MCP error ${e}: ${r}`),this.code=e,this.data=a,this.name="McpError"}};var rp=6e4,br=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this.setNotificationHandler(ts,r=>{let a=this._requestHandlerAbortControllers.get(r.params.requestId);a?.abort(r.params.reason)}),this.setNotificationHandler(ss,r=>{this._onprogress(r)}),this.setRequestHandler(rs,r=>({}))}_setupTimeout(e,r,a,t,n=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(t,r),startTime:Date.now(),timeout:r,maxTotalTimeout:a,resetTimeoutOnProgress:n,onTimeout:t})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let a=Date.now()-r.startTime;if(r.maxTotalTimeout&&a>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),new Ae(Le.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:a});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){var r,a,t;this._transport=e;let n=(r=this.transport)===null||r===void 0?void 0:r.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};let o=(a=this.transport)===null||a===void 0?void 0:a.onerror;this._transport.onerror=l=>{o?.(l),this._onerror(l)};let i=(t=this._transport)===null||t===void 0?void 0:t.onmessage;this._transport.onmessage=(l,u)=>{i?.(l,u),Xs(l)||Un(l)?this._onresponse(l):Ln(l)?this._onrequest(l,u):Fn(l)?this._onnotification(l):this._onerror(new Error(`Unknown message type: ${JSON.stringify(l)}`))},await this._transport.start()}_onclose(){var e;let r=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._pendingDebouncedNotifications.clear(),this._transport=void 0,(e=this.onclose)===null||e===void 0||e.call(this);let a=new Ae(Le.ConnectionClosed,"Connection closed");for(let t of r.values())t(a)}_onerror(e){var r;(r=this.onerror)===null||r===void 0||r.call(this,e)}_onnotification(e){var r;let a=(r=this._notificationHandlers.get(e.method))!==null&&r!==void 0?r:this.fallbackNotificationHandler;a!==void 0&&Promise.resolve().then(()=>a(e)).catch(t=>this._onerror(new Error(`Uncaught error in notification handler: ${t}`)))}_onrequest(e,r){var a,t;let n=(a=this._requestHandlers.get(e.method))!==null&&a!==void 0?a:this.fallbackRequestHandler,o=this._transport;if(n===void 0){o?.send({jsonrpc:"2.0",id:e.id,error:{code:Le.MethodNotFound,message:"Method not found"}}).catch(u=>this._onerror(new Error(`Failed to send an error response: ${u}`)));return}let i=new AbortController;this._requestHandlerAbortControllers.set(e.id,i);let l={signal:i.signal,sessionId:o?.sessionId,_meta:(t=e.params)===null||t===void 0?void 0:t._meta,sendNotification:u=>this.notification(u,{relatedRequestId:e.id}),sendRequest:(u,d,f)=>this.request(u,d,{...f,relatedRequestId:e.id}),authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo};Promise.resolve().then(()=>n(e,l)).then(u=>{if(!i.signal.aborted)return o?.send({result:u,jsonrpc:"2.0",id:e.id})},u=>{var d;if(!i.signal.aborted)return o?.send({jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(u.code)?u.code:Le.InternalError,message:(d=u.message)!==null&&d!==void 0?d:"Internal error"}})}).catch(u=>this._onerror(new Error(`Failed to send response: ${u}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...a}=e.params,t=Number(r),n=this._progressHandlers.get(t);if(!n){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let o=this._responseHandlers.get(t),i=this._timeoutInfo.get(t);if(i&&o&&i.resetTimeoutOnProgress)try{this._resetTimeout(t)}catch(l){o(l);return}n(a)}_onresponse(e){let r=Number(e.id),a=this._responseHandlers.get(r);if(a===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}if(this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),Xs(e))a(e);else{let t=new Ae(e.error.code,e.error.message,e.error.data);a(t)}}get transport(){return this._transport}async close(){var e;await((e=this._transport)===null||e===void 0?void 0:e.close())}request(e,r,a){let{relatedRequestId:t,resumptionToken:n,onresumptiontoken:o}=a??{};return new Promise((i,l)=>{var u,d,f,m,p,g;if(!this._transport){l(new Error("Not connected"));return}((u=this._options)===null||u===void 0?void 0:u.enforceStrictCapabilities)===!0&&this.assertCapabilityForMethod(e.method),(d=a?.signal)===null||d===void 0||d.throwIfAborted();let y=this._requestMessageId++,v={...e,jsonrpc:"2.0",id:y};a?.onprogress&&(this._progressHandlers.set(y,a.onprogress),v.params={...e.params,_meta:{...((f=e.params)===null||f===void 0?void 0:f._meta)||{},progressToken:y}});let E=R=>{var x;this._responseHandlers.delete(y),this._progressHandlers.delete(y),this._cleanupTimeout(y),(x=this._transport)===null||x===void 0||x.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:y,reason:String(R)}},{relatedRequestId:t,resumptionToken:n,onresumptiontoken:o}).catch(T=>this._onerror(new Error(`Failed to send cancellation: ${T}`))),l(R)};this._responseHandlers.set(y,R=>{var x;if(!(!((x=a?.signal)===null||x===void 0)&&x.aborted)){if(R instanceof Error)return l(R);try{let T=r.parse(R.result);i(T)}catch(T){l(T)}}}),(m=a?.signal)===null||m===void 0||m.addEventListener("abort",()=>{var R;E((R=a?.signal)===null||R===void 0?void 0:R.reason)});let w=(p=a?.timeout)!==null&&p!==void 0?p:rp,S=()=>E(new Ae(Le.RequestTimeout,"Request timed out",{timeout:w}));this._setupTimeout(y,w,a?.maxTotalTimeout,S,(g=a?.resetTimeoutOnProgress)!==null&&g!==void 0?g:!1),this._transport.send(v,{relatedRequestId:t,resumptionToken:n,onresumptiontoken:o}).catch(R=>{this._cleanupTimeout(y),l(R)})})}async notification(e,r){var a,t;if(!this._transport)throw new Error("Not connected");if(this.assertNotificationCapability(e.method),((t=(a=this._options)===null||a===void 0?void 0:a.debouncedNotificationMethods)!==null&&t!==void 0?t:[]).includes(e.method)&&!e.params&&!r?.relatedRequestId){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{var l;if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let u={...e,jsonrpc:"2.0"};(l=this._transport)===null||l===void 0||l.send(u,r).catch(d=>this._onerror(d))});return}let i={...e,jsonrpc:"2.0"};await this._transport.send(i,r)}setRequestHandler(e,r){let a=e.shape.method.value;this.assertRequestHandlerCapability(a),this._requestHandlers.set(a,(t,n)=>Promise.resolve(r(e.parse(t),n)))}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){this._notificationHandlers.set(e.shape.method.value,a=>Promise.resolve(r(e.parse(a))))}removeNotificationHandler(e){this._notificationHandlers.delete(e)}};function is(s,e){return Object.entries(e).reduce((r,[a,t])=>(t&&typeof t=="object"?r[a]=r[a]?{...r[a],...t}:t:r[a]=t,r),{...s})}var Wi=Mt(Ma(),1),ws=class extends br{constructor(e,r){var a;super(r),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(Fr.options.map((t,n)=>[t,n])),this.isMessageIgnored=(t,n)=>{let o=this._loggingLevels.get(n);return o?this.LOG_LEVEL_SEVERITY.get(t)this._oninitialize(t)),this.setNotificationHandler(Ks,()=>{var t;return(t=this.oninitialized)===null||t===void 0?void 0:t.call(this)}),this._capabilities.logging&&this.setRequestHandler(ua,async(t,n)=>{var o;let i=n.sessionId||((o=n.requestInfo)===null||o===void 0?void 0:o.headers["mcp-session-id"])||void 0,{level:l}=t.params,u=Fr.safeParse(l);return u.success&&this._loggingLevels.set(i,u.data),{}})}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=is(this._capabilities,e)}assertCapabilityForMethod(e){var r,a,t;switch(e){case"sampling/createMessage":if(!(!((r=this._clientCapabilities)===null||r===void 0)&&r.sampling))throw new Error(`Client does not support sampling (required for ${e})`);break;case"elicitation/create":if(!(!((a=this._clientCapabilities)===null||a===void 0)&&a.elicitation))throw new Error(`Client does not support elicitation (required for ${e})`);break;case"roots/list":if(!(!((t=this._clientCapabilities)===null||t===void 0)&&t.roots))throw new Error(`Client does not support listing roots (required for ${e})`);break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${e})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${e})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${e})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Server does not support sampling (required for ${e})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"ping":case"initialize":break}}async _oninitialize(e){let r=e.params.protocolVersion;return this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo,{protocolVersion:Jr.includes(r)?r:Cr,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},Et)}async createMessage(e,r){return this.request({method:"sampling/createMessage",params:e},da,r)}async elicitInput(e,r){let a=await this.request({method:"elicitation/create",params:e},pa,r);if(a.action==="accept"&&a.content)try{let t=new Wi.default,n=t.compile(e.requestedSchema);if(!n(a.content))throw new Ae(Le.InvalidParams,`Elicitation response content does not match requested schema: ${t.errorsText(n.errors)}`)}catch(t){throw t instanceof Ae?t:new Ae(Le.InternalError,`Error validating elicitation response: ${t}`)}return a}async listRoots(e,r){return this.request({method:"roots/list",params:e},ha,r)}async sendLoggingMessage(e,r){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,r))return this.notification({method:"notifications/message",params:e})}async sendResourceUpdated(e){return this.notification({method:"notifications/resources/updated",params:e})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}};var qa=Mt(require("node:process"),1);var Er=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(` +`);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),Lf(r)}clear(){this._buffer=void 0}};function Lf(s){return Bn.parse(JSON.parse(s))}function Ps(s){return JSON.stringify(s)+` +`}var Os=class{constructor(e=qa.default.stdin,r=qa.default.stdout){this._stdin=e,this._stdout=r,this._readBuffer=new Er,this._started=!1,this._ondata=a=>{this._readBuffer.append(a),this.processReadBuffer()},this._onerror=a=>{var t;(t=this.onerror)===null||t===void 0||t.call(this,a)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(var e,r;;)try{let a=this._readBuffer.readMessage();if(a===null)break;(e=this.onmessage)===null||e===void 0||e.call(this,a)}catch(a){(r=this.onerror)===null||r===void 0||r.call(this,a)}}async close(){var e;this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),(e=this.onclose)===null||e===void 0||e.call(this)}send(e){return new Promise(r=>{let a=Ps(e);this._stdout.write(a)?r():this._stdout.once("drain",r)})}};var Ki=Mt(Ma(),1),Is=class extends br{constructor(e,r){var a;super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._capabilities=(a=r?.capabilities)!==null&&a!==void 0?a:{},this._ajv=new Ki.default}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=is(this._capabilities,e)}assertCapability(e,r){var a;if(!(!((a=this._serverCapabilities)===null||a===void 0)&&a[e]))throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let a=await this.request({method:"initialize",params:{protocolVersion:Cr,capabilities:this._capabilities,clientInfo:this._clientInfo}},Ws,r);if(a===void 0)throw new Error(`Server sent invalid initialize result: ${a}`);if(!Jr.includes(a.protocolVersion))throw new Error(`Server's protocol version is not supported: ${a.protocolVersion}`);this._serverCapabilities=a.capabilities,this._serverVersion=a.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(a.protocolVersion),this._instructions=a.instructions,await this.notification({method:"notifications/initialized"})}catch(a){throw this.close(),a}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){var r,a,t,n,o;switch(e){case"logging/setLevel":if(!(!((r=this._serverCapabilities)===null||r===void 0)&&r.logging))throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!(!((a=this._serverCapabilities)===null||a===void 0)&&a.prompts))throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!(!((t=this._serverCapabilities)===null||t===void 0)&&t.resources))throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!(!((n=this._serverCapabilities)===null||n===void 0)&&n.tools))throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!(!((o=this._serverCapabilities)===null||o===void 0)&&o.completions))throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){var r;switch(e){case"notifications/roots/list_changed":if(!(!((r=this._capabilities.roots)===null||r===void 0)&&r.listChanged))throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"ping":break}}async ping(e){return this.request({method:"ping"},Et,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},fa,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},Et,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},oa,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},ra,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},Ys,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},ea,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},ta,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},Et,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},Et,r)}async callTool(e,r=os,a){let t=await this.request({method:"tools/call",params:e},r,a),n=this.getToolOutputValidator(e.name);if(n){if(!t.structuredContent&&!t.isError)throw new Ae(Le.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(t.structuredContent)try{if(!n(t.structuredContent))throw new Ae(Le.InvalidParams,`Structured content does not match the tool's output schema: ${this._ajv.errorsText(n.errors)}`)}catch(o){throw o instanceof Ae?o:new Ae(Le.InvalidParams,`Failed to validate structured content: ${o instanceof Error?o.message:String(o)}`)}}return t}cacheToolOutputSchemas(e){this._cachedToolOutputValidators.clear();for(let r of e)if(r.outputSchema)try{let a=this._ajv.compile(r.outputSchema);this._cachedToolOutputValidators.set(r.name,a)}catch{}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let a=await this.request({method:"tools/list",params:e},ca,r);return this.cacheToolOutputSchemas(a.tools),a}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var qc=Mt(Mc(),1),qr=Mt(require("node:process"),1),Uc=require("node:stream");var lh=qr.default.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function uh(){let s={};for(let e of lh){let r=qr.default.env[e];r!==void 0&&(r.startsWith("()")||(s[e]=r))}return s}var As=class{constructor(e){this._abortController=new AbortController,this._readBuffer=new Er,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new Uc.PassThrough)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,r)=>{var a,t,n,o,i;this._process=(0,qc.default)(this._serverParams.command,(a=this._serverParams.args)!==null&&a!==void 0?a:[],{env:{...uh(),...this._serverParams.env},stdio:["pipe","pipe",(t=this._serverParams.stderr)!==null&&t!==void 0?t:"inherit"],shell:!1,signal:this._abortController.signal,windowsHide:qr.default.platform==="win32"&&dh(),cwd:this._serverParams.cwd}),this._process.on("error",l=>{var u,d;if(l.name==="AbortError"){(u=this.onclose)===null||u===void 0||u.call(this);return}r(l),(d=this.onerror)===null||d===void 0||d.call(this,l)}),this._process.on("spawn",()=>{e()}),this._process.on("close",l=>{var u;this._process=void 0,(u=this.onclose)===null||u===void 0||u.call(this)}),(n=this._process.stdin)===null||n===void 0||n.on("error",l=>{var u;(u=this.onerror)===null||u===void 0||u.call(this,l)}),(o=this._process.stdout)===null||o===void 0||o.on("data",l=>{this._readBuffer.append(l),this.processReadBuffer()}),(i=this._process.stdout)===null||i===void 0||i.on("error",l=>{var u;(u=this.onerror)===null||u===void 0||u.call(this,l)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){var e,r;return this._stderrStream?this._stderrStream:(r=(e=this._process)===null||e===void 0?void 0:e.stderr)!==null&&r!==void 0?r:null}get pid(){var e,r;return(r=(e=this._process)===null||e===void 0?void 0:e.pid)!==null&&r!==void 0?r:null}processReadBuffer(){for(var e,r;;)try{let a=this._readBuffer.readMessage();if(a===null)break;(e=this.onmessage)===null||e===void 0||e.call(this,a)}catch(a){(r=this.onerror)===null||r===void 0||r.call(this,a)}}async close(){this._abortController.abort(),this._process=void 0,this._readBuffer.clear()}send(e){return new Promise(r=>{var a;if(!(!((a=this._process)===null||a===void 0)&&a.stdin))throw new Error("Not connected");let t=Ps(e);this._process.stdin.write(t)?r():this._process.stdin.once("drain",r)})}};function dh(){return"type"in qr.default}var Vc=Symbol("Let zodToJsonSchema decide on which parser to use");var Bc={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},Hc=s=>typeof s=="string"?{...Bc,name:s}:{...Bc,...s};var zc=s=>{let e=Hc(s),r=e.name!==void 0?[...e.basePath,e.definitionPath,e.name]:e.basePath;return{...e,flags:{hasReferencedOpenAiAnyType:!1},currentPath:r,propertyPath:void 0,seen:new Map(Object.entries(e.definitions).map(([a,t])=>[t._def,{def:t._def,path:[...e.basePath,e.definitionPath,a],jsonSchema:void 0}]))}};function Wa(s,e,r,a){a?.errorMessages&&r&&(s.errorMessage={...s.errorMessage,[e]:r})}function re(s,e,r,a,t){s[e]=r,Wa(s,e,a,t)}var Ns=(s,e)=>{let r=0;for(;rG(s.innerType._def,e);function Ka(s,e,r){let a=r??e.dateStrategy;if(Array.isArray(a))return{anyOf:a.map((t,n)=>Ka(s,e,t))};switch(a){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return ph(s,e)}}var ph=(s,e)=>{let r={type:"integer",format:"unix-time"};if(e.target==="openApi3")return r;for(let a of s.checks)switch(a.kind){case"min":re(r,"minimum",a.value,a.message,e);break;case"max":re(r,"maximum",a.value,a.message,e);break}return r};function Wc(s,e){return{...G(s.innerType._def,e),default:s.defaultValue()}}function Kc(s,e){return e.effectStrategy==="input"?G(s.schema._def,e):he(e)}function Jc(s){return{type:"string",enum:Array.from(s.values)}}var fh=s=>"type"in s&&s.type==="string"?!1:"allOf"in s;function Yc(s,e){let r=[G(s.left._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),G(s.right._def,{...e,currentPath:[...e.currentPath,"allOf","1"]})].filter(n=>!!n),a=e.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,t=[];return r.forEach(n=>{if(fh(n))t.push(...n.allOf),n.unevaluatedProperties===void 0&&(a=void 0);else{let o=n;if("additionalProperties"in n&&n.additionalProperties===!1){let{additionalProperties:i,...l}=n;o=l}else a=void 0;t.push(o)}}),t.length?{allOf:t,...a}:void 0}function el(s,e){let r=typeof s.value;return r!=="bigint"&&r!=="number"&&r!=="boolean"&&r!=="string"?{type:Array.isArray(s.value)?"array":"object"}:e.target==="openApi3"?{type:r==="bigint"?"integer":r,enum:[s.value]}:{type:r==="bigint"?"integer":r,const:s.value}}var Ja,rt={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(Ja===void 0&&(Ja=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Ja),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function Cs(s,e){let r={type:"string"};if(s.checks)for(let a of s.checks)switch(a.kind){case"min":re(r,"minLength",typeof r.minLength=="number"?Math.max(r.minLength,a.value):a.value,a.message,e);break;case"max":re(r,"maxLength",typeof r.maxLength=="number"?Math.min(r.maxLength,a.value):a.value,a.message,e);break;case"email":switch(e.emailStrategy){case"format:email":st(r,"email",a.message,e);break;case"format:idn-email":st(r,"idn-email",a.message,e);break;case"pattern:zod":je(r,rt.email,a.message,e);break}break;case"url":st(r,"uri",a.message,e);break;case"uuid":st(r,"uuid",a.message,e);break;case"regex":je(r,a.regex,a.message,e);break;case"cuid":je(r,rt.cuid,a.message,e);break;case"cuid2":je(r,rt.cuid2,a.message,e);break;case"startsWith":je(r,RegExp(`^${Ya(a.value,e)}`),a.message,e);break;case"endsWith":je(r,RegExp(`${Ya(a.value,e)}$`),a.message,e);break;case"datetime":st(r,"date-time",a.message,e);break;case"date":st(r,"date",a.message,e);break;case"time":st(r,"time",a.message,e);break;case"duration":st(r,"duration",a.message,e);break;case"length":re(r,"minLength",typeof r.minLength=="number"?Math.max(r.minLength,a.value):a.value,a.message,e),re(r,"maxLength",typeof r.maxLength=="number"?Math.min(r.maxLength,a.value):a.value,a.message,e);break;case"includes":{je(r,RegExp(Ya(a.value,e)),a.message,e);break}case"ip":{a.version!=="v6"&&st(r,"ipv4",a.message,e),a.version!=="v4"&&st(r,"ipv6",a.message,e);break}case"base64url":je(r,rt.base64url,a.message,e);break;case"jwt":je(r,rt.jwt,a.message,e);break;case"cidr":{a.version!=="v6"&&je(r,rt.ipv4Cidr,a.message,e),a.version!=="v4"&&je(r,rt.ipv6Cidr,a.message,e);break}case"emoji":je(r,rt.emoji(),a.message,e);break;case"ulid":{je(r,rt.ulid,a.message,e);break}case"base64":{switch(e.base64Strategy){case"format:binary":{st(r,"binary",a.message,e);break}case"contentEncoding:base64":{re(r,"contentEncoding","base64",a.message,e);break}case"pattern:zod":{je(r,rt.base64,a.message,e);break}}break}case"nanoid":je(r,rt.nanoid,a.message,e);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return r}function Ya(s,e){return e.patternStrategy==="escape"?mh(s):s}var hh=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function mh(s){let e="";for(let r=0;rt.format)?(s.anyOf||(s.anyOf=[]),s.format&&(s.anyOf.push({format:s.format,...s.errorMessage&&a.errorMessages&&{errorMessage:{format:s.errorMessage.format}}}),delete s.format,s.errorMessage&&(delete s.errorMessage.format,Object.keys(s.errorMessage).length===0&&delete s.errorMessage)),s.anyOf.push({format:e,...r&&a.errorMessages&&{errorMessage:{format:r}}})):re(s,"format",e,r,a)}function je(s,e,r,a){s.pattern||s.allOf?.some(t=>t.pattern)?(s.allOf||(s.allOf=[]),s.pattern&&(s.allOf.push({pattern:s.pattern,...s.errorMessage&&a.errorMessages&&{errorMessage:{pattern:s.errorMessage.pattern}}}),delete s.pattern,s.errorMessage&&(delete s.errorMessage.pattern,Object.keys(s.errorMessage).length===0&&delete s.errorMessage)),s.allOf.push({pattern:tl(e,a),...r&&a.errorMessages&&{errorMessage:{pattern:r}}})):re(s,"pattern",tl(e,a),r,a)}function tl(s,e){if(!e.applyRegexFlags||!s.flags)return s.source;let r={i:s.flags.includes("i"),m:s.flags.includes("m"),s:s.flags.includes("s")},a=r.i?s.source.toLowerCase():s.source,t="",n=!1,o=!1,i=!1;for(let l=0;l({...a,[t]:G(s.valueType._def,{...e,currentPath:[...e.currentPath,"properties",t]})??he(e)}),{}),additionalProperties:e.rejectedAdditionalProperties};let r={type:"object",additionalProperties:G(s.valueType._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??e.allowedAdditionalProperties};if(e.target==="openApi3")return r;if(s.keyType?._def.typeName===L.ZodString&&s.keyType._def.checks?.length){let{type:a,...t}=Cs(s.keyType._def,e);return{...r,propertyNames:t}}else{if(s.keyType?._def.typeName===L.ZodEnum)return{...r,propertyNames:{enum:s.keyType._def.values}};if(s.keyType?._def.typeName===L.ZodBranded&&s.keyType._def.type._def.typeName===L.ZodString&&s.keyType._def.type._def.checks?.length){let{type:a,...t}=Ds(s.keyType._def,e);return{...r,propertyNames:t}}}return r}function rl(s,e){if(e.mapStrategy==="record")return ks(s,e);let r=G(s.keyType._def,{...e,currentPath:[...e.currentPath,"items","items","0"]})||he(e),a=G(s.valueType._def,{...e,currentPath:[...e.currentPath,"items","items","1"]})||he(e);return{type:"array",maxItems:125,items:{type:"array",items:[r,a],minItems:2,maxItems:2}}}function sl(s){let e=s.values,a=Object.keys(s.values).filter(n=>typeof e[e[n]]!="number").map(n=>e[n]),t=Array.from(new Set(a.map(n=>typeof n)));return{type:t.length===1?t[0]==="string"?"string":"number":["string","number"],enum:a}}function al(s){return s.target==="openAi"?void 0:{not:he({...s,currentPath:[...s.currentPath,"not"]})}}function nl(s){return s.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var Ur={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function il(s,e){if(e.target==="openApi3")return ol(s,e);let r=s.options instanceof Map?Array.from(s.options.values()):s.options;if(r.every(a=>a._def.typeName in Ur&&(!a._def.checks||!a._def.checks.length))){let a=r.reduce((t,n)=>{let o=Ur[n._def.typeName];return o&&!t.includes(o)?[...t,o]:t},[]);return{type:a.length>1?a:a[0]}}else if(r.every(a=>a._def.typeName==="ZodLiteral"&&!a.description)){let a=r.reduce((t,n)=>{let o=typeof n._def.value;switch(o){case"string":case"number":case"boolean":return[...t,o];case"bigint":return[...t,"integer"];case"object":if(n._def.value===null)return[...t,"null"];case"symbol":case"undefined":case"function":default:return t}},[]);if(a.length===r.length){let t=a.filter((n,o,i)=>i.indexOf(n)===o);return{type:t.length>1?t:t[0],enum:r.reduce((n,o)=>n.includes(o._def.value)?n:[...n,o._def.value],[])}}}else if(r.every(a=>a._def.typeName==="ZodEnum"))return{type:"string",enum:r.reduce((a,t)=>[...a,...t._def.values.filter(n=>!a.includes(n))],[])};return ol(s,e)}var ol=(s,e)=>{let r=(s.options instanceof Map?Array.from(s.options.values()):s.options).map((a,t)=>G(a._def,{...e,currentPath:[...e.currentPath,"anyOf",`${t}`]})).filter(a=>!!a&&(!e.strictUnions||typeof a=="object"&&Object.keys(a).length>0));return r.length?{anyOf:r}:void 0};function cl(s,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(s.innerType._def.typeName)&&(!s.innerType._def.checks||!s.innerType._def.checks.length))return e.target==="openApi3"?{type:Ur[s.innerType._def.typeName],nullable:!0}:{type:[Ur[s.innerType._def.typeName],"null"]};if(e.target==="openApi3"){let a=G(s.innerType._def,{...e,currentPath:[...e.currentPath]});return a&&"$ref"in a?{allOf:[a],nullable:!0}:a&&{...a,nullable:!0}}let r=G(s.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","0"]});return r&&{anyOf:[r,{type:"null"}]}}function ll(s,e){let r={type:"number"};if(!s.checks)return r;for(let a of s.checks)switch(a.kind){case"int":r.type="integer",Wa(r,"type",a.message,e);break;case"min":e.target==="jsonSchema7"?a.inclusive?re(r,"minimum",a.value,a.message,e):re(r,"exclusiveMinimum",a.value,a.message,e):(a.inclusive||(r.exclusiveMinimum=!0),re(r,"minimum",a.value,a.message,e));break;case"max":e.target==="jsonSchema7"?a.inclusive?re(r,"maximum",a.value,a.message,e):re(r,"exclusiveMaximum",a.value,a.message,e):(a.inclusive||(r.exclusiveMaximum=!0),re(r,"maximum",a.value,a.message,e));break;case"multipleOf":re(r,"multipleOf",a.value,a.message,e);break}return r}function ul(s,e){let r=e.target==="openAi",a={type:"object",properties:{}},t=[],n=s.shape();for(let i in n){let l=n[i];if(l===void 0||l._def===void 0)continue;let u=gh(l);u&&r&&(l._def.typeName==="ZodOptional"&&(l=l._def.innerType),l.isNullable()||(l=l.nullable()),u=!1);let d=G(l._def,{...e,currentPath:[...e.currentPath,"properties",i],propertyPath:[...e.currentPath,"properties",i]});d!==void 0&&(a.properties[i]=d,u||t.push(i))}t.length&&(a.required=t);let o=vh(s,e);return o!==void 0&&(a.additionalProperties=o),a}function vh(s,e){if(s.catchall._def.typeName!=="ZodNever")return G(s.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]});switch(s.unknownKeys){case"passthrough":return e.allowedAdditionalProperties;case"strict":return e.rejectedAdditionalProperties;case"strip":return e.removeAdditionalStrategy==="strict"?e.allowedAdditionalProperties:e.rejectedAdditionalProperties}}function gh(s){try{return s.isOptional()}catch{return!0}}var dl=(s,e)=>{if(e.currentPath.toString()===e.propertyPath?.toString())return G(s.innerType._def,e);let r=G(s.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","1"]});return r?{anyOf:[{not:he(e)},r]}:he(e)};var pl=(s,e)=>{if(e.pipeStrategy==="input")return G(s.in._def,e);if(e.pipeStrategy==="output")return G(s.out._def,e);let r=G(s.in._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),a=G(s.out._def,{...e,currentPath:[...e.currentPath,"allOf",r?"1":"0"]});return{allOf:[r,a].filter(t=>t!==void 0)}};function fl(s,e){return G(s.type._def,e)}function hl(s,e){let a={type:"array",uniqueItems:!0,items:G(s.valueType._def,{...e,currentPath:[...e.currentPath,"items"]})};return s.minSize&&re(a,"minItems",s.minSize.value,s.minSize.message,e),s.maxSize&&re(a,"maxItems",s.maxSize.value,s.maxSize.message,e),a}function ml(s,e){return s.rest?{type:"array",minItems:s.items.length,items:s.items.map((r,a)=>G(r._def,{...e,currentPath:[...e.currentPath,"items",`${a}`]})).reduce((r,a)=>a===void 0?r:[...r,a],[]),additionalItems:G(s.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:s.items.length,maxItems:s.items.length,items:s.items.map((r,a)=>G(r._def,{...e,currentPath:[...e.currentPath,"items",`${a}`]})).reduce((r,a)=>a===void 0?r:[...r,a],[])}}function vl(s){return{not:he(s)}}function gl(s){return he(s)}var yl=(s,e)=>G(s.innerType._def,e);var _l=(s,e,r)=>{switch(e){case L.ZodString:return Cs(s,r);case L.ZodNumber:return ll(s,r);case L.ZodObject:return ul(s,r);case L.ZodBigInt:return Gc(s,r);case L.ZodBoolean:return Xc();case L.ZodDate:return Ka(s,r);case L.ZodUndefined:return vl(r);case L.ZodNull:return nl(r);case L.ZodArray:return Zc(s,r);case L.ZodUnion:case L.ZodDiscriminatedUnion:return il(s,r);case L.ZodIntersection:return Yc(s,r);case L.ZodTuple:return ml(s,r);case L.ZodRecord:return ks(s,r);case L.ZodLiteral:return el(s,r);case L.ZodEnum:return Jc(s);case L.ZodNativeEnum:return sl(s);case L.ZodNullable:return cl(s,r);case L.ZodOptional:return dl(s,r);case L.ZodMap:return rl(s,r);case L.ZodSet:return hl(s,r);case L.ZodLazy:return()=>s.getter()._def;case L.ZodPromise:return fl(s,r);case L.ZodNaN:case L.ZodNever:return al(r);case L.ZodEffects:return Kc(s,r);case L.ZodAny:return he(r);case L.ZodUnknown:return gl(r);case L.ZodDefault:return Wc(s,r);case L.ZodBranded:return Ds(s,r);case L.ZodReadonly:return yl(s,r);case L.ZodCatch:return Qc(s,r);case L.ZodPipeline:return pl(s,r);case L.ZodFunction:case L.ZodVoid:case L.ZodSymbol:return;default:return(a=>{})(e)}};function G(s,e,r=!1){let a=e.seen.get(s);if(e.override){let i=e.override?.(s,e,a,r);if(i!==Vc)return i}if(a&&!r){let i=yh(a,e);if(i!==void 0)return i}let t={def:s,path:e.currentPath,jsonSchema:void 0};e.seen.set(s,t);let n=_l(s,s.typeName,e),o=typeof n=="function"?G(n(),e):n;if(o&&_h(s,e,o),e.postProcess){let i=e.postProcess(o,s,e);return t.jsonSchema=o,i}return t.jsonSchema=o,o}var yh=(s,e)=>{switch(e.$refStrategy){case"root":return{$ref:s.path.join("/")};case"relative":return{$ref:Ns(e.currentPath,s.path)};case"none":case"seen":return s.path.lengthe.currentPath[a]===r)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),he(e)):e.$refStrategy==="seen"?he(e):void 0}},_h=(s,e,r)=>(s.description&&(r.description=s.description,e.markdownDescription&&(r.markdownDescription=s.description)),r);var en=(s,e)=>{let r=zc(e),a=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((l,[u,d])=>({...l,[u]:G(d._def,{...r,currentPath:[...r.basePath,r.definitionPath,u]},!0)??he(r)}),{}):void 0,t=typeof e=="string"?e:e?.nameStrategy==="title"?void 0:e?.name,n=G(s._def,t===void 0?r:{...r,currentPath:[...r.basePath,r.definitionPath,t]},!1)??he(r),o=typeof e=="object"&&e.name!==void 0&&e.nameStrategy==="title"?e.name:void 0;o!==void 0&&(n.title=o),r.flags.hasReferencedOpenAiAnyType&&(a||(a={}),a[r.openAiAnyTypeName]||(a[r.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:r.$refStrategy==="relative"?"1":[...r.basePath,r.definitionPath,r.openAiAnyTypeName].join("/")}}));let i=t===void 0?a?{...n,[r.definitionPath]:a}:n:{$ref:[...r.$refStrategy==="relative"?[]:r.basePath,r.definitionPath,t].join("/"),[r.definitionPath]:{...a,[t]:n}};return r.target==="jsonSchema7"?i.$schema="http://json-schema.org/draft-07/schema#":(r.target==="jsonSchema2019-09"||r.target==="openAi")&&(i.$schema="https://json-schema.org/draft/2019-09/schema#"),r.target==="openAi"&&("anyOf"in i||"oneOf"in i||"allOf"in i||"type"in i&&Array.isArray(i.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),i};var $l=require("path");var Sl=Mt(require("better-sqlite3"),1);var Ne=require("path"),tn=require("os"),rn=require("fs");var bl=require("url"),Eh={};function bh(){return typeof __dirname<"u"?__dirname:(0,Ne.dirname)((0,bl.fileURLToPath)(Eh.url))}var P_=bh(),at=process.env.CLAUDE_MEM_DATA_DIR||(0,Ne.join)((0,tn.homedir)(),".claude-mem"),sn=process.env.CLAUDE_CONFIG_DIR||(0,Ne.join)((0,tn.homedir)(),".claude"),O_=(0,Ne.join)(at,"archives"),I_=(0,Ne.join)(at,"logs"),$_=(0,Ne.join)(at,"trash"),A_=(0,Ne.join)(at,"backups"),N_=(0,Ne.join)(at,"settings.json"),Ls=(0,Ne.join)(at,"claude-mem.db"),El=(0,Ne.join)(at,"vector-db"),D_=(0,Ne.join)(sn,"settings.json"),C_=(0,Ne.join)(sn,"commands"),k_=(0,Ne.join)(sn,"CLAUDE.md");function js(s){(0,rn.mkdirSync)(s,{recursive:!0})}var Fs=class{db;constructor(e){e||(js(at),e=Ls),this.db=new Sl.default(e),this.db.pragma("journal_mode = WAL"),this.ensureFTSTables()}ensureFTSTables(){try{if(this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%_fts'").all().some(a=>a.name==="observations_fts"||a.name==="session_summaries_fts"))return;console.error("[SessionSearch] Creating FTS5 tables..."),this.db.exec(` + CREATE VIRTUAL TABLE IF NOT EXISTS observations_fts USING fts5( + title, + subtitle, + narrative, + text, + facts, + concepts, + content='observations', + content_rowid='id' + ); + `),this.db.exec(` + INSERT INTO observations_fts(rowid, title, subtitle, narrative, text, facts, concepts) + SELECT id, title, subtitle, narrative, text, facts, concepts + FROM observations; + `),this.db.exec(` + CREATE TRIGGER IF NOT EXISTS observations_ai AFTER INSERT ON observations BEGIN + INSERT INTO observations_fts(rowid, title, subtitle, narrative, text, facts, concepts) + VALUES (new.id, new.title, new.subtitle, new.narrative, new.text, new.facts, new.concepts); + END; + + CREATE TRIGGER IF NOT EXISTS observations_ad AFTER DELETE ON observations BEGIN + INSERT INTO observations_fts(observations_fts, rowid, title, subtitle, narrative, text, facts, concepts) + VALUES('delete', old.id, old.title, old.subtitle, old.narrative, old.text, old.facts, old.concepts); + END; + + CREATE TRIGGER IF NOT EXISTS observations_au AFTER UPDATE ON observations BEGIN + INSERT INTO observations_fts(observations_fts, rowid, title, subtitle, narrative, text, facts, concepts) + VALUES('delete', old.id, old.title, old.subtitle, old.narrative, old.text, old.facts, old.concepts); + INSERT INTO observations_fts(rowid, title, subtitle, narrative, text, facts, concepts) + VALUES (new.id, new.title, new.subtitle, new.narrative, new.text, new.facts, new.concepts); + END; + `),this.db.exec(` + CREATE VIRTUAL TABLE IF NOT EXISTS session_summaries_fts USING fts5( + request, + investigated, + learned, + completed, + next_steps, + notes, + content='session_summaries', + content_rowid='id' + ); + `),this.db.exec(` + INSERT INTO session_summaries_fts(rowid, request, investigated, learned, completed, next_steps, notes) + SELECT id, request, investigated, learned, completed, next_steps, notes + FROM session_summaries; + `),this.db.exec(` + CREATE TRIGGER IF NOT EXISTS session_summaries_ai AFTER INSERT ON session_summaries BEGIN + INSERT INTO session_summaries_fts(rowid, request, investigated, learned, completed, next_steps, notes) + VALUES (new.id, new.request, new.investigated, new.learned, new.completed, new.next_steps, new.notes); + END; + + CREATE TRIGGER IF NOT EXISTS session_summaries_ad AFTER DELETE ON session_summaries BEGIN + INSERT INTO session_summaries_fts(session_summaries_fts, rowid, request, investigated, learned, completed, next_steps, notes) + VALUES('delete', old.id, old.request, old.investigated, old.learned, old.completed, old.next_steps, old.notes); + END; + + CREATE TRIGGER IF NOT EXISTS session_summaries_au AFTER UPDATE ON session_summaries BEGIN + INSERT INTO session_summaries_fts(session_summaries_fts, rowid, request, investigated, learned, completed, next_steps, notes) + VALUES('delete', old.id, old.request, old.investigated, old.learned, old.completed, old.next_steps, old.notes); + INSERT INTO session_summaries_fts(rowid, request, investigated, learned, completed, next_steps, notes) + VALUES (new.id, new.request, new.investigated, new.learned, new.completed, new.next_steps, new.notes); + END; + `),console.error("[SessionSearch] FTS5 tables created successfully")}catch(e){console.error("[SessionSearch] FTS migration error:",e.message)}}buildFilterClause(e,r,a="o"){let t=[];if(e.project&&(t.push(`${a}.project = ?`),r.push(e.project)),e.type)if(Array.isArray(e.type)){let n=e.type.map(()=>"?").join(",");t.push(`${a}.type IN (${n})`),r.push(...e.type)}else t.push(`${a}.type = ?`),r.push(e.type);if(e.dateRange){let{start:n,end:o}=e.dateRange;if(n){let i=typeof n=="number"?n:new Date(n).getTime();t.push(`${a}.created_at_epoch >= ?`),r.push(i)}if(o){let i=typeof o=="number"?o:new Date(o).getTime();t.push(`${a}.created_at_epoch <= ?`),r.push(i)}}if(e.concepts){let n=Array.isArray(e.concepts)?e.concepts:[e.concepts],o=n.map(()=>`EXISTS (SELECT 1 FROM json_each(${a}.concepts) WHERE value = ?)`);o.length>0&&(t.push(`(${o.join(" OR ")})`),r.push(...n))}if(e.files){let n=Array.isArray(e.files)?e.files:[e.files],o=n.map(()=>`( + EXISTS (SELECT 1 FROM json_each(${a}.files_read) WHERE value LIKE ?) + OR EXISTS (SELECT 1 FROM json_each(${a}.files_modified) WHERE value LIKE ?) + )`);o.length>0&&(t.push(`(${o.join(" OR ")})`),n.forEach(i=>{r.push(`%${i}%`,`%${i}%`)}))}return t.length>0?t.join(" AND "):""}buildOrderClause(e="relevance",r=!0,a="observations_fts"){switch(e){case"relevance":return r?`ORDER BY ${a}.rank ASC`:"ORDER BY o.created_at_epoch DESC";case"date_desc":return"ORDER BY o.created_at_epoch DESC";case"date_asc":return"ORDER BY o.created_at_epoch ASC";default:return"ORDER BY o.created_at_epoch DESC"}}searchObservations(e,r={}){let a=[],{limit:t=50,offset:n=0,orderBy:o="relevance",...i}=r;if(!e){let l=this.buildFilterClause(i,a,"o");if(!l)throw new Error("Either query or filters required for search");let u=this.buildOrderClause(o,!1),d=` + SELECT o.*, o.discovery_tokens + FROM observations o + WHERE ${l} + ${u} + LIMIT ? OFFSET ? + `;return a.push(t,n),this.db.prepare(d).all(...a)}return console.warn("[SessionSearch] Text search not supported - use ChromaDB for vector search"),[]}searchSessions(e,r={}){let a=[],{limit:t=50,offset:n=0,orderBy:o="relevance",...i}=r;if(!e){let l={...i};delete l.type;let u=this.buildFilterClause(l,a,"s");if(!u)throw new Error("Either query or filters required for search");let f=` + SELECT s.*, s.discovery_tokens + FROM session_summaries s + WHERE ${u} + ${o==="date_asc"?"ORDER BY s.created_at_epoch ASC":"ORDER BY s.created_at_epoch DESC"} + LIMIT ? OFFSET ? + `;return a.push(t,n),this.db.prepare(f).all(...a)}return console.warn("[SessionSearch] Text search not supported - use ChromaDB for vector search"),[]}findByConcept(e,r={}){let a=[],{limit:t=50,offset:n=0,orderBy:o="date_desc",...i}=r,l={...i,concepts:e},u=this.buildFilterClause(l,a,"o"),d=this.buildOrderClause(o,!1),f=` + SELECT o.*, o.discovery_tokens + FROM observations o + WHERE ${u} + ${d} + LIMIT ? OFFSET ? + `;return a.push(t,n),this.db.prepare(f).all(...a)}findByFile(e,r={}){let a=[],{limit:t=50,offset:n=0,orderBy:o="date_desc",...i}=r,l={...i,files:e},u=this.buildFilterClause(l,a,"o"),d=this.buildOrderClause(o,!1),f=` + SELECT o.*, o.discovery_tokens + FROM observations o + WHERE ${u} + ${d} + LIMIT ? OFFSET ? + `;a.push(t,n);let m=this.db.prepare(f).all(...a),p=[],g={...i};delete g.type;let y=[];if(g.project&&(y.push("s.project = ?"),p.push(g.project)),g.dateRange){let{start:w,end:S}=g.dateRange;if(w){let R=typeof w=="number"?w:new Date(w).getTime();y.push("s.created_at_epoch >= ?"),p.push(R)}if(S){let R=typeof S=="number"?S:new Date(S).getTime();y.push("s.created_at_epoch <= ?"),p.push(R)}}y.push(`( + EXISTS (SELECT 1 FROM json_each(s.files_read) WHERE value LIKE ?) + OR EXISTS (SELECT 1 FROM json_each(s.files_edited) WHERE value LIKE ?) + )`),p.push(`%${e}%`,`%${e}%`);let v=` + SELECT s.*, s.discovery_tokens + FROM session_summaries s + WHERE ${y.join(" AND ")} + ORDER BY s.created_at_epoch DESC + LIMIT ? OFFSET ? + `;p.push(t,n);let E=this.db.prepare(v).all(...p);return{observations:m,sessions:E}}findByType(e,r={}){let a=[],{limit:t=50,offset:n=0,orderBy:o="date_desc",...i}=r,l={...i,type:e},u=this.buildFilterClause(l,a,"o"),d=this.buildOrderClause(o,!1),f=` + SELECT o.*, o.discovery_tokens + FROM observations o + WHERE ${u} + ${d} + LIMIT ? OFFSET ? + `;return a.push(t,n),this.db.prepare(f).all(...a)}searchUserPrompts(e,r={}){let a=[],{limit:t=20,offset:n=0,orderBy:o="relevance",...i}=r,l=[];if(i.project&&(l.push("s.project = ?"),a.push(i.project)),i.dateRange){let{start:u,end:d}=i.dateRange;if(u){let f=typeof u=="number"?u:new Date(u).getTime();l.push("up.created_at_epoch >= ?"),a.push(f)}if(d){let f=typeof d=="number"?d:new Date(d).getTime();l.push("up.created_at_epoch <= ?"),a.push(f)}}if(!e){if(l.length===0)throw new Error("Either query or filters required for search");let f=` + SELECT up.* + FROM user_prompts up + JOIN sdk_sessions s ON up.claude_session_id = s.claude_session_id + ${`WHERE ${l.join(" AND ")}`} + ${o==="date_asc"?"ORDER BY up.created_at_epoch ASC":"ORDER BY up.created_at_epoch DESC"} + LIMIT ? OFFSET ? + `;return a.push(t,n),this.db.prepare(f).all(...a)}return console.warn("[SessionSearch] Text search not supported - use ChromaDB for vector search"),[]}getUserPromptsBySession(e){return this.db.prepare(` + SELECT + id, + claude_session_id, + prompt_number, + prompt_text, + created_at, + created_at_epoch + FROM user_prompts + WHERE claude_session_id = ? + ORDER BY prompt_number ASC + `).all(e)}close(){this.db.close()}};var Rl=Mt(require("better-sqlite3"),1);var an=(n=>(n[n.DEBUG=0]="DEBUG",n[n.INFO=1]="INFO",n[n.WARN=2]="WARN",n[n.ERROR=3]="ERROR",n[n.SILENT=4]="SILENT",n))(an||{}),nn=class{level;useColor;constructor(){let e=process.env.CLAUDE_MEM_LOG_LEVEL?.toUpperCase()||"INFO";this.level=an[e]??1,this.useColor=process.stdout.isTTY??!1}correlationId(e,r){return`obs-${e}-${r}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.level===0?`${e.message} +${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let r=Object.keys(e);return r.length===0?"{}":r.length<=3?JSON.stringify(e):`{${r.length} keys: ${r.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,r){if(!r)return e;try{let a=typeof r=="string"?JSON.parse(r):r;if(e==="Bash"&&a.command){let t=a.command.length>50?a.command.substring(0,50)+"...":a.command;return`${e}(${t})`}if(e==="Read"&&a.file_path){let t=a.file_path.split("/").pop()||a.file_path;return`${e}(${t})`}if(e==="Edit"&&a.file_path){let t=a.file_path.split("/").pop()||a.file_path;return`${e}(${t})`}if(e==="Write"&&a.file_path){let t=a.file_path.split("/").pop()||a.file_path;return`${e}(${t})`}return e}catch{return e}}log(e,r,a,t,n){if(e0&&(f=` {${Object.entries(v).map(([w,S])=>`${w}=${S}`).join(", ")}}`)}let m=`[${o}] [${i}] [${l}] ${u}${a}${f}${d}`;e===3?console.error(m):console.log(m)}debug(e,r,a,t){this.log(0,e,r,a,t)}info(e,r,a,t){this.log(1,e,r,a,t)}warn(e,r,a,t){this.log(2,e,r,a,t)}error(e,r,a,t){this.log(3,e,r,a,t)}dataIn(e,r,a,t){this.info(e,`\u2192 ${r}`,a,t)}dataOut(e,r,a,t){this.info(e,`\u2190 ${r}`,a,t)}success(e,r,a,t){this.info(e,`\u2713 ${r}`,a,t)}failure(e,r,a,t){this.error(e,`\u2717 ${r}`,a,t)}timing(e,r,a,t){this.info(e,`\u23F1 ${r}`,t,{duration:`${a}ms`})}},xl=new nn;var Ms=class{db;constructor(){js(at),this.db=new Rl.default(Ls),this.db.pragma("journal_mode = WAL"),this.db.pragma("synchronous = NORMAL"),this.db.pragma("foreign_keys = ON"),this.initializeSchema(),this.ensureWorkerPortColumn(),this.ensurePromptTrackingColumns(),this.removeSessionSummariesUniqueConstraint(),this.addObservationHierarchicalFields(),this.makeObservationsTextNullable(),this.createUserPromptsTable(),this.ensureDiscoveryTokensColumn()}initializeSchema(){try{this.db.exec(` + CREATE TABLE IF NOT EXISTS schema_versions ( + id INTEGER PRIMARY KEY, + version INTEGER UNIQUE NOT NULL, + applied_at TEXT NOT NULL + ) + `);let e=this.db.prepare("SELECT version FROM schema_versions ORDER BY version").all();(e.length>0?Math.max(...e.map(a=>a.version)):0)===0&&(console.error("[SessionStore] Initializing fresh database with migration004..."),this.db.exec(` + CREATE TABLE IF NOT EXISTS sdk_sessions ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + claude_session_id TEXT UNIQUE NOT NULL, + sdk_session_id TEXT UNIQUE, + project TEXT NOT NULL, + user_prompt TEXT, + started_at TEXT NOT NULL, + started_at_epoch INTEGER NOT NULL, + completed_at TEXT, + completed_at_epoch INTEGER, + status TEXT CHECK(status IN ('active', 'completed', 'failed')) NOT NULL DEFAULT 'active' + ); + + CREATE INDEX IF NOT EXISTS idx_sdk_sessions_claude_id ON sdk_sessions(claude_session_id); + CREATE INDEX IF NOT EXISTS idx_sdk_sessions_sdk_id ON sdk_sessions(sdk_session_id); + CREATE INDEX IF NOT EXISTS idx_sdk_sessions_project ON sdk_sessions(project); + CREATE INDEX IF NOT EXISTS idx_sdk_sessions_status ON sdk_sessions(status); + CREATE INDEX IF NOT EXISTS idx_sdk_sessions_started ON sdk_sessions(started_at_epoch DESC); + + CREATE TABLE IF NOT EXISTS observations ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + sdk_session_id TEXT NOT NULL, + project TEXT NOT NULL, + text TEXT NOT NULL, + type TEXT NOT NULL CHECK(type IN ('decision', 'bugfix', 'feature', 'refactor', 'discovery')), + created_at TEXT NOT NULL, + created_at_epoch INTEGER NOT NULL, + FOREIGN KEY(sdk_session_id) REFERENCES sdk_sessions(sdk_session_id) ON DELETE CASCADE + ); + + CREATE INDEX IF NOT EXISTS idx_observations_sdk_session ON observations(sdk_session_id); + CREATE INDEX IF NOT EXISTS idx_observations_project ON observations(project); + CREATE INDEX IF NOT EXISTS idx_observations_type ON observations(type); + CREATE INDEX IF NOT EXISTS idx_observations_created ON observations(created_at_epoch DESC); + + CREATE TABLE IF NOT EXISTS session_summaries ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + sdk_session_id TEXT UNIQUE NOT NULL, + project TEXT NOT NULL, + request TEXT, + investigated TEXT, + learned TEXT, + completed TEXT, + next_steps TEXT, + files_read TEXT, + files_edited TEXT, + notes TEXT, + created_at TEXT NOT NULL, + created_at_epoch INTEGER NOT NULL, + FOREIGN KEY(sdk_session_id) REFERENCES sdk_sessions(sdk_session_id) ON DELETE CASCADE + ); + + CREATE INDEX IF NOT EXISTS idx_session_summaries_sdk_session ON session_summaries(sdk_session_id); + CREATE INDEX IF NOT EXISTS idx_session_summaries_project ON session_summaries(project); + CREATE INDEX IF NOT EXISTS idx_session_summaries_created ON session_summaries(created_at_epoch DESC); + `),this.db.prepare("INSERT INTO schema_versions (version, applied_at) VALUES (?, ?)").run(4,new Date().toISOString()),console.error("[SessionStore] Migration004 applied successfully"))}catch(e){throw console.error("[SessionStore] Schema initialization error:",e.message),e}}ensureWorkerPortColumn(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(5))return;this.db.pragma("table_info(sdk_sessions)").some(t=>t.name==="worker_port")||(this.db.exec("ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER"),console.error("[SessionStore] Added worker_port column to sdk_sessions table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(5,new Date().toISOString())}catch(e){console.error("[SessionStore] Migration error:",e.message)}}ensurePromptTrackingColumns(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(6))return;this.db.pragma("table_info(sdk_sessions)").some(l=>l.name==="prompt_counter")||(this.db.exec("ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0"),console.error("[SessionStore] Added prompt_counter column to sdk_sessions table")),this.db.pragma("table_info(observations)").some(l=>l.name==="prompt_number")||(this.db.exec("ALTER TABLE observations ADD COLUMN prompt_number INTEGER"),console.error("[SessionStore] Added prompt_number column to observations table")),this.db.pragma("table_info(session_summaries)").some(l=>l.name==="prompt_number")||(this.db.exec("ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER"),console.error("[SessionStore] Added prompt_number column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(6,new Date().toISOString())}catch(e){console.error("[SessionStore] Prompt tracking migration error:",e.message)}}removeSessionSummariesUniqueConstraint(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(7))return;if(!this.db.pragma("index_list(session_summaries)").some(t=>t.unique===1)){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString());return}console.error("[SessionStore] Removing UNIQUE constraint from session_summaries.sdk_session_id..."),this.db.exec("BEGIN TRANSACTION");try{this.db.exec(` + CREATE TABLE session_summaries_new ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + sdk_session_id TEXT NOT NULL, + project TEXT NOT NULL, + request TEXT, + investigated TEXT, + learned TEXT, + completed TEXT, + next_steps TEXT, + files_read TEXT, + files_edited TEXT, + notes TEXT, + prompt_number INTEGER, + created_at TEXT NOT NULL, + created_at_epoch INTEGER NOT NULL, + FOREIGN KEY(sdk_session_id) REFERENCES sdk_sessions(sdk_session_id) ON DELETE CASCADE + ) + `),this.db.exec(` + INSERT INTO session_summaries_new + SELECT id, sdk_session_id, project, request, investigated, learned, + completed, next_steps, files_read, files_edited, notes, + prompt_number, created_at, created_at_epoch + FROM session_summaries + `),this.db.exec("DROP TABLE session_summaries"),this.db.exec("ALTER TABLE session_summaries_new RENAME TO session_summaries"),this.db.exec(` + CREATE INDEX idx_session_summaries_sdk_session ON session_summaries(sdk_session_id); + CREATE INDEX idx_session_summaries_project ON session_summaries(project); + CREATE INDEX idx_session_summaries_created ON session_summaries(created_at_epoch DESC); + `),this.db.exec("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString()),console.error("[SessionStore] Successfully removed UNIQUE constraint from session_summaries.sdk_session_id")}catch(t){throw this.db.exec("ROLLBACK"),t}}catch(e){console.error("[SessionStore] Migration error (remove UNIQUE constraint):",e.message)}}addObservationHierarchicalFields(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(8))return;if(this.db.pragma("table_info(observations)").some(t=>t.name==="title")){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString());return}console.error("[SessionStore] Adding hierarchical fields to observations table..."),this.db.exec(` + ALTER TABLE observations ADD COLUMN title TEXT; + ALTER TABLE observations ADD COLUMN subtitle TEXT; + ALTER TABLE observations ADD COLUMN facts TEXT; + ALTER TABLE observations ADD COLUMN narrative TEXT; + ALTER TABLE observations ADD COLUMN concepts TEXT; + ALTER TABLE observations ADD COLUMN files_read TEXT; + ALTER TABLE observations ADD COLUMN files_modified TEXT; + `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString()),console.error("[SessionStore] Successfully added hierarchical fields to observations table")}catch(e){console.error("[SessionStore] Migration error (add hierarchical fields):",e.message)}}makeObservationsTextNullable(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(9))return;let a=this.db.pragma("table_info(observations)").find(t=>t.name==="text");if(!a||a.notnull===0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString());return}console.error("[SessionStore] Making observations.text nullable..."),this.db.exec("BEGIN TRANSACTION");try{this.db.exec(` + CREATE TABLE observations_new ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + sdk_session_id TEXT NOT NULL, + project TEXT NOT NULL, + text TEXT, + type TEXT NOT NULL CHECK(type IN ('decision', 'bugfix', 'feature', 'refactor', 'discovery', 'change')), + title TEXT, + subtitle TEXT, + facts TEXT, + narrative TEXT, + concepts TEXT, + files_read TEXT, + files_modified TEXT, + prompt_number INTEGER, + created_at TEXT NOT NULL, + created_at_epoch INTEGER NOT NULL, + FOREIGN KEY(sdk_session_id) REFERENCES sdk_sessions(sdk_session_id) ON DELETE CASCADE + ) + `),this.db.exec(` + INSERT INTO observations_new + SELECT id, sdk_session_id, project, text, type, title, subtitle, facts, + narrative, concepts, files_read, files_modified, prompt_number, + created_at, created_at_epoch + FROM observations + `),this.db.exec("DROP TABLE observations"),this.db.exec("ALTER TABLE observations_new RENAME TO observations"),this.db.exec(` + CREATE INDEX idx_observations_sdk_session ON observations(sdk_session_id); + CREATE INDEX idx_observations_project ON observations(project); + CREATE INDEX idx_observations_type ON observations(type); + CREATE INDEX idx_observations_created ON observations(created_at_epoch DESC); + `),this.db.exec("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString()),console.error("[SessionStore] Successfully made observations.text nullable")}catch(t){throw this.db.exec("ROLLBACK"),t}}catch(e){console.error("[SessionStore] Migration error (make text nullable):",e.message)}}createUserPromptsTable(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(10))return;if(this.db.pragma("table_info(user_prompts)").length>0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString());return}console.error("[SessionStore] Creating user_prompts table with FTS5 support..."),this.db.exec("BEGIN TRANSACTION");try{this.db.exec(` + CREATE TABLE user_prompts ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + claude_session_id TEXT NOT NULL, + prompt_number INTEGER NOT NULL, + prompt_text TEXT NOT NULL, + created_at TEXT NOT NULL, + created_at_epoch INTEGER NOT NULL, + FOREIGN KEY(claude_session_id) REFERENCES sdk_sessions(claude_session_id) ON DELETE CASCADE + ); + + CREATE INDEX idx_user_prompts_claude_session ON user_prompts(claude_session_id); + CREATE INDEX idx_user_prompts_created ON user_prompts(created_at_epoch DESC); + CREATE INDEX idx_user_prompts_prompt_number ON user_prompts(prompt_number); + `),this.db.exec(` + CREATE VIRTUAL TABLE user_prompts_fts USING fts5( + prompt_text, + content='user_prompts', + content_rowid='id' + ); + `),this.db.exec(` + CREATE TRIGGER user_prompts_ai AFTER INSERT ON user_prompts BEGIN + INSERT INTO user_prompts_fts(rowid, prompt_text) + VALUES (new.id, new.prompt_text); + END; + + CREATE TRIGGER user_prompts_ad AFTER DELETE ON user_prompts BEGIN + INSERT INTO user_prompts_fts(user_prompts_fts, rowid, prompt_text) + VALUES('delete', old.id, old.prompt_text); + END; + + CREATE TRIGGER user_prompts_au AFTER UPDATE ON user_prompts BEGIN + INSERT INTO user_prompts_fts(user_prompts_fts, rowid, prompt_text) + VALUES('delete', old.id, old.prompt_text); + INSERT INTO user_prompts_fts(rowid, prompt_text) + VALUES (new.id, new.prompt_text); + END; + `),this.db.exec("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString()),console.error("[SessionStore] Successfully created user_prompts table with FTS5 support")}catch(a){throw this.db.exec("ROLLBACK"),a}}catch(e){console.error("[SessionStore] Migration error (create user_prompts table):",e.message)}}ensureDiscoveryTokensColumn(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(11))return;this.db.pragma("table_info(observations)").some(o=>o.name==="discovery_tokens")||(this.db.exec("ALTER TABLE observations ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),console.error("[SessionStore] Added discovery_tokens column to observations table")),this.db.pragma("table_info(session_summaries)").some(o=>o.name==="discovery_tokens")||(this.db.exec("ALTER TABLE session_summaries ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),console.error("[SessionStore] Added discovery_tokens column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(11,new Date().toISOString())}catch(e){throw console.error("[SessionStore] Discovery tokens migration error:",e.message),e}}getRecentSummaries(e,r=10){return this.db.prepare(` + SELECT + request, investigated, learned, completed, next_steps, + files_read, files_edited, notes, prompt_number, created_at + FROM session_summaries + WHERE project = ? + ORDER BY created_at_epoch DESC + LIMIT ? + `).all(e,r)}getRecentSummariesWithSessionInfo(e,r=3){return this.db.prepare(` + SELECT + sdk_session_id, request, learned, completed, next_steps, + prompt_number, created_at + FROM session_summaries + WHERE project = ? + ORDER BY created_at_epoch DESC + LIMIT ? + `).all(e,r)}getRecentObservations(e,r=20){return this.db.prepare(` + SELECT type, text, prompt_number, created_at + FROM observations + WHERE project = ? + ORDER BY created_at_epoch DESC + LIMIT ? + `).all(e,r)}getAllRecentObservations(e=100){return this.db.prepare(` + SELECT id, type, title, subtitle, text, project, prompt_number, created_at, created_at_epoch + FROM observations + ORDER BY created_at_epoch DESC + LIMIT ? + `).all(e)}getAllRecentSummaries(e=50){return this.db.prepare(` + SELECT id, request, investigated, learned, completed, next_steps, + files_read, files_edited, notes, project, prompt_number, + created_at, created_at_epoch + FROM session_summaries + ORDER BY created_at_epoch DESC + LIMIT ? + `).all(e)}getAllRecentUserPrompts(e=100){return this.db.prepare(` + SELECT + up.id, + up.claude_session_id, + s.project, + up.prompt_number, + up.prompt_text, + up.created_at, + up.created_at_epoch + FROM user_prompts up + LEFT JOIN sdk_sessions s ON up.claude_session_id = s.claude_session_id + ORDER BY up.created_at_epoch DESC + LIMIT ? + `).all(e)}getAllProjects(){return this.db.prepare(` + SELECT DISTINCT project + FROM sdk_sessions + WHERE project IS NOT NULL AND project != '' + ORDER BY project ASC + `).all().map(a=>a.project)}getRecentSessionsWithStatus(e,r=3){return this.db.prepare(` + SELECT * FROM ( + SELECT + s.sdk_session_id, + s.status, + s.started_at, + s.started_at_epoch, + s.user_prompt, + CASE WHEN sum.sdk_session_id IS NOT NULL THEN 1 ELSE 0 END as has_summary + FROM sdk_sessions s + LEFT JOIN session_summaries sum ON s.sdk_session_id = sum.sdk_session_id + WHERE s.project = ? AND s.sdk_session_id IS NOT NULL + GROUP BY s.sdk_session_id + ORDER BY s.started_at_epoch DESC + LIMIT ? + ) + ORDER BY started_at_epoch ASC + `).all(e,r)}getObservationsForSession(e){return this.db.prepare(` + SELECT title, subtitle, type, prompt_number + FROM observations + WHERE sdk_session_id = ? + ORDER BY created_at_epoch ASC + `).all(e)}getObservationById(e){return this.db.prepare(` + SELECT * + FROM observations + WHERE id = ? + `).get(e)||null}getObservationsByIds(e,r={}){if(e.length===0)return[];let{orderBy:a="date_desc",limit:t}=r,n=a==="date_asc"?"ASC":"DESC",o=t?`LIMIT ${t}`:"",i=e.map(()=>"?").join(",");return this.db.prepare(` + SELECT * + FROM observations + WHERE id IN (${i}) + ORDER BY created_at_epoch ${n} + ${o} + `).all(...e)}getSummaryForSession(e){return this.db.prepare(` + SELECT + request, investigated, learned, completed, next_steps, + files_read, files_edited, notes, prompt_number, created_at + FROM session_summaries + WHERE sdk_session_id = ? + ORDER BY created_at_epoch DESC + LIMIT 1 + `).get(e)||null}getFilesForSession(e){let a=this.db.prepare(` + SELECT files_read, files_modified + FROM observations + WHERE sdk_session_id = ? + `).all(e),t=new Set,n=new Set;for(let o of a){if(o.files_read)try{let i=JSON.parse(o.files_read);Array.isArray(i)&&i.forEach(l=>t.add(l))}catch{}if(o.files_modified)try{let i=JSON.parse(o.files_modified);Array.isArray(i)&&i.forEach(l=>n.add(l))}catch{}}return{filesRead:Array.from(t),filesModified:Array.from(n)}}getSessionById(e){return this.db.prepare(` + SELECT id, claude_session_id, sdk_session_id, project, user_prompt + FROM sdk_sessions + WHERE id = ? + LIMIT 1 + `).get(e)||null}findActiveSDKSession(e){return this.db.prepare(` + SELECT id, sdk_session_id, project, worker_port + FROM sdk_sessions + WHERE claude_session_id = ? AND status = 'active' + LIMIT 1 + `).get(e)||null}findAnySDKSession(e){return this.db.prepare(` + SELECT id + FROM sdk_sessions + WHERE claude_session_id = ? + LIMIT 1 + `).get(e)||null}reactivateSession(e,r){this.db.prepare(` + UPDATE sdk_sessions + SET status = 'active', user_prompt = ?, worker_port = NULL + WHERE id = ? + `).run(r,e)}incrementPromptCounter(e){return this.db.prepare(` + UPDATE sdk_sessions + SET prompt_counter = COALESCE(prompt_counter, 0) + 1 + WHERE id = ? + `).run(e),this.db.prepare(` + SELECT prompt_counter FROM sdk_sessions WHERE id = ? + `).get(e)?.prompt_counter||1}getPromptCounter(e){return this.db.prepare(` + SELECT prompt_counter FROM sdk_sessions WHERE id = ? + `).get(e)?.prompt_counter||0}createSDKSession(e,r,a){let t=new Date,n=t.getTime(),i=this.db.prepare(` + INSERT OR IGNORE INTO sdk_sessions + (claude_session_id, sdk_session_id, project, user_prompt, started_at, started_at_epoch, status) + VALUES (?, ?, ?, ?, ?, ?, 'active') + `).run(e,e,r,a,t.toISOString(),n);return i.lastInsertRowid===0||i.changes===0?this.db.prepare(` + SELECT id FROM sdk_sessions WHERE claude_session_id = ? LIMIT 1 + `).get(e).id:i.lastInsertRowid}updateSDKSessionId(e,r){return this.db.prepare(` + UPDATE sdk_sessions + SET sdk_session_id = ? + WHERE id = ? AND sdk_session_id IS NULL + `).run(r,e).changes===0?(xl.debug("DB","sdk_session_id already set, skipping update",{sessionId:e,sdkSessionId:r}),!1):!0}setWorkerPort(e,r){this.db.prepare(` + UPDATE sdk_sessions + SET worker_port = ? + WHERE id = ? + `).run(r,e)}getWorkerPort(e){return this.db.prepare(` + SELECT worker_port + FROM sdk_sessions + WHERE id = ? + LIMIT 1 + `).get(e)?.worker_port||null}saveUserPrompt(e,r,a){let t=new Date,n=t.getTime();return this.db.prepare(` + INSERT INTO user_prompts + (claude_session_id, prompt_number, prompt_text, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?) + `).run(e,r,a,t.toISOString(),n).lastInsertRowid}storeObservation(e,r,a,t,n=0){let o=new Date,i=o.getTime();this.db.prepare(` + SELECT id FROM sdk_sessions WHERE sdk_session_id = ? + `).get(e)||(this.db.prepare(` + INSERT INTO sdk_sessions + (claude_session_id, sdk_session_id, project, started_at, started_at_epoch, status) + VALUES (?, ?, ?, ?, ?, 'active') + `).run(e,e,r,o.toISOString(),i),console.error(`[SessionStore] Auto-created session record for session_id: ${e}`));let f=this.db.prepare(` + INSERT INTO observations + (sdk_session_id, project, type, title, subtitle, facts, narrative, concepts, + files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `).run(e,r,a.type,a.title,a.subtitle,JSON.stringify(a.facts),a.narrative,JSON.stringify(a.concepts),JSON.stringify(a.files_read),JSON.stringify(a.files_modified),t||null,n,o.toISOString(),i);return{id:Number(f.lastInsertRowid),createdAtEpoch:i}}storeSummary(e,r,a,t,n=0){let o=new Date,i=o.getTime();this.db.prepare(` + SELECT id FROM sdk_sessions WHERE sdk_session_id = ? + `).get(e)||(this.db.prepare(` + INSERT INTO sdk_sessions + (claude_session_id, sdk_session_id, project, started_at, started_at_epoch, status) + VALUES (?, ?, ?, ?, ?, 'active') + `).run(e,e,r,o.toISOString(),i),console.error(`[SessionStore] Auto-created session record for session_id: ${e}`));let f=this.db.prepare(` + INSERT INTO session_summaries + (sdk_session_id, project, request, investigated, learned, completed, + next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `).run(e,r,a.request,a.investigated,a.learned,a.completed,a.next_steps,a.notes,t||null,n,o.toISOString(),i);return{id:Number(f.lastInsertRowid),createdAtEpoch:i}}markSessionCompleted(e){let r=new Date,a=r.getTime();this.db.prepare(` + UPDATE sdk_sessions + SET status = 'completed', completed_at = ?, completed_at_epoch = ? + WHERE id = ? + `).run(r.toISOString(),a,e)}markSessionFailed(e){let r=new Date,a=r.getTime();this.db.prepare(` + UPDATE sdk_sessions + SET status = 'failed', completed_at = ?, completed_at_epoch = ? + WHERE id = ? + `).run(r.toISOString(),a,e)}getSessionSummariesByIds(e,r={}){if(e.length===0)return[];let{orderBy:a="date_desc",limit:t}=r,n=a==="date_asc"?"ASC":"DESC",o=t?`LIMIT ${t}`:"",i=e.map(()=>"?").join(",");return this.db.prepare(` + SELECT * FROM session_summaries + WHERE id IN (${i}) + ORDER BY created_at_epoch ${n} + ${o} + `).all(...e)}getUserPromptsByIds(e,r={}){if(e.length===0)return[];let{orderBy:a="date_desc",limit:t}=r,n=a==="date_asc"?"ASC":"DESC",o=t?`LIMIT ${t}`:"",i=e.map(()=>"?").join(",");return this.db.prepare(` + SELECT + up.*, + s.project, + s.sdk_session_id + FROM user_prompts up + JOIN sdk_sessions s ON up.claude_session_id = s.claude_session_id + WHERE up.id IN (${i}) + ORDER BY up.created_at_epoch ${n} + ${o} + `).all(...e)}getTimelineAroundTimestamp(e,r=10,a=10,t){return this.getTimelineAroundObservation(null,e,r,a,t)}getTimelineAroundObservation(e,r,a=10,t=10,n){let o=n?"AND project = ?":"",i=n?[n]:[],l,u;if(e!==null){let p=` + SELECT id, created_at_epoch + FROM observations + WHERE id <= ? ${o} + ORDER BY id DESC + LIMIT ? + `,g=` + SELECT id, created_at_epoch + FROM observations + WHERE id >= ? ${o} + ORDER BY id ASC + LIMIT ? + `;try{let y=this.db.prepare(p).all(e,...i,a+1),v=this.db.prepare(g).all(e,...i,t+1);if(y.length===0&&v.length===0)return{observations:[],sessions:[],prompts:[]};l=y.length>0?y[y.length-1].created_at_epoch:r,u=v.length>0?v[v.length-1].created_at_epoch:r}catch(y){return console.error("[SessionStore] Error getting boundary observations:",y.message),{observations:[],sessions:[],prompts:[]}}}else{let p=` + SELECT created_at_epoch + FROM observations + WHERE created_at_epoch <= ? ${o} + ORDER BY created_at_epoch DESC + LIMIT ? + `,g=` + SELECT created_at_epoch + FROM observations + WHERE created_at_epoch >= ? ${o} + ORDER BY created_at_epoch ASC + LIMIT ? + `;try{let y=this.db.prepare(p).all(r,...i,a),v=this.db.prepare(g).all(r,...i,t+1);if(y.length===0&&v.length===0)return{observations:[],sessions:[],prompts:[]};l=y.length>0?y[y.length-1].created_at_epoch:r,u=v.length>0?v[v.length-1].created_at_epoch:r}catch(y){return console.error("[SessionStore] Error getting boundary timestamps:",y.message),{observations:[],sessions:[],prompts:[]}}}let d=` + SELECT * + FROM observations + WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${o} + ORDER BY created_at_epoch ASC + `,f=` + SELECT * + FROM session_summaries + WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${o} + ORDER BY created_at_epoch ASC + `,m=` + SELECT up.*, s.project, s.sdk_session_id + FROM user_prompts up + JOIN sdk_sessions s ON up.claude_session_id = s.claude_session_id + WHERE up.created_at_epoch >= ? AND up.created_at_epoch <= ? ${o.replace("project","s.project")} + ORDER BY up.created_at_epoch ASC + `;try{let p=this.db.prepare(d).all(l,u,...i),g=this.db.prepare(f).all(l,u,...i),y=this.db.prepare(m).all(l,u,...i);return{observations:p,sessions:g.map(v=>({id:v.id,sdk_session_id:v.sdk_session_id,project:v.project,request:v.request,completed:v.completed,next_steps:v.next_steps,created_at:v.created_at,created_at_epoch:v.created_at_epoch})),prompts:y.map(v=>({id:v.id,claude_session_id:v.claude_session_id,project:v.project,prompt:v.prompt_text,created_at:v.created_at,created_at_epoch:v.created_at_epoch}))}}catch(p){return console.error("[SessionStore] Error querying timeline records:",p.message),{observations:[],sessions:[],prompts:[]}}}close(){this.db.close()}};var Tl=require("fs"),wl=require("os"),Pl=require("path"),Sh=(0,Pl.join)((0,wl.homedir)(),".claude-mem","silent.log");function Br(s,e,r=""){let a=new Date().toISOString(),i=((new Error().stack||"").split(` +`)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),l=i?`${i[1].split("/").pop()}:${i[2]}`:"unknown",u=`[${a}] [${l}] ${s}`;if(e!==void 0)try{u+=` ${JSON.stringify(e)}`}catch(d){u+=` [stringify error: ${d}]`}u+=` +`;try{(0,Tl.appendFileSync)(Sh,u)}catch(d){console.error("[silent-debug] Failed to write to log:",d)}return r}var _e,ie,Te=null,xh="cm__claude-mem";try{_e=new Fs,ie=new Ms}catch(s){console.error("[search-server] Failed to initialize search:",s.message),process.exit(1)}async function Ye(s,e,r){if(!Te)throw new Error("Chroma client not initialized");Br("queryChroma called",{query:s,limit:e,whereFilter:r});let a=r?JSON.stringify(r):void 0;Br("where filter stringified",{whereFilter:r,whereStringified:a});let t={collection_name:xh,query_texts:[s],n_results:e,include:["documents","metadatas","distances"],where:a};Br("calling chroma_query_documents",t);let n=await Te.callTool({name:"chroma_query_documents",arguments:t}),o=n.content[0]?.text||"";Br("chroma response received",{hasContent:!!n.content[0]?.text,textLength:o.length,textPreview:o.substring(0,200)});let i;try{i=JSON.parse(o)}catch(m){return console.error("[search-server] Failed to parse Chroma response as JSON:",m),console.error("[search-server] Raw Chroma response:",o),{ids:[],distances:[],metadatas:[]}}let l=[],u=i.ids?.[0]||[];for(let m of u){let p=m.match(/obs_(\d+)_/),g=m.match(/summary_(\d+)_/),y=m.match(/prompt_(\d+)/),v=null;p?v=parseInt(p[1],10):g?v=parseInt(g[1],10):y&&(v=parseInt(y[1],10)),v!==null&&!l.includes(v)&&l.push(v)}let d=i.distances?.[0]||[],f=i.metadatas?.[0]||[];return{ids:l,distances:d,metadatas:f}}function ar(){return` +--- +\u{1F4A1} Search Strategy: +ALWAYS search with index format FIRST to get an overview and identify relevant results. +This is critical for token efficiency - index format uses ~10x fewer tokens than full format. + +Search workflow: +1. Initial search: Use default (index) format to see titles, dates, and sources +2. Review results: Identify which items are most relevant to your needs +3. Deep dive: Only then use format: "full" on specific items of interest +4. Narrow down: Use filters (type, dateRange, concepts, files) to refine results + +Other tips: +\u2022 To search by concept: Use find_by_concept tool +\u2022 To browse by type: Use find_by_type with ["decision", "feature", etc.] +\u2022 To sort by date: Use orderBy: "date_desc" or "date_asc"`}function At(s,e){let r=s.title||`Observation #${s.id}`,a=new Date(s.created_at_epoch).toLocaleString(),t=s.type?`[${s.type}]`:"";return`${e+1}. ${t} ${r} + Date: ${a} + Source: claude-mem://observation/${s.id}`}function on(s,e){let r=s.request||`Session ${s.sdk_session_id?.substring(0,8)||"unknown"}`,a=new Date(s.created_at_epoch).toLocaleString();return`${e+1}. ${r} + Date: ${a} + Source: claude-mem://session/${s.sdk_session_id}`}function Nt(s){let e=s.title||`Observation #${s.id}`,r=[];r.push(`## ${e}`),r.push(`*Source: claude-mem://observation/${s.id}*`),r.push(""),s.subtitle&&(r.push(`**${s.subtitle}**`),r.push("")),s.narrative&&(r.push(s.narrative),r.push("")),s.text&&(r.push(s.text),r.push(""));let a=[];if(a.push(`Type: ${s.type}`),s.facts)try{let n=JSON.parse(s.facts);n.length>0&&a.push(`Facts: ${n.join("; ")}`)}catch{}if(s.concepts)try{let n=JSON.parse(s.concepts);n.length>0&&a.push(`Concepts: ${n.join(", ")}`)}catch{}if(s.files_read||s.files_modified){let n=[];if(s.files_read)try{n.push(...JSON.parse(s.files_read))}catch{}if(s.files_modified)try{n.push(...JSON.parse(s.files_modified))}catch{}n.length>0&&a.push(`Files: ${[...new Set(n)].join(", ")}`)}a.length>0&&(r.push("---"),r.push(a.join(" | ")));let t=new Date(s.created_at_epoch).toLocaleString();return r.push(""),r.push("---"),r.push(`Date: ${t}`),r.join(` +`)}function cn(s){let e=s.request||`Session ${s.sdk_session_id?.substring(0,8)||"unknown"}`,r=[];r.push(`## ${e}`),r.push(`*Source: claude-mem://session/${s.sdk_session_id}*`),r.push(""),s.completed&&(r.push(`**Completed:** ${s.completed}`),r.push("")),s.learned&&(r.push(`**Learned:** ${s.learned}`),r.push("")),s.investigated&&(r.push(`**Investigated:** ${s.investigated}`),r.push("")),s.next_steps&&(r.push(`**Next Steps:** ${s.next_steps}`),r.push("")),s.notes&&(r.push(`**Notes:** ${s.notes}`),r.push(""));let a=[];if(s.files_read||s.files_edited){let n=[];if(s.files_read)try{n.push(...JSON.parse(s.files_read))}catch{}if(s.files_edited)try{n.push(...JSON.parse(s.files_edited))}catch{}n.length>0&&a.push(`Files: ${[...new Set(n)].join(", ")}`)}let t=new Date(s.created_at_epoch).toLocaleDateString();return a.push(`Date: ${t}`),a.length>0&&(r.push("---"),r.push(a.join(" | "))),r.join(` +`)}function Ol(s,e){let r=new Date(s.created_at_epoch).toLocaleString();return`${e+1}. "${s.prompt_text}" + Date: ${r} | Prompt #${s.prompt_number} + Source: claude-mem://user-prompt/${s.id}`}function Il(s){let e=[];e.push(`## User Prompt #${s.prompt_number}`),e.push(`*Source: claude-mem://user-prompt/${s.id}*`),e.push(""),e.push(s.prompt_text),e.push(""),e.push("---");let r=new Date(s.created_at_epoch).toLocaleString();return e.push(`Date: ${r}`),e.join(` +`)}var Rh=c.object({project:c.string().optional().describe("Filter by project name"),type:c.union([c.enum(["decision","bugfix","feature","refactor","discovery","change"]),c.array(c.enum(["decision","bugfix","feature","refactor","discovery","change"]))]).optional().describe("Filter by observation type"),concepts:c.union([c.string(),c.array(c.string())]).optional().describe("Filter by concept tags"),files:c.union([c.string(),c.array(c.string())]).optional().describe("Filter by file paths (partial match)"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional().describe("Start date (ISO string or epoch)"),end:c.union([c.string(),c.number()]).optional().describe("End date (ISO string or epoch)")}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),Al=[{name:"search",description:'Unified search across all memory types (observations, sessions, and user prompts) using vector-first semantic search (ChromaDB). Returns combined results from all document types. IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:c.object({query:c.string().optional().describe("Natural language search query for semantic ranking via ChromaDB vector search. Optional - omit for date-filtered queries only (Chroma cannot filter by date, requires direct SQLite)."),format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),type:c.enum(["observations","sessions","prompts"]).optional().describe("Filter by document type (observations, sessions, or prompts). Omit to search all types."),obs_type:c.union([c.enum(["decision","bugfix","feature","refactor","discovery","change"]),c.array(c.enum(["decision","bugfix","feature","refactor","discovery","change"]))]).optional().describe('Filter observations by type. Only applies when type="observations"'),concepts:c.union([c.string(),c.array(c.string())]).optional().describe('Filter by concept tags. Only applies when type="observations"'),files:c.union([c.string(),c.array(c.string())]).optional().describe('Filter by file paths (partial match). Only applies when type="observations"'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional().describe("Start date (ISO string or epoch)"),end:c.union([c.string(),c.number()]).optional().describe("End date (ISO string or epoch)")}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{query:e,format:r="index",type:a,obs_type:t,concepts:n,files:o,...i}=s,l=[],u=[],d=[],f=!a||a==="observations",m=!a||a==="sessions",p=!a||a==="prompts";if(e)if(Te){let w=!1;try{console.error(`[search-server] Using ChromaDB semantic search (type filter: ${a||"all"})`);let S;a==="observations"?S={doc_type:"observation"}:a==="sessions"?S={doc_type:"session_summary"}:a==="prompts"&&(S={doc_type:"user_prompt"});let R=await Ye(e,100,S);if(w=!0,console.error(`[search-server] ChromaDB returned ${R.ids.length} semantic matches`),R.ids.length>0){let x=Date.now()-7776e6,T=R.metadatas.map((D,C)=>({id:R.ids[C],meta:D,isRecent:D&&D.created_at_epoch>x})).filter(D=>D.isRecent);console.error(`[search-server] ${T.length} results within 90-day window`);let N=[],j=[],$=[];for(let D of T){let C=D.meta?.doc_type;C==="observation"&&f?N.push(D.id):C==="session_summary"&&m?j.push(D.id):C==="user_prompt"&&p&&$.push(D.id)}if(console.error(`[search-server] Categorized: ${N.length} obs, ${j.length} sessions, ${$.length} prompts`),N.length>0){let D={...i,type:t,concepts:n,files:o};l=ie.getObservationsByIds(N,D)}j.length>0&&(u=ie.getSessionSummariesByIds(j,{orderBy:"date_desc",limit:i.limit})),$.length>0&&(d=ie.getUserPromptsByIds($,{orderBy:"date_desc",limit:i.limit})),console.error(`[search-server] Hydrated ${l.length} obs, ${u.length} sessions, ${d.length} prompts from SQLite`)}else console.error("[search-server] ChromaDB found no matches (this is final - NOT falling back to FTS5)")}catch(S){console.error("[search-server] ChromaDB failed - returning empty results (FTS5 fallback removed):",S.message),console.error("[search-server] Install UVX/Python to enable vector search: https://docs.astral.sh/uv/getting-started/installation/"),l=[],u=[],d=[]}}else console.error("[search-server] ChromaDB not initialized - returning empty results (FTS5 fallback removed)"),console.error("[search-server] Install UVX/Python to enable vector search: https://docs.astral.sh/uv/getting-started/installation/"),l=[],u=[],d=[];else{console.error("[search-server] Filter-only query (no query text), using direct SQLite filtering (enables date filters)");let w={...i,type:t,concepts:n,files:o};f&&(l=_e.searchObservations(void 0,w)),m&&(u=_e.searchSessions(void 0,i)),p&&(d=_e.searchUserPrompts(void 0,i))}let g=l.length+u.length+d.length;if(g===0)return{content:[{type:"text",text:`No results found matching "${e}"`}]};let y=[...l.map(w=>({type:"observation",data:w,epoch:w.created_at_epoch})),...u.map(w=>({type:"session",data:w,epoch:w.created_at_epoch})),...d.map(w=>({type:"prompt",data:w,epoch:w.created_at_epoch}))];i.orderBy==="date_desc"?y.sort((w,S)=>S.epoch-w.epoch):i.orderBy==="date_asc"&&y.sort((w,S)=>w.epoch-S.epoch);let v=y.slice(0,i.limit||20),E;if(r==="index"){let w=`Found ${g} result(s) matching "${e}" (${l.length} obs, ${u.length} sessions, ${d.length} prompts): + +`,S=v.map((R,x)=>R.type==="observation"?At(R.data,x):R.type==="session"?on(R.data,x):Ol(R.data,x));E=w+S.join(` + +`)+ar()}else E=v.map(S=>S.type==="observation"?Nt(S.data):S.type==="session"?cn(S.data):Il(S.data)).join(` + +--- + +`);return{content:[{type:"text",text:E}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"timeline",description:"Get a unified timeline of context around a specific point in time OR search query. Supports two modes: (1) anchor-based: provide observation ID, session ID, or timestamp to center timeline around; (2) query-based: provide natural language query to find relevant observation and center timeline around it. All record types (observations, sessions, prompts) are interleaved chronologically.",inputSchema:c.object({anchor:c.union([c.number(),c.string()]).optional().describe('Anchor point: observation ID (number), session ID (e.g., "S123"), or ISO timestamp. Use this OR query, not both.'),query:c.string().optional().describe("Natural language search query to find relevant observation as anchor. Use this OR anchor, not both."),depth_before:c.number().min(0).max(50).default(10).describe("Number of records to retrieve before anchor (default: 10)"),depth_after:c.number().min(0).max(50).default(10).describe("Number of records to retrieve after anchor (default: 10)"),project:c.string().optional().describe("Filter by project name")}),handler:async s=>{try{let g=function(x){return new Date(x).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})},y=function(x){return new Date(x).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})},v=function(x){return new Date(x).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})},E=function(x){return x?Math.ceil(x.length/4):0};var e=g,r=y,a=v,t=E;let{anchor:n,query:o,depth_before:i=10,depth_after:l=10,project:u}=s;if(!n&&!o)return{content:[{type:"text",text:'Error: Must provide either "anchor" or "query" parameter'}],isError:!0};if(n&&o)return{content:[{type:"text",text:'Error: Cannot provide both "anchor" and "query" parameters. Use one or the other.'}],isError:!0};let d,f,m;if(o){let x=[];if(Te)try{console.error("[search-server] Using hybrid semantic search for timeline query");let N=await Ye(o,100);if(console.error(`[search-server] Chroma returned ${N.ids.length} semantic matches`),N.ids.length>0){let j=Date.now()-7776e6,$=N.ids.filter((D,C)=>{let F=N.metadatas[C];return F&&F.created_at_epoch>j});$.length>0&&(x=ie.getObservationsByIds($,{orderBy:"date_desc",limit:1}))}}catch(N){console.error("[search-server] Chroma query failed - no results (FTS5 fallback removed):",N.message)}if(x.length===0)return{content:[{type:"text",text:`No observations found matching "${o}". Try a different search query.`}]};let T=x[0];d=T.id,f=T.created_at_epoch,console.error(`[search-server] Query mode: Using observation #${T.id} as timeline anchor`),m=ie.getTimelineAroundObservation(T.id,T.created_at_epoch,i,l,u)}else if(typeof n=="number"){let x=ie.getObservationById(n);if(!x)return{content:[{type:"text",text:`Observation #${n} not found`}],isError:!0};d=n,f=x.created_at_epoch,m=ie.getTimelineAroundObservation(n,f,i,l,u)}else if(typeof n=="string")if(n.startsWith("S")||n.startsWith("#S")){let x=n.replace(/^#?S/,""),T=parseInt(x,10),N=ie.getSessionSummariesByIds([T]);if(N.length===0)return{content:[{type:"text",text:`Session #${T} not found`}],isError:!0};f=N[0].created_at_epoch,d=`S${T}`,m=ie.getTimelineAroundTimestamp(f,i,l,u)}else{let x=new Date(n);if(isNaN(x.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${n}`}],isError:!0};f=x.getTime(),d=n,m=ie.getTimelineAroundTimestamp(f,i,l,u)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let p=[...m.observations.map(x=>({type:"observation",data:x,epoch:x.created_at_epoch})),...m.sessions.map(x=>({type:"session",data:x,epoch:x.created_at_epoch})),...m.prompts.map(x=>({type:"prompt",data:x,epoch:x.created_at_epoch}))];if(p.sort((x,T)=>x.epoch-T.epoch),p.length===0)return{content:[{type:"text",text:o?`Found observation matching "${o}", but no timeline context available (${i} records before, ${l} records after).`:`No context found around anchor (${i} records before, ${l} records after)`}]};let w=[];if(o){let x=p.find(N=>N.type==="observation"&&N.data.id===d),T=x?x.data.title||"Untitled":"Unknown";w.push(`# Timeline for query: "${o}"`),w.push(`**Anchor:** Observation #${d} - ${T}`)}else w.push(`# Timeline around anchor: ${d}`);w.push(`**Window:** ${i} records before \u2192 ${l} records after | **Items:** ${p.length} (${m.observations.length} obs, ${m.sessions.length} sessions, ${m.prompts.length} prompts)`),w.push(""),w.push("**Legend:** \u{1F3AF} session-request | \u{1F534} bugfix | \u{1F7E3} feature | \u{1F504} refactor | \u2705 change | \u{1F535} discovery | \u{1F9E0} decision"),w.push("");let S=new Map;for(let x of p){let T=g(x.epoch);S.has(T)||S.set(T,[]),S.get(T).push(x)}let R=Array.from(S.entries()).sort((x,T)=>{let N=new Date(x[0]).getTime(),j=new Date(T[0]).getTime();return N-j});for(let[x,T]of R){w.push(`### ${x}`),w.push("");let N=null,j="",$=!1;for(let D of T){let C=typeof d=="number"&&D.type==="observation"&&D.data.id===d||typeof d=="string"&&d.startsWith("S")&&D.type==="session"&&`S${D.data.id}`===d;if(D.type==="session"){$&&(w.push(""),$=!1,N=null,j="");let F=D.data,I=F.request||"Session summary",A=`claude-mem://session-summary/${F.id}`,M=C?" \u2190 **ANCHOR**":"";w.push(`**\u{1F3AF} #S${F.id}** ${I} (${v(D.epoch)}) [\u2192](${A})${M}`),w.push("")}else if(D.type==="prompt"){$&&(w.push(""),$=!1,N=null,j="");let F=D.data,I=F.prompt.length>100?F.prompt.substring(0,100)+"...":F.prompt;w.push(`**\u{1F4AC} User Prompt #${F.prompt_number}** (${v(D.epoch)})`),w.push(`> ${I}`),w.push("")}else if(D.type==="observation"){let F=D.data,I="General";I!==N&&($&&w.push(""),w.push(`**${I}**`),w.push("| ID | Time | T | Title | Tokens |"),w.push("|----|------|---|-------|--------|"),N=I,$=!0,j="");let A="\u2022";switch(F.type){case"bugfix":A="\u{1F534}";break;case"feature":A="\u{1F7E3}";break;case"refactor":A="\u{1F504}";break;case"change":A="\u2705";break;case"discovery":A="\u{1F535}";break;case"decision":A="\u{1F9E0}";break}let M=y(D.epoch),ee=F.title||"Untitled",Q=E(F.narrative),X=M!==j?M:"\u2033";j=M;let z=C?" \u2190 **ANCHOR**":"";w.push(`| #${F.id} | ${X} | ${A} | ${ee}${z} | ~${Q} |`)}}$&&w.push("")}return{content:[{type:"text",text:w.join(` +`)}]}}catch(n){return{content:[{type:"text",text:`Timeline query failed: ${n.message}`}],isError:!0}}}},{name:"decisions",description:'Semantic shortcut to find decision-type observations. Returns observations where important architectural, technical, or process decisions were made. Equivalent to find_by_type with type="decision".',inputSchema:c.object({format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default), "full" for complete details'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{format:e="index",...r}=s,a=[];if(Te)try{console.error("[search-server] Using metadata-first + semantic ranking for decisions");let n=_e.findByType("decision",r);if(n.length>0){let o=n.map(u=>u.id),i=await Ye("decision",Math.min(o.length,100)),l=[];for(let u of i.ids)o.includes(u)&&!l.includes(u)&&l.push(u);l.length>0&&(a=ie.getObservationsByIds(l,{limit:r.limit||20}),a.sort((u,d)=>l.indexOf(u.id)-l.indexOf(d.id)))}}catch(n){console.error("[search-server] Chroma ranking failed, using SQLite order:",n.message)}if(a.length===0&&(a=_e.findByType("decision",r)),a.length===0)return{content:[{type:"text",text:"No decision observations found"}]};let t;if(e==="index"){let n=`Found ${a.length} decision(s): + +`,o=a.map((i,l)=>At(i,l));t=n+o.join(` + +`)}else t=a.map(o=>Nt(o)).join(` + +--- + +`);return{content:[{type:"text",text:t}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"changes",description:'Semantic shortcut to find change-related observations. Returns observations documenting what changed in the codebase, system behavior, or project state. Searches for type="change" OR concept="change" OR concept="what-changed".',inputSchema:c.object({format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default), "full" for complete details'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{format:e="index",...r}=s,a=[];if(Te)try{console.error("[search-server] Using hybrid search for change-related observations");let n=_e.findByType("change",r),o=_e.findByConcept("change",r),i=_e.findByConcept("what-changed",r),l=new Set;if([...n,...o,...i].forEach(u=>l.add(u.id)),l.size>0){let u=Array.from(l),d=await Ye("what changed",Math.min(u.length,100)),f=[];for(let m of d.ids)u.includes(m)&&!f.includes(m)&&f.push(m);f.length>0&&(a=ie.getObservationsByIds(f,{limit:r.limit||20}),a.sort((m,p)=>f.indexOf(m.id)-f.indexOf(p.id)))}}catch(n){console.error("[search-server] Chroma ranking failed, using SQLite order:",n.message)}if(a.length===0){let n=_e.findByType("change",r),o=_e.findByConcept("change",r),i=_e.findByConcept("what-changed",r),l=new Set;[...n,...o,...i].forEach(u=>l.add(u.id)),a=Array.from(l).map(u=>n.find(d=>d.id===u)||o.find(d=>d.id===u)||i.find(d=>d.id===u)).filter(Boolean),a.sort((u,d)=>d.created_at_epoch-u.created_at_epoch),a=a.slice(0,r.limit||20)}if(a.length===0)return{content:[{type:"text",text:"No change-related observations found"}]};let t;if(e==="index"){let n=`Found ${a.length} change-related observation(s): + +`,o=a.map((i,l)=>At(i,l));t=n+o.join(` + +`)}else t=a.map(o=>Nt(o)).join(` + +--- + +`);return{content:[{type:"text",text:t}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"how_it_works",description:'Semantic shortcut to find "how it works" explanations. Returns observations documenting system architecture, component interactions, data flow, and technical mechanisms. Searches for concept="how-it-works".',inputSchema:c.object({format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default), "full" for complete details'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{format:e="index",...r}=s,a=[];if(Te)try{console.error("[search-server] Using metadata-first + semantic ranking for how-it-works");let n=_e.findByConcept("how-it-works",r);if(n.length>0){let o=n.map(u=>u.id),i=await Ye("how it works architecture",Math.min(o.length,100)),l=[];for(let u of i.ids)o.includes(u)&&!l.includes(u)&&l.push(u);l.length>0&&(a=ie.getObservationsByIds(l,{limit:r.limit||20}),a.sort((u,d)=>l.indexOf(u.id)-l.indexOf(d.id)))}}catch(n){console.error("[search-server] Chroma ranking failed, using SQLite order:",n.message)}if(a.length===0&&(a=_e.findByConcept("how-it-works",r)),a.length===0)return{content:[{type:"text",text:'No "how it works" observations found'}]};let t;if(e==="index"){let n=`Found ${a.length} "how it works" observation(s): + +`,o=a.map((i,l)=>At(i,l));t=n+o.join(` + +`)}else t=a.map(o=>Nt(o)).join(` + +--- + +`);return{content:[{type:"text",text:t}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"search_observations",description:'DEPRECATED: Use the unified "search" tool instead. Search observations using vector-first semantic search (ChromaDB). IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:c.object({query:c.string().describe("Natural language search query for semantic ranking via ChromaDB vector search"),format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),...Rh.shape}),handler:async s=>{try{let{query:e,format:r="index",...a}=s,t=[];if(Te)try{console.error("[search-server] Using hybrid semantic search (Chroma + SQLite)");let o=await Ye(e,100);if(console.error(`[search-server] Chroma returned ${o.ids.length} semantic matches`),o.ids.length>0){let i=Date.now()-7776e6,l=o.ids.filter((u,d)=>{let f=o.metadatas[d];return f&&f.created_at_epoch>i});if(console.error(`[search-server] ${l.length} results within 90-day window`),l.length>0){let u=a.limit||20;t=ie.getObservationsByIds(l,{orderBy:"date_desc",limit:u}),console.error(`[search-server] Hydrated ${t.length} observations from SQLite`)}}}catch(o){console.error("[search-server] Chroma query failed - no results (FTS5 fallback removed):",o.message)}if(t.length===0)return{content:[{type:"text",text:`No observations found matching "${e}"`}]};let n;if(r==="index"){let o=`Found ${t.length} observation(s) matching "${e}": + +`,i=t.map((l,u)=>At(l,u));n=o+i.join(` + +`)+ar()}else n=t.map(i=>Nt(i)).join(` + +--- + +`);return{content:[{type:"text",text:n}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"search_sessions",description:'DEPRECATED: Use the unified "search" tool instead. Search session summaries using vector-first semantic search (ChromaDB). IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:c.object({query:c.string().describe("Natural language search query for semantic ranking via ChromaDB vector search"),format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{query:e,format:r="index",...a}=s,t=[];if(Te)try{console.error("[search-server] Using hybrid semantic search for sessions");let o=await Ye(e,100,{doc_type:"session_summary"});if(console.error(`[search-server] Chroma returned ${o.ids.length} semantic matches`),o.ids.length>0){let i=Date.now()-7776e6,l=o.ids.filter((u,d)=>{let f=o.metadatas[d];return f&&f.created_at_epoch>i});if(console.error(`[search-server] ${l.length} results within 90-day window`),l.length>0){let u=a.limit||20;t=ie.getSessionSummariesByIds(l,{orderBy:"date_desc",limit:u}),console.error(`[search-server] Hydrated ${t.length} sessions from SQLite`)}}}catch(o){console.error("[search-server] Chroma query failed - no results (FTS5 fallback removed):",o.message)}if(t.length===0)return{content:[{type:"text",text:`No sessions found matching "${e}"`}]};let n;if(r==="index"){let o=`Found ${t.length} session(s) matching "${e}": + +`,i=t.map((l,u)=>on(l,u));n=o+i.join(` + +`)+ar()}else n=t.map(i=>cn(i)).join(` + +--- + +`);return{content:[{type:"text",text:n}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"find_by_concept",description:'Find observations tagged with a specific concept. Available concepts: "discovery", "problem-solution", "what-changed", "how-it-works", "pattern", "gotcha", "change". IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:c.object({concept:c.string().describe("Concept tag to search for. Available: discovery, problem-solution, what-changed, how-it-works, pattern, gotcha, change"),format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum results. IMPORTANT: Start with 3-5 to avoid exceeding MCP token limits, even in index mode."),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{concept:e,format:r="index",...a}=s,t=[];if(Te)try{console.error("[search-server] Using metadata-first + semantic ranking for concept search");let o=_e.findByConcept(e,a);if(console.error(`[search-server] Found ${o.length} observations with concept "${e}"`),o.length>0){let i=o.map(d=>d.id),l=await Ye(e,Math.min(i.length,100)),u=[];for(let d of l.ids)i.includes(d)&&!u.includes(d)&&u.push(d);console.error(`[search-server] Chroma ranked ${u.length} results by semantic relevance`),u.length>0&&(t=ie.getObservationsByIds(u,{limit:a.limit||20}),t.sort((d,f)=>u.indexOf(d.id)-u.indexOf(f.id)))}}catch(o){console.error("[search-server] Chroma ranking failed, using SQLite order:",o.message)}if(t.length===0&&(console.error("[search-server] Using SQLite-only concept search"),t=_e.findByConcept(e,a)),t.length===0)return{content:[{type:"text",text:`No observations found with concept "${e}"`}]};let n;if(r==="index"){let o=`Found ${t.length} observation(s) with concept "${e}": + +`,i=t.map((l,u)=>At(l,u));n=o+i.join(` + +`)+ar()}else n=t.map(i=>Nt(i)).join(` + +--- + +`);return{content:[{type:"text",text:n}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"find_by_file",description:'Find observations and sessions that reference a specific file path. IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:c.object({filePath:c.string().describe("File path to search for (supports partial matching)"),format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum results. IMPORTANT: Start with 3-5 to avoid exceeding MCP token limits, even in index mode."),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{filePath:e,format:r="index",...a}=s,t=[],n=[];if(Te)try{console.error("[search-server] Using metadata-first + semantic ranking for file search");let l=_e.findByFile(e,a);if(console.error(`[search-server] Found ${l.observations.length} observations, ${l.sessions.length} sessions for file "${e}"`),n=l.sessions,l.observations.length>0){let u=l.observations.map(m=>m.id),d=await Ye(e,Math.min(u.length,100)),f=[];for(let m of d.ids)u.includes(m)&&!f.includes(m)&&f.push(m);console.error(`[search-server] Chroma ranked ${f.length} observations by semantic relevance`),f.length>0&&(t=ie.getObservationsByIds(f,{limit:a.limit||20}),t.sort((m,p)=>f.indexOf(m.id)-f.indexOf(p.id)))}}catch(l){console.error("[search-server] Chroma ranking failed, using SQLite order:",l.message)}if(t.length===0&&n.length===0){console.error("[search-server] Using SQLite-only file search");let l=_e.findByFile(e,a);t=l.observations,n=l.sessions}let o=t.length+n.length;if(o===0)return{content:[{type:"text",text:`No results found for file "${e}"`}]};let i;if(r==="index"){let l=`Found ${o} result(s) for file "${e}": + +`,u=[];t.forEach((d,f)=>{u.push(At(d,f))}),n.forEach((d,f)=>{u.push(on(d,f+t.length))}),i=l+u.join(` + +`)+ar()}else{let l=[];t.forEach(u=>{l.push(Nt(u))}),n.forEach(u=>{l.push(cn(u))}),i=l.join(` + +--- + +`)}return{content:[{type:"text",text:i}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"find_by_type",description:'Find observations of a specific type (decision, bugfix, feature, refactor, discovery, change). IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:c.object({type:c.union([c.enum(["decision","bugfix","feature","refactor","discovery","change"]),c.array(c.enum(["decision","bugfix","feature","refactor","discovery","change"]))]).describe("Observation type(s) to filter by"),format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum results. IMPORTANT: Start with 3-5 to avoid exceeding MCP token limits, even in index mode."),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{type:e,format:r="index",...a}=s,t=Array.isArray(e)?e.join(", "):e,n=[];if(Te)try{console.error("[search-server] Using metadata-first + semantic ranking for type search");let i=_e.findByType(e,a);if(console.error(`[search-server] Found ${i.length} observations with type "${t}"`),i.length>0){let l=i.map(f=>f.id),u=await Ye(t,Math.min(l.length,100)),d=[];for(let f of u.ids)l.includes(f)&&!d.includes(f)&&d.push(f);console.error(`[search-server] Chroma ranked ${d.length} results by semantic relevance`),d.length>0&&(n=ie.getObservationsByIds(d,{limit:a.limit||20}),n.sort((f,m)=>d.indexOf(f.id)-d.indexOf(m.id)))}}catch(i){console.error("[search-server] Chroma ranking failed, using SQLite order:",i.message)}if(n.length===0&&(console.error("[search-server] Using SQLite-only type search"),n=_e.findByType(e,a)),n.length===0)return{content:[{type:"text",text:`No observations found with type "${t}"`}]};let o;if(r==="index"){let i=`Found ${n.length} observation(s) with type "${t}": + +`,l=n.map((u,d)=>At(u,d));o=i+l.join(` + +`)+ar()}else o=n.map(l=>Nt(l)).join(` + +--- + +`);return{content:[{type:"text",text:o}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"get_recent_context",description:"Get recent session context including summaries and observations for a project",inputSchema:c.object({project:c.string().optional().describe("Project name (defaults to current working directory basename)"),limit:c.number().min(1).max(10).default(3).describe("Number of recent sessions to retrieve")}),handler:async s=>{try{let e=s.project||(0,$l.basename)(process.cwd()),r=s.limit||3,a=ie.getRecentSessionsWithStatus(e,r);if(a.length===0)return{content:[{type:"text",text:`# Recent Session Context + +No previous sessions found for project "${e}".`}]};let t=[];t.push("# Recent Session Context"),t.push(""),t.push(`Showing last ${a.length} session(s) for **${e}**:`),t.push("");for(let n of a)if(n.sdk_session_id){if(t.push("---"),t.push(""),n.has_summary){let o=ie.getSummaryForSession(n.sdk_session_id);if(o){let i=o.prompt_number?` (Prompt #${o.prompt_number})`:"";if(t.push(`**Summary${i}**`),t.push(""),o.request&&t.push(`**Request:** ${o.request}`),o.completed&&t.push(`**Completed:** ${o.completed}`),o.learned&&t.push(`**Learned:** ${o.learned}`),o.next_steps&&t.push(`**Next Steps:** ${o.next_steps}`),o.files_read)try{let u=JSON.parse(o.files_read);Array.isArray(u)&&u.length>0&&t.push(`**Files Read:** ${u.join(", ")}`)}catch{o.files_read.trim()&&t.push(`**Files Read:** ${o.files_read}`)}if(o.files_edited)try{let u=JSON.parse(o.files_edited);Array.isArray(u)&&u.length>0&&t.push(`**Files Edited:** ${u.join(", ")}`)}catch{o.files_edited.trim()&&t.push(`**Files Edited:** ${o.files_edited}`)}let l=new Date(o.created_at).toLocaleString();t.push(`**Date:** ${l}`)}}else if(n.status==="active"){t.push("**In Progress**"),t.push(""),n.user_prompt&&t.push(`**Request:** ${n.user_prompt}`);let o=ie.getObservationsForSession(n.sdk_session_id);if(o.length>0){t.push(""),t.push(`**Observations (${o.length}):**`);for(let l of o)t.push(`- ${l.title}`)}else t.push(""),t.push("*No observations yet*");t.push(""),t.push("**Status:** Active - summary pending");let i=new Date(n.started_at).toLocaleString();t.push(`**Date:** ${i}`)}else{t.push(`**${n.status.charAt(0).toUpperCase()+n.status.slice(1)}**`),t.push(""),n.user_prompt&&t.push(`**Request:** ${n.user_prompt}`),t.push(""),t.push(`**Status:** ${n.status} - no summary available`);let o=new Date(n.started_at).toLocaleString();t.push(`**Date:** ${o}`)}t.push("")}return{content:[{type:"text",text:t.join(` +`)}]}}catch(e){return{content:[{type:"text",text:`Failed to get recent context: ${e.message}`}],isError:!0}}}},{name:"search_user_prompts",description:'DEPRECATED: Use the unified "search" tool instead. Search raw user prompts using vector-first semantic search (ChromaDB). Use this to find what the user actually said/requested across all sessions. IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:c.object({query:c.string().describe("Natural language search query for semantic ranking via ChromaDB vector search"),format:c.enum(["index","full"]).default("index").describe('Output format: "index" for truncated prompts/dates (default, RECOMMENDED for initial search), "full" for complete prompt text (use only after reviewing index results)'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{query:e,format:r="index",...a}=s,t=[];if(Te)try{console.error("[search-server] Using hybrid semantic search for user prompts");let o=await Ye(e,100,{doc_type:"user_prompt"});if(console.error(`[search-server] Chroma returned ${o.ids.length} semantic matches`),o.ids.length>0){let i=Date.now()-7776e6,l=o.ids.filter((u,d)=>{let f=o.metadatas[d];return f&&f.created_at_epoch>i});if(console.error(`[search-server] ${l.length} results within 90-day window`),l.length>0){let u=a.limit||20;t=ie.getUserPromptsByIds(l,{orderBy:"date_desc",limit:u}),console.error(`[search-server] Hydrated ${t.length} user prompts from SQLite`)}}}catch(o){console.error("[search-server] Chroma query failed - no results (FTS5 fallback removed):",o.message)}if(t.length===0)return{content:[{type:"text",text:`No user prompts found matching "${e}"`}]};let n;if(r==="index"){let o=`Found ${t.length} user prompt(s) matching "${e}": + +`,i=t.map((l,u)=>Ol(l,u));n=o+i.join(` + +`)+ar()}else n=t.map(i=>Il(i)).join(` + +--- + +`);return{content:[{type:"text",text:n}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"get_context_timeline",description:'Get a unified timeline of context (observations, sessions, and prompts) around a specific point in time. All record types are interleaved chronologically. Useful for understanding "what was happening when X occurred". Returns depth_before records before anchor + anchor + depth_after records after (total: depth_before + 1 + depth_after mixed records).',inputSchema:c.object({anchor:c.union([c.number().describe("Observation ID to center timeline around"),c.string().describe("Session ID (format: S123) or ISO timestamp to center timeline around")]).describe('Anchor point: observation ID, session ID (e.g., "S123"), or ISO timestamp'),depth_before:c.number().min(0).max(50).default(10).describe("Number of records to retrieve before anchor, not including anchor (default: 10)"),depth_after:c.number().min(0).max(50).default(10).describe("Number of records to retrieve after anchor, not including anchor (default: 10)"),project:c.string().optional().describe("Filter by project name")}),handler:async s=>{try{let p=function(R){return new Date(R).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})},g=function(R){return new Date(R).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})},y=function(R){return new Date(R).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})},v=function(R){return R?Math.ceil(R.length/4):0};var e=p,r=g,a=y,t=v;let{anchor:n,depth_before:o=10,depth_after:i=10,project:l}=s,u,d=n,f;if(typeof n=="number"){let R=ie.getObservationById(n);if(!R)return{content:[{type:"text",text:`Observation #${n} not found`}],isError:!0};u=R.created_at_epoch,f=ie.getTimelineAroundObservation(n,u,o,i,l)}else if(typeof n=="string")if(n.startsWith("S")||n.startsWith("#S")){let R=n.replace(/^#?S/,""),x=parseInt(R,10),T=ie.getSessionSummariesByIds([x]);if(T.length===0)return{content:[{type:"text",text:`Session #${x} not found`}],isError:!0};u=T[0].created_at_epoch,d=`S${x}`,f=ie.getTimelineAroundTimestamp(u,o,i,l)}else{let R=new Date(n);if(isNaN(R.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${n}`}],isError:!0};u=R.getTime(),f=ie.getTimelineAroundTimestamp(u,o,i,l)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let m=[...f.observations.map(R=>({type:"observation",data:R,epoch:R.created_at_epoch})),...f.sessions.map(R=>({type:"session",data:R,epoch:R.created_at_epoch})),...f.prompts.map(R=>({type:"prompt",data:R,epoch:R.created_at_epoch}))];if(m.sort((R,x)=>R.epoch-x.epoch),m.length===0)return{content:[{type:"text",text:`No context found around ${new Date(u).toLocaleString()} (${o} records before, ${i} records after)`}]};let E=[];E.push(`# Timeline around anchor: ${d}`),E.push(`**Window:** ${o} records before \u2192 ${i} records after | **Items:** ${m.length} (${f.observations.length} obs, ${f.sessions.length} sessions, ${f.prompts.length} prompts)`),E.push(""),E.push("**Legend:** \u{1F3AF} session-request | \u{1F534} bugfix | \u{1F7E3} feature | \u{1F504} refactor | \u2705 change | \u{1F535} discovery | \u{1F9E0} decision"),E.push("");let w=new Map;for(let R of m){let x=p(R.epoch);w.has(x)||w.set(x,[]),w.get(x).push(R)}let S=Array.from(w.entries()).sort((R,x)=>{let T=new Date(R[0]).getTime(),N=new Date(x[0]).getTime();return T-N});for(let[R,x]of S){E.push(`### ${R}`),E.push("");let T=null,N="",j=!1;for(let $ of x){let D=typeof d=="number"&&$.type==="observation"&&$.data.id===d||typeof d=="string"&&d.startsWith("S")&&$.type==="session"&&`S${$.data.id}`===d;if($.type==="session"){j&&(E.push(""),j=!1,T=null,N="");let C=$.data,F=C.request||"Session summary",I=`claude-mem://session-summary/${C.id}`,A=D?" \u2190 **ANCHOR**":"";E.push(`**\u{1F3AF} #S${C.id}** ${F} (${y($.epoch)}) [\u2192](${I})${A}`),E.push("")}else if($.type==="prompt"){j&&(E.push(""),j=!1,T=null,N="");let C=$.data,F=C.prompt.length>100?C.prompt.substring(0,100)+"...":C.prompt;E.push(`**\u{1F4AC} User Prompt #${C.prompt_number}** (${y($.epoch)})`),E.push(`> ${F}`),E.push("")}else if($.type==="observation"){let C=$.data,F="General";F!==T&&(j&&E.push(""),E.push(`**${F}**`),E.push("| ID | Time | T | Title | Tokens |"),E.push("|----|------|---|-------|--------|"),T=F,j=!0,N="");let I="\u2022";switch(C.type){case"bugfix":I="\u{1F534}";break;case"feature":I="\u{1F7E3}";break;case"refactor":I="\u{1F504}";break;case"change":I="\u2705";break;case"discovery":I="\u{1F535}";break;case"decision":I="\u{1F9E0}";break}let A=g($.epoch),M=C.title||"Untitled",ee=v(C.narrative),Y=A!==N?A:"\u2033";N=A;let X=D?" \u2190 **ANCHOR**":"";E.push(`| #${C.id} | ${Y} | ${I} | ${M}${X} | ~${ee} |`)}}j&&E.push("")}return{content:[{type:"text",text:E.join(` +`)}]}}catch(n){return{content:[{type:"text",text:`Timeline query failed: ${n.message}`}],isError:!0}}}},{name:"get_timeline_by_query",description:'Search for observations using natural language and get timeline context around the best match. Two modes: "auto" (default) automatically uses top result as timeline anchor; "interactive" returns top matches for you to choose from. This combines search + timeline into a single operation for faster context discovery.',inputSchema:c.object({query:c.string().describe("Natural language search query to find relevant observations"),mode:c.enum(["auto","interactive"]).default("auto").describe("auto: Automatically use top search result as timeline anchor. interactive: Show top N search results for manual anchor selection."),depth_before:c.number().min(0).max(50).default(10).describe("Number of timeline records before anchor (default: 10)"),depth_after:c.number().min(0).max(50).default(10).describe("Number of timeline records after anchor (default: 10)"),limit:c.number().min(1).max(20).default(5).describe("For interactive mode: number of top search results to display (default: 5)"),project:c.string().optional().describe("Filter by project name")}),handler:async s=>{try{let{query:n,mode:o="auto",depth_before:i=10,depth_after:l=10,limit:u=5,project:d}=s,f=[];if(Te)try{console.error("[search-server] Using hybrid semantic search for timeline query");let m=await Ye(n,100);if(console.error(`[search-server] Chroma returned ${m.ids.length} semantic matches`),m.ids.length>0){let p=Date.now()-7776e6,g=m.ids.filter((y,v)=>{let E=m.metadatas[v];return E&&E.created_at_epoch>p});console.error(`[search-server] ${g.length} results within 90-day window`),g.length>0&&(f=ie.getObservationsByIds(g,{orderBy:"date_desc",limit:o==="auto"?1:u}),console.error(`[search-server] Hydrated ${f.length} observations from SQLite`))}}catch(m){console.error("[search-server] Chroma query failed - no results (FTS5 fallback removed):",m.message)}if(f.length===0)return{content:[{type:"text",text:`No observations found matching "${n}". Try a different search query.`}]};if(o==="interactive"){let m=[];m.push("# Timeline Anchor Search Results"),m.push(""),m.push(`Found ${f.length} observation(s) matching "${n}"`),m.push(""),m.push("To get timeline context around any of these observations, use the `get_context_timeline` tool with the observation ID as the anchor."),m.push(""),m.push(`**Top ${f.length} matches:**`),m.push("");for(let p=0;p({type:"observation",data:T,epoch:T.created_at_epoch})),...p.sessions.map(T=>({type:"session",data:T,epoch:T.created_at_epoch})),...p.prompts.map(T=>({type:"prompt",data:T,epoch:T.created_at_epoch}))];if(g.sort((T,N)=>T.epoch-N.epoch),g.length===0)return{content:[{type:"text",text:`Found observation #${m.id} matching "${n}", but no timeline context available (${i} records before, ${l} records after).`}]};let S=[];S.push(`# Timeline for query: "${n}"`),S.push(`**Anchor:** Observation #${m.id} - ${m.title||"Untitled"}`),S.push(`**Window:** ${i} records before \u2192 ${l} records after | **Items:** ${g.length} (${p.observations.length} obs, ${p.sessions.length} sessions, ${p.prompts.length} prompts)`),S.push(""),S.push("**Legend:** \u{1F3AF} session-request | \u{1F534} bugfix | \u{1F7E3} feature | \u{1F504} refactor | \u2705 change | \u{1F535} discovery | \u{1F9E0} decision"),S.push("");let R=new Map;for(let T of g){let N=y(T.epoch);R.has(N)||R.set(N,[]),R.get(N).push(T)}let x=Array.from(R.entries()).sort((T,N)=>{let j=new Date(T[0]).getTime(),$=new Date(N[0]).getTime();return j-$});for(let[T,N]of x){S.push(`### ${T}`),S.push("");let j=null,$="",D=!1;for(let C of N){let F=C.type==="observation"&&C.data.id===m.id;if(C.type==="session"){D&&(S.push(""),D=!1,j=null,$="");let I=C.data,A=I.request||"Session summary",M=`claude-mem://session-summary/${I.id}`;S.push(`**\u{1F3AF} #S${I.id}** ${A} (${E(C.epoch)}) [\u2192](${M})`),S.push("")}else if(C.type==="prompt"){D&&(S.push(""),D=!1,j=null,$="");let I=C.data,A=I.prompt.length>100?I.prompt.substring(0,100)+"...":I.prompt;S.push(`**\u{1F4AC} User Prompt #${I.prompt_number}** (${E(C.epoch)})`),S.push(`> ${A}`),S.push("")}else if(C.type==="observation"){let I=C.data,A="General";A!==j&&(D&&S.push(""),S.push(`**${A}**`),S.push("| ID | Time | T | Title | Tokens |"),S.push("|----|------|---|-------|--------|"),j=A,D=!0,$="");let M="\u2022";switch(I.type){case"bugfix":M="\u{1F534}";break;case"feature":M="\u{1F7E3}";break;case"refactor":M="\u{1F504}";break;case"change":M="\u2705";break;case"discovery":M="\u{1F535}";break;case"decision":M="\u{1F9E0}";break}let ee=v(C.epoch),Q=I.title||"Untitled",Y=w(I.narrative),z=ee!==$?ee:"\u2033";$=ee;let pe=F?" \u2190 **ANCHOR**":"";S.push(`| #${I.id} | ${z} | ${M} | ${Q}${pe} | ~${Y} |`)}}D&&S.push("")}return{content:[{type:"text",text:S.join(` +`)}]}}}catch(n){return{content:[{type:"text",text:`Timeline query failed: ${n.message}`}],isError:!0}}}}],ln=new ws({name:"claude-mem-search",version:"1.0.0"},{capabilities:{tools:{}}});ln.setRequestHandler(ia,async()=>({tools:Al.map(s=>({name:s.name,description:s.description,inputSchema:en(s.inputSchema)}))}));ln.setRequestHandler(la,async s=>{let e=Al.find(r=>r.name===s.params.name);if(!e)throw new Error(`Unknown tool: ${s.params.name}`);try{return await e.handler(s.params.arguments||{})}catch(r){return{content:[{type:"text",text:`Tool execution failed: ${r.message}`}],isError:!0}}});async function Nl(){if(console.error("[search-server] Shutting down..."),Te)try{await Te.close(),console.error("[search-server] Chroma client closed")}catch(s){console.error("[search-server] Error closing Chroma client:",s.message)}if(_e)try{_e.close(),console.error("[search-server] SessionSearch closed")}catch(s){console.error("[search-server] Error closing SessionSearch:",s.message)}if(ie)try{ie.close(),console.error("[search-server] SessionStore closed")}catch(s){console.error("[search-server] Error closing SessionStore:",s.message)}console.error("[search-server] Shutdown complete"),process.exit(0)}process.on("SIGTERM",Nl);process.on("SIGINT",Nl);async function Th(){let s=new Os;await ln.connect(s),console.error("[search-server] Claude-mem search server started"),setTimeout(async()=>{try{console.error("[search-server] Initializing Chroma client...");let e=new As({command:"uvx",args:["chroma-mcp","--client-type","persistent","--data-dir",El],stderr:"ignore"}),r=new Is({name:"claude-mem-search-chroma-client",version:"1.0.0"},{capabilities:{}});await r.connect(e),Te=r,console.error("[search-server] Chroma client connected successfully")}catch(e){console.error("[search-server] Failed to initialize Chroma client:",e.message),console.error("[search-server] Vector search unavailable - text queries will return empty results (FTS5 fallback removed)"),console.error("[search-server] Install UVX/Python to enable vector search: https://docs.astral.sh/uv/getting-started/installation/"),Te=null}},0)}Th().catch(s=>{console.error("[search-server] Fatal error:",s),process.exit(1)}); +/*! Bundled license information: + +uri-js/dist/es5/uri.all.js: + (** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js *) +*/ diff --git a/plugin/scripts/search-server.mjs b/plugin/scripts/search-server.mjs index 65813732..792ceb7d 100755 --- a/plugin/scripts/search-server.mjs +++ b/plugin/scripts/search-server.mjs @@ -1,5 +1,11 @@ #!/usr/bin/env node -import{Server as he}from"@modelcontextprotocol/sdk/server/index.js";import{StdioServerTransport as _e}from"@modelcontextprotocol/sdk/server/stdio.js";import{Client as fe}from"@modelcontextprotocol/sdk/client/index.js";import{StdioClientTransport as Ee}from"@modelcontextprotocol/sdk/client/stdio.js";import{CallToolRequestSchema as be,ListToolsRequestSchema as ge}from"@modelcontextprotocol/sdk/types.js";import{z as i}from"zod";import{zodToJsonSchema as Te}from"zod-to-json-schema";import{basename as Se}from"path";import pe from"better-sqlite3";import{join as L,dirname as ce,basename as xe}from"path";import{homedir as ee}from"os";import{existsSync as De,mkdirSync as de}from"fs";import{fileURLToPath as le}from"url";function ue(){return typeof __dirname<"u"?__dirname:ce(le(import.meta.url))}var $e=ue(),w=process.env.CLAUDE_MEM_DATA_DIR||L(ee(),".claude-mem"),V=process.env.CLAUDE_CONFIG_DIR||L(ee(),".claude"),ke=L(w,"archives"),Fe=L(w,"logs"),Ue=L(w,"trash"),Me=L(w,"backups"),je=L(w,"settings.json"),X=L(w,"claude-mem.db"),te=L(w,"vector-db"),Be=L(V,"settings.json"),Xe=L(V,"commands"),Pe=L(V,"CLAUDE.md");function P(c){de(c,{recursive:!0})}var G=class{db;constructor(e){e||(P(w),e=X),this.db=new pe(e),this.db.pragma("journal_mode = WAL"),this.ensureFTSTables()}ensureFTSTables(){try{if(this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%_fts'").all().some(r=>r.name==="observations_fts"||r.name==="session_summaries_fts"))return;console.error("[SessionSearch] Creating FTS5 tables..."),this.db.exec(` +var Hl=Object.create;var Vs=Object.defineProperty;var zl=Object.getOwnPropertyDescriptor;var Zl=Object.getOwnPropertyNames;var Gl=Object.getPrototypeOf,Ql=Object.prototype.hasOwnProperty;var Rt=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+s+'" is not supported')});var H=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports),Wl=(s,e)=>{for(var r in e)Vs(s,r,{get:e[r],enumerable:!0})},Xl=(s,e,r,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of Zl(e))!Ql.call(s,t)&&t!==r&&Vs(s,t,{get:()=>e[t],enumerable:!(a=zl(e,t))||a.enumerable});return s};var Hs=(s,e,r)=>(r=s!=null?Hl(Gl(s)):{},Xl(e||!s||!s.__esModule?Vs(r,"default",{value:s,enumerable:!0}):r,s));var Gn=H((os,Zn)=>{(function(s,e){typeof os=="object"&&typeof Zn<"u"?e(os):typeof define=="function"&&define.amd?define(["exports"],e):e(s.URI=s.URI||{})})(os,(function(s){"use strict";function e(){for(var b=arguments.length,m=Array(b),E=0;E1){m[0]=m[0].slice(0,-1);for(var P=m.length-1,O=1;O= 0x80 (not a basic code point)","invalid-input":"Invalid input"},I=d-g,F=Math.floor,k=String.fromCharCode;function j(b){throw new RangeError(L[b])}function $(b,m){for(var E=[],P=b.length;P--;)E[P]=m(b[P]);return E}function A(b,m){var E=b.split("@"),P="";E.length>1&&(P=E[0]+"@",b=E[1]),b=b.replace(N,".");var O=b.split("."),B=$(O,m).join(".");return P+B}function M(b){for(var m=[],E=0,P=b.length;E=55296&&O<=56319&&E>1,m+=F(m/E);m>I*v>>1;O+=d)m=F(m/I);return F(O+(I+1)*m/(m+y))},z=function(m){var E=[],P=m.length,O=0,B=S,K=R,ae=m.lastIndexOf(w);ae<0&&(ae=0);for(var le=0;le=128&&j("not-basic"),E.push(m.charCodeAt(le));for(var Se=ae>0?ae+1:0;Se=P&&j("invalid-input");var fe=W(m.charCodeAt(Se++));(fe>=d||fe>F((f-O)/ve))&&j("overflow"),O+=fe*ve;var ie=xe<=K?g:xe>=K+v?v:xe-K;if(feF(f/ge)&&j("overflow"),ve*=ge}var de=E.length+1;K=Q(O-se,de,se==0),F(O/de)>f-B&&j("overflow"),B+=F(O/de),O%=de,E.splice(O++,0,B)}return String.fromCodePoint.apply(String,E)},he=function(m){var E=[];m=M(m);var P=m.length,O=S,B=0,K=R,ae=!0,le=!1,Se=void 0;try{for(var se=m[Symbol.iterator](),ve;!(ae=(ve=se.next()).done);ae=!0){var xe=ve.value;xe<128&&E.push(k(xe))}}catch(Mt){le=!0,Se=Mt}finally{try{!ae&&se.return&&se.return()}finally{if(le)throw Se}}var fe=E.length,ie=fe;for(fe&&E.push(w);ie=O&&VeF((f-B)/Ze)&&j("overflow"),B+=(ge-O)*Ze,O=ge;var it=!0,Ft=!1,ft=void 0;try{for(var wr=m[Symbol.iterator](),Br;!(it=(Br=wr.next()).done);it=!0){var Vr=Br.value;if(Vrf&&j("overflow"),Vr==O){for(var or=B,ir=d;;ir+=d){var mt=ir<=K?g:ir>=K+v?v:ir-K;if(or>6|192).toString(16).toUpperCase()+"%"+(m&63|128).toString(16).toUpperCase():E="%"+(m>>12|224).toString(16).toUpperCase()+"%"+(m>>6&63|128).toString(16).toUpperCase()+"%"+(m&63|128).toString(16).toUpperCase(),E}function De(b){for(var m="",E=0,P=b.length;E=194&&O<224){if(P-E>=6){var B=parseInt(b.substr(E+4,2),16);m+=String.fromCharCode((O&31)<<6|B&63)}else m+=b.substr(E,6);E+=6}else if(O>=224){if(P-E>=9){var K=parseInt(b.substr(E+4,2),16),ae=parseInt(b.substr(E+7,2),16);m+=String.fromCharCode((O&15)<<12|(K&63)<<6|ae&63)}else m+=b.substr(E,9);E+=9}else m+=b.substr(E,3),E+=3}return m}function St(b,m){function E(P){var O=De(P);return O.match(m.UNRESERVED)?O:P}return b.scheme&&(b.scheme=String(b.scheme).replace(m.PCT_ENCODED,E).toLowerCase().replace(m.NOT_SCHEME,"")),b.userinfo!==void 0&&(b.userinfo=String(b.userinfo).replace(m.PCT_ENCODED,E).replace(m.NOT_USERINFO,Re).replace(m.PCT_ENCODED,t)),b.host!==void 0&&(b.host=String(b.host).replace(m.PCT_ENCODED,E).toLowerCase().replace(m.NOT_HOST,Re).replace(m.PCT_ENCODED,t)),b.path!==void 0&&(b.path=String(b.path).replace(m.PCT_ENCODED,E).replace(b.scheme?m.NOT_PATH:m.NOT_PATH_NOSCHEME,Re).replace(m.PCT_ENCODED,t)),b.query!==void 0&&(b.query=String(b.query).replace(m.PCT_ENCODED,E).replace(m.NOT_QUERY,Re).replace(m.PCT_ENCODED,t)),b.fragment!==void 0&&(b.fragment=String(b.fragment).replace(m.PCT_ENCODED,E).replace(m.NOT_FRAGMENT,Re).replace(m.PCT_ENCODED,t)),b}function pt(b){return b.replace(/^0*(.*)/,"$1")||"0"}function Ee(b,m){var E=b.match(m.IPV4ADDRESS)||[],P=p(E,2),O=P[1];return O?O.split(".").map(pt).join("."):b}function ye(b,m){var E=b.match(m.IPV6ADDRESS)||[],P=p(E,3),O=P[1],B=P[2];if(O){for(var K=O.toLowerCase().split("::").reverse(),ae=p(K,2),le=ae[0],Se=ae[1],se=Se?Se.split(":").map(pt):[],ve=le.split(":").map(pt),xe=m.IPV4ADDRESS.test(ve[ve.length-1]),fe=xe?7:8,ie=ve.length-fe,ge=Array(fe),de=0;de1){var pe=ge.slice(0,Be.index),Ve=ge.slice(Be.index+Be.length);ze=pe.join(":")+"::"+Ve.join(":")}else ze=ge.join(":");return B&&(ze+="%"+B),ze}else return b}var Ct=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,Ie="".match(/(){0}/)[1]===void 0;function ce(b){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},E={},P=m.iri!==!1?u:l;m.reference==="suffix"&&(b=(m.scheme?m.scheme+":":"")+"//"+b);var O=b.match(Ct);if(O){Ie?(E.scheme=O[1],E.userinfo=O[3],E.host=O[4],E.port=parseInt(O[5],10),E.path=O[6]||"",E.query=O[7],E.fragment=O[8],isNaN(E.port)&&(E.port=O[5])):(E.scheme=O[1]||void 0,E.userinfo=b.indexOf("@")!==-1?O[3]:void 0,E.host=b.indexOf("//")!==-1?O[4]:void 0,E.port=parseInt(O[5],10),E.path=O[6]||"",E.query=b.indexOf("?")!==-1?O[7]:void 0,E.fragment=b.indexOf("#")!==-1?O[8]:void 0,isNaN(E.port)&&(E.port=b.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?O[4]:void 0)),E.host&&(E.host=ye(Ee(E.host,P),P)),E.scheme===void 0&&E.userinfo===void 0&&E.host===void 0&&E.port===void 0&&!E.path&&E.query===void 0?E.reference="same-document":E.scheme===void 0?E.reference="relative":E.fragment===void 0?E.reference="absolute":E.reference="uri",m.reference&&m.reference!=="suffix"&&m.reference!==E.reference&&(E.error=E.error||"URI is not a "+m.reference+" reference.");var B=be[(m.scheme||E.scheme||"").toLowerCase()];if(!m.unicodeSupport&&(!B||!B.unicodeSupport)){if(E.host&&(m.domainHost||B&&B.domainHost))try{E.host=oe.toASCII(E.host.replace(P.PCT_ENCODED,De).toLowerCase())}catch(K){E.error=E.error||"Host's domain name can not be converted to ASCII via punycode: "+K}St(E,l)}else St(E,P);B&&B.parse&&B.parse(E,m)}else E.error=E.error||"URI can not be parsed.";return E}function xt(b,m){var E=m.iri!==!1?u:l,P=[];return b.userinfo!==void 0&&(P.push(b.userinfo),P.push("@")),b.host!==void 0&&P.push(ye(Ee(String(b.host),E),E).replace(E.IPV6ADDRESS,function(O,B,K){return"["+B+(K?"%25"+K:"")+"]"})),(typeof b.port=="number"||typeof b.port=="string")&&(P.push(":"),P.push(String(b.port))),P.length?P.join(""):void 0}var ht=/^\.\.?\//,kt=/^\/\.(\/|$)/,Lt=/^\/\.\.(\/|$)/,we=/^\/?(?:.|\n)*?(?=\/|$)/;function He(b){for(var m=[];b.length;)if(b.match(ht))b=b.replace(ht,"");else if(b.match(kt))b=b.replace(kt,"/");else if(b.match(Lt))b=b.replace(Lt,"/"),m.pop();else if(b==="."||b==="..")b="";else{var E=b.match(we);if(E){var P=E[0];b=b.slice(P.length),m.push(P)}else throw new Error("Unexpected dot segment condition")}return m.join("")}function je(b){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},E=m.iri?u:l,P=[],O=be[(m.scheme||b.scheme||"").toLowerCase()];if(O&&O.serialize&&O.serialize(b,m),b.host&&!E.IPV6ADDRESS.test(b.host)){if(m.domainHost||O&&O.domainHost)try{b.host=m.iri?oe.toUnicode(b.host):oe.toASCII(b.host.replace(E.PCT_ENCODED,De).toLowerCase())}catch(ae){b.error=b.error||"Host's domain name can not be converted to "+(m.iri?"Unicode":"ASCII")+" via punycode: "+ae}}St(b,E),m.reference!=="suffix"&&b.scheme&&(P.push(b.scheme),P.push(":"));var B=xt(b,m);if(B!==void 0&&(m.reference!=="suffix"&&P.push("//"),P.push(B),b.path&&b.path.charAt(0)!=="/"&&P.push("/")),b.path!==void 0){var K=b.path;!m.absolutePath&&(!O||!O.absolutePath)&&(K=He(K)),B===void 0&&(K=K.replace(/^\/\//,"/%2F")),P.push(K)}return b.query!==void 0&&(P.push("?"),P.push(b.query)),b.fragment!==void 0&&(P.push("#"),P.push(b.fragment)),P.join("")}function Ce(b,m){var E=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},P=arguments[3],O={};return P||(b=ce(je(b,E),E),m=ce(je(m,E),E)),E=E||{},!E.tolerant&&m.scheme?(O.scheme=m.scheme,O.userinfo=m.userinfo,O.host=m.host,O.port=m.port,O.path=He(m.path||""),O.query=m.query):(m.userinfo!==void 0||m.host!==void 0||m.port!==void 0?(O.userinfo=m.userinfo,O.host=m.host,O.port=m.port,O.path=He(m.path||""),O.query=m.query):(m.path?(m.path.charAt(0)==="/"?O.path=He(m.path):((b.userinfo!==void 0||b.host!==void 0||b.port!==void 0)&&!b.path?O.path="/"+m.path:b.path?O.path=b.path.slice(0,b.path.lastIndexOf("/")+1)+m.path:O.path=m.path,O.path=He(O.path)),O.query=m.query):(O.path=b.path,m.query!==void 0?O.query=m.query:O.query=b.query),O.userinfo=b.userinfo,O.host=b.host,O.port=b.port),O.scheme=b.scheme),O.fragment=m.fragment,O}function nt(b,m,E){var P=o({scheme:"null"},E);return je(Ce(ce(b,P),ce(m,P),P,!0),P)}function qe(b,m){return typeof b=="string"?b=je(ce(b,m),m):a(b)==="object"&&(b=ce(je(b,m),m)),b}function qr(b,m,E){return typeof b=="string"?b=je(ce(b,E),E):a(b)==="object"&&(b=je(b,E)),typeof m=="string"?m=je(ce(m,E),E):a(m)==="object"&&(m=je(m,E)),b===m}function Ms(b,m){return b&&b.toString().replace(!m||!m.iri?l.ESCAPE:u.ESCAPE,Re)}function et(b,m){return b&&b.toString().replace(!m||!m.iri?l.PCT_ENCODED:u.PCT_ENCODED,De)}var Rr={scheme:"http",domainHost:!0,parse:function(m,E){return m.host||(m.error=m.error||"HTTP URIs must have a host."),m},serialize:function(m,E){var P=String(m.scheme).toLowerCase()==="https";return(m.port===(P?443:80)||m.port==="")&&(m.port=void 0),m.path||(m.path="/"),m}},on={scheme:"https",domainHost:Rr.domainHost,parse:Rr.parse,serialize:Rr.serialize};function cn(b){return typeof b.secure=="boolean"?b.secure:String(b.scheme).toLowerCase()==="wss"}var Tr={scheme:"ws",domainHost:!0,parse:function(m,E){var P=m;return P.secure=cn(P),P.resourceName=(P.path||"/")+(P.query?"?"+P.query:""),P.path=void 0,P.query=void 0,P},serialize:function(m,E){if((m.port===(cn(m)?443:80)||m.port==="")&&(m.port=void 0),typeof m.secure=="boolean"&&(m.scheme=m.secure?"wss":"ws",m.secure=void 0),m.resourceName){var P=m.resourceName.split("?"),O=p(P,2),B=O[0],K=O[1];m.path=B&&B!=="/"?B:void 0,m.query=K,m.resourceName=void 0}return m.fragment=void 0,m}},ln={scheme:"wss",domainHost:Tr.domainHost,parse:Tr.parse,serialize:Tr.serialize},Tl={},wl=!0,un="[A-Za-z0-9\\-\\.\\_\\~"+(wl?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",ot="[0-9A-Fa-f]",Pl=r(r("%[EFef]"+ot+"%"+ot+ot+"%"+ot+ot)+"|"+r("%[89A-Fa-f]"+ot+"%"+ot+ot)+"|"+r("%"+ot+ot)),Ol="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",Il="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",$l=e(Il,'[\\"\\\\]'),Nl="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",Al=new RegExp(un,"g"),nr=new RegExp(Pl,"g"),Dl=new RegExp(e("[^]",Ol,"[\\.]",'[\\"]',$l),"g"),dn=new RegExp(e("[^]",un,Nl),"g"),Cl=dn;function Us(b){var m=De(b);return m.match(Al)?m:b}var pn={scheme:"mailto",parse:function(m,E){var P=m,O=P.to=P.path?P.path.split(","):[];if(P.path=void 0,P.query){for(var B=!1,K={},ae=P.query.split("&"),le=0,Se=ae.length;le{"use strict";Qn.exports=function s(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var a,t,n;if(Array.isArray(e)){if(a=e.length,a!=r.length)return!1;for(t=a;t--!==0;)if(!s(e[t],r[t]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(n=Object.keys(e),a=n.length,a!==Object.keys(r).length)return!1;for(t=a;t--!==0;)if(!Object.prototype.hasOwnProperty.call(r,n[t]))return!1;for(t=a;t--!==0;){var o=n[t];if(!s(e[o],r[o]))return!1}return!0}return e!==e&&r!==r}});var Xn=H((mm,Wn)=>{"use strict";Wn.exports=function(e){for(var r=0,a=e.length,t=0,n;t=55296&&n<=56319&&t{"use strict";Yn.exports={copy:Wd,checkDataType:ma,checkDataTypes:Xd,coerceToTypes:Kd,toHash:ga,getProperty:ya,escapeQuotes:_a,equal:is(),ucs2length:Xn(),varOccurences:ep,varReplace:tp,schemaHasRules:rp,schemaHasRulesExcept:sp,schemaUnknownRules:ap,toQuotedString:va,getPathExpr:np,getPath:op,getData:lp,unescapeFragment:up,unescapeJsonPointer:Ea,escapeFragment:dp,escapeJsonPointer:ba};function Wd(s,e){e=e||{};for(var r in s)e[r]=s[r];return e}function ma(s,e,r,a){var t=a?" !== ":" === ",n=a?" || ":" && ",o=a?"!":"",i=a?"":"!";switch(s){case"null":return e+t+"null";case"array":return o+"Array.isArray("+e+")";case"object":return"("+o+e+n+"typeof "+e+t+'"object"'+n+i+"Array.isArray("+e+"))";case"integer":return"(typeof "+e+t+'"number"'+n+i+"("+e+" % 1)"+n+e+t+e+(r?n+o+"isFinite("+e+")":"")+")";case"number":return"(typeof "+e+t+'"'+s+'"'+(r?n+o+"isFinite("+e+")":"")+")";default:return"typeof "+e+t+'"'+s+'"'}}function Xd(s,e,r){switch(s.length){case 1:return ma(s[0],e,r,!0);default:var a="",t=ga(s);t.array&&t.object&&(a=t.null?"(":"(!"+e+" || ",a+="typeof "+e+' !== "object")',delete t.null,delete t.array,delete t.object),t.number&&delete t.integer;for(var n in t)a+=(a?" && ":"")+ma(n,e,r,!0);return a}}var Kn=ga(["string","number","integer","boolean","null"]);function Kd(s,e){if(Array.isArray(e)){for(var r=[],a=0;a=e)throw new Error("Cannot access property/index "+a+" levels up, current level is "+e);return r[e-a]}if(a>e)throw new Error("Cannot access data "+a+" levels up, current level is "+e);if(n="data"+(e-a||""),!t)return n}for(var i=n,l=t.split("/"),u=0;u{"use strict";var pp=rr();eo.exports=hp;function hp(s){pp.copy(s,this)}});var ro=H((ym,to)=>{"use strict";var It=to.exports=function(s,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var a=typeof r=="function"?r:r.pre||function(){},t=r.post||function(){};cs(e,a,t,s,"",s)};It.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0};It.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};It.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};It.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function cs(s,e,r,a,t,n,o,i,l,u){if(a&&typeof a=="object"&&!Array.isArray(a)){e(a,t,n,o,i,l,u);for(var p in a){var h=a[p];if(Array.isArray(h)){if(p in It.arrayKeywords)for(var f=0;f{"use strict";var Mr=Gn(),so=is(),ps=rr(),ls=Sa(),mp=ro();oo.exports=Nt;Nt.normalizeId=$t;Nt.fullPath=us;Nt.url=ds;Nt.ids=bp;Nt.inlineRef=xa;Nt.schema=hs;function Nt(s,e,r){var a=this._refs[r];if(typeof a=="string")if(this._refs[a])a=this._refs[a];else return Nt.call(this,s,e,a);if(a=a||this._schemas[r],a instanceof ls)return xa(a.schema,this._opts.inlineRefs)?a.schema:a.validate||this._compile(a);var t=hs.call(this,e,r),n,o,i;return t&&(n=t.schema,e=t.root,i=t.baseId),n instanceof ls?o=n.validate||s.call(this,n.schema,e,void 0,i):n!==void 0&&(o=xa(n,this._opts.inlineRefs)?n:s.call(this,n,e,void 0,i)),o}function hs(s,e){var r=Mr.parse(e),a=no(r),t=us(this._getId(s.schema));if(Object.keys(s.schema).length===0||a!==t){var n=$t(a),o=this._refs[n];if(typeof o=="string")return vp.call(this,s,o,r);if(o instanceof ls)o.validate||this._compile(o),s=o;else if(o=this._schemas[n],o instanceof ls){if(o.validate||this._compile(o),n==$t(e))return{schema:o,root:s,baseId:t};s=o}else return;if(!s.schema)return;t=us(this._getId(s.schema))}return ao.call(this,r,t,s.schema,s)}function vp(s,e,r){var a=hs.call(this,s,e);if(a){var t=a.schema,n=a.baseId;s=a.root;var o=this._getId(t);return o&&(n=ds(n,o)),ao.call(this,r,n,t,s)}}var gp=ps.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function ao(s,e,r,a){if(s.fragment=s.fragment||"",s.fragment.slice(0,1)=="/"){for(var t=s.fragment.split("/"),n=1;n{"use strict";var wa=fs();co.exports={Validation:io(Ep),MissingRef:io(Pa)};function Ep(s){this.message="validation failed",this.errors=s,this.ajv=this.validation=!0}Pa.message=function(s,e){return"can't resolve reference "+e+" from id "+s};function Pa(s,e,r){this.message=r||Pa.message(s,e),this.missingRef=wa.url(s,e),this.missingSchema=wa.normalizeId(wa.fullPath(this.missingRef))}function io(s){return s.prototype=Object.create(Error.prototype),s.prototype.constructor=s,s}});var Oa=H((Em,lo)=>{"use strict";lo.exports=function(s,e){e||(e={}),typeof e=="function"&&(e={cmp:e});var r=typeof e.cycles=="boolean"?e.cycles:!1,a=e.cmp&&(function(n){return function(o){return function(i,l){var u={key:i,value:o[i]},p={key:l,value:o[l]};return n(u,p)}}})(e.cmp),t=[];return(function n(o){if(o&&o.toJSON&&typeof o.toJSON=="function"&&(o=o.toJSON()),o!==void 0){if(typeof o=="number")return isFinite(o)?""+o:"null";if(typeof o!="object")return JSON.stringify(o);var i,l;if(Array.isArray(o)){for(l="[",i=0;i{"use strict";uo.exports=function(e,r,a){var t="",n=e.schema.$async===!0,o=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"),i=e.self._getId(e.schema);if(e.opts.strictKeywords){var l=e.util.schemaUnknownRules(e.schema,e.RULES.keywords);if(l){var u="unknown keyword: "+l;if(e.opts.strictKeywords==="log")e.logger.warn(u);else throw new Error(u)}}if(e.isTop&&(t+=" var validate = ",n&&(e.async=!0,t+="async "),t+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",i&&(e.opts.sourceCode||e.opts.processCode)&&(t+=" "+("/*# sourceURL="+i+" */")+" ")),typeof e.schema=="boolean"||!(o||e.schema.$ref)){var r="false schema",p=e.level,h=e.dataLevel,f=e.schema[r],d=e.schemaPath+e.util.getProperty(r),g=e.errSchemaPath+"/"+r,x=!e.opts.allErrors,L,v="data"+(h||""),w="valid"+p;if(e.schema===!1){e.isTop?x=!0:t+=" var "+w+" = false; ";var y=y||[];y.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '"+(L||"false schema")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(g)+" , params: {} ",e.opts.messages!==!1&&(t+=" , message: 'boolean schema is false' "),e.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+v+" "),t+=" } "):t+=" {} ";var _=t;t=y.pop(),!e.compositeRule&&x?e.async?t+=" throw new ValidationError(["+_+"]); ":t+=" validate.errors = ["+_+"]; return false; ":t+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else e.isTop?n?t+=" return data; ":t+=" validate.errors = null; return true; ":t+=" var "+w+" = true; ";return e.isTop&&(t+=" }; return validate; "),t}if(e.isTop){var R=e.isTop,p=e.level=0,h=e.dataLevel=0,v="data";if(e.rootId=e.resolve.fullPath(e.self._getId(e.root.schema)),e.baseId=e.baseId||e.rootId,delete e.isTop,e.dataPathArr=[""],e.schema.default!==void 0&&e.opts.useDefaults&&e.opts.strictDefaults){var S="default is ignored in the schema root";if(e.opts.strictDefaults==="log")e.logger.warn(S);else throw new Error(S)}t+=" var vErrors = null; ",t+=" var errors = 0; ",t+=" if (rootData === undefined) rootData = data; "}else{var p=e.level,h=e.dataLevel,v="data"+(h||"");if(i&&(e.baseId=e.resolve.url(e.baseId,i)),n&&!e.async)throw new Error("async schema in sync schema");t+=" var errs_"+p+" = errors;"}var w="valid"+p,x=!e.opts.allErrors,T="",N="",L,I=e.schema.type,F=Array.isArray(I);if(I&&e.opts.nullable&&e.schema.nullable===!0&&(F?I.indexOf("null")==-1&&(I=I.concat("null")):I!="null"&&(I=[I,"null"],F=!0)),F&&I.length==1&&(I=I[0],F=!1),e.schema.$ref&&o){if(e.opts.extendRefs=="fail")throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'" (see option extendRefs)');e.opts.extendRefs!==!0&&(o=!1,e.logger.warn('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"'))}if(e.schema.$comment&&e.opts.$comment&&(t+=" "+e.RULES.all.$comment.code(e,"$comment")),I){if(e.opts.coerceTypes)var k=e.util.coerceToTypes(e.opts.coerceTypes,I);var j=e.RULES.types[I];if(k||F||j===!0||j&&!we(j)){var d=e.schemaPath+".type",g=e.errSchemaPath+"/type",d=e.schemaPath+".type",g=e.errSchemaPath+"/type",$=F?"checkDataTypes":"checkDataType";if(t+=" if ("+e.util[$](I,v,e.opts.strictNumbers,!0)+") { ",k){var A="dataType"+p,M="coerced"+p;t+=" var "+A+" = typeof "+v+"; var "+M+" = undefined; ",e.opts.coerceTypes=="array"&&(t+=" if ("+A+" == 'object' && Array.isArray("+v+") && "+v+".length == 1) { "+v+" = "+v+"[0]; "+A+" = typeof "+v+"; if ("+e.util.checkDataType(e.schema.type,v,e.opts.strictNumbers)+") "+M+" = "+v+"; } "),t+=" if ("+M+" !== undefined) ; ";var ee=k;if(ee)for(var W,Y=-1,Q=ee.length-1;Y{"use strict";var vs=fs(),ys=rr(),ho=ms(),Sp=Oa(),po=Ia(),xp=ys.ucs2length,Rp=is(),Tp=ho.Validation;mo.exports=$a;function $a(s,e,r,a){var t=this,n=this._opts,o=[void 0],i={},l=[],u={},p=[],h={},f=[];e=e||{schema:s,refVal:o,refs:i};var d=wp.call(this,s,e,a),g=this._compilations[d.index];if(d.compiling)return g.callValidate=S;var v=this._formats,y=this.RULES;try{var _=w(s,e,r,a);g.validate=_;var R=g.callValidate;return R&&(R.schema=_.schema,R.errors=null,R.refs=_.refs,R.refVal=_.refVal,R.root=_.root,R.$async=_.$async,n.sourceCode&&(R.source=_.source)),_}finally{Pp.call(this,s,e,a)}function S(){var $=g.validate,A=$.apply(this,arguments);return S.errors=$.errors,A}function w($,A,M,ee){var W=!A||A&&A.schema==$;if(A.schema!=e.schema)return $a.call(t,$,A,M,ee);var Y=$.$async===!0,Q=po({isTop:!0,schema:$,isRoot:W,baseId:ee,root:A,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:ho.MissingRef,RULES:y,validate:po,util:ys,resolve:vs,resolveRef:x,usePattern:F,useDefault:k,useCustomRule:j,opts:n,formats:v,logger:t.logger,self:t});Q=gs(o,$p)+gs(l,Op)+gs(p,Ip)+gs(f,Np)+Q,n.processCode&&(Q=n.processCode(Q,$));var z;try{var he=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",Q);z=he(t,y,v,e,o,p,f,Rp,xp,Tp),o[0]=z}catch(Oe){throw t.logger.error("Error compiling schema, function code:",Q),Oe}return z.schema=$,z.errors=null,z.refs=i,z.refVal=o,z.root=W?z:A,Y&&(z.$async=!0),n.sourceCode===!0&&(z.source={code:Q,patterns:l,defaults:p}),z}function x($,A,M){A=vs.url($,A);var ee=i[A],W,Y;if(ee!==void 0)return W=o[ee],Y="refVal["+ee+"]",I(W,Y);if(!M&&e.refs){var Q=e.refs[A];if(Q!==void 0)return W=e.refVal[Q],Y=T(A,W),I(W,Y)}Y=T(A);var z=vs.call(t,w,e,A);if(z===void 0){var he=r&&r[A];he&&(z=vs.inlineRef(he,n.inlineRefs)?he:$a.call(t,he,e,r,$))}if(z===void 0)N(A);else return L(A,z),I(z,Y)}function T($,A){var M=o.length;return o[M]=A,i[$]=M,"refVal"+M}function N($){delete i[$]}function L($,A){var M=i[$];o[M]=A}function I($,A){return typeof $=="object"||typeof $=="boolean"?{code:A,schema:$,inline:!0}:{code:A,$async:$&&!!$.$async}}function F($){var A=u[$];return A===void 0&&(A=u[$]=l.length,l[A]=$),"pattern"+A}function k($){switch(typeof $){case"boolean":case"number":return""+$;case"string":return ys.toQuotedString($);case"object":if($===null)return"null";var A=Sp($),M=h[A];return M===void 0&&(M=h[A]=p.length,p[M]=$),"default"+M}}function j($,A,M,ee){if(t._opts.validateSchema!==!1){var W=$.definition.dependencies;if(W&&!W.every(function(Re){return Object.prototype.hasOwnProperty.call(M,Re)}))throw new Error("parent schema must have all required keywords: "+W.join(","));var Y=$.definition.validateSchema;if(Y){var Q=Y(A);if(!Q){var z="keyword schema is invalid: "+t.errorsText(Y.errors);if(t._opts.validateSchema=="log")t.logger.error(z);else throw new Error(z)}}}var he=$.definition.compile,Oe=$.definition.inline,Ae=$.definition.macro,oe;if(he)oe=he.call(t,A,M,ee);else if(Ae)oe=Ae.call(t,A,M,ee),n.validateSchema!==!1&&t.validateSchema(oe,!0);else if(Oe)oe=Oe.call(t,ee,$.keyword,A,M);else if(oe=$.definition.validate,!oe)return;if(oe===void 0)throw new Error('custom keyword "'+$.keyword+'"failed to compile');var be=f.length;return f[be]=oe,{code:"customRule"+be,validate:oe}}}function wp(s,e,r){var a=fo.call(this,s,e,r);return a>=0?{index:a,compiling:!0}:(a=this._compilations.length,this._compilations[a]={schema:s,root:e,baseId:r},{index:a,compiling:!1})}function Pp(s,e,r){var a=fo.call(this,s,e,r);a>=0&&this._compilations.splice(a,1)}function fo(s,e,r){for(var a=0;a{"use strict";var _s=go.exports=function(){this._cache={}};_s.prototype.put=function(e,r){this._cache[e]=r};_s.prototype.get=function(e){return this._cache[e]};_s.prototype.del=function(e){delete this._cache[e]};_s.prototype.clear=function(){this._cache={}}});var $o=H((Tm,Io)=>{"use strict";var Ap=rr(),Dp=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Cp=[0,31,28,31,30,31,30,31,31,30,31,30,31],kp=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,_o=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,Lp=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,jp=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,bo=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,Eo=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,So=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,xo=/^(?:\/(?:[^~/]|~0|~1)*)*$/,Ro=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,To=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;Io.exports=bs;function bs(s){return s=s=="full"?"full":"fast",Ap.copy(bs[s])}bs.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":bo,url:Eo,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:_o,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Oo,uuid:So,"json-pointer":xo,"json-pointer-uri-fragment":Ro,"relative-json-pointer":To};bs.full={date:wo,time:Po,"date-time":Up,uri:Bp,"uri-reference":jp,"uri-template":bo,url:Eo,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:_o,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Oo,uuid:So,"json-pointer":xo,"json-pointer-uri-fragment":Ro,"relative-json-pointer":To};function Fp(s){return s%4===0&&(s%100!==0||s%400===0)}function wo(s){var e=s.match(Dp);if(!e)return!1;var r=+e[1],a=+e[2],t=+e[3];return a>=1&&a<=12&&t>=1&&t<=(a==2&&Fp(r)?29:Cp[a])}function Po(s,e){var r=s.match(kp);if(!r)return!1;var a=r[1],t=r[2],n=r[3],o=r[5];return(a<=23&&t<=59&&n<=59||a==23&&t==59&&n==60)&&(!e||o)}var Mp=/t|\s/i;function Up(s){var e=s.split(Mp);return e.length==2&&wo(e[0])&&Po(e[1],!0)}var qp=/\/|:/;function Bp(s){return qp.test(s)&&Lp.test(s)}var Vp=/[^\\]\\Z/;function Oo(s){if(Vp.test(s))return!1;try{return new RegExp(s),!0}catch{return!1}}});var Ao=H((wm,No)=>{"use strict";No.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(o||""),h="valid"+n,f,d;if(i=="#"||i=="#/")e.isRoot?(f=e.async,d="validate"):(f=e.root.schema.$async===!0,d="root.refVal[0]");else{var g=e.resolveRef(e.baseId,i,e.isRoot);if(g===void 0){var v=e.MissingRefError.message(e.baseId,i);if(e.opts.missingRefs=="fail"){e.logger.error(v);var y=y||[];y.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { ref: '"+e.util.escapeQuotes(i)+"' } ",e.opts.messages!==!1&&(t+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(i)+"' "),e.opts.verbose&&(t+=" , schema: "+e.util.toQuotedString(i)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),t+=" } "):t+=" {} ";var _=t;t=y.pop(),!e.compositeRule&&u?e.async?t+=" throw new ValidationError(["+_+"]); ":t+=" validate.errors = ["+_+"]; return false; ":t+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(t+=" if (false) { ")}else if(e.opts.missingRefs=="ignore")e.logger.warn(v),u&&(t+=" if (true) { ");else throw new e.MissingRefError(e.baseId,i,v)}else if(g.inline){var R=e.util.copy(e);R.level++;var S="valid"+R.level;R.schema=g.schema,R.schemaPath="",R.errSchemaPath=i;var w=e.validate(R).replace(/validate\.schema/g,g.code);t+=" "+w+" ",u&&(t+=" if ("+S+") { ")}else f=g.$async===!0||e.async&&g.$async!==!1,d=g.code}if(d){var y=y||[];y.push(t),t="",e.opts.passContext?t+=" "+d+".call(this, ":t+=" "+d+"( ",t+=" "+p+", (dataPath || '')",e.errorPath!='""'&&(t+=" + "+e.errorPath);var x=o?"data"+(o-1||""):"parentData",T=o?e.dataPathArr[o]:"parentDataProperty";t+=" , "+x+" , "+T+", rootData) ";var N=t;if(t=y.pop(),f){if(!e.async)throw new Error("async schema referenced by sync schema");u&&(t+=" var "+h+"; "),t+=" try { await "+N+"; ",u&&(t+=" "+h+" = true; "),t+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(t+=" "+h+" = false; "),t+=" } ",u&&(t+=" if ("+h+") { ")}else t+=" if (!"+N+") { if (vErrors === null) vErrors = "+d+".errors; else vErrors = vErrors.concat("+d+".errors); errors = vErrors.length; } ",u&&(t+=" else { ")}return t}});var Co=H((Pm,Do)=>{"use strict";Do.exports=function(e,r,a){var t=" ",n=e.schema[r],o=e.schemaPath+e.util.getProperty(r),i=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,u=e.util.copy(e),p="";u.level++;var h="valid"+u.level,f=u.baseId,d=!0,g=n;if(g)for(var v,y=-1,_=g.length-1;y<_;)v=g[y+=1],(e.opts.strictKeywords?typeof v=="object"&&Object.keys(v).length>0||v===!1:e.util.schemaHasRules(v,e.RULES.all))&&(d=!1,u.schema=v,u.schemaPath=o+"["+y+"]",u.errSchemaPath=i+"/"+y,t+=" "+e.validate(u)+" ",u.baseId=f,l&&(t+=" if ("+h+") { ",p+="}"));return l&&(d?t+=" if (true) { ":t+=" "+p.slice(0,-1)+" "),t}});var Lo=H((Om,ko)=>{"use strict";ko.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||""),f="valid"+n,d="errs__"+n,g=e.util.copy(e),v="";g.level++;var y="valid"+g.level,_=i.every(function(L){return e.opts.strictKeywords?typeof L=="object"&&Object.keys(L).length>0||L===!1:e.util.schemaHasRules(L,e.RULES.all)});if(_){var R=g.baseId;t+=" var "+d+" = errors; var "+f+" = false; ";var S=e.compositeRule;e.compositeRule=g.compositeRule=!0;var w=i;if(w)for(var x,T=-1,N=w.length-1;T{"use strict";jo.exports=function(e,r,a){var t=" ",n=e.schema[r],o=e.errSchemaPath+"/"+r,i=!e.opts.allErrors,l=e.util.toQuotedString(n);return e.opts.$comment===!0?t+=" console.log("+l+");":typeof e.opts.$comment=="function"&&(t+=" self._opts.$comment("+l+", "+e.util.toQuotedString(o)+", validate.root.schema);"),t}});var Uo=H(($m,Mo)=>{"use strict";Mo.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||""),f="valid"+n,d=e.opts.$data&&i&&i.$data,g;d?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",g="schema"+n):g=i,d||(t+=" var schema"+n+" = validate.schema"+l+";"),t+="var "+f+" = equal("+h+", schema"+n+"); if (!"+f+") { ";var v=v||[];v.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { allowedValue: schema"+n+" } ",e.opts.messages!==!1&&(t+=" , message: 'should be equal to constant' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var y=t;return t=v.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+y+"]); ":t+=" validate.errors = ["+y+"]; return false; ":t+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" }",p&&(t+=" else { "),t}});var Bo=H((Nm,qo)=>{"use strict";qo.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||""),f="valid"+n,d="errs__"+n,g=e.util.copy(e),v="";g.level++;var y="valid"+g.level,_="i"+n,R=g.dataLevel=e.dataLevel+1,S="data"+R,w=e.baseId,x=e.opts.strictKeywords?typeof i=="object"&&Object.keys(i).length>0||i===!1:e.util.schemaHasRules(i,e.RULES.all);if(t+="var "+d+" = errors;var "+f+";",x){var T=e.compositeRule;e.compositeRule=g.compositeRule=!0,g.schema=i,g.schemaPath=l,g.errSchemaPath=u,t+=" var "+y+" = false; for (var "+_+" = 0; "+_+" < "+h+".length; "+_+"++) { ",g.errorPath=e.util.getPathExpr(e.errorPath,_,e.opts.jsonPointers,!0);var N=h+"["+_+"]";g.dataPathArr[R]=_;var L=e.validate(g);g.baseId=w,e.util.varOccurences(L,S)<2?t+=" "+e.util.varReplace(L,S,N)+" ":t+=" var "+S+" = "+N+"; "+L+" ",t+=" if ("+y+") break; } ",e.compositeRule=g.compositeRule=T,t+=" "+v+" if (!"+y+") {"}else t+=" if ("+h+".length == 0) {";var I=I||[];I.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: {} ",e.opts.messages!==!1&&(t+=" , message: 'should contain a valid item' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var F=t;return t=I.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+F+"]); ":t+=" validate.errors = ["+F+"]; return false; ":t+=" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { ",x&&(t+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } "),e.opts.allErrors&&(t+=" } "),t}});var Ho=H((Am,Vo)=>{"use strict";Vo.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||""),f="errs__"+n,d=e.util.copy(e),g="";d.level++;var v="valid"+d.level,y={},_={},R=e.opts.ownProperties;for(T in i)if(T!="__proto__"){var S=i[T],w=Array.isArray(S)?_:y;w[T]=S}t+="var "+f+" = errors;";var x=e.errorPath;t+="var missing"+n+";";for(var T in _)if(w=_[T],w.length){if(t+=" if ( "+h+e.util.getProperty(T)+" !== undefined ",R&&(t+=" && Object.prototype.hasOwnProperty.call("+h+", '"+e.util.escapeQuotes(T)+"') "),p){t+=" && ( ";var N=w;if(N)for(var L,I=-1,F=N.length-1;I0||S===!1:e.util.schemaHasRules(S,e.RULES.all))&&(t+=" "+v+" = true; if ( "+h+e.util.getProperty(T)+" !== undefined ",R&&(t+=" && Object.prototype.hasOwnProperty.call("+h+", '"+e.util.escapeQuotes(T)+"') "),t+=") { ",d.schema=S,d.schemaPath=l+e.util.getProperty(T),d.errSchemaPath=u+"/"+e.util.escapeFragment(T),t+=" "+e.validate(d)+" ",d.baseId=z,t+=" } ",p&&(t+=" if ("+v+") { ",g+="}"))}return p&&(t+=" "+g+" if ("+f+" == errors) {"),t}});var Zo=H((Dm,zo)=>{"use strict";zo.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||""),f="valid"+n,d=e.opts.$data&&i&&i.$data,g;d?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",g="schema"+n):g=i;var v="i"+n,y="schema"+n;d||(t+=" var "+y+" = validate.schema"+l+";"),t+="var "+f+";",d&&(t+=" if (schema"+n+" === undefined) "+f+" = true; else if (!Array.isArray(schema"+n+")) "+f+" = false; else {"),t+=""+f+" = false;for (var "+v+"=0; "+v+"<"+y+".length; "+v+"++) if (equal("+h+", "+y+"["+v+"])) { "+f+" = true; break; }",d&&(t+=" } "),t+=" if (!"+f+") { ";var _=_||[];_.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { allowedValues: schema"+n+" } ",e.opts.messages!==!1&&(t+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var R=t;return t=_.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+R+"]); ":t+=" validate.errors = ["+R+"]; return false; ":t+=" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" }",p&&(t+=" else { "),t}});var Qo=H((Cm,Go)=>{"use strict";Go.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||"");if(e.opts.format===!1)return p&&(t+=" if (true) { "),t;var f=e.opts.$data&&i&&i.$data,d;f?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",d="schema"+n):d=i;var g=e.opts.unknownFormats,v=Array.isArray(g);if(f){var y="format"+n,_="isObject"+n,R="formatType"+n;t+=" var "+y+" = formats["+d+"]; var "+_+" = typeof "+y+" == 'object' && !("+y+" instanceof RegExp) && "+y+".validate; var "+R+" = "+_+" && "+y+".type || 'string'; if ("+_+") { ",e.async&&(t+=" var async"+n+" = "+y+".async; "),t+=" "+y+" = "+y+".validate; } if ( ",f&&(t+=" ("+d+" !== undefined && typeof "+d+" != 'string') || "),t+=" (",g!="ignore"&&(t+=" ("+d+" && !"+y+" ",v&&(t+=" && self._opts.unknownFormats.indexOf("+d+") == -1 "),t+=") || "),t+=" ("+y+" && "+R+" == '"+a+"' && !(typeof "+y+" == 'function' ? ",e.async?t+=" (async"+n+" ? await "+y+"("+h+") : "+y+"("+h+")) ":t+=" "+y+"("+h+") ",t+=" : "+y+".test("+h+"))))) {"}else{var y=e.formats[i];if(!y){if(g=="ignore")return e.logger.warn('unknown format "'+i+'" ignored in schema at path "'+e.errSchemaPath+'"'),p&&(t+=" if (true) { "),t;if(v&&g.indexOf(i)>=0)return p&&(t+=" if (true) { "),t;throw new Error('unknown format "'+i+'" is used in schema at path "'+e.errSchemaPath+'"')}var _=typeof y=="object"&&!(y instanceof RegExp)&&y.validate,R=_&&y.type||"string";if(_){var S=y.async===!0;y=y.validate}if(R!=a)return p&&(t+=" if (true) { "),t;if(S){if(!e.async)throw new Error("async format in sync schema");var w="formats"+e.util.getProperty(i)+".validate";t+=" if (!(await "+w+"("+h+"))) { "}else{t+=" if (! ";var w="formats"+e.util.getProperty(i);_&&(w+=".validate"),typeof y=="function"?t+=" "+w+"("+h+") ":t+=" "+w+".test("+h+") ",t+=") { "}}var x=x||[];x.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { format: ",f?t+=""+d:t+=""+e.util.toQuotedString(i),t+=" } ",e.opts.messages!==!1&&(t+=` , message: 'should match format "`,f?t+="' + "+d+" + '":t+=""+e.util.escapeQuotes(i),t+=`"' `),e.opts.verbose&&(t+=" , schema: ",f?t+="validate.schema"+l:t+=""+e.util.toQuotedString(i),t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var T=t;return t=x.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+T+"]); ":t+=" validate.errors = ["+T+"]; return false; ":t+=" var err = "+T+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",p&&(t+=" else { "),t}});var Xo=H((km,Wo)=>{"use strict";Wo.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||""),f="valid"+n,d="errs__"+n,g=e.util.copy(e);g.level++;var v="valid"+g.level,y=e.schema.then,_=e.schema.else,R=y!==void 0&&(e.opts.strictKeywords?typeof y=="object"&&Object.keys(y).length>0||y===!1:e.util.schemaHasRules(y,e.RULES.all)),S=_!==void 0&&(e.opts.strictKeywords?typeof _=="object"&&Object.keys(_).length>0||_===!1:e.util.schemaHasRules(_,e.RULES.all)),w=g.baseId;if(R||S){var x;g.createErrors=!1,g.schema=i,g.schemaPath=l,g.errSchemaPath=u,t+=" var "+d+" = errors; var "+f+" = true; ";var T=e.compositeRule;e.compositeRule=g.compositeRule=!0,t+=" "+e.validate(g)+" ",g.baseId=w,g.createErrors=!0,t+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",e.compositeRule=g.compositeRule=T,R?(t+=" if ("+v+") { ",g.schema=e.schema.then,g.schemaPath=e.schemaPath+".then",g.errSchemaPath=e.errSchemaPath+"/then",t+=" "+e.validate(g)+" ",g.baseId=w,t+=" "+f+" = "+v+"; ",R&&S?(x="ifClause"+n,t+=" var "+x+" = 'then'; "):x="'then'",t+=" } ",S&&(t+=" else { ")):t+=" if (!"+v+") { ",S&&(g.schema=e.schema.else,g.schemaPath=e.schemaPath+".else",g.errSchemaPath=e.errSchemaPath+"/else",t+=" "+e.validate(g)+" ",g.baseId=w,t+=" "+f+" = "+v+"; ",R&&S?(x="ifClause"+n,t+=" var "+x+" = 'else'; "):x="'else'",t+=" } "),t+=" if (!"+f+") { var err = ",e.createErrors!==!1?(t+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { failingKeyword: "+x+" } ",e.opts.messages!==!1&&(t+=` , message: 'should match "' + `+x+` + '" schema' `),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&p&&(e.async?t+=" throw new ValidationError(vErrors); ":t+=" validate.errors = vErrors; return false; "),t+=" } ",p&&(t+=" else { ")}else p&&(t+=" if (true) { ");return t}});var Jo=H((Lm,Ko)=>{"use strict";Ko.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||""),f="valid"+n,d="errs__"+n,g=e.util.copy(e),v="";g.level++;var y="valid"+g.level,_="i"+n,R=g.dataLevel=e.dataLevel+1,S="data"+R,w=e.baseId;if(t+="var "+d+" = errors;var "+f+";",Array.isArray(i)){var x=e.schema.additionalItems;if(x===!1){t+=" "+f+" = "+h+".length <= "+i.length+"; ";var T=u;u=e.errSchemaPath+"/additionalItems",t+=" if (!"+f+") { ";var N=N||[];N.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { limit: "+i.length+" } ",e.opts.messages!==!1&&(t+=" , message: 'should NOT have more than "+i.length+" items' "),e.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var L=t;t=N.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+L+"]); ":t+=" validate.errors = ["+L+"]; return false; ":t+=" var err = "+L+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",u=T,p&&(v+="}",t+=" else { ")}var I=i;if(I){for(var F,k=-1,j=I.length-1;k0||F===!1:e.util.schemaHasRules(F,e.RULES.all)){t+=" "+y+" = true; if ("+h+".length > "+k+") { ";var $=h+"["+k+"]";g.schema=F,g.schemaPath=l+"["+k+"]",g.errSchemaPath=u+"/"+k,g.errorPath=e.util.getPathExpr(e.errorPath,k,e.opts.jsonPointers,!0),g.dataPathArr[R]=k;var A=e.validate(g);g.baseId=w,e.util.varOccurences(A,S)<2?t+=" "+e.util.varReplace(A,S,$)+" ":t+=" var "+S+" = "+$+"; "+A+" ",t+=" } ",p&&(t+=" if ("+y+") { ",v+="}")}}if(typeof x=="object"&&(e.opts.strictKeywords?typeof x=="object"&&Object.keys(x).length>0||x===!1:e.util.schemaHasRules(x,e.RULES.all))){g.schema=x,g.schemaPath=e.schemaPath+".additionalItems",g.errSchemaPath=e.errSchemaPath+"/additionalItems",t+=" "+y+" = true; if ("+h+".length > "+i.length+") { for (var "+_+" = "+i.length+"; "+_+" < "+h+".length; "+_+"++) { ",g.errorPath=e.util.getPathExpr(e.errorPath,_,e.opts.jsonPointers,!0);var $=h+"["+_+"]";g.dataPathArr[R]=_;var A=e.validate(g);g.baseId=w,e.util.varOccurences(A,S)<2?t+=" "+e.util.varReplace(A,S,$)+" ":t+=" var "+S+" = "+$+"; "+A+" ",p&&(t+=" if (!"+y+") break; "),t+=" } } ",p&&(t+=" if ("+y+") { ",v+="}")}}else if(e.opts.strictKeywords?typeof i=="object"&&Object.keys(i).length>0||i===!1:e.util.schemaHasRules(i,e.RULES.all)){g.schema=i,g.schemaPath=l,g.errSchemaPath=u,t+=" for (var "+_+" = 0; "+_+" < "+h+".length; "+_+"++) { ",g.errorPath=e.util.getPathExpr(e.errorPath,_,e.opts.jsonPointers,!0);var $=h+"["+_+"]";g.dataPathArr[R]=_;var A=e.validate(g);g.baseId=w,e.util.varOccurences(A,S)<2?t+=" "+e.util.varReplace(A,S,$)+" ":t+=" var "+S+" = "+$+"; "+A+" ",p&&(t+=" if (!"+y+") break; "),t+=" }"}return p&&(t+=" "+v+" if ("+d+" == errors) {"),t}});var Na=H((jm,Yo)=>{"use strict";Yo.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,w,h="data"+(o||""),f=e.opts.$data&&i&&i.$data,d;f?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",d="schema"+n):d=i;var g=r=="maximum",v=g?"exclusiveMaximum":"exclusiveMinimum",y=e.schema[v],_=e.opts.$data&&y&&y.$data,R=g?"<":">",S=g?">":"<",w=void 0;if(!(f||typeof i=="number"||i===void 0))throw new Error(r+" must be number");if(!(_||y===void 0||typeof y=="number"||typeof y=="boolean"))throw new Error(v+" must be number or boolean");if(_){var x=e.util.getData(y.$data,o,e.dataPathArr),T="exclusive"+n,N="exclType"+n,L="exclIsNumber"+n,I="op"+n,F="' + "+I+" + '";t+=" var schemaExcl"+n+" = "+x+"; ",x="schemaExcl"+n,t+=" var "+T+"; var "+N+" = typeof "+x+"; if ("+N+" != 'boolean' && "+N+" != 'undefined' && "+N+" != 'number') { ";var w=v,k=k||[];k.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '"+(w||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: {} ",e.opts.messages!==!1&&(t+=" , message: '"+v+" should be boolean' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var j=t;t=k.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+j+"]); ":t+=" validate.errors = ["+j+"]; return false; ":t+=" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else if ( ",f&&(t+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),t+=" "+N+" == 'number' ? ( ("+T+" = "+d+" === undefined || "+x+" "+R+"= "+d+") ? "+h+" "+S+"= "+x+" : "+h+" "+S+" "+d+" ) : ( ("+T+" = "+x+" === true) ? "+h+" "+S+"= "+d+" : "+h+" "+S+" "+d+" ) || "+h+" !== "+h+") { var op"+n+" = "+T+" ? '"+R+"' : '"+R+"='; ",i===void 0&&(w=v,u=e.errSchemaPath+"/"+v,d=x,f=_)}else{var L=typeof y=="number",F=R;if(L&&f){var I="'"+F+"'";t+=" if ( ",f&&(t+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),t+=" ( "+d+" === undefined || "+y+" "+R+"= "+d+" ? "+h+" "+S+"= "+y+" : "+h+" "+S+" "+d+" ) || "+h+" !== "+h+") { "}else{L&&i===void 0?(T=!0,w=v,u=e.errSchemaPath+"/"+v,d=y,S+="="):(L&&(d=Math[g?"min":"max"](y,i)),y===(L?d:!0)?(T=!0,w=v,u=e.errSchemaPath+"/"+v,S+="="):(T=!1,F+="="));var I="'"+F+"'";t+=" if ( ",f&&(t+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),t+=" "+h+" "+S+" "+d+" || "+h+" !== "+h+") { "}}w=w||r;var k=k||[];k.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '"+(w||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { comparison: "+I+", limit: "+d+", exclusive: "+T+" } ",e.opts.messages!==!1&&(t+=" , message: 'should be "+F+" ",f?t+="' + "+d:t+=""+d+"'"),e.opts.verbose&&(t+=" , schema: ",f?t+="validate.schema"+l:t+=""+i,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var j=t;return t=k.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+j+"]); ":t+=" validate.errors = ["+j+"]; return false; ":t+=" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",p&&(t+=" else { "),t}});var Aa=H((Fm,ei)=>{"use strict";ei.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,v,h="data"+(o||""),f=e.opts.$data&&i&&i.$data,d;if(f?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",d="schema"+n):d=i,!(f||typeof i=="number"))throw new Error(r+" must be number");var g=r=="maxItems"?">":"<";t+="if ( ",f&&(t+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),t+=" "+h+".length "+g+" "+d+") { ";var v=r,y=y||[];y.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '"+(v||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { limit: "+d+" } ",e.opts.messages!==!1&&(t+=" , message: 'should NOT have ",r=="maxItems"?t+="more":t+="fewer",t+=" than ",f?t+="' + "+d+" + '":t+=""+i,t+=" items' "),e.opts.verbose&&(t+=" , schema: ",f?t+="validate.schema"+l:t+=""+i,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var _=t;return t=y.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+_+"]); ":t+=" validate.errors = ["+_+"]; return false; ":t+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",p&&(t+=" else { "),t}});var Da=H((Mm,ti)=>{"use strict";ti.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,v,h="data"+(o||""),f=e.opts.$data&&i&&i.$data,d;if(f?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",d="schema"+n):d=i,!(f||typeof i=="number"))throw new Error(r+" must be number");var g=r=="maxLength"?">":"<";t+="if ( ",f&&(t+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),e.opts.unicode===!1?t+=" "+h+".length ":t+=" ucs2length("+h+") ",t+=" "+g+" "+d+") { ";var v=r,y=y||[];y.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '"+(v||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { limit: "+d+" } ",e.opts.messages!==!1&&(t+=" , message: 'should NOT be ",r=="maxLength"?t+="longer":t+="shorter",t+=" than ",f?t+="' + "+d+" + '":t+=""+i,t+=" characters' "),e.opts.verbose&&(t+=" , schema: ",f?t+="validate.schema"+l:t+=""+i,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var _=t;return t=y.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+_+"]); ":t+=" validate.errors = ["+_+"]; return false; ":t+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",p&&(t+=" else { "),t}});var Ca=H((Um,ri)=>{"use strict";ri.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,v,h="data"+(o||""),f=e.opts.$data&&i&&i.$data,d;if(f?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",d="schema"+n):d=i,!(f||typeof i=="number"))throw new Error(r+" must be number");var g=r=="maxProperties"?">":"<";t+="if ( ",f&&(t+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),t+=" Object.keys("+h+").length "+g+" "+d+") { ";var v=r,y=y||[];y.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '"+(v||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { limit: "+d+" } ",e.opts.messages!==!1&&(t+=" , message: 'should NOT have ",r=="maxProperties"?t+="more":t+="fewer",t+=" than ",f?t+="' + "+d+" + '":t+=""+i,t+=" properties' "),e.opts.verbose&&(t+=" , schema: ",f?t+="validate.schema"+l:t+=""+i,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var _=t;return t=y.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+_+"]); ":t+=" validate.errors = ["+_+"]; return false; ":t+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",p&&(t+=" else { "),t}});var ai=H((qm,si)=>{"use strict";si.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||""),f=e.opts.$data&&i&&i.$data,d;if(f?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",d="schema"+n):d=i,!(f||typeof i=="number"))throw new Error(r+" must be number");t+="var division"+n+";if (",f&&(t+=" "+d+" !== undefined && ( typeof "+d+" != 'number' || "),t+=" (division"+n+" = "+h+" / "+d+", ",e.opts.multipleOfPrecision?t+=" Math.abs(Math.round(division"+n+") - division"+n+") > 1e-"+e.opts.multipleOfPrecision+" ":t+=" division"+n+" !== parseInt(division"+n+") ",t+=" ) ",f&&(t+=" ) "),t+=" ) { ";var g=g||[];g.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { multipleOf: "+d+" } ",e.opts.messages!==!1&&(t+=" , message: 'should be multiple of ",f?t+="' + "+d:t+=""+d+"'"),e.opts.verbose&&(t+=" , schema: ",f?t+="validate.schema"+l:t+=""+i,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var v=t;return t=g.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+v+"]); ":t+=" validate.errors = ["+v+"]; return false; ":t+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",p&&(t+=" else { "),t}});var oi=H((Bm,ni)=>{"use strict";ni.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||""),f="errs__"+n,d=e.util.copy(e);d.level++;var g="valid"+d.level;if(e.opts.strictKeywords?typeof i=="object"&&Object.keys(i).length>0||i===!1:e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=l,d.errSchemaPath=u,t+=" var "+f+" = errors; ";var v=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1;var y;d.opts.allErrors&&(y=d.opts.allErrors,d.opts.allErrors=!1),t+=" "+e.validate(d)+" ",d.createErrors=!0,y&&(d.opts.allErrors=y),e.compositeRule=d.compositeRule=v,t+=" if ("+g+") { ";var _=_||[];_.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: {} ",e.opts.messages!==!1&&(t+=" , message: 'should NOT be valid' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var R=t;t=_.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+R+"]); ":t+=" validate.errors = ["+R+"]; return false; ":t+=" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } ",e.opts.allErrors&&(t+=" } ")}else t+=" var err = ",e.createErrors!==!1?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: {} ",e.opts.messages!==!1&&(t+=" , message: 'should NOT be valid' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",p&&(t+=" if (false) { ");return t}});var ci=H((Vm,ii)=>{"use strict";ii.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||""),f="valid"+n,d="errs__"+n,g=e.util.copy(e),v="";g.level++;var y="valid"+g.level,_=g.baseId,R="prevValid"+n,S="passingSchemas"+n;t+="var "+d+" = errors , "+R+" = false , "+f+" = false , "+S+" = null; ";var w=e.compositeRule;e.compositeRule=g.compositeRule=!0;var x=i;if(x)for(var T,N=-1,L=x.length-1;N0||T===!1:e.util.schemaHasRules(T,e.RULES.all))?(g.schema=T,g.schemaPath=l+"["+N+"]",g.errSchemaPath=u+"/"+N,t+=" "+e.validate(g)+" ",g.baseId=_):t+=" var "+y+" = true; ",N&&(t+=" if ("+y+" && "+R+") { "+f+" = false; "+S+" = ["+S+", "+N+"]; } else { ",v+="}"),t+=" if ("+y+") { "+f+" = "+R+" = true; "+S+" = "+N+"; }";return e.compositeRule=g.compositeRule=w,t+=""+v+"if (!"+f+") { var err = ",e.createErrors!==!1?(t+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { passingSchemas: "+S+" } ",e.opts.messages!==!1&&(t+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&p&&(e.async?t+=" throw new ValidationError(vErrors); ":t+=" validate.errors = vErrors; return false; "),t+="} else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; }",e.opts.allErrors&&(t+=" } "),t}});var ui=H((Hm,li)=>{"use strict";li.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||""),f=e.opts.$data&&i&&i.$data,d;f?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",d="schema"+n):d=i;var g=f?"(new RegExp("+d+"))":e.usePattern(i);t+="if ( ",f&&(t+=" ("+d+" !== undefined && typeof "+d+" != 'string') || "),t+=" !"+g+".test("+h+") ) { ";var v=v||[];v.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { pattern: ",f?t+=""+d:t+=""+e.util.toQuotedString(i),t+=" } ",e.opts.messages!==!1&&(t+=` , message: 'should match pattern "`,f?t+="' + "+d+" + '":t+=""+e.util.escapeQuotes(i),t+=`"' `),e.opts.verbose&&(t+=" , schema: ",f?t+="validate.schema"+l:t+=""+e.util.toQuotedString(i),t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var y=t;return t=v.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+y+"]); ":t+=" validate.errors = ["+y+"]; return false; ":t+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+="} ",p&&(t+=" else { "),t}});var pi=H((zm,di)=>{"use strict";di.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||""),f="errs__"+n,d=e.util.copy(e),g="";d.level++;var v="valid"+d.level,y="key"+n,_="idx"+n,R=d.dataLevel=e.dataLevel+1,S="data"+R,w="dataProperties"+n,x=Object.keys(i||{}).filter(Y),T=e.schema.patternProperties||{},N=Object.keys(T).filter(Y),L=e.schema.additionalProperties,I=x.length||N.length,F=L===!1,k=typeof L=="object"&&Object.keys(L).length,j=e.opts.removeAdditional,$=F||k||j,A=e.opts.ownProperties,M=e.baseId,ee=e.schema.required;if(ee&&!(e.opts.$data&&ee.$data)&&ee.length8)t+=" || validate.schema"+l+".hasOwnProperty("+y+") ";else{var Q=x;if(Q)for(var z,he=-1,Oe=Q.length-1;he0||we===!1:e.util.schemaHasRules(we,e.RULES.all)){var He=e.util.getProperty(z),Ie=h+He,je=xt&&we.default!==void 0;d.schema=we,d.schemaPath=l+He,d.errSchemaPath=u+"/"+e.util.escapeFragment(z),d.errorPath=e.util.getPath(e.errorPath,z,e.opts.jsonPointers),d.dataPathArr[R]=e.util.toQuotedString(z);var ce=e.validate(d);if(d.baseId=M,e.util.varOccurences(ce,S)<2){ce=e.util.varReplace(ce,S,Ie);var Ce=Ie}else{var Ce=S;t+=" var "+S+" = "+Ie+"; "}if(je)t+=" "+ce+" ";else{if(W&&W[z]){t+=" if ( "+Ce+" === undefined ",A&&(t+=" || ! Object.prototype.hasOwnProperty.call("+h+", '"+e.util.escapeQuotes(z)+"') "),t+=") { "+v+" = false; ";var De=e.errorPath,pt=u,nt=e.util.escapeQuotes(z);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(De,z,e.opts.jsonPointers)),u=e.errSchemaPath+"/required";var Ee=Ee||[];Ee.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { missingProperty: '"+nt+"' } ",e.opts.messages!==!1&&(t+=" , message: '",e.opts._errorDataPathProperty?t+="is a required property":t+="should have required property \\'"+nt+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var ye=t;t=Ee.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+ye+"]); ":t+=" validate.errors = ["+ye+"]; return false; ":t+=" var err = "+ye+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u=pt,e.errorPath=De,t+=" } else { "}else p?(t+=" if ( "+Ce+" === undefined ",A&&(t+=" || ! Object.prototype.hasOwnProperty.call("+h+", '"+e.util.escapeQuotes(z)+"') "),t+=") { "+v+" = true; } else { "):(t+=" if ("+Ce+" !== undefined ",A&&(t+=" && Object.prototype.hasOwnProperty.call("+h+", '"+e.util.escapeQuotes(z)+"') "),t+=" ) { ");t+=" "+ce+" } "}}p&&(t+=" if ("+v+") { ",g+="}")}}if(N.length){var qe=N;if(qe)for(var oe,qr=-1,Ms=qe.length-1;qr0||we===!1:e.util.schemaHasRules(we,e.RULES.all)){d.schema=we,d.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(oe),d.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(oe),A?t+=" "+w+" = "+w+" || Object.keys("+h+"); for (var "+_+"=0; "+_+"<"+w+".length; "+_+"++) { var "+y+" = "+w+"["+_+"]; ":t+=" for (var "+y+" in "+h+") { ",t+=" if ("+e.usePattern(oe)+".test("+y+")) { ",d.errorPath=e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers);var Ie=h+"["+y+"]";d.dataPathArr[R]=y;var ce=e.validate(d);d.baseId=M,e.util.varOccurences(ce,S)<2?t+=" "+e.util.varReplace(ce,S,Ie)+" ":t+=" var "+S+" = "+Ie+"; "+ce+" ",p&&(t+=" if (!"+v+") break; "),t+=" } ",p&&(t+=" else "+v+" = true; "),t+=" } ",p&&(t+=" if ("+v+") { ",g+="}")}}}return p&&(t+=" "+g+" if ("+f+" == errors) {"),t}});var fi=H((Zm,hi)=>{"use strict";hi.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||""),f="errs__"+n,d=e.util.copy(e),g="";d.level++;var v="valid"+d.level;if(t+="var "+f+" = errors;",e.opts.strictKeywords?typeof i=="object"&&Object.keys(i).length>0||i===!1:e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=l,d.errSchemaPath=u;var y="key"+n,_="idx"+n,R="i"+n,S="' + "+y+" + '",w=d.dataLevel=e.dataLevel+1,x="data"+w,T="dataProperties"+n,N=e.opts.ownProperties,L=e.baseId;N&&(t+=" var "+T+" = undefined; "),N?t+=" "+T+" = "+T+" || Object.keys("+h+"); for (var "+_+"=0; "+_+"<"+T+".length; "+_+"++) { var "+y+" = "+T+"["+_+"]; ":t+=" for (var "+y+" in "+h+") { ",t+=" var startErrs"+n+" = errors; ";var I=y,F=e.compositeRule;e.compositeRule=d.compositeRule=!0;var k=e.validate(d);d.baseId=L,e.util.varOccurences(k,x)<2?t+=" "+e.util.varReplace(k,x,I)+" ":t+=" var "+x+" = "+I+"; "+k+" ",e.compositeRule=d.compositeRule=F,t+=" if (!"+v+") { for (var "+R+"=startErrs"+n+"; "+R+"{"use strict";mi.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||""),f="valid"+n,d=e.opts.$data&&i&&i.$data,g;d?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",g="schema"+n):g=i;var v="schema"+n;if(!d)if(i.length0||x===!1:e.util.schemaHasRules(x,e.RULES.all))||(y[y.length]=R)}}else var y=i;if(d||y.length){var T=e.errorPath,N=d||y.length>=e.opts.loopRequired,L=e.opts.ownProperties;if(p)if(t+=" var missing"+n+"; ",N){d||(t+=" var "+v+" = validate.schema"+l+"; ");var I="i"+n,F="schema"+n+"["+I+"]",k="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(T,F,e.opts.jsonPointers)),t+=" var "+f+" = true; ",d&&(t+=" if (schema"+n+" === undefined) "+f+" = true; else if (!Array.isArray(schema"+n+")) "+f+" = false; else {"),t+=" for (var "+I+" = 0; "+I+" < "+v+".length; "+I+"++) { "+f+" = "+h+"["+v+"["+I+"]] !== undefined ",L&&(t+=" && Object.prototype.hasOwnProperty.call("+h+", "+v+"["+I+"]) "),t+="; if (!"+f+") break; } ",d&&(t+=" } "),t+=" if (!"+f+") { ";var j=j||[];j.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { missingProperty: '"+k+"' } ",e.opts.messages!==!1&&(t+=" , message: '",e.opts._errorDataPathProperty?t+="is a required property":t+="should have required property \\'"+k+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var $=t;t=j.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+$+"]); ":t+=" validate.errors = ["+$+"]; return false; ":t+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { "}else{t+=" if ( ";var A=y;if(A)for(var M,I=-1,ee=A.length-1;I{"use strict";gi.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h="data"+(o||""),f="valid"+n,d=e.opts.$data&&i&&i.$data,g;if(d?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",g="schema"+n):g=i,(i||d)&&e.opts.uniqueItems!==!1){d&&(t+=" var "+f+"; if ("+g+" === false || "+g+" === undefined) "+f+" = true; else if (typeof "+g+" != 'boolean') "+f+" = false; else { "),t+=" var i = "+h+".length , "+f+" = true , j; if (i > 1) { ";var v=e.schema.items&&e.schema.items.type,y=Array.isArray(v);if(!v||v=="object"||v=="array"||y&&(v.indexOf("object")>=0||v.indexOf("array")>=0))t+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+h+"[i], "+h+"[j])) { "+f+" = false; break outer; } } } ";else{t+=" var itemIndices = {}, item; for (;i--;) { var item = "+h+"[i]; ";var _="checkDataType"+(y?"s":"");t+=" if ("+e.util[_](v,"item",e.opts.strictNumbers,!0)+") continue; ",y&&(t+=` if (typeof item == 'string') item = '"' + item; `),t+=" if (typeof itemIndices[item] == 'number') { "+f+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}t+=" } ",d&&(t+=" } "),t+=" if (!"+f+") { ";var R=R||[];R.push(t),t="",e.createErrors!==!1?(t+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { i: i, j: j } ",e.opts.messages!==!1&&(t+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(t+=" , schema: ",d?t+="validate.schema"+l:t+=""+i,t+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),t+=" } "):t+=" {} ";var S=t;t=R.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+S+"]); ":t+=" validate.errors = ["+S+"]; return false; ":t+=" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",p&&(t+=" else { ")}else p&&(t+=" if (true) { ");return t}});var bi=H((Wm,_i)=>{"use strict";_i.exports={$ref:Ao(),allOf:Co(),anyOf:Lo(),$comment:Fo(),const:Uo(),contains:Bo(),dependencies:Ho(),enum:Zo(),format:Qo(),if:Xo(),items:Jo(),maximum:Na(),minimum:Na(),maxItems:Aa(),minItems:Aa(),maxLength:Da(),minLength:Da(),maxProperties:Ca(),minProperties:Ca(),multipleOf:ai(),not:oi(),oneOf:ci(),pattern:ui(),properties:pi(),propertyNames:fi(),required:vi(),uniqueItems:yi(),validate:Ia()}});var xi=H((Xm,Si)=>{"use strict";var Ei=bi(),ka=rr().toHash;Si.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],r=["type","$comment"],a=["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"],t=["number","integer","string","array","object","boolean","null"];return e.all=ka(r),e.types=ka(t),e.forEach(function(n){n.rules=n.rules.map(function(o){var i;if(typeof o=="object"){var l=Object.keys(o)[0];i=o[l],o=l,i.forEach(function(p){r.push(p),e.all[p]=!0})}r.push(o);var u=e.all[o]={keyword:o,code:Ei[o],implements:i};return u}),e.all.$comment={keyword:"$comment",code:Ei.$comment},n.type&&(e.types[n.type]=n)}),e.keywords=ka(r.concat(a)),e.custom={},e}});var wi=H((Km,Ti)=>{"use strict";var Ri=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];Ti.exports=function(s,e){for(var r=0;r{"use strict";var Hp=ms().MissingRef;Oi.exports=Pi;function Pi(s,e,r){var a=this;if(typeof this._opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");typeof e=="function"&&(r=e,e=void 0);var t=n(s).then(function(){var i=a._addSchema(s,void 0,e);return i.validate||o(i)});return r&&t.then(function(i){r(null,i)},r),t;function n(i){var l=i.$schema;return l&&!a.getSchema(l)?Pi.call(a,{$ref:l},!0):Promise.resolve()}function o(i){try{return a._compile(i)}catch(u){if(u instanceof Hp)return l(u);throw u}function l(u){var p=u.missingSchema;if(d(p))throw new Error("Schema "+p+" is loaded but "+u.missingRef+" cannot be resolved");var h=a._loadingSchemas[p];return h||(h=a._loadingSchemas[p]=a._opts.loadSchema(p),h.then(f,f)),h.then(function(g){if(!d(p))return n(g).then(function(){d(p)||a.addSchema(g,p,void 0,e)})}).then(function(){return o(i)});function f(){delete a._loadingSchemas[p]}function d(g){return a._refs[g]||a._schemas[g]}}}}});var Ni=H((Ym,$i)=>{"use strict";$i.exports=function(e,r,a){var t=" ",n=e.level,o=e.dataLevel,i=e.schema[r],l=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,p=!e.opts.allErrors,h,f="data"+(o||""),d="valid"+n,g="errs__"+n,v=e.opts.$data&&i&&i.$data,y;v?(t+=" var schema"+n+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",y="schema"+n):y=i;var _=this,R="definition"+n,S=_.definition,w="",x,T,N,L,I;if(v&&S.$data){I="keywordValidate"+n;var F=S.validateSchema;t+=" var "+R+" = RULES.custom['"+r+"'].definition; var "+I+" = "+R+".validate;"}else{if(L=e.useCustomRule(_,i,e.schema,e),!L)return;y="validate.schema"+l,I=L.code,x=S.compile,T=S.inline,N=S.macro}var k=I+".errors",j="i"+n,$="ruleErr"+n,A=S.async;if(A&&!e.async)throw new Error("async keyword in sync schema");if(T||N||(t+=""+k+" = null;"),t+="var "+g+" = errors;var "+d+";",v&&S.$data&&(w+="}",t+=" if ("+y+" === undefined) { "+d+" = true; } else { ",F&&(w+="}",t+=" "+d+" = "+R+".validateSchema("+y+"); if ("+d+") { ")),T)S.statements?t+=" "+L.validate+" ":t+=" "+d+" = "+L.validate+"; ";else if(N){var M=e.util.copy(e),w="";M.level++;var ee="valid"+M.level;M.schema=L.validate,M.schemaPath="";var W=e.compositeRule;e.compositeRule=M.compositeRule=!0;var Y=e.validate(M).replace(/validate\.schema/g,I);e.compositeRule=M.compositeRule=W,t+=" "+Y}else{var Q=Q||[];Q.push(t),t="",t+=" "+I+".call( ",e.opts.passContext?t+="this":t+="self",x||S.schema===!1?t+=" , "+f+" ":t+=" , "+y+" , "+f+" , validate.schema"+e.schemaPath+" ",t+=" , (dataPath || '')",e.errorPath!='""'&&(t+=" + "+e.errorPath);var z=o?"data"+(o-1||""):"parentData",he=o?e.dataPathArr[o]:"parentDataProperty";t+=" , "+z+" , "+he+" , rootData ) ";var Oe=t;t=Q.pop(),S.errors===!1?(t+=" "+d+" = ",A&&(t+="await "),t+=""+Oe+"; "):A?(k="customErrors"+n,t+=" var "+k+" = null; try { "+d+" = await "+Oe+"; } catch (e) { "+d+" = false; if (e instanceof ValidationError) "+k+" = e.errors; else throw e; } "):t+=" "+k+" = null; "+d+" = "+Oe+"; "}if(S.modifying&&(t+=" if ("+z+") "+f+" = "+z+"["+he+"];"),t+=""+w,S.valid)p&&(t+=" if (true) { ");else{t+=" if ( ",S.valid===void 0?(t+=" !",N?t+=""+ee:t+=""+d):t+=" "+!S.valid+" ",t+=") { ",h=_.keyword;var Q=Q||[];Q.push(t),t="";var Q=Q||[];Q.push(t),t="",e.createErrors!==!1?(t+=" { keyword: '"+(h||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+_.keyword+"' } ",e.opts.messages!==!1&&(t+=` , message: 'should pass "`+_.keyword+`" keyword validation' `),e.opts.verbose&&(t+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),t+=" } "):t+=" {} ";var Ae=t;t=Q.pop(),!e.compositeRule&&p?e.async?t+=" throw new ValidationError(["+Ae+"]); ":t+=" validate.errors = ["+Ae+"]; return false; ":t+=" var err = "+Ae+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var oe=t;t=Q.pop(),T?S.errors?S.errors!="full"&&(t+=" for (var "+j+"="+g+"; "+j+"{zp.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var Ci=H((tv,Di)=>{"use strict";var Ai=La();Di.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:Ai.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:Ai.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}});var Li=H((rv,ki)=>{"use strict";var Zp=/^[a-z_$][a-z0-9_$-]*$/i,Gp=Ni(),Qp=Ci();ki.exports={add:Wp,get:Xp,remove:Kp,validate:ja};function Wp(s,e){var r=this.RULES;if(r.keywords[s])throw new Error("Keyword "+s+" is already defined");if(!Zp.test(s))throw new Error("Keyword "+s+" is not a valid identifier");if(e){this.validateKeyword(e,!0);var a=e.type;if(Array.isArray(a))for(var t=0;t{Jp.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var Ma=H((av,Zi)=>{"use strict";var Mi=vo(),sr=fs(),Yp=yo(),Ui=Sa(),eh=Oa(),th=$o(),rh=xi(),qi=wi(),Bi=rr();Zi.exports=_e;_e.prototype.validate=ah;_e.prototype.compile=nh;_e.prototype.addSchema=oh;_e.prototype.addMetaSchema=ih;_e.prototype.validateSchema=ch;_e.prototype.getSchema=uh;_e.prototype.removeSchema=ph;_e.prototype.addFormat=bh;_e.prototype.errorsText=_h;_e.prototype._addSchema=hh;_e.prototype._compile=fh;_e.prototype.compileAsync=Ii();var xs=Li();_e.prototype.addKeyword=xs.add;_e.prototype.getKeyword=xs.get;_e.prototype.removeKeyword=xs.remove;_e.prototype.validateKeyword=xs.validate;var Vi=ms();_e.ValidationError=Vi.Validation;_e.MissingRefError=Vi.MissingRef;_e.$dataMetaSchema=qi;var Ss="http://json-schema.org/draft-07/schema",Fi=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],sh=["/properties"];function _e(s){if(!(this instanceof _e))return new _e(s);s=this._opts=Bi.copy(s)||{},wh(this),this._schemas={},this._refs={},this._fragments={},this._formats=th(s.format),this._cache=s.cache||new Yp,this._loadingSchemas={},this._compilations=[],this.RULES=rh(),this._getId=mh(s),s.loopRequired=s.loopRequired||1/0,s.errorDataPath=="property"&&(s._errorDataPathProperty=!0),s.serialize===void 0&&(s.serialize=eh),this._metaOpts=Th(this),s.formats&&xh(this),s.keywords&&Rh(this),Eh(this),typeof s.meta=="object"&&this.addMetaSchema(s.meta),s.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),Sh(this)}function ah(s,e){var r;if(typeof s=="string"){if(r=this.getSchema(s),!r)throw new Error('no schema with key or ref "'+s+'"')}else{var a=this._addSchema(s);r=a.validate||this._compile(a)}var t=r(e);return r.$async!==!0&&(this.errors=r.errors),t}function nh(s,e){var r=this._addSchema(s,void 0,e);return r.validate||this._compile(r)}function oh(s,e,r,a){if(Array.isArray(s)){for(var t=0;t{Yi.exports=Ji;Ji.sync=Ih;var Xi=Rt("fs");function Oh(s,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var a=0;a{ac.exports=rc;rc.sync=$h;var tc=Rt("fs");function rc(s,e,r){tc.stat(s,function(a,t){r(a,a?!1:sc(t,e))})}function $h(s,e){return sc(tc.statSync(s),e)}function sc(s,e){return s.isFile()&&Nh(s,e)}function Nh(s,e){var r=s.mode,a=s.uid,t=s.gid,n=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),i=parseInt("100",8),l=parseInt("010",8),u=parseInt("001",8),p=i|l,h=r&u||r&l&&t===o||r&i&&a===n||r&p&&n===0;return h}});var ic=H((_v,oc)=>{var yv=Rt("fs"),Os;process.platform==="win32"||global.TESTING_WINDOWS?Os=ec():Os=nc();oc.exports=Ua;Ua.sync=Ah;function Ua(s,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(a,t){Ua(s,e||{},function(n,o){n?t(n):a(o)})})}Os(s,e||{},function(a,t){a&&(a.code==="EACCES"||e&&e.ignoreErrors)&&(a=null,t=!1),r(a,t)})}function Ah(s,e){try{return Os.sync(s,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var fc=H((bv,hc)=>{var Sr=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",cc=Rt("path"),Dh=Sr?";":":",lc=ic(),uc=s=>Object.assign(new Error(`not found: ${s}`),{code:"ENOENT"}),dc=(s,e)=>{let r=e.colon||Dh,a=s.match(/\//)||Sr&&s.match(/\\/)?[""]:[...Sr?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],t=Sr?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",n=Sr?t.split(r):[""];return Sr&&s.indexOf(".")!==-1&&n[0]!==""&&n.unshift(""),{pathEnv:a,pathExt:n,pathExtExe:t}},pc=(s,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:a,pathExt:t,pathExtExe:n}=dc(s,e),o=[],i=u=>new Promise((p,h)=>{if(u===a.length)return e.all&&o.length?p(o):h(uc(s));let f=a[u],d=/^".*"$/.test(f)?f.slice(1,-1):f,g=cc.join(d,s),v=!d&&/^\.[\\\/]/.test(s)?s.slice(0,2)+g:g;p(l(v,u,0))}),l=(u,p,h)=>new Promise((f,d)=>{if(h===t.length)return f(i(p+1));let g=t[h];lc(u+g,{pathExt:n},(v,y)=>{if(!v&&y)if(e.all)o.push(u+g);else return f(u+g);return f(l(u,p,h+1))})});return r?i(0).then(u=>r(null,u),r):i(0)},Ch=(s,e)=>{e=e||{};let{pathEnv:r,pathExt:a,pathExtExe:t}=dc(s,e),n=[];for(let o=0;o{"use strict";var mc=(s={})=>{let e=s.env||process.env;return(s.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(a=>a.toUpperCase()==="PATH")||"Path"};qa.exports=mc;qa.exports.default=mc});var bc=H((Sv,_c)=>{"use strict";var gc=Rt("path"),kh=fc(),Lh=vc();function yc(s,e){let r=s.options.env||process.env,a=process.cwd(),t=s.options.cwd!=null,n=t&&process.chdir!==void 0&&!process.chdir.disabled;if(n)try{process.chdir(s.options.cwd)}catch{}let o;try{o=kh.sync(s.command,{path:r[Lh({env:r})],pathExt:e?gc.delimiter:void 0})}catch{}finally{n&&process.chdir(a)}return o&&(o=gc.resolve(t?s.options.cwd:"",o)),o}function jh(s){return yc(s)||yc(s,!0)}_c.exports=jh});var Ec=H((xv,Va)=>{"use strict";var Ba=/([()\][%!^"`<>&|;, *?])/g;function Fh(s){return s=s.replace(Ba,"^$1"),s}function Mh(s,e){return s=`${s}`,s=s.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),s=s.replace(/(?=(\\+?)?)\1$/,"$1$1"),s=`"${s}"`,s=s.replace(Ba,"^$1"),e&&(s=s.replace(Ba,"^$1")),s}Va.exports.command=Fh;Va.exports.argument=Mh});var xc=H((Rv,Sc)=>{"use strict";Sc.exports=/^#!(.*)/});var Tc=H((Tv,Rc)=>{"use strict";var Uh=xc();Rc.exports=(s="")=>{let e=s.match(Uh);if(!e)return null;let[r,a]=e[0].replace(/#! ?/,"").split(" "),t=r.split("/").pop();return t==="env"?a:a?`${t} ${a}`:t}});var Pc=H((wv,wc)=>{"use strict";var Ha=Rt("fs"),qh=Tc();function Bh(s){let r=Buffer.alloc(150),a;try{a=Ha.openSync(s,"r"),Ha.readSync(a,r,0,150,0),Ha.closeSync(a)}catch{}return qh(r.toString())}wc.exports=Bh});var Nc=H((Pv,$c)=>{"use strict";var Vh=Rt("path"),Oc=bc(),Ic=Ec(),Hh=Pc(),zh=process.platform==="win32",Zh=/\.(?:com|exe)$/i,Gh=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Qh(s){s.file=Oc(s);let e=s.file&&Hh(s.file);return e?(s.args.unshift(s.file),s.command=e,Oc(s)):s.file}function Wh(s){if(!zh)return s;let e=Qh(s),r=!Zh.test(e);if(s.options.forceShell||r){let a=Gh.test(e);s.command=Vh.normalize(s.command),s.command=Ic.command(s.command),s.args=s.args.map(n=>Ic.argument(n,a));let t=[s.command].concat(s.args).join(" ");s.args=["/d","/s","/c",`"${t}"`],s.command=process.env.comspec||"cmd.exe",s.options.windowsVerbatimArguments=!0}return s}function Xh(s,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let a={command:s,args:e,options:r,file:void 0,original:{command:s,args:e}};return r.shell?a:Wh(a)}$c.exports=Xh});var Cc=H((Ov,Dc)=>{"use strict";var za=process.platform==="win32";function Za(s,e){return Object.assign(new Error(`${e} ${s.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${s.command}`,path:s.command,spawnargs:s.args})}function Kh(s,e){if(!za)return;let r=s.emit;s.emit=function(a,t){if(a==="exit"){let n=Ac(t,e);if(n)return r.call(s,"error",n)}return r.apply(s,arguments)}}function Ac(s,e){return za&&s===1&&!e.file?Za(e.original,"spawn"):null}function Jh(s,e){return za&&s===1&&!e.file?Za(e.original,"spawnSync"):null}Dc.exports={hookChildProcess:Kh,verifyENOENT:Ac,verifyENOENTSync:Jh,notFoundError:Za}});var jc=H((Iv,xr)=>{"use strict";var kc=Rt("child_process"),Ga=Nc(),Qa=Cc();function Lc(s,e,r){let a=Ga(s,e,r),t=kc.spawn(a.command,a.args,a.options);return Qa.hookChildProcess(t,a),t}function Yh(s,e,r){let a=Ga(s,e,r),t=kc.spawnSync(a.command,a.args,a.options);return t.error=t.error||Qa.verifyENOENTSync(t.status,a),t}xr.exports=Lc;xr.exports.spawn=Lc;xr.exports.sync=Yh;xr.exports._parse=Ga;xr.exports._enoent=Qa});var c={};Wl(c,{BRAND:()=>Su,DIRTY:()=>Ut,EMPTY_PATH:()=>eu,INVALID:()=>Z,NEVER:()=>od,OK:()=>$e,ParseStatus:()=>Pe,Schema:()=>J,ZodAny:()=>Pt,ZodArray:()=>bt,ZodBigInt:()=>Bt,ZodBoolean:()=>Vt,ZodBranded:()=>Ar,ZodCatch:()=>er,ZodDate:()=>Ht,ZodDefault:()=>Yt,ZodDiscriminatedUnion:()=>Gr,ZodEffects:()=>We,ZodEnum:()=>Kt,ZodError:()=>Fe,ZodFirstPartyTypeKind:()=>C,ZodFunction:()=>Wr,ZodIntersection:()=>Qt,ZodIssueCode:()=>D,ZodLazy:()=>Wt,ZodLiteral:()=>Xt,ZodMap:()=>gr,ZodNaN:()=>_r,ZodNativeEnum:()=>Jt,ZodNever:()=>tt,ZodNull:()=>Zt,ZodNullable:()=>ut,ZodNumber:()=>qt,ZodObject:()=>Me,ZodOptional:()=>Ge,ZodParsedType:()=>q,ZodPipeline:()=>Dr,ZodPromise:()=>Ot,ZodReadonly:()=>tr,ZodRecord:()=>Qr,ZodSchema:()=>J,ZodSet:()=>yr,ZodString:()=>wt,ZodSymbol:()=>mr,ZodTransformer:()=>We,ZodTuple:()=>lt,ZodType:()=>J,ZodUndefined:()=>zt,ZodUnion:()=>Gt,ZodUnknown:()=>_t,ZodVoid:()=>vr,addIssueToContext:()=>U,any:()=>Nu,array:()=>ku,bigint:()=>wu,boolean:()=>In,coerce:()=>nd,custom:()=>wn,date:()=>Pu,datetimeRegex:()=>Rn,defaultErrorMap:()=>gt,discriminatedUnion:()=>Mu,effect:()=>Ku,enum:()=>Qu,function:()=>zu,getErrorMap:()=>pr,getParsedType:()=>ct,instanceof:()=>Ru,intersection:()=>Uu,isAborted:()=>zr,isAsync:()=>hr,isDirty:()=>Zr,isValid:()=>Tt,late:()=>xu,lazy:()=>Zu,literal:()=>Gu,makeIssue:()=>Nr,map:()=>Vu,nan:()=>Tu,nativeEnum:()=>Wu,never:()=>Du,null:()=>$u,nullable:()=>Yu,number:()=>On,object:()=>Lu,objectUtil:()=>zs,oboolean:()=>ad,onumber:()=>sd,optional:()=>Ju,ostring:()=>rd,pipeline:()=>td,preprocess:()=>ed,promise:()=>Xu,quotelessJson:()=>Kl,record:()=>Bu,set:()=>Hu,setErrorMap:()=>Yl,strictObject:()=>ju,string:()=>Pn,symbol:()=>Ou,transformer:()=>Ku,tuple:()=>qu,undefined:()=>Iu,union:()=>Fu,unknown:()=>Au,util:()=>te,void:()=>Cu});var te;(function(s){s.assertEqual=t=>{};function e(t){}s.assertIs=e;function r(t){throw new Error}s.assertNever=r,s.arrayToEnum=t=>{let n={};for(let o of t)n[o]=o;return n},s.getValidEnumValues=t=>{let n=s.objectKeys(t).filter(i=>typeof t[t[i]]!="number"),o={};for(let i of n)o[i]=t[i];return s.objectValues(o)},s.objectValues=t=>s.objectKeys(t).map(function(n){return t[n]}),s.objectKeys=typeof Object.keys=="function"?t=>Object.keys(t):t=>{let n=[];for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&n.push(o);return n},s.find=(t,n)=>{for(let o of t)if(n(o))return o},s.isInteger=typeof Number.isInteger=="function"?t=>Number.isInteger(t):t=>typeof t=="number"&&Number.isFinite(t)&&Math.floor(t)===t;function a(t,n=" | "){return t.map(o=>typeof o=="string"?`'${o}'`:o).join(n)}s.joinValues=a,s.jsonStringifyReplacer=(t,n)=>typeof n=="bigint"?n.toString():n})(te||(te={}));var zs;(function(s){s.mergeShapes=(e,r)=>({...e,...r})})(zs||(zs={}));var q=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ct=s=>{switch(typeof s){case"undefined":return q.undefined;case"string":return q.string;case"number":return Number.isNaN(s)?q.nan:q.number;case"boolean":return q.boolean;case"function":return q.function;case"bigint":return q.bigint;case"symbol":return q.symbol;case"object":return Array.isArray(s)?q.array:s===null?q.null:s.then&&typeof s.then=="function"&&s.catch&&typeof s.catch=="function"?q.promise:typeof Map<"u"&&s instanceof Map?q.map:typeof Set<"u"&&s instanceof Set?q.set:typeof Date<"u"&&s instanceof Date?q.date:q.object;default:return q.unknown}};var D=te.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Kl=s=>JSON.stringify(s,null,2).replace(/"([^"]+)":/g,"$1:"),Fe=class s extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=a=>{this.issues=[...this.issues,a]},this.addIssues=(a=[])=>{this.issues=[...this.issues,...a]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(n){return n.message},a={_errors:[]},t=n=>{for(let o of n.issues)if(o.code==="invalid_union")o.unionErrors.map(t);else if(o.code==="invalid_return_type")t(o.returnTypeError);else if(o.code==="invalid_arguments")t(o.argumentsError);else if(o.path.length===0)a._errors.push(r(o));else{let i=a,l=0;for(;lr.message){let r={},a=[];for(let t of this.issues)if(t.path.length>0){let n=t.path[0];r[n]=r[n]||[],r[n].push(e(t))}else a.push(e(t));return{formErrors:a,fieldErrors:r}}get formErrors(){return this.flatten()}};Fe.create=s=>new Fe(s);var Jl=(s,e)=>{let r;switch(s.code){case D.invalid_type:s.received===q.undefined?r="Required":r=`Expected ${s.expected}, received ${s.received}`;break;case D.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(s.expected,te.jsonStringifyReplacer)}`;break;case D.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(s.keys,", ")}`;break;case D.invalid_union:r="Invalid input";break;case D.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(s.options)}`;break;case D.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(s.options)}, received '${s.received}'`;break;case D.invalid_arguments:r="Invalid function arguments";break;case D.invalid_return_type:r="Invalid function return type";break;case D.invalid_date:r="Invalid date";break;case D.invalid_string:typeof s.validation=="object"?"includes"in s.validation?(r=`Invalid input: must include "${s.validation.includes}"`,typeof s.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${s.validation.position}`)):"startsWith"in s.validation?r=`Invalid input: must start with "${s.validation.startsWith}"`:"endsWith"in s.validation?r=`Invalid input: must end with "${s.validation.endsWith}"`:te.assertNever(s.validation):s.validation!=="regex"?r=`Invalid ${s.validation}`:r="Invalid";break;case D.too_small:s.type==="array"?r=`Array must contain ${s.exact?"exactly":s.inclusive?"at least":"more than"} ${s.minimum} element(s)`:s.type==="string"?r=`String must contain ${s.exact?"exactly":s.inclusive?"at least":"over"} ${s.minimum} character(s)`:s.type==="number"?r=`Number must be ${s.exact?"exactly equal to ":s.inclusive?"greater than or equal to ":"greater than "}${s.minimum}`:s.type==="bigint"?r=`Number must be ${s.exact?"exactly equal to ":s.inclusive?"greater than or equal to ":"greater than "}${s.minimum}`:s.type==="date"?r=`Date must be ${s.exact?"exactly equal to ":s.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(s.minimum))}`:r="Invalid input";break;case D.too_big:s.type==="array"?r=`Array must contain ${s.exact?"exactly":s.inclusive?"at most":"less than"} ${s.maximum} element(s)`:s.type==="string"?r=`String must contain ${s.exact?"exactly":s.inclusive?"at most":"under"} ${s.maximum} character(s)`:s.type==="number"?r=`Number must be ${s.exact?"exactly":s.inclusive?"less than or equal to":"less than"} ${s.maximum}`:s.type==="bigint"?r=`BigInt must be ${s.exact?"exactly":s.inclusive?"less than or equal to":"less than"} ${s.maximum}`:s.type==="date"?r=`Date must be ${s.exact?"exactly":s.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(s.maximum))}`:r="Invalid input";break;case D.custom:r="Invalid input";break;case D.invalid_intersection_types:r="Intersection results could not be merged";break;case D.not_multiple_of:r=`Number must be a multiple of ${s.multipleOf}`;break;case D.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(s)}return{message:r}},gt=Jl;var _n=gt;function Yl(s){_n=s}function pr(){return _n}var Nr=s=>{let{data:e,path:r,errorMaps:a,issueData:t}=s,n=[...r,...t.path||[]],o={...t,path:n};if(t.message!==void 0)return{...t,path:n,message:t.message};let i="",l=a.filter(u=>!!u).slice().reverse();for(let u of l)i=u(o,{data:e,defaultError:i}).message;return{...t,path:n,message:i}},eu=[];function U(s,e){let r=pr(),a=Nr({issueData:e,data:s.data,path:s.path,errorMaps:[s.common.contextualErrorMap,s.schemaErrorMap,r,r===gt?void 0:gt].filter(t=>!!t)});s.common.issues.push(a)}var Pe=class s{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let a=[];for(let t of r){if(t.status==="aborted")return Z;t.status==="dirty"&&e.dirty(),a.push(t.value)}return{status:e.value,value:a}}static async mergeObjectAsync(e,r){let a=[];for(let t of r){let n=await t.key,o=await t.value;a.push({key:n,value:o})}return s.mergeObjectSync(e,a)}static mergeObjectSync(e,r){let a={};for(let t of r){let{key:n,value:o}=t;if(n.status==="aborted"||o.status==="aborted")return Z;n.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),n.value!=="__proto__"&&(typeof o.value<"u"||t.alwaysSet)&&(a[n.value]=o.value)}return{status:e.value,value:a}}},Z=Object.freeze({status:"aborted"}),Ut=s=>({status:"dirty",value:s}),$e=s=>({status:"valid",value:s}),zr=s=>s.status==="aborted",Zr=s=>s.status==="dirty",Tt=s=>s.status==="valid",hr=s=>typeof Promise<"u"&&s instanceof Promise;var V;(function(s){s.errToObj=e=>typeof e=="string"?{message:e}:e||{},s.toString=e=>typeof e=="string"?e:e?.message})(V||(V={}));var Qe=class{constructor(e,r,a,t){this._cachedPath=[],this.parent=e,this.data=r,this._path=a,this._key=t}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},bn=(s,e)=>{if(Tt(e))return{success:!0,data:e.value};if(!s.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Fe(s.common.issues);return this._error=r,this._error}}};function X(s){if(!s)return{};let{errorMap:e,invalid_type_error:r,required_error:a,description:t}=s;if(e&&(r||a))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:t}:{errorMap:(o,i)=>{let{message:l}=s;return o.code==="invalid_enum_value"?{message:l??i.defaultError}:typeof i.data>"u"?{message:l??a??i.defaultError}:o.code!=="invalid_type"?{message:i.defaultError}:{message:l??r??i.defaultError}},description:t}}var J=class{get description(){return this._def.description}_getType(e){return ct(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:ct(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Pe,ctx:{common:e.parent.common,data:e.data,parsedType:ct(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(hr(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let a=this.safeParse(e,r);if(a.success)return a.data;throw a.error}safeParse(e,r){let a={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ct(e)},t=this._parseSync({data:e,path:a.path,parent:a});return bn(a,t)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ct(e)};if(!this["~standard"].async)try{let a=this._parseSync({data:e,path:[],parent:r});return Tt(a)?{value:a.value}:{issues:r.common.issues}}catch(a){a?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(a=>Tt(a)?{value:a.value}:{issues:r.common.issues})}async parseAsync(e,r){let a=await this.safeParseAsync(e,r);if(a.success)return a.data;throw a.error}async safeParseAsync(e,r){let a={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ct(e)},t=this._parse({data:e,path:a.path,parent:a}),n=await(hr(t)?t:Promise.resolve(t));return bn(a,n)}refine(e,r){let a=t=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(t):r;return this._refinement((t,n)=>{let o=e(t),i=()=>n.addIssue({code:D.custom,...a(t)});return typeof Promise<"u"&&o instanceof Promise?o.then(l=>l?!0:(i(),!1)):o?!0:(i(),!1)})}refinement(e,r){return this._refinement((a,t)=>e(a)?!0:(t.addIssue(typeof r=="function"?r(a,t):r),!1))}_refinement(e){return new We({schema:this,typeName:C.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return Ge.create(this,this._def)}nullable(){return ut.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return bt.create(this)}promise(){return Ot.create(this,this._def)}or(e){return Gt.create([this,e],this._def)}and(e){return Qt.create(this,e,this._def)}transform(e){return new We({...X(this._def),schema:this,typeName:C.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Yt({...X(this._def),innerType:this,defaultValue:r,typeName:C.ZodDefault})}brand(){return new Ar({typeName:C.ZodBranded,type:this,...X(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new er({...X(this._def),innerType:this,catchValue:r,typeName:C.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Dr.create(this,e)}readonly(){return tr.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},tu=/^c[^\s-]{8,}$/i,ru=/^[0-9a-z]+$/,su=/^[0-9A-HJKMNP-TV-Z]{26}$/i,au=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,nu=/^[a-z0-9_-]{21}$/i,ou=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,iu=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,cu=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,lu="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Zs,uu=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,du=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,pu=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,hu=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,fu=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,mu=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Sn="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",vu=new RegExp(`^${Sn}$`);function xn(s){let e="[0-5]\\d";s.precision?e=`${e}\\.\\d{${s.precision}}`:s.precision==null&&(e=`${e}(\\.\\d+)?`);let r=s.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function gu(s){return new RegExp(`^${xn(s)}$`)}function Rn(s){let e=`${Sn}T${xn(s)}`,r=[];return r.push(s.local?"Z?":"Z"),s.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function yu(s,e){return!!((e==="v4"||!e)&&uu.test(s)||(e==="v6"||!e)&&pu.test(s))}function _u(s,e){if(!ou.test(s))return!1;try{let[r]=s.split(".");if(!r)return!1;let a=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),t=JSON.parse(atob(a));return!(typeof t!="object"||t===null||"typ"in t&&t?.typ!=="JWT"||!t.alg||e&&t.alg!==e)}catch{return!1}}function bu(s,e){return!!((e==="v4"||!e)&&du.test(s)||(e==="v6"||!e)&&hu.test(s))}var wt=class s extends J{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==q.string){let n=this._getOrReturnCtx(e);return U(n,{code:D.invalid_type,expected:q.string,received:n.parsedType}),Z}let a=new Pe,t;for(let n of this._def.checks)if(n.kind==="min")e.data.lengthn.value&&(t=this._getOrReturnCtx(e,t),U(t,{code:D.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),a.dirty());else if(n.kind==="length"){let o=e.data.length>n.value,i=e.data.lengthe.test(t),{validation:r,code:D.invalid_string,...V.errToObj(a)})}_addCheck(e){return new s({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...V.errToObj(e)})}url(e){return this._addCheck({kind:"url",...V.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...V.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...V.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...V.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...V.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...V.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...V.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...V.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...V.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...V.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...V.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...V.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...V.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...V.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...V.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...V.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...V.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...V.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...V.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...V.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...V.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...V.errToObj(r)})}nonempty(e){return this.min(1,V.errToObj(e))}trim(){return new s({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new s({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new s({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew wt({checks:[],typeName:C.ZodString,coerce:s?.coerce??!1,...X(s)});function Eu(s,e){let r=(s.toString().split(".")[1]||"").length,a=(e.toString().split(".")[1]||"").length,t=r>a?r:a,n=Number.parseInt(s.toFixed(t).replace(".","")),o=Number.parseInt(e.toFixed(t).replace(".",""));return n%o/10**t}var qt=class s extends J{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==q.number){let n=this._getOrReturnCtx(e);return U(n,{code:D.invalid_type,expected:q.number,received:n.parsedType}),Z}let a,t=new Pe;for(let n of this._def.checks)n.kind==="int"?te.isInteger(e.data)||(a=this._getOrReturnCtx(e,a),U(a,{code:D.invalid_type,expected:"integer",received:"float",message:n.message}),t.dirty()):n.kind==="min"?(n.inclusive?e.datan.value:e.data>=n.value)&&(a=this._getOrReturnCtx(e,a),U(a,{code:D.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),t.dirty()):n.kind==="multipleOf"?Eu(e.data,n.value)!==0&&(a=this._getOrReturnCtx(e,a),U(a,{code:D.not_multiple_of,multipleOf:n.value,message:n.message}),t.dirty()):n.kind==="finite"?Number.isFinite(e.data)||(a=this._getOrReturnCtx(e,a),U(a,{code:D.not_finite,message:n.message}),t.dirty()):te.assertNever(n);return{status:t.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,V.toString(r))}gt(e,r){return this.setLimit("min",e,!1,V.toString(r))}lte(e,r){return this.setLimit("max",e,!0,V.toString(r))}lt(e,r){return this.setLimit("max",e,!1,V.toString(r))}setLimit(e,r,a,t){return new s({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:a,message:V.toString(t)}]})}_addCheck(e){return new s({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:V.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:V.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:V.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:V.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:V.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:V.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:V.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:V.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:V.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuee.kind==="int"||e.kind==="multipleOf"&&te.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let a of this._def.checks){if(a.kind==="finite"||a.kind==="int"||a.kind==="multipleOf")return!0;a.kind==="min"?(r===null||a.value>r)&&(r=a.value):a.kind==="max"&&(e===null||a.valuenew qt({checks:[],typeName:C.ZodNumber,coerce:s?.coerce||!1,...X(s)});var Bt=class s extends J{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==q.bigint)return this._getInvalidInput(e);let a,t=new Pe;for(let n of this._def.checks)n.kind==="min"?(n.inclusive?e.datan.value:e.data>=n.value)&&(a=this._getOrReturnCtx(e,a),U(a,{code:D.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),t.dirty()):n.kind==="multipleOf"?e.data%n.value!==BigInt(0)&&(a=this._getOrReturnCtx(e,a),U(a,{code:D.not_multiple_of,multipleOf:n.value,message:n.message}),t.dirty()):te.assertNever(n);return{status:t.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return U(r,{code:D.invalid_type,expected:q.bigint,received:r.parsedType}),Z}gte(e,r){return this.setLimit("min",e,!0,V.toString(r))}gt(e,r){return this.setLimit("min",e,!1,V.toString(r))}lte(e,r){return this.setLimit("max",e,!0,V.toString(r))}lt(e,r){return this.setLimit("max",e,!1,V.toString(r))}setLimit(e,r,a,t){return new s({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:a,message:V.toString(t)}]})}_addCheck(e){return new s({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:V.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:V.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:V.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:V.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:V.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Bt({checks:[],typeName:C.ZodBigInt,coerce:s?.coerce??!1,...X(s)});var Vt=class extends J{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==q.boolean){let a=this._getOrReturnCtx(e);return U(a,{code:D.invalid_type,expected:q.boolean,received:a.parsedType}),Z}return $e(e.data)}};Vt.create=s=>new Vt({typeName:C.ZodBoolean,coerce:s?.coerce||!1,...X(s)});var Ht=class s extends J{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==q.date){let n=this._getOrReturnCtx(e);return U(n,{code:D.invalid_type,expected:q.date,received:n.parsedType}),Z}if(Number.isNaN(e.data.getTime())){let n=this._getOrReturnCtx(e);return U(n,{code:D.invalid_date}),Z}let a=new Pe,t;for(let n of this._def.checks)n.kind==="min"?e.data.getTime()n.value&&(t=this._getOrReturnCtx(e,t),U(t,{code:D.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),a.dirty()):te.assertNever(n);return{status:a.value,value:new Date(e.data.getTime())}}_addCheck(e){return new s({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:V.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:V.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Ht({checks:[],coerce:s?.coerce||!1,typeName:C.ZodDate,...X(s)});var mr=class extends J{_parse(e){if(this._getType(e)!==q.symbol){let a=this._getOrReturnCtx(e);return U(a,{code:D.invalid_type,expected:q.symbol,received:a.parsedType}),Z}return $e(e.data)}};mr.create=s=>new mr({typeName:C.ZodSymbol,...X(s)});var zt=class extends J{_parse(e){if(this._getType(e)!==q.undefined){let a=this._getOrReturnCtx(e);return U(a,{code:D.invalid_type,expected:q.undefined,received:a.parsedType}),Z}return $e(e.data)}};zt.create=s=>new zt({typeName:C.ZodUndefined,...X(s)});var Zt=class extends J{_parse(e){if(this._getType(e)!==q.null){let a=this._getOrReturnCtx(e);return U(a,{code:D.invalid_type,expected:q.null,received:a.parsedType}),Z}return $e(e.data)}};Zt.create=s=>new Zt({typeName:C.ZodNull,...X(s)});var Pt=class extends J{constructor(){super(...arguments),this._any=!0}_parse(e){return $e(e.data)}};Pt.create=s=>new Pt({typeName:C.ZodAny,...X(s)});var _t=class extends J{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $e(e.data)}};_t.create=s=>new _t({typeName:C.ZodUnknown,...X(s)});var tt=class extends J{_parse(e){let r=this._getOrReturnCtx(e);return U(r,{code:D.invalid_type,expected:q.never,received:r.parsedType}),Z}};tt.create=s=>new tt({typeName:C.ZodNever,...X(s)});var vr=class extends J{_parse(e){if(this._getType(e)!==q.undefined){let a=this._getOrReturnCtx(e);return U(a,{code:D.invalid_type,expected:q.void,received:a.parsedType}),Z}return $e(e.data)}};vr.create=s=>new vr({typeName:C.ZodVoid,...X(s)});var bt=class s extends J{_parse(e){let{ctx:r,status:a}=this._processInputParams(e),t=this._def;if(r.parsedType!==q.array)return U(r,{code:D.invalid_type,expected:q.array,received:r.parsedType}),Z;if(t.exactLength!==null){let o=r.data.length>t.exactLength.value,i=r.data.lengtht.maxLength.value&&(U(r,{code:D.too_big,maximum:t.maxLength.value,type:"array",inclusive:!0,exact:!1,message:t.maxLength.message}),a.dirty()),r.common.async)return Promise.all([...r.data].map((o,i)=>t.type._parseAsync(new Qe(r,o,r.path,i)))).then(o=>Pe.mergeArray(a,o));let n=[...r.data].map((o,i)=>t.type._parseSync(new Qe(r,o,r.path,i)));return Pe.mergeArray(a,n)}get element(){return this._def.type}min(e,r){return new s({...this._def,minLength:{value:e,message:V.toString(r)}})}max(e,r){return new s({...this._def,maxLength:{value:e,message:V.toString(r)}})}length(e,r){return new s({...this._def,exactLength:{value:e,message:V.toString(r)}})}nonempty(e){return this.min(1,e)}};bt.create=(s,e)=>new bt({type:s,minLength:null,maxLength:null,exactLength:null,typeName:C.ZodArray,...X(e)});function fr(s){if(s instanceof Me){let e={};for(let r in s.shape){let a=s.shape[r];e[r]=Ge.create(fr(a))}return new Me({...s._def,shape:()=>e})}else return s instanceof bt?new bt({...s._def,type:fr(s.element)}):s instanceof Ge?Ge.create(fr(s.unwrap())):s instanceof ut?ut.create(fr(s.unwrap())):s instanceof lt?lt.create(s.items.map(e=>fr(e))):s}var Me=class s extends J{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=te.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==q.object){let u=this._getOrReturnCtx(e);return U(u,{code:D.invalid_type,expected:q.object,received:u.parsedType}),Z}let{status:a,ctx:t}=this._processInputParams(e),{shape:n,keys:o}=this._getCached(),i=[];if(!(this._def.catchall instanceof tt&&this._def.unknownKeys==="strip"))for(let u in t.data)o.includes(u)||i.push(u);let l=[];for(let u of o){let p=n[u],h=t.data[u];l.push({key:{status:"valid",value:u},value:p._parse(new Qe(t,h,t.path,u)),alwaysSet:u in t.data})}if(this._def.catchall instanceof tt){let u=this._def.unknownKeys;if(u==="passthrough")for(let p of i)l.push({key:{status:"valid",value:p},value:{status:"valid",value:t.data[p]}});else if(u==="strict")i.length>0&&(U(t,{code:D.unrecognized_keys,keys:i}),a.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let p of i){let h=t.data[p];l.push({key:{status:"valid",value:p},value:u._parse(new Qe(t,h,t.path,p)),alwaysSet:p in t.data})}}return t.common.async?Promise.resolve().then(async()=>{let u=[];for(let p of l){let h=await p.key,f=await p.value;u.push({key:h,value:f,alwaysSet:p.alwaysSet})}return u}).then(u=>Pe.mergeObjectSync(a,u)):Pe.mergeObjectSync(a,l)}get shape(){return this._def.shape()}strict(e){return V.errToObj,new s({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,a)=>{let t=this._def.errorMap?.(r,a).message??a.defaultError;return r.code==="unrecognized_keys"?{message:V.errToObj(e).message??t}:{message:t}}}:{}})}strip(){return new s({...this._def,unknownKeys:"strip"})}passthrough(){return new s({...this._def,unknownKeys:"passthrough"})}extend(e){return new s({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new s({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:C.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new s({...this._def,catchall:e})}pick(e){let r={};for(let a of te.objectKeys(e))e[a]&&this.shape[a]&&(r[a]=this.shape[a]);return new s({...this._def,shape:()=>r})}omit(e){let r={};for(let a of te.objectKeys(this.shape))e[a]||(r[a]=this.shape[a]);return new s({...this._def,shape:()=>r})}deepPartial(){return fr(this)}partial(e){let r={};for(let a of te.objectKeys(this.shape)){let t=this.shape[a];e&&!e[a]?r[a]=t:r[a]=t.optional()}return new s({...this._def,shape:()=>r})}required(e){let r={};for(let a of te.objectKeys(this.shape))if(e&&!e[a])r[a]=this.shape[a];else{let n=this.shape[a];for(;n instanceof Ge;)n=n._def.innerType;r[a]=n}return new s({...this._def,shape:()=>r})}keyof(){return Tn(te.objectKeys(this.shape))}};Me.create=(s,e)=>new Me({shape:()=>s,unknownKeys:"strip",catchall:tt.create(),typeName:C.ZodObject,...X(e)});Me.strictCreate=(s,e)=>new Me({shape:()=>s,unknownKeys:"strict",catchall:tt.create(),typeName:C.ZodObject,...X(e)});Me.lazycreate=(s,e)=>new Me({shape:s,unknownKeys:"strip",catchall:tt.create(),typeName:C.ZodObject,...X(e)});var Gt=class extends J{_parse(e){let{ctx:r}=this._processInputParams(e),a=this._def.options;function t(n){for(let i of n)if(i.result.status==="valid")return i.result;for(let i of n)if(i.result.status==="dirty")return r.common.issues.push(...i.ctx.common.issues),i.result;let o=n.map(i=>new Fe(i.ctx.common.issues));return U(r,{code:D.invalid_union,unionErrors:o}),Z}if(r.common.async)return Promise.all(a.map(async n=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await n._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(t);{let n,o=[];for(let l of a){let u={...r,common:{...r.common,issues:[]},parent:null},p=l._parseSync({data:r.data,path:r.path,parent:u});if(p.status==="valid")return p;p.status==="dirty"&&!n&&(n={result:p,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(n)return r.common.issues.push(...n.ctx.common.issues),n.result;let i=o.map(l=>new Fe(l));return U(r,{code:D.invalid_union,unionErrors:i}),Z}}get options(){return this._def.options}};Gt.create=(s,e)=>new Gt({options:s,typeName:C.ZodUnion,...X(e)});var yt=s=>s instanceof Wt?yt(s.schema):s instanceof We?yt(s.innerType()):s instanceof Xt?[s.value]:s instanceof Kt?s.options:s instanceof Jt?te.objectValues(s.enum):s instanceof Yt?yt(s._def.innerType):s instanceof zt?[void 0]:s instanceof Zt?[null]:s instanceof Ge?[void 0,...yt(s.unwrap())]:s instanceof ut?[null,...yt(s.unwrap())]:s instanceof Ar||s instanceof tr?yt(s.unwrap()):s instanceof er?yt(s._def.innerType):[],Gr=class s extends J{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==q.object)return U(r,{code:D.invalid_type,expected:q.object,received:r.parsedType}),Z;let a=this.discriminator,t=r.data[a],n=this.optionsMap.get(t);return n?r.common.async?n._parseAsync({data:r.data,path:r.path,parent:r}):n._parseSync({data:r.data,path:r.path,parent:r}):(U(r,{code:D.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[a]}),Z)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,a){let t=new Map;for(let n of r){let o=yt(n.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let i of o){if(t.has(i))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(i)}`);t.set(i,n)}}return new s({typeName:C.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:t,...X(a)})}};function Gs(s,e){let r=ct(s),a=ct(e);if(s===e)return{valid:!0,data:s};if(r===q.object&&a===q.object){let t=te.objectKeys(e),n=te.objectKeys(s).filter(i=>t.indexOf(i)!==-1),o={...s,...e};for(let i of n){let l=Gs(s[i],e[i]);if(!l.valid)return{valid:!1};o[i]=l.data}return{valid:!0,data:o}}else if(r===q.array&&a===q.array){if(s.length!==e.length)return{valid:!1};let t=[];for(let n=0;n{if(zr(n)||zr(o))return Z;let i=Gs(n.value,o.value);return i.valid?((Zr(n)||Zr(o))&&r.dirty(),{status:r.value,value:i.data}):(U(a,{code:D.invalid_intersection_types}),Z)};return a.common.async?Promise.all([this._def.left._parseAsync({data:a.data,path:a.path,parent:a}),this._def.right._parseAsync({data:a.data,path:a.path,parent:a})]).then(([n,o])=>t(n,o)):t(this._def.left._parseSync({data:a.data,path:a.path,parent:a}),this._def.right._parseSync({data:a.data,path:a.path,parent:a}))}};Qt.create=(s,e,r)=>new Qt({left:s,right:e,typeName:C.ZodIntersection,...X(r)});var lt=class s extends J{_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==q.array)return U(a,{code:D.invalid_type,expected:q.array,received:a.parsedType}),Z;if(a.data.lengththis._def.items.length&&(U(a,{code:D.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let n=[...a.data].map((o,i)=>{let l=this._def.items[i]||this._def.rest;return l?l._parse(new Qe(a,o,a.path,i)):null}).filter(o=>!!o);return a.common.async?Promise.all(n).then(o=>Pe.mergeArray(r,o)):Pe.mergeArray(r,n)}get items(){return this._def.items}rest(e){return new s({...this._def,rest:e})}};lt.create=(s,e)=>{if(!Array.isArray(s))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new lt({items:s,typeName:C.ZodTuple,rest:null,...X(e)})};var Qr=class s extends J{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==q.object)return U(a,{code:D.invalid_type,expected:q.object,received:a.parsedType}),Z;let t=[],n=this._def.keyType,o=this._def.valueType;for(let i in a.data)t.push({key:n._parse(new Qe(a,i,a.path,i)),value:o._parse(new Qe(a,a.data[i],a.path,i)),alwaysSet:i in a.data});return a.common.async?Pe.mergeObjectAsync(r,t):Pe.mergeObjectSync(r,t)}get element(){return this._def.valueType}static create(e,r,a){return r instanceof J?new s({keyType:e,valueType:r,typeName:C.ZodRecord,...X(a)}):new s({keyType:wt.create(),valueType:e,typeName:C.ZodRecord,...X(r)})}},gr=class extends J{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==q.map)return U(a,{code:D.invalid_type,expected:q.map,received:a.parsedType}),Z;let t=this._def.keyType,n=this._def.valueType,o=[...a.data.entries()].map(([i,l],u)=>({key:t._parse(new Qe(a,i,a.path,[u,"key"])),value:n._parse(new Qe(a,l,a.path,[u,"value"]))}));if(a.common.async){let i=new Map;return Promise.resolve().then(async()=>{for(let l of o){let u=await l.key,p=await l.value;if(u.status==="aborted"||p.status==="aborted")return Z;(u.status==="dirty"||p.status==="dirty")&&r.dirty(),i.set(u.value,p.value)}return{status:r.value,value:i}})}else{let i=new Map;for(let l of o){let u=l.key,p=l.value;if(u.status==="aborted"||p.status==="aborted")return Z;(u.status==="dirty"||p.status==="dirty")&&r.dirty(),i.set(u.value,p.value)}return{status:r.value,value:i}}}};gr.create=(s,e,r)=>new gr({valueType:e,keyType:s,typeName:C.ZodMap,...X(r)});var yr=class s extends J{_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.parsedType!==q.set)return U(a,{code:D.invalid_type,expected:q.set,received:a.parsedType}),Z;let t=this._def;t.minSize!==null&&a.data.sizet.maxSize.value&&(U(a,{code:D.too_big,maximum:t.maxSize.value,type:"set",inclusive:!0,exact:!1,message:t.maxSize.message}),r.dirty());let n=this._def.valueType;function o(l){let u=new Set;for(let p of l){if(p.status==="aborted")return Z;p.status==="dirty"&&r.dirty(),u.add(p.value)}return{status:r.value,value:u}}let i=[...a.data.values()].map((l,u)=>n._parse(new Qe(a,l,a.path,u)));return a.common.async?Promise.all(i).then(l=>o(l)):o(i)}min(e,r){return new s({...this._def,minSize:{value:e,message:V.toString(r)}})}max(e,r){return new s({...this._def,maxSize:{value:e,message:V.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};yr.create=(s,e)=>new yr({valueType:s,minSize:null,maxSize:null,typeName:C.ZodSet,...X(e)});var Wr=class s extends J{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==q.function)return U(r,{code:D.invalid_type,expected:q.function,received:r.parsedType}),Z;function a(i,l){return Nr({data:i,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,pr(),gt].filter(u=>!!u),issueData:{code:D.invalid_arguments,argumentsError:l}})}function t(i,l){return Nr({data:i,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,pr(),gt].filter(u=>!!u),issueData:{code:D.invalid_return_type,returnTypeError:l}})}let n={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Ot){let i=this;return $e(async function(...l){let u=new Fe([]),p=await i._def.args.parseAsync(l,n).catch(d=>{throw u.addIssue(a(l,d)),u}),h=await Reflect.apply(o,this,p);return await i._def.returns._def.type.parseAsync(h,n).catch(d=>{throw u.addIssue(t(h,d)),u})})}else{let i=this;return $e(function(...l){let u=i._def.args.safeParse(l,n);if(!u.success)throw new Fe([a(l,u.error)]);let p=Reflect.apply(o,this,u.data),h=i._def.returns.safeParse(p,n);if(!h.success)throw new Fe([t(p,h.error)]);return h.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new s({...this._def,args:lt.create(e).rest(_t.create())})}returns(e){return new s({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,a){return new s({args:e||lt.create([]).rest(_t.create()),returns:r||_t.create(),typeName:C.ZodFunction,...X(a)})}},Wt=class extends J{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Wt.create=(s,e)=>new Wt({getter:s,typeName:C.ZodLazy,...X(e)});var Xt=class extends J{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return U(r,{received:r.data,code:D.invalid_literal,expected:this._def.value}),Z}return{status:"valid",value:e.data}}get value(){return this._def.value}};Xt.create=(s,e)=>new Xt({value:s,typeName:C.ZodLiteral,...X(e)});function Tn(s,e){return new Kt({values:s,typeName:C.ZodEnum,...X(e)})}var Kt=class s extends J{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),a=this._def.values;return U(r,{expected:te.joinValues(a),received:r.parsedType,code:D.invalid_type}),Z}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),a=this._def.values;return U(r,{received:r.data,code:D.invalid_enum_value,options:a}),Z}return $e(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return s.create(e,{...this._def,...r})}exclude(e,r=this._def){return s.create(this.options.filter(a=>!e.includes(a)),{...this._def,...r})}};Kt.create=Tn;var Jt=class extends J{_parse(e){let r=te.getValidEnumValues(this._def.values),a=this._getOrReturnCtx(e);if(a.parsedType!==q.string&&a.parsedType!==q.number){let t=te.objectValues(r);return U(a,{expected:te.joinValues(t),received:a.parsedType,code:D.invalid_type}),Z}if(this._cache||(this._cache=new Set(te.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let t=te.objectValues(r);return U(a,{received:a.data,code:D.invalid_enum_value,options:t}),Z}return $e(e.data)}get enum(){return this._def.values}};Jt.create=(s,e)=>new Jt({values:s,typeName:C.ZodNativeEnum,...X(e)});var Ot=class extends J{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==q.promise&&r.common.async===!1)return U(r,{code:D.invalid_type,expected:q.promise,received:r.parsedType}),Z;let a=r.parsedType===q.promise?r.data:Promise.resolve(r.data);return $e(a.then(t=>this._def.type.parseAsync(t,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Ot.create=(s,e)=>new Ot({type:s,typeName:C.ZodPromise,...X(e)});var We=class extends J{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===C.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:a}=this._processInputParams(e),t=this._def.effect||null,n={addIssue:o=>{U(a,o),o.fatal?r.abort():r.dirty()},get path(){return a.path}};if(n.addIssue=n.addIssue.bind(n),t.type==="preprocess"){let o=t.transform(a.data,n);if(a.common.async)return Promise.resolve(o).then(async i=>{if(r.value==="aborted")return Z;let l=await this._def.schema._parseAsync({data:i,path:a.path,parent:a});return l.status==="aborted"?Z:l.status==="dirty"?Ut(l.value):r.value==="dirty"?Ut(l.value):l});{if(r.value==="aborted")return Z;let i=this._def.schema._parseSync({data:o,path:a.path,parent:a});return i.status==="aborted"?Z:i.status==="dirty"?Ut(i.value):r.value==="dirty"?Ut(i.value):i}}if(t.type==="refinement"){let o=i=>{let l=t.refinement(i,n);if(a.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return i};if(a.common.async===!1){let i=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});return i.status==="aborted"?Z:(i.status==="dirty"&&r.dirty(),o(i.value),{status:r.value,value:i.value})}else return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then(i=>i.status==="aborted"?Z:(i.status==="dirty"&&r.dirty(),o(i.value).then(()=>({status:r.value,value:i.value}))))}if(t.type==="transform")if(a.common.async===!1){let o=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});if(!Tt(o))return Z;let i=t.transform(o.value,n);if(i instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:i}}else return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then(o=>Tt(o)?Promise.resolve(t.transform(o.value,n)).then(i=>({status:r.value,value:i})):Z);te.assertNever(t)}};We.create=(s,e,r)=>new We({schema:s,typeName:C.ZodEffects,effect:e,...X(r)});We.createWithPreprocess=(s,e,r)=>new We({schema:e,effect:{type:"preprocess",transform:s},typeName:C.ZodEffects,...X(r)});var Ge=class extends J{_parse(e){return this._getType(e)===q.undefined?$e(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Ge.create=(s,e)=>new Ge({innerType:s,typeName:C.ZodOptional,...X(e)});var ut=class extends J{_parse(e){return this._getType(e)===q.null?$e(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};ut.create=(s,e)=>new ut({innerType:s,typeName:C.ZodNullable,...X(e)});var Yt=class extends J{_parse(e){let{ctx:r}=this._processInputParams(e),a=r.data;return r.parsedType===q.undefined&&(a=this._def.defaultValue()),this._def.innerType._parse({data:a,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Yt.create=(s,e)=>new Yt({innerType:s,typeName:C.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...X(e)});var er=class extends J{_parse(e){let{ctx:r}=this._processInputParams(e),a={...r,common:{...r.common,issues:[]}},t=this._def.innerType._parse({data:a.data,path:a.path,parent:{...a}});return hr(t)?t.then(n=>({status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new Fe(a.common.issues)},input:a.data})})):{status:"valid",value:t.status==="valid"?t.value:this._def.catchValue({get error(){return new Fe(a.common.issues)},input:a.data})}}removeCatch(){return this._def.innerType}};er.create=(s,e)=>new er({innerType:s,typeName:C.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...X(e)});var _r=class extends J{_parse(e){if(this._getType(e)!==q.nan){let a=this._getOrReturnCtx(e);return U(a,{code:D.invalid_type,expected:q.nan,received:a.parsedType}),Z}return{status:"valid",value:e.data}}};_r.create=s=>new _r({typeName:C.ZodNaN,...X(s)});var Su=Symbol("zod_brand"),Ar=class extends J{_parse(e){let{ctx:r}=this._processInputParams(e),a=r.data;return this._def.type._parse({data:a,path:r.path,parent:r})}unwrap(){return this._def.type}},Dr=class s extends J{_parse(e){let{status:r,ctx:a}=this._processInputParams(e);if(a.common.async)return(async()=>{let n=await this._def.in._parseAsync({data:a.data,path:a.path,parent:a});return n.status==="aborted"?Z:n.status==="dirty"?(r.dirty(),Ut(n.value)):this._def.out._parseAsync({data:n.value,path:a.path,parent:a})})();{let t=this._def.in._parseSync({data:a.data,path:a.path,parent:a});return t.status==="aborted"?Z:t.status==="dirty"?(r.dirty(),{status:"dirty",value:t.value}):this._def.out._parseSync({data:t.value,path:a.path,parent:a})}}static create(e,r){return new s({in:e,out:r,typeName:C.ZodPipeline})}},tr=class extends J{_parse(e){let r=this._def.innerType._parse(e),a=t=>(Tt(t)&&(t.value=Object.freeze(t.value)),t);return hr(r)?r.then(t=>a(t)):a(r)}unwrap(){return this._def.innerType}};tr.create=(s,e)=>new tr({innerType:s,typeName:C.ZodReadonly,...X(e)});function En(s,e){let r=typeof s=="function"?s(e):typeof s=="string"?{message:s}:s;return typeof r=="string"?{message:r}:r}function wn(s,e={},r){return s?Pt.create().superRefine((a,t)=>{let n=s(a);if(n instanceof Promise)return n.then(o=>{if(!o){let i=En(e,a),l=i.fatal??r??!0;t.addIssue({code:"custom",...i,fatal:l})}});if(!n){let o=En(e,a),i=o.fatal??r??!0;t.addIssue({code:"custom",...o,fatal:i})}}):Pt.create()}var xu={object:Me.lazycreate},C;(function(s){s.ZodString="ZodString",s.ZodNumber="ZodNumber",s.ZodNaN="ZodNaN",s.ZodBigInt="ZodBigInt",s.ZodBoolean="ZodBoolean",s.ZodDate="ZodDate",s.ZodSymbol="ZodSymbol",s.ZodUndefined="ZodUndefined",s.ZodNull="ZodNull",s.ZodAny="ZodAny",s.ZodUnknown="ZodUnknown",s.ZodNever="ZodNever",s.ZodVoid="ZodVoid",s.ZodArray="ZodArray",s.ZodObject="ZodObject",s.ZodUnion="ZodUnion",s.ZodDiscriminatedUnion="ZodDiscriminatedUnion",s.ZodIntersection="ZodIntersection",s.ZodTuple="ZodTuple",s.ZodRecord="ZodRecord",s.ZodMap="ZodMap",s.ZodSet="ZodSet",s.ZodFunction="ZodFunction",s.ZodLazy="ZodLazy",s.ZodLiteral="ZodLiteral",s.ZodEnum="ZodEnum",s.ZodEffects="ZodEffects",s.ZodNativeEnum="ZodNativeEnum",s.ZodOptional="ZodOptional",s.ZodNullable="ZodNullable",s.ZodDefault="ZodDefault",s.ZodCatch="ZodCatch",s.ZodPromise="ZodPromise",s.ZodBranded="ZodBranded",s.ZodPipeline="ZodPipeline",s.ZodReadonly="ZodReadonly"})(C||(C={}));var Ru=(s,e={message:`Input not instance of ${s.name}`})=>wn(r=>r instanceof s,e),Pn=wt.create,On=qt.create,Tu=_r.create,wu=Bt.create,In=Vt.create,Pu=Ht.create,Ou=mr.create,Iu=zt.create,$u=Zt.create,Nu=Pt.create,Au=_t.create,Du=tt.create,Cu=vr.create,ku=bt.create,Lu=Me.create,ju=Me.strictCreate,Fu=Gt.create,Mu=Gr.create,Uu=Qt.create,qu=lt.create,Bu=Qr.create,Vu=gr.create,Hu=yr.create,zu=Wr.create,Zu=Wt.create,Gu=Xt.create,Qu=Kt.create,Wu=Jt.create,Xu=Ot.create,Ku=We.create,Ju=Ge.create,Yu=ut.create,ed=We.createWithPreprocess,td=Dr.create,rd=()=>Pn().optional(),sd=()=>On().optional(),ad=()=>In().optional(),nd={string:(s=>wt.create({...s,coerce:!0})),number:(s=>qt.create({...s,coerce:!0})),boolean:(s=>Vt.create({...s,coerce:!0})),bigint:(s=>Bt.create({...s,coerce:!0})),date:(s=>Ht.create({...s,coerce:!0}))};var od=Z;var Cr="2025-06-18";var Xr=[Cr,"2025-03-26","2024-11-05","2024-10-07"],Kr="2.0",$n=c.union([c.string(),c.number().int()]),Nn=c.string(),id=c.object({progressToken:c.optional($n)}).passthrough(),Xe=c.object({_meta:c.optional(id)}).passthrough(),Ue=c.object({method:c.string(),params:c.optional(Xe)}),kr=c.object({_meta:c.optional(c.object({}).passthrough())}).passthrough(),dt=c.object({method:c.string(),params:c.optional(kr)}),Ke=c.object({_meta:c.optional(c.object({}).passthrough())}).passthrough(),Jr=c.union([c.string(),c.number().int()]),An=c.object({jsonrpc:c.literal(Kr),id:Jr}).merge(Ue).strict(),Dn=s=>An.safeParse(s).success,Cn=c.object({jsonrpc:c.literal(Kr)}).merge(dt).strict(),kn=s=>Cn.safeParse(s).success,Ln=c.object({jsonrpc:c.literal(Kr),id:Jr,result:Ke}).strict(),Qs=s=>Ln.safeParse(s).success,ke;(function(s){s[s.ConnectionClosed=-32e3]="ConnectionClosed",s[s.RequestTimeout=-32001]="RequestTimeout",s[s.ParseError=-32700]="ParseError",s[s.InvalidRequest=-32600]="InvalidRequest",s[s.MethodNotFound=-32601]="MethodNotFound",s[s.InvalidParams=-32602]="InvalidParams",s[s.InternalError=-32603]="InternalError"})(ke||(ke={}));var jn=c.object({jsonrpc:c.literal(Kr),id:Jr,error:c.object({code:c.number().int(),message:c.string(),data:c.optional(c.unknown())})}).strict(),Fn=s=>jn.safeParse(s).success,Mn=c.union([An,Cn,Ln,jn]),Et=Ke.strict(),Yr=dt.extend({method:c.literal("notifications/cancelled"),params:kr.extend({requestId:Jr,reason:c.string().optional()})}),cd=c.object({src:c.string(),mimeType:c.optional(c.string()),sizes:c.optional(c.array(c.string()))}).passthrough(),Lr=c.object({icons:c.array(cd).optional()}).passthrough(),jr=c.object({name:c.string(),title:c.optional(c.string())}).passthrough(),Un=jr.extend({version:c.string(),websiteUrl:c.optional(c.string())}).merge(Lr),ld=c.object({experimental:c.optional(c.object({}).passthrough()),sampling:c.optional(c.object({}).passthrough()),elicitation:c.optional(c.object({}).passthrough()),roots:c.optional(c.object({listChanged:c.optional(c.boolean())}).passthrough())}).passthrough(),Ws=Ue.extend({method:c.literal("initialize"),params:Xe.extend({protocolVersion:c.string(),capabilities:ld,clientInfo:Un})});var ud=c.object({experimental:c.optional(c.object({}).passthrough()),logging:c.optional(c.object({}).passthrough()),completions:c.optional(c.object({}).passthrough()),prompts:c.optional(c.object({listChanged:c.optional(c.boolean())}).passthrough()),resources:c.optional(c.object({subscribe:c.optional(c.boolean()),listChanged:c.optional(c.boolean())}).passthrough()),tools:c.optional(c.object({listChanged:c.optional(c.boolean())}).passthrough())}).passthrough(),Xs=Ke.extend({protocolVersion:c.string(),capabilities:ud,serverInfo:Un,instructions:c.optional(c.string())}),Ks=dt.extend({method:c.literal("notifications/initialized")});var es=Ue.extend({method:c.literal("ping")}),dd=c.object({progress:c.number(),total:c.optional(c.number()),message:c.optional(c.string())}).passthrough(),ts=dt.extend({method:c.literal("notifications/progress"),params:kr.merge(dd).extend({progressToken:$n})}),rs=Ue.extend({params:Xe.extend({cursor:c.optional(Nn)}).optional()}),ss=Ke.extend({nextCursor:c.optional(Nn)}),qn=c.object({uri:c.string(),mimeType:c.optional(c.string()),_meta:c.optional(c.object({}).passthrough())}).passthrough(),Bn=qn.extend({text:c.string()}),Js=c.string().refine(s=>{try{return atob(s),!0}catch{return!1}},{message:"Invalid Base64 string"}),Vn=qn.extend({blob:Js}),Hn=jr.extend({uri:c.string(),description:c.optional(c.string()),mimeType:c.optional(c.string()),_meta:c.optional(c.object({}).passthrough())}).merge(Lr),pd=jr.extend({uriTemplate:c.string(),description:c.optional(c.string()),mimeType:c.optional(c.string()),_meta:c.optional(c.object({}).passthrough())}).merge(Lr),hd=rs.extend({method:c.literal("resources/list")}),Ys=ss.extend({resources:c.array(Hn)}),fd=rs.extend({method:c.literal("resources/templates/list")}),ea=ss.extend({resourceTemplates:c.array(pd)}),md=Ue.extend({method:c.literal("resources/read"),params:Xe.extend({uri:c.string()})}),ta=Ke.extend({contents:c.array(c.union([Bn,Vn]))}),vd=dt.extend({method:c.literal("notifications/resources/list_changed")}),gd=Ue.extend({method:c.literal("resources/subscribe"),params:Xe.extend({uri:c.string()})}),yd=Ue.extend({method:c.literal("resources/unsubscribe"),params:Xe.extend({uri:c.string()})}),_d=dt.extend({method:c.literal("notifications/resources/updated"),params:kr.extend({uri:c.string()})}),bd=c.object({name:c.string(),description:c.optional(c.string()),required:c.optional(c.boolean())}).passthrough(),Ed=jr.extend({description:c.optional(c.string()),arguments:c.optional(c.array(bd)),_meta:c.optional(c.object({}).passthrough())}).merge(Lr),Sd=rs.extend({method:c.literal("prompts/list")}),ra=ss.extend({prompts:c.array(Ed)}),xd=Ue.extend({method:c.literal("prompts/get"),params:Xe.extend({name:c.string(),arguments:c.optional(c.record(c.string()))})}),sa=c.object({type:c.literal("text"),text:c.string(),_meta:c.optional(c.object({}).passthrough())}).passthrough(),aa=c.object({type:c.literal("image"),data:Js,mimeType:c.string(),_meta:c.optional(c.object({}).passthrough())}).passthrough(),na=c.object({type:c.literal("audio"),data:Js,mimeType:c.string(),_meta:c.optional(c.object({}).passthrough())}).passthrough(),Rd=c.object({type:c.literal("resource"),resource:c.union([Bn,Vn]),_meta:c.optional(c.object({}).passthrough())}).passthrough(),Td=Hn.extend({type:c.literal("resource_link")}),zn=c.union([sa,aa,na,Td,Rd]),wd=c.object({role:c.enum(["user","assistant"]),content:zn}).passthrough(),oa=Ke.extend({description:c.optional(c.string()),messages:c.array(wd)}),Pd=dt.extend({method:c.literal("notifications/prompts/list_changed")}),Od=c.object({title:c.optional(c.string()),readOnlyHint:c.optional(c.boolean()),destructiveHint:c.optional(c.boolean()),idempotentHint:c.optional(c.boolean()),openWorldHint:c.optional(c.boolean())}).passthrough(),Id=jr.extend({description:c.optional(c.string()),inputSchema:c.object({type:c.literal("object"),properties:c.optional(c.object({}).passthrough()),required:c.optional(c.array(c.string()))}).passthrough(),outputSchema:c.optional(c.object({type:c.literal("object"),properties:c.optional(c.object({}).passthrough()),required:c.optional(c.array(c.string()))}).passthrough()),annotations:c.optional(Od),_meta:c.optional(c.object({}).passthrough())}).merge(Lr),ia=rs.extend({method:c.literal("tools/list")}),ca=ss.extend({tools:c.array(Id)}),as=Ke.extend({content:c.array(zn).default([]),structuredContent:c.object({}).passthrough().optional(),isError:c.optional(c.boolean())}),am=as.or(Ke.extend({toolResult:c.unknown()})),la=Ue.extend({method:c.literal("tools/call"),params:Xe.extend({name:c.string(),arguments:c.optional(c.record(c.unknown()))})}),$d=dt.extend({method:c.literal("notifications/tools/list_changed")}),Fr=c.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),ua=Ue.extend({method:c.literal("logging/setLevel"),params:Xe.extend({level:Fr})}),Nd=dt.extend({method:c.literal("notifications/message"),params:kr.extend({level:Fr,logger:c.optional(c.string()),data:c.unknown()})}),Ad=c.object({name:c.string().optional()}).passthrough(),Dd=c.object({hints:c.optional(c.array(Ad)),costPriority:c.optional(c.number().min(0).max(1)),speedPriority:c.optional(c.number().min(0).max(1)),intelligencePriority:c.optional(c.number().min(0).max(1))}).passthrough(),Cd=c.object({role:c.enum(["user","assistant"]),content:c.union([sa,aa,na])}).passthrough(),kd=Ue.extend({method:c.literal("sampling/createMessage"),params:Xe.extend({messages:c.array(Cd),systemPrompt:c.optional(c.string()),includeContext:c.optional(c.enum(["none","thisServer","allServers"])),temperature:c.optional(c.number()),maxTokens:c.number().int(),stopSequences:c.optional(c.array(c.string())),metadata:c.optional(c.object({}).passthrough()),modelPreferences:c.optional(Dd)})}),da=Ke.extend({model:c.string(),stopReason:c.optional(c.enum(["endTurn","stopSequence","maxTokens"]).or(c.string())),role:c.enum(["user","assistant"]),content:c.discriminatedUnion("type",[sa,aa,na])}),Ld=c.object({type:c.literal("boolean"),title:c.optional(c.string()),description:c.optional(c.string()),default:c.optional(c.boolean())}).passthrough(),jd=c.object({type:c.literal("string"),title:c.optional(c.string()),description:c.optional(c.string()),minLength:c.optional(c.number()),maxLength:c.optional(c.number()),format:c.optional(c.enum(["email","uri","date","date-time"]))}).passthrough(),Fd=c.object({type:c.enum(["number","integer"]),title:c.optional(c.string()),description:c.optional(c.string()),minimum:c.optional(c.number()),maximum:c.optional(c.number())}).passthrough(),Md=c.object({type:c.literal("string"),title:c.optional(c.string()),description:c.optional(c.string()),enum:c.array(c.string()),enumNames:c.optional(c.array(c.string()))}).passthrough(),Ud=c.union([Ld,jd,Fd,Md]),qd=Ue.extend({method:c.literal("elicitation/create"),params:Xe.extend({message:c.string(),requestedSchema:c.object({type:c.literal("object"),properties:c.record(c.string(),Ud),required:c.optional(c.array(c.string()))}).passthrough()})}),pa=Ke.extend({action:c.enum(["accept","decline","cancel"]),content:c.optional(c.record(c.string(),c.unknown()))}),Bd=c.object({type:c.literal("ref/resource"),uri:c.string()}).passthrough();var Vd=c.object({type:c.literal("ref/prompt"),name:c.string()}).passthrough(),Hd=Ue.extend({method:c.literal("completion/complete"),params:Xe.extend({ref:c.union([Vd,Bd]),argument:c.object({name:c.string(),value:c.string()}).passthrough(),context:c.optional(c.object({arguments:c.optional(c.record(c.string(),c.string()))}))})}),ha=Ke.extend({completion:c.object({values:c.array(c.string()).max(100),total:c.optional(c.number().int()),hasMore:c.optional(c.boolean())}).passthrough()}),zd=c.object({uri:c.string().startsWith("file://"),name:c.optional(c.string()),_meta:c.optional(c.object({}).passthrough())}).passthrough(),Zd=Ue.extend({method:c.literal("roots/list")}),fa=Ke.extend({roots:c.array(zd)}),Gd=dt.extend({method:c.literal("notifications/roots/list_changed")}),nm=c.union([es,Ws,Hd,ua,xd,Sd,hd,fd,md,gd,yd,la,ia]),om=c.union([Yr,ts,Ks,Gd]),im=c.union([Et,da,pa,fa]),cm=c.union([es,kd,qd,Zd]),lm=c.union([Yr,ts,Nd,_d,vd,$d,Pd]),um=c.union([Et,Xs,ha,oa,ra,Ys,ea,ta,as,ca]),Ne=class extends Error{constructor(e,r,a){super(`MCP error ${e}: ${r}`),this.code=e,this.data=a,this.name="McpError"}};var Qd=6e4,br=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this.setNotificationHandler(Yr,r=>{let a=this._requestHandlerAbortControllers.get(r.params.requestId);a?.abort(r.params.reason)}),this.setNotificationHandler(ts,r=>{this._onprogress(r)}),this.setRequestHandler(es,r=>({}))}_setupTimeout(e,r,a,t,n=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(t,r),startTime:Date.now(),timeout:r,maxTotalTimeout:a,resetTimeoutOnProgress:n,onTimeout:t})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let a=Date.now()-r.startTime;if(r.maxTotalTimeout&&a>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),new Ne(ke.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:a});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){var r,a,t;this._transport=e;let n=(r=this.transport)===null||r===void 0?void 0:r.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};let o=(a=this.transport)===null||a===void 0?void 0:a.onerror;this._transport.onerror=l=>{o?.(l),this._onerror(l)};let i=(t=this._transport)===null||t===void 0?void 0:t.onmessage;this._transport.onmessage=(l,u)=>{i?.(l,u),Qs(l)||Fn(l)?this._onresponse(l):Dn(l)?this._onrequest(l,u):kn(l)?this._onnotification(l):this._onerror(new Error(`Unknown message type: ${JSON.stringify(l)}`))},await this._transport.start()}_onclose(){var e;let r=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._pendingDebouncedNotifications.clear(),this._transport=void 0,(e=this.onclose)===null||e===void 0||e.call(this);let a=new Ne(ke.ConnectionClosed,"Connection closed");for(let t of r.values())t(a)}_onerror(e){var r;(r=this.onerror)===null||r===void 0||r.call(this,e)}_onnotification(e){var r;let a=(r=this._notificationHandlers.get(e.method))!==null&&r!==void 0?r:this.fallbackNotificationHandler;a!==void 0&&Promise.resolve().then(()=>a(e)).catch(t=>this._onerror(new Error(`Uncaught error in notification handler: ${t}`)))}_onrequest(e,r){var a,t;let n=(a=this._requestHandlers.get(e.method))!==null&&a!==void 0?a:this.fallbackRequestHandler,o=this._transport;if(n===void 0){o?.send({jsonrpc:"2.0",id:e.id,error:{code:ke.MethodNotFound,message:"Method not found"}}).catch(u=>this._onerror(new Error(`Failed to send an error response: ${u}`)));return}let i=new AbortController;this._requestHandlerAbortControllers.set(e.id,i);let l={signal:i.signal,sessionId:o?.sessionId,_meta:(t=e.params)===null||t===void 0?void 0:t._meta,sendNotification:u=>this.notification(u,{relatedRequestId:e.id}),sendRequest:(u,p,h)=>this.request(u,p,{...h,relatedRequestId:e.id}),authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo};Promise.resolve().then(()=>n(e,l)).then(u=>{if(!i.signal.aborted)return o?.send({result:u,jsonrpc:"2.0",id:e.id})},u=>{var p;if(!i.signal.aborted)return o?.send({jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(u.code)?u.code:ke.InternalError,message:(p=u.message)!==null&&p!==void 0?p:"Internal error"}})}).catch(u=>this._onerror(new Error(`Failed to send response: ${u}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...a}=e.params,t=Number(r),n=this._progressHandlers.get(t);if(!n){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let o=this._responseHandlers.get(t),i=this._timeoutInfo.get(t);if(i&&o&&i.resetTimeoutOnProgress)try{this._resetTimeout(t)}catch(l){o(l);return}n(a)}_onresponse(e){let r=Number(e.id),a=this._responseHandlers.get(r);if(a===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}if(this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),Qs(e))a(e);else{let t=new Ne(e.error.code,e.error.message,e.error.data);a(t)}}get transport(){return this._transport}async close(){var e;await((e=this._transport)===null||e===void 0?void 0:e.close())}request(e,r,a){let{relatedRequestId:t,resumptionToken:n,onresumptiontoken:o}=a??{};return new Promise((i,l)=>{var u,p,h,f,d,g;if(!this._transport){l(new Error("Not connected"));return}((u=this._options)===null||u===void 0?void 0:u.enforceStrictCapabilities)===!0&&this.assertCapabilityForMethod(e.method),(p=a?.signal)===null||p===void 0||p.throwIfAborted();let v=this._requestMessageId++,y={...e,jsonrpc:"2.0",id:v};a?.onprogress&&(this._progressHandlers.set(v,a.onprogress),y.params={...e.params,_meta:{...((h=e.params)===null||h===void 0?void 0:h._meta)||{},progressToken:v}});let _=w=>{var x;this._responseHandlers.delete(v),this._progressHandlers.delete(v),this._cleanupTimeout(v),(x=this._transport)===null||x===void 0||x.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:v,reason:String(w)}},{relatedRequestId:t,resumptionToken:n,onresumptiontoken:o}).catch(T=>this._onerror(new Error(`Failed to send cancellation: ${T}`))),l(w)};this._responseHandlers.set(v,w=>{var x;if(!(!((x=a?.signal)===null||x===void 0)&&x.aborted)){if(w instanceof Error)return l(w);try{let T=r.parse(w.result);i(T)}catch(T){l(T)}}}),(f=a?.signal)===null||f===void 0||f.addEventListener("abort",()=>{var w;_((w=a?.signal)===null||w===void 0?void 0:w.reason)});let R=(d=a?.timeout)!==null&&d!==void 0?d:Qd,S=()=>_(new Ne(ke.RequestTimeout,"Request timed out",{timeout:R}));this._setupTimeout(v,R,a?.maxTotalTimeout,S,(g=a?.resetTimeoutOnProgress)!==null&&g!==void 0?g:!1),this._transport.send(y,{relatedRequestId:t,resumptionToken:n,onresumptiontoken:o}).catch(w=>{this._cleanupTimeout(v),l(w)})})}async notification(e,r){var a,t;if(!this._transport)throw new Error("Not connected");if(this.assertNotificationCapability(e.method),((t=(a=this._options)===null||a===void 0?void 0:a.debouncedNotificationMethods)!==null&&t!==void 0?t:[]).includes(e.method)&&!e.params&&!r?.relatedRequestId){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{var l;if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let u={...e,jsonrpc:"2.0"};(l=this._transport)===null||l===void 0||l.send(u,r).catch(p=>this._onerror(p))});return}let i={...e,jsonrpc:"2.0"};await this._transport.send(i,r)}setRequestHandler(e,r){let a=e.shape.method.value;this.assertRequestHandlerCapability(a),this._requestHandlers.set(a,(t,n)=>Promise.resolve(r(e.parse(t),n)))}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){this._notificationHandlers.set(e.shape.method.value,a=>Promise.resolve(r(e.parse(a))))}removeNotificationHandler(e){this._notificationHandlers.delete(e)}};function ns(s,e){return Object.entries(e).reduce((r,[a,t])=>(t&&typeof t=="object"?r[a]=r[a]?{...r[a],...t}:t:r[a]=t,r),{...s})}var Gi=Hs(Ma(),1),Rs=class extends br{constructor(e,r){var a;super(r),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(Fr.options.map((t,n)=>[t,n])),this.isMessageIgnored=(t,n)=>{let o=this._loggingLevels.get(n);return o?this.LOG_LEVEL_SEVERITY.get(t)this._oninitialize(t)),this.setNotificationHandler(Ks,()=>{var t;return(t=this.oninitialized)===null||t===void 0?void 0:t.call(this)}),this._capabilities.logging&&this.setRequestHandler(ua,async(t,n)=>{var o;let i=n.sessionId||((o=n.requestInfo)===null||o===void 0?void 0:o.headers["mcp-session-id"])||void 0,{level:l}=t.params,u=Fr.safeParse(l);return u.success&&this._loggingLevels.set(i,u.data),{}})}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=ns(this._capabilities,e)}assertCapabilityForMethod(e){var r,a,t;switch(e){case"sampling/createMessage":if(!(!((r=this._clientCapabilities)===null||r===void 0)&&r.sampling))throw new Error(`Client does not support sampling (required for ${e})`);break;case"elicitation/create":if(!(!((a=this._clientCapabilities)===null||a===void 0)&&a.elicitation))throw new Error(`Client does not support elicitation (required for ${e})`);break;case"roots/list":if(!(!((t=this._clientCapabilities)===null||t===void 0)&&t.roots))throw new Error(`Client does not support listing roots (required for ${e})`);break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${e})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${e})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${e})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Server does not support sampling (required for ${e})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"ping":case"initialize":break}}async _oninitialize(e){let r=e.params.protocolVersion;return this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo,{protocolVersion:Xr.includes(r)?r:Cr,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},Et)}async createMessage(e,r){return this.request({method:"sampling/createMessage",params:e},da,r)}async elicitInput(e,r){let a=await this.request({method:"elicitation/create",params:e},pa,r);if(a.action==="accept"&&a.content)try{let t=new Gi.default,n=t.compile(e.requestedSchema);if(!n(a.content))throw new Ne(ke.InvalidParams,`Elicitation response content does not match requested schema: ${t.errorsText(n.errors)}`)}catch(t){throw t instanceof Ne?t:new Ne(ke.InternalError,`Error validating elicitation response: ${t}`)}return a}async listRoots(e,r){return this.request({method:"roots/list",params:e},fa,r)}async sendLoggingMessage(e,r){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,r))return this.notification({method:"notifications/message",params:e})}async sendResourceUpdated(e){return this.notification({method:"notifications/resources/updated",params:e})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}};import Qi from"node:process";var Er=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(` +`);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),Ph(r)}clear(){this._buffer=void 0}};function Ph(s){return Mn.parse(JSON.parse(s))}function Ts(s){return JSON.stringify(s)+` +`}var ws=class{constructor(e=Qi.stdin,r=Qi.stdout){this._stdin=e,this._stdout=r,this._readBuffer=new Er,this._started=!1,this._ondata=a=>{this._readBuffer.append(a),this.processReadBuffer()},this._onerror=a=>{var t;(t=this.onerror)===null||t===void 0||t.call(this,a)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(var e,r;;)try{let a=this._readBuffer.readMessage();if(a===null)break;(e=this.onmessage)===null||e===void 0||e.call(this,a)}catch(a){(r=this.onerror)===null||r===void 0||r.call(this,a)}}async close(){var e;this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),(e=this.onclose)===null||e===void 0||e.call(this)}send(e){return new Promise(r=>{let a=Ts(e);this._stdout.write(a)?r():this._stdout.once("drain",r)})}};var Wi=Hs(Ma(),1),Ps=class extends br{constructor(e,r){var a;super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._capabilities=(a=r?.capabilities)!==null&&a!==void 0?a:{},this._ajv=new Wi.default}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=ns(this._capabilities,e)}assertCapability(e,r){var a;if(!(!((a=this._serverCapabilities)===null||a===void 0)&&a[e]))throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let a=await this.request({method:"initialize",params:{protocolVersion:Cr,capabilities:this._capabilities,clientInfo:this._clientInfo}},Xs,r);if(a===void 0)throw new Error(`Server sent invalid initialize result: ${a}`);if(!Xr.includes(a.protocolVersion))throw new Error(`Server's protocol version is not supported: ${a.protocolVersion}`);this._serverCapabilities=a.capabilities,this._serverVersion=a.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(a.protocolVersion),this._instructions=a.instructions,await this.notification({method:"notifications/initialized"})}catch(a){throw this.close(),a}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){var r,a,t,n,o;switch(e){case"logging/setLevel":if(!(!((r=this._serverCapabilities)===null||r===void 0)&&r.logging))throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!(!((a=this._serverCapabilities)===null||a===void 0)&&a.prompts))throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!(!((t=this._serverCapabilities)===null||t===void 0)&&t.resources))throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!(!((n=this._serverCapabilities)===null||n===void 0)&&n.tools))throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!(!((o=this._serverCapabilities)===null||o===void 0)&&o.completions))throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){var r;switch(e){case"notifications/roots/list_changed":if(!(!((r=this._capabilities.roots)===null||r===void 0)&&r.listChanged))throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"ping":break}}async ping(e){return this.request({method:"ping"},Et,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},ha,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},Et,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},oa,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},ra,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},Ys,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},ea,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},ta,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},Et,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},Et,r)}async callTool(e,r=as,a){let t=await this.request({method:"tools/call",params:e},r,a),n=this.getToolOutputValidator(e.name);if(n){if(!t.structuredContent&&!t.isError)throw new Ne(ke.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(t.structuredContent)try{if(!n(t.structuredContent))throw new Ne(ke.InvalidParams,`Structured content does not match the tool's output schema: ${this._ajv.errorsText(n.errors)}`)}catch(o){throw o instanceof Ne?o:new Ne(ke.InvalidParams,`Failed to validate structured content: ${o instanceof Error?o.message:String(o)}`)}}return t}cacheToolOutputSchemas(e){this._cachedToolOutputValidators.clear();for(let r of e)if(r.outputSchema)try{let a=this._ajv.compile(r.outputSchema);this._cachedToolOutputValidators.set(r.name,a)}catch{}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let a=await this.request({method:"tools/list",params:e},ca,r);return this.cacheToolOutputSchemas(a.tools),a}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var Fc=Hs(jc(),1);import $s from"node:process";import{PassThrough as ef}from"node:stream";var tf=$s.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function rf(){let s={};for(let e of tf){let r=$s.env[e];r!==void 0&&(r.startsWith("()")||(s[e]=r))}return s}var Is=class{constructor(e){this._abortController=new AbortController,this._readBuffer=new Er,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new ef)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,r)=>{var a,t,n,o,i;this._process=(0,Fc.default)(this._serverParams.command,(a=this._serverParams.args)!==null&&a!==void 0?a:[],{env:{...rf(),...this._serverParams.env},stdio:["pipe","pipe",(t=this._serverParams.stderr)!==null&&t!==void 0?t:"inherit"],shell:!1,signal:this._abortController.signal,windowsHide:$s.platform==="win32"&&sf(),cwd:this._serverParams.cwd}),this._process.on("error",l=>{var u,p;if(l.name==="AbortError"){(u=this.onclose)===null||u===void 0||u.call(this);return}r(l),(p=this.onerror)===null||p===void 0||p.call(this,l)}),this._process.on("spawn",()=>{e()}),this._process.on("close",l=>{var u;this._process=void 0,(u=this.onclose)===null||u===void 0||u.call(this)}),(n=this._process.stdin)===null||n===void 0||n.on("error",l=>{var u;(u=this.onerror)===null||u===void 0||u.call(this,l)}),(o=this._process.stdout)===null||o===void 0||o.on("data",l=>{this._readBuffer.append(l),this.processReadBuffer()}),(i=this._process.stdout)===null||i===void 0||i.on("error",l=>{var u;(u=this.onerror)===null||u===void 0||u.call(this,l)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){var e,r;return this._stderrStream?this._stderrStream:(r=(e=this._process)===null||e===void 0?void 0:e.stderr)!==null&&r!==void 0?r:null}get pid(){var e,r;return(r=(e=this._process)===null||e===void 0?void 0:e.pid)!==null&&r!==void 0?r:null}processReadBuffer(){for(var e,r;;)try{let a=this._readBuffer.readMessage();if(a===null)break;(e=this.onmessage)===null||e===void 0||e.call(this,a)}catch(a){(r=this.onerror)===null||r===void 0||r.call(this,a)}}async close(){this._abortController.abort(),this._process=void 0,this._readBuffer.clear()}send(e){return new Promise(r=>{var a;if(!(!((a=this._process)===null||a===void 0)&&a.stdin))throw new Error("Not connected");let t=Ts(e);this._process.stdin.write(t)?r():this._process.stdin.once("drain",r)})}};function sf(){return"type"in $s}var Uc=Symbol("Let zodToJsonSchema decide on which parser to use");var Mc={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},qc=s=>typeof s=="string"?{...Mc,name:s}:{...Mc,...s};var Bc=s=>{let e=qc(s),r=e.name!==void 0?[...e.basePath,e.definitionPath,e.name]:e.basePath;return{...e,flags:{hasReferencedOpenAiAnyType:!1},currentPath:r,propertyPath:void 0,seen:new Map(Object.entries(e.definitions).map(([a,t])=>[t._def,{def:t._def,path:[...e.basePath,e.definitionPath,a],jsonSchema:void 0}]))}};function Wa(s,e,r,a){a?.errorMessages&&r&&(s.errorMessage={...s.errorMessage,[e]:r})}function re(s,e,r,a,t){s[e]=r,Wa(s,e,a,t)}var Ns=(s,e)=>{let r=0;for(;rG(s.innerType._def,e);function Xa(s,e,r){let a=r??e.dateStrategy;if(Array.isArray(a))return{anyOf:a.map((t,n)=>Xa(s,e,t))};switch(a){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return af(s,e)}}var af=(s,e)=>{let r={type:"integer",format:"unix-time"};if(e.target==="openApi3")return r;for(let a of s.checks)switch(a.kind){case"min":re(r,"minimum",a.value,a.message,e);break;case"max":re(r,"maximum",a.value,a.message,e);break}return r};function Gc(s,e){return{...G(s.innerType._def,e),default:s.defaultValue()}}function Qc(s,e){return e.effectStrategy==="input"?G(s.schema._def,e):me(e)}function Wc(s){return{type:"string",enum:Array.from(s.values)}}var nf=s=>"type"in s&&s.type==="string"?!1:"allOf"in s;function Xc(s,e){let r=[G(s.left._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),G(s.right._def,{...e,currentPath:[...e.currentPath,"allOf","1"]})].filter(n=>!!n),a=e.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,t=[];return r.forEach(n=>{if(nf(n))t.push(...n.allOf),n.unevaluatedProperties===void 0&&(a=void 0);else{let o=n;if("additionalProperties"in n&&n.additionalProperties===!1){let{additionalProperties:i,...l}=n;o=l}else a=void 0;t.push(o)}}),t.length?{allOf:t,...a}:void 0}function Kc(s,e){let r=typeof s.value;return r!=="bigint"&&r!=="number"&&r!=="boolean"&&r!=="string"?{type:Array.isArray(s.value)?"array":"object"}:e.target==="openApi3"?{type:r==="bigint"?"integer":r,enum:[s.value]}:{type:r==="bigint"?"integer":r,const:s.value}}var Ka,rt={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(Ka===void 0&&(Ka=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Ka),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function Ds(s,e){let r={type:"string"};if(s.checks)for(let a of s.checks)switch(a.kind){case"min":re(r,"minLength",typeof r.minLength=="number"?Math.max(r.minLength,a.value):a.value,a.message,e);break;case"max":re(r,"maxLength",typeof r.maxLength=="number"?Math.min(r.maxLength,a.value):a.value,a.message,e);break;case"email":switch(e.emailStrategy){case"format:email":st(r,"email",a.message,e);break;case"format:idn-email":st(r,"idn-email",a.message,e);break;case"pattern:zod":Le(r,rt.email,a.message,e);break}break;case"url":st(r,"uri",a.message,e);break;case"uuid":st(r,"uuid",a.message,e);break;case"regex":Le(r,a.regex,a.message,e);break;case"cuid":Le(r,rt.cuid,a.message,e);break;case"cuid2":Le(r,rt.cuid2,a.message,e);break;case"startsWith":Le(r,RegExp(`^${Ja(a.value,e)}`),a.message,e);break;case"endsWith":Le(r,RegExp(`${Ja(a.value,e)}$`),a.message,e);break;case"datetime":st(r,"date-time",a.message,e);break;case"date":st(r,"date",a.message,e);break;case"time":st(r,"time",a.message,e);break;case"duration":st(r,"duration",a.message,e);break;case"length":re(r,"minLength",typeof r.minLength=="number"?Math.max(r.minLength,a.value):a.value,a.message,e),re(r,"maxLength",typeof r.maxLength=="number"?Math.min(r.maxLength,a.value):a.value,a.message,e);break;case"includes":{Le(r,RegExp(Ja(a.value,e)),a.message,e);break}case"ip":{a.version!=="v6"&&st(r,"ipv4",a.message,e),a.version!=="v4"&&st(r,"ipv6",a.message,e);break}case"base64url":Le(r,rt.base64url,a.message,e);break;case"jwt":Le(r,rt.jwt,a.message,e);break;case"cidr":{a.version!=="v6"&&Le(r,rt.ipv4Cidr,a.message,e),a.version!=="v4"&&Le(r,rt.ipv6Cidr,a.message,e);break}case"emoji":Le(r,rt.emoji(),a.message,e);break;case"ulid":{Le(r,rt.ulid,a.message,e);break}case"base64":{switch(e.base64Strategy){case"format:binary":{st(r,"binary",a.message,e);break}case"contentEncoding:base64":{re(r,"contentEncoding","base64",a.message,e);break}case"pattern:zod":{Le(r,rt.base64,a.message,e);break}}break}case"nanoid":Le(r,rt.nanoid,a.message,e);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return r}function Ja(s,e){return e.patternStrategy==="escape"?cf(s):s}var of=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function cf(s){let e="";for(let r=0;rt.format)?(s.anyOf||(s.anyOf=[]),s.format&&(s.anyOf.push({format:s.format,...s.errorMessage&&a.errorMessages&&{errorMessage:{format:s.errorMessage.format}}}),delete s.format,s.errorMessage&&(delete s.errorMessage.format,Object.keys(s.errorMessage).length===0&&delete s.errorMessage)),s.anyOf.push({format:e,...r&&a.errorMessages&&{errorMessage:{format:r}}})):re(s,"format",e,r,a)}function Le(s,e,r,a){s.pattern||s.allOf?.some(t=>t.pattern)?(s.allOf||(s.allOf=[]),s.pattern&&(s.allOf.push({pattern:s.pattern,...s.errorMessage&&a.errorMessages&&{errorMessage:{pattern:s.errorMessage.pattern}}}),delete s.pattern,s.errorMessage&&(delete s.errorMessage.pattern,Object.keys(s.errorMessage).length===0&&delete s.errorMessage)),s.allOf.push({pattern:Jc(e,a),...r&&a.errorMessages&&{errorMessage:{pattern:r}}})):re(s,"pattern",Jc(e,a),r,a)}function Jc(s,e){if(!e.applyRegexFlags||!s.flags)return s.source;let r={i:s.flags.includes("i"),m:s.flags.includes("m"),s:s.flags.includes("s")},a=r.i?s.source.toLowerCase():s.source,t="",n=!1,o=!1,i=!1;for(let l=0;l({...a,[t]:G(s.valueType._def,{...e,currentPath:[...e.currentPath,"properties",t]})??me(e)}),{}),additionalProperties:e.rejectedAdditionalProperties};let r={type:"object",additionalProperties:G(s.valueType._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??e.allowedAdditionalProperties};if(e.target==="openApi3")return r;if(s.keyType?._def.typeName===C.ZodString&&s.keyType._def.checks?.length){let{type:a,...t}=Ds(s.keyType._def,e);return{...r,propertyNames:t}}else{if(s.keyType?._def.typeName===C.ZodEnum)return{...r,propertyNames:{enum:s.keyType._def.values}};if(s.keyType?._def.typeName===C.ZodBranded&&s.keyType._def.type._def.typeName===C.ZodString&&s.keyType._def.type._def.checks?.length){let{type:a,...t}=As(s.keyType._def,e);return{...r,propertyNames:t}}}return r}function Yc(s,e){if(e.mapStrategy==="record")return Cs(s,e);let r=G(s.keyType._def,{...e,currentPath:[...e.currentPath,"items","items","0"]})||me(e),a=G(s.valueType._def,{...e,currentPath:[...e.currentPath,"items","items","1"]})||me(e);return{type:"array",maxItems:125,items:{type:"array",items:[r,a],minItems:2,maxItems:2}}}function el(s){let e=s.values,a=Object.keys(s.values).filter(n=>typeof e[e[n]]!="number").map(n=>e[n]),t=Array.from(new Set(a.map(n=>typeof n)));return{type:t.length===1?t[0]==="string"?"string":"number":["string","number"],enum:a}}function tl(s){return s.target==="openAi"?void 0:{not:me({...s,currentPath:[...s.currentPath,"not"]})}}function rl(s){return s.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var Ur={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function al(s,e){if(e.target==="openApi3")return sl(s,e);let r=s.options instanceof Map?Array.from(s.options.values()):s.options;if(r.every(a=>a._def.typeName in Ur&&(!a._def.checks||!a._def.checks.length))){let a=r.reduce((t,n)=>{let o=Ur[n._def.typeName];return o&&!t.includes(o)?[...t,o]:t},[]);return{type:a.length>1?a:a[0]}}else if(r.every(a=>a._def.typeName==="ZodLiteral"&&!a.description)){let a=r.reduce((t,n)=>{let o=typeof n._def.value;switch(o){case"string":case"number":case"boolean":return[...t,o];case"bigint":return[...t,"integer"];case"object":if(n._def.value===null)return[...t,"null"];case"symbol":case"undefined":case"function":default:return t}},[]);if(a.length===r.length){let t=a.filter((n,o,i)=>i.indexOf(n)===o);return{type:t.length>1?t:t[0],enum:r.reduce((n,o)=>n.includes(o._def.value)?n:[...n,o._def.value],[])}}}else if(r.every(a=>a._def.typeName==="ZodEnum"))return{type:"string",enum:r.reduce((a,t)=>[...a,...t._def.values.filter(n=>!a.includes(n))],[])};return sl(s,e)}var sl=(s,e)=>{let r=(s.options instanceof Map?Array.from(s.options.values()):s.options).map((a,t)=>G(a._def,{...e,currentPath:[...e.currentPath,"anyOf",`${t}`]})).filter(a=>!!a&&(!e.strictUnions||typeof a=="object"&&Object.keys(a).length>0));return r.length?{anyOf:r}:void 0};function nl(s,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(s.innerType._def.typeName)&&(!s.innerType._def.checks||!s.innerType._def.checks.length))return e.target==="openApi3"?{type:Ur[s.innerType._def.typeName],nullable:!0}:{type:[Ur[s.innerType._def.typeName],"null"]};if(e.target==="openApi3"){let a=G(s.innerType._def,{...e,currentPath:[...e.currentPath]});return a&&"$ref"in a?{allOf:[a],nullable:!0}:a&&{...a,nullable:!0}}let r=G(s.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","0"]});return r&&{anyOf:[r,{type:"null"}]}}function ol(s,e){let r={type:"number"};if(!s.checks)return r;for(let a of s.checks)switch(a.kind){case"int":r.type="integer",Wa(r,"type",a.message,e);break;case"min":e.target==="jsonSchema7"?a.inclusive?re(r,"minimum",a.value,a.message,e):re(r,"exclusiveMinimum",a.value,a.message,e):(a.inclusive||(r.exclusiveMinimum=!0),re(r,"minimum",a.value,a.message,e));break;case"max":e.target==="jsonSchema7"?a.inclusive?re(r,"maximum",a.value,a.message,e):re(r,"exclusiveMaximum",a.value,a.message,e):(a.inclusive||(r.exclusiveMaximum=!0),re(r,"maximum",a.value,a.message,e));break;case"multipleOf":re(r,"multipleOf",a.value,a.message,e);break}return r}function il(s,e){let r=e.target==="openAi",a={type:"object",properties:{}},t=[],n=s.shape();for(let i in n){let l=n[i];if(l===void 0||l._def===void 0)continue;let u=uf(l);u&&r&&(l._def.typeName==="ZodOptional"&&(l=l._def.innerType),l.isNullable()||(l=l.nullable()),u=!1);let p=G(l._def,{...e,currentPath:[...e.currentPath,"properties",i],propertyPath:[...e.currentPath,"properties",i]});p!==void 0&&(a.properties[i]=p,u||t.push(i))}t.length&&(a.required=t);let o=lf(s,e);return o!==void 0&&(a.additionalProperties=o),a}function lf(s,e){if(s.catchall._def.typeName!=="ZodNever")return G(s.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]});switch(s.unknownKeys){case"passthrough":return e.allowedAdditionalProperties;case"strict":return e.rejectedAdditionalProperties;case"strip":return e.removeAdditionalStrategy==="strict"?e.allowedAdditionalProperties:e.rejectedAdditionalProperties}}function uf(s){try{return s.isOptional()}catch{return!0}}var cl=(s,e)=>{if(e.currentPath.toString()===e.propertyPath?.toString())return G(s.innerType._def,e);let r=G(s.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","1"]});return r?{anyOf:[{not:me(e)},r]}:me(e)};var ll=(s,e)=>{if(e.pipeStrategy==="input")return G(s.in._def,e);if(e.pipeStrategy==="output")return G(s.out._def,e);let r=G(s.in._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),a=G(s.out._def,{...e,currentPath:[...e.currentPath,"allOf",r?"1":"0"]});return{allOf:[r,a].filter(t=>t!==void 0)}};function ul(s,e){return G(s.type._def,e)}function dl(s,e){let a={type:"array",uniqueItems:!0,items:G(s.valueType._def,{...e,currentPath:[...e.currentPath,"items"]})};return s.minSize&&re(a,"minItems",s.minSize.value,s.minSize.message,e),s.maxSize&&re(a,"maxItems",s.maxSize.value,s.maxSize.message,e),a}function pl(s,e){return s.rest?{type:"array",minItems:s.items.length,items:s.items.map((r,a)=>G(r._def,{...e,currentPath:[...e.currentPath,"items",`${a}`]})).reduce((r,a)=>a===void 0?r:[...r,a],[]),additionalItems:G(s.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:s.items.length,maxItems:s.items.length,items:s.items.map((r,a)=>G(r._def,{...e,currentPath:[...e.currentPath,"items",`${a}`]})).reduce((r,a)=>a===void 0?r:[...r,a],[])}}function hl(s){return{not:me(s)}}function fl(s){return me(s)}var ml=(s,e)=>G(s.innerType._def,e);var vl=(s,e,r)=>{switch(e){case C.ZodString:return Ds(s,r);case C.ZodNumber:return ol(s,r);case C.ZodObject:return il(s,r);case C.ZodBigInt:return Hc(s,r);case C.ZodBoolean:return zc();case C.ZodDate:return Xa(s,r);case C.ZodUndefined:return hl(r);case C.ZodNull:return rl(r);case C.ZodArray:return Vc(s,r);case C.ZodUnion:case C.ZodDiscriminatedUnion:return al(s,r);case C.ZodIntersection:return Xc(s,r);case C.ZodTuple:return pl(s,r);case C.ZodRecord:return Cs(s,r);case C.ZodLiteral:return Kc(s,r);case C.ZodEnum:return Wc(s);case C.ZodNativeEnum:return el(s);case C.ZodNullable:return nl(s,r);case C.ZodOptional:return cl(s,r);case C.ZodMap:return Yc(s,r);case C.ZodSet:return dl(s,r);case C.ZodLazy:return()=>s.getter()._def;case C.ZodPromise:return ul(s,r);case C.ZodNaN:case C.ZodNever:return tl(r);case C.ZodEffects:return Qc(s,r);case C.ZodAny:return me(r);case C.ZodUnknown:return fl(r);case C.ZodDefault:return Gc(s,r);case C.ZodBranded:return As(s,r);case C.ZodReadonly:return ml(s,r);case C.ZodCatch:return Zc(s,r);case C.ZodPipeline:return ll(s,r);case C.ZodFunction:case C.ZodVoid:case C.ZodSymbol:return;default:return(a=>{})(e)}};function G(s,e,r=!1){let a=e.seen.get(s);if(e.override){let i=e.override?.(s,e,a,r);if(i!==Uc)return i}if(a&&!r){let i=df(a,e);if(i!==void 0)return i}let t={def:s,path:e.currentPath,jsonSchema:void 0};e.seen.set(s,t);let n=vl(s,s.typeName,e),o=typeof n=="function"?G(n(),e):n;if(o&&pf(s,e,o),e.postProcess){let i=e.postProcess(o,s,e);return t.jsonSchema=o,i}return t.jsonSchema=o,o}var df=(s,e)=>{switch(e.$refStrategy){case"root":return{$ref:s.path.join("/")};case"relative":return{$ref:Ns(e.currentPath,s.path)};case"none":case"seen":return s.path.lengthe.currentPath[a]===r)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),me(e)):e.$refStrategy==="seen"?me(e):void 0}},pf=(s,e,r)=>(s.description&&(r.description=s.description,e.markdownDescription&&(r.markdownDescription=s.description)),r);var Ya=(s,e)=>{let r=Bc(e),a=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((l,[u,p])=>({...l,[u]:G(p._def,{...r,currentPath:[...r.basePath,r.definitionPath,u]},!0)??me(r)}),{}):void 0,t=typeof e=="string"?e:e?.nameStrategy==="title"?void 0:e?.name,n=G(s._def,t===void 0?r:{...r,currentPath:[...r.basePath,r.definitionPath,t]},!1)??me(r),o=typeof e=="object"&&e.name!==void 0&&e.nameStrategy==="title"?e.name:void 0;o!==void 0&&(n.title=o),r.flags.hasReferencedOpenAiAnyType&&(a||(a={}),a[r.openAiAnyTypeName]||(a[r.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:r.$refStrategy==="relative"?"1":[...r.basePath,r.definitionPath,r.openAiAnyTypeName].join("/")}}));let i=t===void 0?a?{...n,[r.definitionPath]:a}:n:{$ref:[...r.$refStrategy==="relative"?[]:r.basePath,r.definitionPath,t].join("/"),[r.definitionPath]:{...a,[t]:n}};return r.target==="jsonSchema7"?i.$schema="http://json-schema.org/draft-07/schema#":(r.target==="jsonSchema2019-09"||r.target==="openAi")&&(i.$schema="https://json-schema.org/draft/2019-09/schema#"),r.target==="openAi"&&("anyOf"in i||"oneOf"in i||"allOf"in i||"type"in i&&Array.isArray(i.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),i};import{basename as bl}from"path";import gf from"better-sqlite3";import{join as Je,dirname as hf,basename as w_}from"path";import{homedir as gl}from"os";import{existsSync as $_,mkdirSync as ff}from"fs";import{fileURLToPath as mf}from"url";function vf(){return typeof __dirname<"u"?__dirname:hf(mf(import.meta.url))}var A_=vf(),at=process.env.CLAUDE_MEM_DATA_DIR||Je(gl(),".claude-mem"),en=process.env.CLAUDE_CONFIG_DIR||Je(gl(),".claude"),D_=Je(at,"archives"),C_=Je(at,"logs"),k_=Je(at,"trash"),L_=Je(at,"backups"),j_=Je(at,"settings.json"),ks=Je(at,"claude-mem.db"),yl=Je(at,"vector-db"),F_=Je(en,"settings.json"),M_=Je(en,"commands"),U_=Je(en,"CLAUDE.md");function Ls(s){ff(s,{recursive:!0})}var js=class{db;constructor(e){e||(Ls(at),e=ks),this.db=new gf(e),this.db.pragma("journal_mode = WAL"),this.ensureFTSTables()}ensureFTSTables(){try{if(this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%_fts'").all().some(a=>a.name==="observations_fts"||a.name==="session_summaries_fts"))return;console.error("[SessionSearch] Creating FTS5 tables..."),this.db.exec(` CREATE VIRTUAL TABLE IF NOT EXISTS observations_fts USING fts5( title, subtitle, @@ -63,22 +69,24 @@ import{Server as he}from"@modelcontextprotocol/sdk/server/index.js";import{Stdio INSERT INTO session_summaries_fts(rowid, request, investigated, learned, completed, next_steps, notes) VALUES (new.id, new.request, new.investigated, new.learned, new.completed, new.next_steps, new.notes); END; - `),console.error("[SessionSearch] FTS5 tables created successfully")}catch(e){console.error("[SessionSearch] FTS migration error:",e.message)}}escapeFTS5(e){return`"${e.replace(/"/g,'""')}"`}buildFilterClause(e,s,r="o"){let t=[];if(e.project&&(t.push(`${r}.project = ?`),s.push(e.project)),e.type)if(Array.isArray(e.type)){let n=e.type.map(()=>"?").join(",");t.push(`${r}.type IN (${n})`),s.push(...e.type)}else t.push(`${r}.type = ?`),s.push(e.type);if(e.dateRange){let{start:n,end:o}=e.dateRange;if(n){let a=typeof n=="number"?n:new Date(n).getTime();t.push(`${r}.created_at_epoch >= ?`),s.push(a)}if(o){let a=typeof o=="number"?o:new Date(o).getTime();t.push(`${r}.created_at_epoch <= ?`),s.push(a)}}if(e.concepts){let n=Array.isArray(e.concepts)?e.concepts:[e.concepts],o=n.map(()=>`EXISTS (SELECT 1 FROM json_each(${r}.concepts) WHERE value = ?)`);o.length>0&&(t.push(`(${o.join(" OR ")})`),s.push(...n))}if(e.files){let n=Array.isArray(e.files)?e.files:[e.files],o=n.map(()=>`( - EXISTS (SELECT 1 FROM json_each(${r}.files_read) WHERE value LIKE ?) - OR EXISTS (SELECT 1 FROM json_each(${r}.files_modified) WHERE value LIKE ?) - )`);o.length>0&&(t.push(`(${o.join(" OR ")})`),n.forEach(a=>{s.push(`%${a}%`,`%${a}%`)}))}return t.length>0?t.join(" AND "):""}buildOrderClause(e="relevance",s=!0,r="observations_fts"){switch(e){case"relevance":return s?`ORDER BY ${r}.rank ASC`:"ORDER BY o.created_at_epoch DESC";case"date_desc":return"ORDER BY o.created_at_epoch DESC";case"date_asc":return"ORDER BY o.created_at_epoch ASC";default:return"ORDER BY o.created_at_epoch DESC"}}searchObservations(e,s={}){let r=[],{limit:t=50,offset:n=0,orderBy:o="relevance",...a}=s,d=this.escapeFTS5(e);r.push(d);let l=this.buildFilterClause(a,r,"o"),p=l?`AND ${l}`:"",u=this.buildOrderClause(o,!0),m=` + `),console.error("[SessionSearch] FTS5 tables created successfully")}catch(e){console.error("[SessionSearch] FTS migration error:",e.message)}}escapeFTS5(e){return`"${e.replace(/"/g,'""')}"`}buildFilterClause(e,r,a="o"){let t=[];if(e.project&&(t.push(`${a}.project = ?`),r.push(e.project)),e.type)if(Array.isArray(e.type)){let n=e.type.map(()=>"?").join(",");t.push(`${a}.type IN (${n})`),r.push(...e.type)}else t.push(`${a}.type = ?`),r.push(e.type);if(e.dateRange){let{start:n,end:o}=e.dateRange;if(n){let i=typeof n=="number"?n:new Date(n).getTime();t.push(`${a}.created_at_epoch >= ?`),r.push(i)}if(o){let i=typeof o=="number"?o:new Date(o).getTime();t.push(`${a}.created_at_epoch <= ?`),r.push(i)}}if(e.concepts){let n=Array.isArray(e.concepts)?e.concepts:[e.concepts],o=n.map(()=>`EXISTS (SELECT 1 FROM json_each(${a}.concepts) WHERE value = ?)`);o.length>0&&(t.push(`(${o.join(" OR ")})`),r.push(...n))}if(e.files){let n=Array.isArray(e.files)?e.files:[e.files],o=n.map(()=>`( + EXISTS (SELECT 1 FROM json_each(${a}.files_read) WHERE value LIKE ?) + OR EXISTS (SELECT 1 FROM json_each(${a}.files_modified) WHERE value LIKE ?) + )`);o.length>0&&(t.push(`(${o.join(" OR ")})`),n.forEach(i=>{r.push(`%${i}%`,`%${i}%`)}))}return t.length>0?t.join(" AND "):""}buildOrderClause(e="relevance",r=!0,a="observations_fts"){switch(e){case"relevance":return r?`ORDER BY ${a}.rank ASC`:"ORDER BY o.created_at_epoch DESC";case"date_desc":return"ORDER BY o.created_at_epoch DESC";case"date_asc":return"ORDER BY o.created_at_epoch ASC";default:return"ORDER BY o.created_at_epoch DESC"}}searchObservations(e,r={}){let a=[],{limit:t=50,offset:n=0,orderBy:o="relevance",...i}=r,l=this.escapeFTS5(e);a.push(l);let u=this.buildFilterClause(i,a,"o"),p=u?`AND ${u}`:"",h=this.buildOrderClause(o,!0),f=` SELECT o.*, + o.discovery_tokens, observations_fts.rank as rank FROM observations o JOIN observations_fts ON o.id = observations_fts.rowid WHERE observations_fts MATCH ? ${p} - ${u} + ${h} LIMIT ? OFFSET ? - `;r.push(t,n);let f=this.db.prepare(m).all(...r);if(f.length>0){let h=Math.min(...f.map(E=>E.rank||0)),_=Math.max(...f.map(E=>E.rank||0))-h||1;f.forEach(E=>{E.rank!==void 0&&(E.score=1-(E.rank-h)/_)})}return f}searchSessions(e,s={}){let r=[],{limit:t=50,offset:n=0,orderBy:o="relevance",...a}=s,d=this.escapeFTS5(e);r.push(d);let l={...a};delete l.type;let p=this.buildFilterClause(l,r,"s"),h=` + `;a.push(t,n);let d=this.db.prepare(f).all(...a);if(d.length>0){let g=Math.min(...d.map(_=>_.rank||0)),y=Math.max(...d.map(_=>_.rank||0))-g||1;d.forEach(_=>{_.rank!==void 0&&(_.score=1-(_.rank-g)/y)})}return d}searchSessions(e,r={}){let a=[],{limit:t=50,offset:n=0,orderBy:o="relevance",...i}=r,l=this.escapeFTS5(e);a.push(l);let u={...i};delete u.type;let p=this.buildFilterClause(u,a,"s"),g=` SELECT s.*, + s.discovery_tokens, session_summaries_fts.rank as rank FROM session_summaries s JOIN session_summaries_fts ON s.id = session_summaries_fts.rowid @@ -86,34 +94,34 @@ import{Server as he}from"@modelcontextprotocol/sdk/server/index.js";import{Stdio ${(p?`AND ${p}`:"").replace(/files_read/g,"files_read").replace(/files_modified/g,"files_edited")} ${o==="relevance"?"ORDER BY session_summaries_fts.rank ASC":o==="date_asc"?"ORDER BY s.created_at_epoch ASC":"ORDER BY s.created_at_epoch DESC"} LIMIT ? OFFSET ? - `;r.push(t,n);let b=this.db.prepare(h).all(...r);if(b.length>0){let _=Math.min(...b.map(T=>T.rank||0)),x=Math.max(...b.map(T=>T.rank||0))-_||1;b.forEach(T=>{T.rank!==void 0&&(T.score=1-(T.rank-_)/x)})}return b}findByConcept(e,s={}){let r=[],{limit:t=50,offset:n=0,orderBy:o="date_desc",...a}=s,d={...a,concepts:e},l=this.buildFilterClause(d,r,"o"),p=this.buildOrderClause(o,!1),u=` - SELECT o.* + `;a.push(t,n);let v=this.db.prepare(g).all(...a);if(v.length>0){let y=Math.min(...v.map(S=>S.rank||0)),R=Math.max(...v.map(S=>S.rank||0))-y||1;v.forEach(S=>{S.rank!==void 0&&(S.score=1-(S.rank-y)/R)})}return v}findByConcept(e,r={}){let a=[],{limit:t=50,offset:n=0,orderBy:o="date_desc",...i}=r,l={...i,concepts:e},u=this.buildFilterClause(l,a,"o"),p=this.buildOrderClause(o,!1),h=` + SELECT o.*, o.discovery_tokens FROM observations o - WHERE ${l} + WHERE ${u} ${p} LIMIT ? OFFSET ? - `;return r.push(t,n),this.db.prepare(u).all(...r)}findByFile(e,s={}){let r=[],{limit:t=50,offset:n=0,orderBy:o="date_desc",...a}=s,d={...a,files:e},l=this.buildFilterClause(d,r,"o"),p=this.buildOrderClause(o,!1),u=` - SELECT o.* + `;return a.push(t,n),this.db.prepare(h).all(...a)}findByFile(e,r={}){let a=[],{limit:t=50,offset:n=0,orderBy:o="date_desc",...i}=r,l={...i,files:e},u=this.buildFilterClause(l,a,"o"),p=this.buildOrderClause(o,!1),h=` + SELECT o.*, o.discovery_tokens FROM observations o - WHERE ${l} + WHERE ${u} ${p} LIMIT ? OFFSET ? - `;r.push(t,n);let m=this.db.prepare(u).all(...r),f=[],h={...a};delete h.type;let b=[];if(h.project&&(b.push("s.project = ?"),f.push(h.project)),h.dateRange){let{start:x,end:T}=h.dateRange;if(x){let g=typeof x=="number"?x:new Date(x).getTime();b.push("s.created_at_epoch >= ?"),f.push(g)}if(T){let g=typeof T=="number"?T:new Date(T).getTime();b.push("s.created_at_epoch <= ?"),f.push(g)}}b.push(`( + `;a.push(t,n);let f=this.db.prepare(h).all(...a),d=[],g={...i};delete g.type;let v=[];if(g.project&&(v.push("s.project = ?"),d.push(g.project)),g.dateRange){let{start:R,end:S}=g.dateRange;if(R){let w=typeof R=="number"?R:new Date(R).getTime();v.push("s.created_at_epoch >= ?"),d.push(w)}if(S){let w=typeof S=="number"?S:new Date(S).getTime();v.push("s.created_at_epoch <= ?"),d.push(w)}}v.push(`( EXISTS (SELECT 1 FROM json_each(s.files_read) WHERE value LIKE ?) OR EXISTS (SELECT 1 FROM json_each(s.files_edited) WHERE value LIKE ?) - )`),f.push(`%${e}%`,`%${e}%`);let _=` - SELECT s.* + )`),d.push(`%${e}%`,`%${e}%`);let y=` + SELECT s.*, s.discovery_tokens FROM session_summaries s - WHERE ${b.join(" AND ")} + WHERE ${v.join(" AND ")} ORDER BY s.created_at_epoch DESC LIMIT ? OFFSET ? - `;f.push(t,n);let E=this.db.prepare(_).all(...f);return{observations:m,sessions:E}}findByType(e,s={}){let r=[],{limit:t=50,offset:n=0,orderBy:o="date_desc",...a}=s,d={...a,type:e},l=this.buildFilterClause(d,r,"o"),p=this.buildOrderClause(o,!1),u=` - SELECT o.* + `;d.push(t,n);let _=this.db.prepare(y).all(...d);return{observations:f,sessions:_}}findByType(e,r={}){let a=[],{limit:t=50,offset:n=0,orderBy:o="date_desc",...i}=r,l={...i,type:e},u=this.buildFilterClause(l,a,"o"),p=this.buildOrderClause(o,!1),h=` + SELECT o.*, o.discovery_tokens FROM observations o - WHERE ${l} + WHERE ${u} ${p} LIMIT ? OFFSET ? - `;return r.push(t,n),this.db.prepare(u).all(...r)}searchUserPrompts(e,s={}){let r=[],{limit:t=20,offset:n=0,orderBy:o="relevance",...a}=s,d=this.escapeFTS5(e);r.push(d);let l=[];if(a.project&&(l.push("s.project = ?"),r.push(a.project)),a.dateRange){let{start:h,end:b}=a.dateRange;if(h){let _=typeof h=="number"?h:new Date(h).getTime();l.push("up.created_at_epoch >= ?"),r.push(_)}if(b){let _=typeof b=="number"?b:new Date(b).getTime();l.push("up.created_at_epoch <= ?"),r.push(_)}}let m=` + `;return a.push(t,n),this.db.prepare(h).all(...a)}searchUserPrompts(e,r={}){let a=[],{limit:t=20,offset:n=0,orderBy:o="relevance",...i}=r,l=this.escapeFTS5(e);a.push(l);let u=[];if(i.project&&(u.push("s.project = ?"),a.push(i.project)),i.dateRange){let{start:g,end:v}=i.dateRange;if(g){let y=typeof g=="number"?g:new Date(g).getTime();u.push("up.created_at_epoch >= ?"),a.push(y)}if(v){let y=typeof v=="number"?v:new Date(v).getTime();u.push("up.created_at_epoch <= ?"),a.push(y)}}let f=` SELECT up.*, user_prompts_fts.rank as rank @@ -121,10 +129,10 @@ import{Server as he}from"@modelcontextprotocol/sdk/server/index.js";import{Stdio JOIN user_prompts_fts ON up.id = user_prompts_fts.rowid JOIN sdk_sessions s ON up.claude_session_id = s.claude_session_id WHERE user_prompts_fts MATCH ? - ${l.length>0?`AND ${l.join(" AND ")}`:""} + ${u.length>0?`AND ${u.join(" AND ")}`:""} ${o==="relevance"?"ORDER BY user_prompts_fts.rank ASC":o==="date_asc"?"ORDER BY up.created_at_epoch ASC":"ORDER BY up.created_at_epoch DESC"} LIMIT ? OFFSET ? - `;r.push(t,n);let f=this.db.prepare(m).all(...r);if(f.length>0){let h=Math.min(...f.map(E=>E.rank||0)),_=Math.max(...f.map(E=>E.rank||0))-h||1;f.forEach(E=>{E.rank!==void 0&&(E.score=1-(E.rank-h)/_)})}return f}getUserPromptsBySession(e){return this.db.prepare(` + `;a.push(t,n);let d=this.db.prepare(f).all(...a);if(d.length>0){let g=Math.min(...d.map(_=>_.rank||0)),y=Math.max(...d.map(_=>_.rank||0))-g||1;d.forEach(_=>{_.rank!==void 0&&(_.score=1-(_.rank-g)/y)})}return d}getUserPromptsBySession(e){return this.db.prepare(` SELECT id, claude_session_id, @@ -135,15 +143,15 @@ import{Server as he}from"@modelcontextprotocol/sdk/server/index.js";import{Stdio FROM user_prompts WHERE claude_session_id = ? ORDER BY prompt_number ASC - `).all(e)}close(){this.db.close()}};import me from"better-sqlite3";var K=(n=>(n[n.DEBUG=0]="DEBUG",n[n.INFO=1]="INFO",n[n.WARN=2]="WARN",n[n.ERROR=3]="ERROR",n[n.SILENT=4]="SILENT",n))(K||{}),J=class{level;useColor;constructor(){let e=process.env.CLAUDE_MEM_LOG_LEVEL?.toUpperCase()||"INFO";this.level=K[e]??1,this.useColor=process.stdout.isTTY??!1}correlationId(e,s){return`obs-${e}-${s}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.level===0?`${e.message} -${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let s=Object.keys(e);return s.length===0?"{}":s.length<=3?JSON.stringify(e):`{${s.length} keys: ${s.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,s){if(!s)return e;try{let r=typeof s=="string"?JSON.parse(s):s;if(e==="Bash"&&r.command){let t=r.command.length>50?r.command.substring(0,50)+"...":r.command;return`${e}(${t})`}if(e==="Read"&&r.file_path){let t=r.file_path.split("/").pop()||r.file_path;return`${e}(${t})`}if(e==="Edit"&&r.file_path){let t=r.file_path.split("/").pop()||r.file_path;return`${e}(${t})`}if(e==="Write"&&r.file_path){let t=r.file_path.split("/").pop()||r.file_path;return`${e}(${t})`}return e}catch{return e}}log(e,s,r,t,n){if(e0&&(u=` {${Object.entries(_).map(([x,T])=>`${x}=${T}`).join(", ")}}`)}let m=`[${o}] [${a}] [${d}] ${l}${r}${u}${p}`;e===3?console.error(m):console.log(m)}debug(e,s,r,t){this.log(0,e,s,r,t)}info(e,s,r,t){this.log(1,e,s,r,t)}warn(e,s,r,t){this.log(2,e,s,r,t)}error(e,s,r,t){this.log(3,e,s,r,t)}dataIn(e,s,r,t){this.info(e,`\u2192 ${s}`,r,t)}dataOut(e,s,r,t){this.info(e,`\u2190 ${s}`,r,t)}success(e,s,r,t){this.info(e,`\u2713 ${s}`,r,t)}failure(e,s,r,t){this.error(e,`\u2717 ${s}`,r,t)}timing(e,s,r,t){this.info(e,`\u23F1 ${s}`,t,{duration:`${r}ms`})}},se=new J;var H=class{db;constructor(){P(w),this.db=new me(X),this.db.pragma("journal_mode = WAL"),this.db.pragma("synchronous = NORMAL"),this.db.pragma("foreign_keys = ON"),this.initializeSchema(),this.ensureWorkerPortColumn(),this.ensurePromptTrackingColumns(),this.removeSessionSummariesUniqueConstraint(),this.addObservationHierarchicalFields(),this.makeObservationsTextNullable(),this.createUserPromptsTable()}initializeSchema(){try{this.db.exec(` + `).all(e)}close(){this.db.close()}};import yf from"better-sqlite3";var tn=(n=>(n[n.DEBUG=0]="DEBUG",n[n.INFO=1]="INFO",n[n.WARN=2]="WARN",n[n.ERROR=3]="ERROR",n[n.SILENT=4]="SILENT",n))(tn||{}),rn=class{level;useColor;constructor(){let e=process.env.CLAUDE_MEM_LOG_LEVEL?.toUpperCase()||"INFO";this.level=tn[e]??1,this.useColor=process.stdout.isTTY??!1}correlationId(e,r){return`obs-${e}-${r}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.level===0?`${e.message} +${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let r=Object.keys(e);return r.length===0?"{}":r.length<=3?JSON.stringify(e):`{${r.length} keys: ${r.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,r){if(!r)return e;try{let a=typeof r=="string"?JSON.parse(r):r;if(e==="Bash"&&a.command){let t=a.command.length>50?a.command.substring(0,50)+"...":a.command;return`${e}(${t})`}if(e==="Read"&&a.file_path){let t=a.file_path.split("/").pop()||a.file_path;return`${e}(${t})`}if(e==="Edit"&&a.file_path){let t=a.file_path.split("/").pop()||a.file_path;return`${e}(${t})`}if(e==="Write"&&a.file_path){let t=a.file_path.split("/").pop()||a.file_path;return`${e}(${t})`}return e}catch{return e}}log(e,r,a,t,n){if(e0&&(h=` {${Object.entries(y).map(([R,S])=>`${R}=${S}`).join(", ")}}`)}let f=`[${o}] [${i}] [${l}] ${u}${a}${h}${p}`;e===3?console.error(f):console.log(f)}debug(e,r,a,t){this.log(0,e,r,a,t)}info(e,r,a,t){this.log(1,e,r,a,t)}warn(e,r,a,t){this.log(2,e,r,a,t)}error(e,r,a,t){this.log(3,e,r,a,t)}dataIn(e,r,a,t){this.info(e,`\u2192 ${r}`,a,t)}dataOut(e,r,a,t){this.info(e,`\u2190 ${r}`,a,t)}success(e,r,a,t){this.info(e,`\u2713 ${r}`,a,t)}failure(e,r,a,t){this.error(e,`\u2717 ${r}`,a,t)}timing(e,r,a,t){this.info(e,`\u23F1 ${r}`,t,{duration:`${a}ms`})}},_l=new rn;var Fs=class{db;constructor(){Ls(at),this.db=new yf(ks),this.db.pragma("journal_mode = WAL"),this.db.pragma("synchronous = NORMAL"),this.db.pragma("foreign_keys = ON"),this.initializeSchema(),this.ensureWorkerPortColumn(),this.ensurePromptTrackingColumns(),this.removeSessionSummariesUniqueConstraint(),this.addObservationHierarchicalFields(),this.makeObservationsTextNullable(),this.createUserPromptsTable(),this.ensureDiscoveryTokensColumn()}initializeSchema(){try{this.db.exec(` CREATE TABLE IF NOT EXISTS schema_versions ( id INTEGER PRIMARY KEY, version INTEGER UNIQUE NOT NULL, applied_at TEXT NOT NULL ) - `);let e=this.db.prepare("SELECT version FROM schema_versions ORDER BY version").all();(e.length>0?Math.max(...e.map(r=>r.version)):0)===0&&(console.error("[SessionStore] Initializing fresh database with migration004..."),this.db.exec(` + `);let e=this.db.prepare("SELECT version FROM schema_versions ORDER BY version").all();(e.length>0?Math.max(...e.map(a=>a.version)):0)===0&&(console.error("[SessionStore] Initializing fresh database with migration004..."),this.db.exec(` CREATE TABLE IF NOT EXISTS sdk_sessions ( id INTEGER PRIMARY KEY AUTOINCREMENT, claude_session_id TEXT UNIQUE NOT NULL, @@ -199,7 +207,7 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let s=Obje CREATE INDEX IF NOT EXISTS idx_session_summaries_sdk_session ON session_summaries(sdk_session_id); CREATE INDEX IF NOT EXISTS idx_session_summaries_project ON session_summaries(project); CREATE INDEX IF NOT EXISTS idx_session_summaries_created ON session_summaries(created_at_epoch DESC); - `),this.db.prepare("INSERT INTO schema_versions (version, applied_at) VALUES (?, ?)").run(4,new Date().toISOString()),console.error("[SessionStore] Migration004 applied successfully"))}catch(e){throw console.error("[SessionStore] Schema initialization error:",e.message),e}}ensureWorkerPortColumn(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(5))return;this.db.pragma("table_info(sdk_sessions)").some(t=>t.name==="worker_port")||(this.db.exec("ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER"),console.error("[SessionStore] Added worker_port column to sdk_sessions table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(5,new Date().toISOString())}catch(e){console.error("[SessionStore] Migration error:",e.message)}}ensurePromptTrackingColumns(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(6))return;this.db.pragma("table_info(sdk_sessions)").some(d=>d.name==="prompt_counter")||(this.db.exec("ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0"),console.error("[SessionStore] Added prompt_counter column to sdk_sessions table")),this.db.pragma("table_info(observations)").some(d=>d.name==="prompt_number")||(this.db.exec("ALTER TABLE observations ADD COLUMN prompt_number INTEGER"),console.error("[SessionStore] Added prompt_number column to observations table")),this.db.pragma("table_info(session_summaries)").some(d=>d.name==="prompt_number")||(this.db.exec("ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER"),console.error("[SessionStore] Added prompt_number column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(6,new Date().toISOString())}catch(e){console.error("[SessionStore] Prompt tracking migration error:",e.message)}}removeSessionSummariesUniqueConstraint(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(7))return;if(!this.db.pragma("index_list(session_summaries)").some(t=>t.unique===1)){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString());return}console.error("[SessionStore] Removing UNIQUE constraint from session_summaries.sdk_session_id..."),this.db.exec("BEGIN TRANSACTION");try{this.db.exec(` + `),this.db.prepare("INSERT INTO schema_versions (version, applied_at) VALUES (?, ?)").run(4,new Date().toISOString()),console.error("[SessionStore] Migration004 applied successfully"))}catch(e){throw console.error("[SessionStore] Schema initialization error:",e.message),e}}ensureWorkerPortColumn(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(5))return;this.db.pragma("table_info(sdk_sessions)").some(t=>t.name==="worker_port")||(this.db.exec("ALTER TABLE sdk_sessions ADD COLUMN worker_port INTEGER"),console.error("[SessionStore] Added worker_port column to sdk_sessions table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(5,new Date().toISOString())}catch(e){console.error("[SessionStore] Migration error:",e.message)}}ensurePromptTrackingColumns(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(6))return;this.db.pragma("table_info(sdk_sessions)").some(l=>l.name==="prompt_counter")||(this.db.exec("ALTER TABLE sdk_sessions ADD COLUMN prompt_counter INTEGER DEFAULT 0"),console.error("[SessionStore] Added prompt_counter column to sdk_sessions table")),this.db.pragma("table_info(observations)").some(l=>l.name==="prompt_number")||(this.db.exec("ALTER TABLE observations ADD COLUMN prompt_number INTEGER"),console.error("[SessionStore] Added prompt_number column to observations table")),this.db.pragma("table_info(session_summaries)").some(l=>l.name==="prompt_number")||(this.db.exec("ALTER TABLE session_summaries ADD COLUMN prompt_number INTEGER"),console.error("[SessionStore] Added prompt_number column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(6,new Date().toISOString())}catch(e){console.error("[SessionStore] Prompt tracking migration error:",e.message)}}removeSessionSummariesUniqueConstraint(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(7))return;if(!this.db.pragma("index_list(session_summaries)").some(t=>t.unique===1)){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(7,new Date().toISOString());return}console.error("[SessionStore] Removing UNIQUE constraint from session_summaries.sdk_session_id..."),this.db.exec("BEGIN TRANSACTION");try{this.db.exec(` CREATE TABLE session_summaries_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, sdk_session_id TEXT NOT NULL, @@ -235,7 +243,7 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let s=Obje ALTER TABLE observations ADD COLUMN concepts TEXT; ALTER TABLE observations ADD COLUMN files_read TEXT; ALTER TABLE observations ADD COLUMN files_modified TEXT; - `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString()),console.error("[SessionStore] Successfully added hierarchical fields to observations table")}catch(e){console.error("[SessionStore] Migration error (add hierarchical fields):",e.message)}}makeObservationsTextNullable(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(9))return;let r=this.db.pragma("table_info(observations)").find(t=>t.name==="text");if(!r||r.notnull===0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString());return}console.error("[SessionStore] Making observations.text nullable..."),this.db.exec("BEGIN TRANSACTION");try{this.db.exec(` + `),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(8,new Date().toISOString()),console.error("[SessionStore] Successfully added hierarchical fields to observations table")}catch(e){console.error("[SessionStore] Migration error (add hierarchical fields):",e.message)}}makeObservationsTextNullable(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(9))return;let a=this.db.pragma("table_info(observations)").find(t=>t.name==="text");if(!a||a.notnull===0){this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(9,new Date().toISOString());return}console.error("[SessionStore] Making observations.text nullable..."),this.db.exec("BEGIN TRANSACTION");try{this.db.exec(` CREATE TABLE observations_new ( id INTEGER PRIMARY KEY AUTOINCREMENT, sdk_session_id TEXT NOT NULL, @@ -302,7 +310,7 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let s=Obje INSERT INTO user_prompts_fts(rowid, prompt_text) VALUES (new.id, new.prompt_text); END; - `),this.db.exec("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString()),console.error("[SessionStore] Successfully created user_prompts table with FTS5 support")}catch(r){throw this.db.exec("ROLLBACK"),r}}catch(e){console.error("[SessionStore] Migration error (create user_prompts table):",e.message)}}getRecentSummaries(e,s=10){return this.db.prepare(` + `),this.db.exec("COMMIT"),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(10,new Date().toISOString()),console.error("[SessionStore] Successfully created user_prompts table with FTS5 support")}catch(a){throw this.db.exec("ROLLBACK"),a}}catch(e){console.error("[SessionStore] Migration error (create user_prompts table):",e.message)}}ensureDiscoveryTokensColumn(){try{if(this.db.prepare("SELECT version FROM schema_versions WHERE version = ?").get(11))return;this.db.pragma("table_info(observations)").some(o=>o.name==="discovery_tokens")||(this.db.exec("ALTER TABLE observations ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),console.error("[SessionStore] Added discovery_tokens column to observations table")),this.db.pragma("table_info(session_summaries)").some(o=>o.name==="discovery_tokens")||(this.db.exec("ALTER TABLE session_summaries ADD COLUMN discovery_tokens INTEGER DEFAULT 0"),console.error("[SessionStore] Added discovery_tokens column to session_summaries table")),this.db.prepare("INSERT OR IGNORE INTO schema_versions (version, applied_at) VALUES (?, ?)").run(11,new Date().toISOString())}catch(e){throw console.error("[SessionStore] Discovery tokens migration error:",e.message),e}}getRecentSummaries(e,r=10){return this.db.prepare(` SELECT request, investigated, learned, completed, next_steps, files_read, files_edited, notes, prompt_number, created_at @@ -310,7 +318,7 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let s=Obje WHERE project = ? ORDER BY created_at_epoch DESC LIMIT ? - `).all(e,s)}getRecentSummariesWithSessionInfo(e,s=3){return this.db.prepare(` + `).all(e,r)}getRecentSummariesWithSessionInfo(e,r=3){return this.db.prepare(` SELECT sdk_session_id, request, learned, completed, next_steps, prompt_number, created_at @@ -318,13 +326,13 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let s=Obje WHERE project = ? ORDER BY created_at_epoch DESC LIMIT ? - `).all(e,s)}getRecentObservations(e,s=20){return this.db.prepare(` + `).all(e,r)}getRecentObservations(e,r=20){return this.db.prepare(` SELECT type, text, prompt_number, created_at FROM observations WHERE project = ? ORDER BY created_at_epoch DESC LIMIT ? - `).all(e,s)}getAllRecentObservations(e=100){return this.db.prepare(` + `).all(e,r)}getAllRecentObservations(e=100){return this.db.prepare(` SELECT id, type, title, subtitle, text, project, prompt_number, created_at, created_at_epoch FROM observations ORDER BY created_at_epoch DESC @@ -354,7 +362,7 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let s=Obje FROM sdk_sessions WHERE project IS NOT NULL AND project != '' ORDER BY project ASC - `).all().map(r=>r.project)}getRecentSessionsWithStatus(e,s=3){return this.db.prepare(` + `).all().map(a=>a.project)}getRecentSessionsWithStatus(e,r=3){return this.db.prepare(` SELECT * FROM ( SELECT s.sdk_session_id, @@ -371,7 +379,7 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let s=Obje LIMIT ? ) ORDER BY started_at_epoch ASC - `).all(e,s)}getObservationsForSession(e){return this.db.prepare(` + `).all(e,r)}getObservationsForSession(e){return this.db.prepare(` SELECT title, subtitle, type, prompt_number FROM observations WHERE sdk_session_id = ? @@ -380,10 +388,10 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let s=Obje SELECT * FROM observations WHERE id = ? - `).get(e)||null}getObservationsByIds(e,s={}){if(e.length===0)return[];let{orderBy:r="date_desc",limit:t}=s,n=r==="date_asc"?"ASC":"DESC",o=t?`LIMIT ${t}`:"",a=e.map(()=>"?").join(",");return this.db.prepare(` + `).get(e)||null}getObservationsByIds(e,r={}){if(e.length===0)return[];let{orderBy:a="date_desc",limit:t}=r,n=a==="date_asc"?"ASC":"DESC",o=t?`LIMIT ${t}`:"",i=e.map(()=>"?").join(",");return this.db.prepare(` SELECT * FROM observations - WHERE id IN (${a}) + WHERE id IN (${i}) ORDER BY created_at_epoch ${n} ${o} `).all(...e)}getSummaryForSession(e){return this.db.prepare(` @@ -394,11 +402,11 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let s=Obje WHERE sdk_session_id = ? ORDER BY created_at_epoch DESC LIMIT 1 - `).get(e)||null}getFilesForSession(e){let r=this.db.prepare(` + `).get(e)||null}getFilesForSession(e){let a=this.db.prepare(` SELECT files_read, files_modified FROM observations WHERE sdk_session_id = ? - `).all(e),t=new Set,n=new Set;for(let o of r){if(o.files_read)try{let a=JSON.parse(o.files_read);Array.isArray(a)&&a.forEach(d=>t.add(d))}catch{}if(o.files_modified)try{let a=JSON.parse(o.files_modified);Array.isArray(a)&&a.forEach(d=>n.add(d))}catch{}}return{filesRead:Array.from(t),filesModified:Array.from(n)}}getSessionById(e){return this.db.prepare(` + `).all(e),t=new Set,n=new Set;for(let o of a){if(o.files_read)try{let i=JSON.parse(o.files_read);Array.isArray(i)&&i.forEach(l=>t.add(l))}catch{}if(o.files_modified)try{let i=JSON.parse(o.files_modified);Array.isArray(i)&&i.forEach(l=>n.add(l))}catch{}}return{filesRead:Array.from(t),filesModified:Array.from(n)}}getSessionById(e){return this.db.prepare(` SELECT id, claude_session_id, sdk_session_id, project, user_prompt FROM sdk_sessions WHERE id = ? @@ -413,11 +421,11 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let s=Obje FROM sdk_sessions WHERE claude_session_id = ? LIMIT 1 - `).get(e)||null}reactivateSession(e,s){this.db.prepare(` + `).get(e)||null}reactivateSession(e,r){this.db.prepare(` UPDATE sdk_sessions SET status = 'active', user_prompt = ?, worker_port = NULL WHERE id = ? - `).run(s,e)}incrementPromptCounter(e){return this.db.prepare(` + `).run(r,e)}incrementPromptCounter(e){return this.db.prepare(` UPDATE sdk_sessions SET prompt_counter = COALESCE(prompt_counter, 0) + 1 WHERE id = ? @@ -425,115 +433,115 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let s=Obje SELECT prompt_counter FROM sdk_sessions WHERE id = ? `).get(e)?.prompt_counter||1}getPromptCounter(e){return this.db.prepare(` SELECT prompt_counter FROM sdk_sessions WHERE id = ? - `).get(e)?.prompt_counter||0}createSDKSession(e,s,r){let t=new Date,n=t.getTime(),a=this.db.prepare(` + `).get(e)?.prompt_counter||0}createSDKSession(e,r,a){let t=new Date,n=t.getTime(),i=this.db.prepare(` INSERT OR IGNORE INTO sdk_sessions (claude_session_id, sdk_session_id, project, user_prompt, started_at, started_at_epoch, status) VALUES (?, ?, ?, ?, ?, ?, 'active') - `).run(e,e,s,r,t.toISOString(),n);return a.lastInsertRowid===0||a.changes===0?this.db.prepare(` + `).run(e,e,r,a,t.toISOString(),n);return i.lastInsertRowid===0||i.changes===0?this.db.prepare(` SELECT id FROM sdk_sessions WHERE claude_session_id = ? LIMIT 1 - `).get(e).id:a.lastInsertRowid}updateSDKSessionId(e,s){return this.db.prepare(` + `).get(e).id:i.lastInsertRowid}updateSDKSessionId(e,r){return this.db.prepare(` UPDATE sdk_sessions SET sdk_session_id = ? WHERE id = ? AND sdk_session_id IS NULL - `).run(s,e).changes===0?(se.debug("DB","sdk_session_id already set, skipping update",{sessionId:e,sdkSessionId:s}),!1):!0}setWorkerPort(e,s){this.db.prepare(` + `).run(r,e).changes===0?(_l.debug("DB","sdk_session_id already set, skipping update",{sessionId:e,sdkSessionId:r}),!1):!0}setWorkerPort(e,r){this.db.prepare(` UPDATE sdk_sessions SET worker_port = ? WHERE id = ? - `).run(s,e)}getWorkerPort(e){return this.db.prepare(` + `).run(r,e)}getWorkerPort(e){return this.db.prepare(` SELECT worker_port FROM sdk_sessions WHERE id = ? LIMIT 1 - `).get(e)?.worker_port||null}saveUserPrompt(e,s,r){let t=new Date,n=t.getTime();return this.db.prepare(` + `).get(e)?.worker_port||null}saveUserPrompt(e,r,a){let t=new Date,n=t.getTime();return this.db.prepare(` INSERT INTO user_prompts (claude_session_id, prompt_number, prompt_text, created_at, created_at_epoch) VALUES (?, ?, ?, ?, ?) - `).run(e,s,r,t.toISOString(),n).lastInsertRowid}storeObservation(e,s,r,t){let n=new Date,o=n.getTime();this.db.prepare(` + `).run(e,r,a,t.toISOString(),n).lastInsertRowid}storeObservation(e,r,a,t,n=0){let o=new Date,i=o.getTime();this.db.prepare(` SELECT id FROM sdk_sessions WHERE sdk_session_id = ? `).get(e)||(this.db.prepare(` INSERT INTO sdk_sessions (claude_session_id, sdk_session_id, project, started_at, started_at_epoch, status) VALUES (?, ?, ?, ?, ?, 'active') - `).run(e,e,s,n.toISOString(),o),console.error(`[SessionStore] Auto-created session record for session_id: ${e}`));let p=this.db.prepare(` + `).run(e,e,r,o.toISOString(),i),console.error(`[SessionStore] Auto-created session record for session_id: ${e}`));let h=this.db.prepare(` INSERT INTO observations (sdk_session_id, project, type, title, subtitle, facts, narrative, concepts, - files_read, files_modified, prompt_number, created_at, created_at_epoch) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(e,s,r.type,r.title,r.subtitle,JSON.stringify(r.facts),r.narrative,JSON.stringify(r.concepts),JSON.stringify(r.files_read),JSON.stringify(r.files_modified),t||null,n.toISOString(),o);return{id:Number(p.lastInsertRowid),createdAtEpoch:o}}storeSummary(e,s,r,t){let n=new Date,o=n.getTime();this.db.prepare(` + files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `).run(e,r,a.type,a.title,a.subtitle,JSON.stringify(a.facts),a.narrative,JSON.stringify(a.concepts),JSON.stringify(a.files_read),JSON.stringify(a.files_modified),t||null,n,o.toISOString(),i);return{id:Number(h.lastInsertRowid),createdAtEpoch:i}}storeSummary(e,r,a,t,n=0){let o=new Date,i=o.getTime();this.db.prepare(` SELECT id FROM sdk_sessions WHERE sdk_session_id = ? `).get(e)||(this.db.prepare(` INSERT INTO sdk_sessions (claude_session_id, sdk_session_id, project, started_at, started_at_epoch, status) VALUES (?, ?, ?, ?, ?, 'active') - `).run(e,e,s,n.toISOString(),o),console.error(`[SessionStore] Auto-created session record for session_id: ${e}`));let p=this.db.prepare(` + `).run(e,e,r,o.toISOString(),i),console.error(`[SessionStore] Auto-created session record for session_id: ${e}`));let h=this.db.prepare(` INSERT INTO session_summaries (sdk_session_id, project, request, investigated, learned, completed, - next_steps, notes, prompt_number, created_at, created_at_epoch) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) - `).run(e,s,r.request,r.investigated,r.learned,r.completed,r.next_steps,r.notes,t||null,n.toISOString(),o);return{id:Number(p.lastInsertRowid),createdAtEpoch:o}}markSessionCompleted(e){let s=new Date,r=s.getTime();this.db.prepare(` + next_steps, notes, prompt_number, discovery_tokens, created_at, created_at_epoch) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `).run(e,r,a.request,a.investigated,a.learned,a.completed,a.next_steps,a.notes,t||null,n,o.toISOString(),i);return{id:Number(h.lastInsertRowid),createdAtEpoch:i}}markSessionCompleted(e){let r=new Date,a=r.getTime();this.db.prepare(` UPDATE sdk_sessions SET status = 'completed', completed_at = ?, completed_at_epoch = ? WHERE id = ? - `).run(s.toISOString(),r,e)}markSessionFailed(e){let s=new Date,r=s.getTime();this.db.prepare(` + `).run(r.toISOString(),a,e)}markSessionFailed(e){let r=new Date,a=r.getTime();this.db.prepare(` UPDATE sdk_sessions SET status = 'failed', completed_at = ?, completed_at_epoch = ? WHERE id = ? - `).run(s.toISOString(),r,e)}getSessionSummariesByIds(e,s={}){if(e.length===0)return[];let{orderBy:r="date_desc",limit:t}=s,n=r==="date_asc"?"ASC":"DESC",o=t?`LIMIT ${t}`:"",a=e.map(()=>"?").join(",");return this.db.prepare(` + `).run(r.toISOString(),a,e)}getSessionSummariesByIds(e,r={}){if(e.length===0)return[];let{orderBy:a="date_desc",limit:t}=r,n=a==="date_asc"?"ASC":"DESC",o=t?`LIMIT ${t}`:"",i=e.map(()=>"?").join(",");return this.db.prepare(` SELECT * FROM session_summaries - WHERE id IN (${a}) + WHERE id IN (${i}) ORDER BY created_at_epoch ${n} ${o} - `).all(...e)}getUserPromptsByIds(e,s={}){if(e.length===0)return[];let{orderBy:r="date_desc",limit:t}=s,n=r==="date_asc"?"ASC":"DESC",o=t?`LIMIT ${t}`:"",a=e.map(()=>"?").join(",");return this.db.prepare(` + `).all(...e)}getUserPromptsByIds(e,r={}){if(e.length===0)return[];let{orderBy:a="date_desc",limit:t}=r,n=a==="date_asc"?"ASC":"DESC",o=t?`LIMIT ${t}`:"",i=e.map(()=>"?").join(",");return this.db.prepare(` SELECT up.*, s.project, s.sdk_session_id FROM user_prompts up JOIN sdk_sessions s ON up.claude_session_id = s.claude_session_id - WHERE up.id IN (${a}) + WHERE up.id IN (${i}) ORDER BY up.created_at_epoch ${n} ${o} - `).all(...e)}getTimelineAroundTimestamp(e,s=10,r=10,t){return this.getTimelineAroundObservation(null,e,s,r,t)}getTimelineAroundObservation(e,s,r=10,t=10,n){let o=n?"AND project = ?":"",a=n?[n]:[],d,l;if(e!==null){let f=` + `).all(...e)}getTimelineAroundTimestamp(e,r=10,a=10,t){return this.getTimelineAroundObservation(null,e,r,a,t)}getTimelineAroundObservation(e,r,a=10,t=10,n){let o=n?"AND project = ?":"",i=n?[n]:[],l,u;if(e!==null){let d=` SELECT id, created_at_epoch FROM observations WHERE id <= ? ${o} ORDER BY id DESC LIMIT ? - `,h=` + `,g=` SELECT id, created_at_epoch FROM observations WHERE id >= ? ${o} ORDER BY id ASC LIMIT ? - `;try{let b=this.db.prepare(f).all(e,...a,r+1),_=this.db.prepare(h).all(e,...a,t+1);if(b.length===0&&_.length===0)return{observations:[],sessions:[],prompts:[]};d=b.length>0?b[b.length-1].created_at_epoch:s,l=_.length>0?_[_.length-1].created_at_epoch:s}catch(b){return console.error("[SessionStore] Error getting boundary observations:",b.message),{observations:[],sessions:[],prompts:[]}}}else{let f=` + `;try{let v=this.db.prepare(d).all(e,...i,a+1),y=this.db.prepare(g).all(e,...i,t+1);if(v.length===0&&y.length===0)return{observations:[],sessions:[],prompts:[]};l=v.length>0?v[v.length-1].created_at_epoch:r,u=y.length>0?y[y.length-1].created_at_epoch:r}catch(v){return console.error("[SessionStore] Error getting boundary observations:",v.message),{observations:[],sessions:[],prompts:[]}}}else{let d=` SELECT created_at_epoch FROM observations WHERE created_at_epoch <= ? ${o} ORDER BY created_at_epoch DESC LIMIT ? - `,h=` + `,g=` SELECT created_at_epoch FROM observations WHERE created_at_epoch >= ? ${o} ORDER BY created_at_epoch ASC LIMIT ? - `;try{let b=this.db.prepare(f).all(s,...a,r),_=this.db.prepare(h).all(s,...a,t+1);if(b.length===0&&_.length===0)return{observations:[],sessions:[],prompts:[]};d=b.length>0?b[b.length-1].created_at_epoch:s,l=_.length>0?_[_.length-1].created_at_epoch:s}catch(b){return console.error("[SessionStore] Error getting boundary timestamps:",b.message),{observations:[],sessions:[],prompts:[]}}}let p=` + `;try{let v=this.db.prepare(d).all(r,...i,a),y=this.db.prepare(g).all(r,...i,t+1);if(v.length===0&&y.length===0)return{observations:[],sessions:[],prompts:[]};l=v.length>0?v[v.length-1].created_at_epoch:r,u=y.length>0?y[y.length-1].created_at_epoch:r}catch(v){return console.error("[SessionStore] Error getting boundary timestamps:",v.message),{observations:[],sessions:[],prompts:[]}}}let p=` SELECT * FROM observations WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${o} ORDER BY created_at_epoch ASC - `,u=` + `,h=` SELECT * FROM session_summaries WHERE created_at_epoch >= ? AND created_at_epoch <= ? ${o} ORDER BY created_at_epoch ASC - `,m=` + `,f=` SELECT up.*, s.project, s.sdk_session_id FROM user_prompts up JOIN sdk_sessions s ON up.claude_session_id = s.claude_session_id WHERE up.created_at_epoch >= ? AND up.created_at_epoch <= ? ${o.replace("project","s.project")} ORDER BY up.created_at_epoch ASC - `;try{let f=this.db.prepare(p).all(d,l,...a),h=this.db.prepare(u).all(d,l,...a),b=this.db.prepare(m).all(d,l,...a);return{observations:f,sessions:h.map(_=>({id:_.id,sdk_session_id:_.sdk_session_id,project:_.project,request:_.request,completed:_.completed,next_steps:_.next_steps,created_at:_.created_at,created_at_epoch:_.created_at_epoch})),prompts:b.map(_=>({id:_.id,claude_session_id:_.claude_session_id,project:_.project,prompt:_.prompt_text,created_at:_.created_at,created_at_epoch:_.created_at_epoch}))}}catch(f){return console.error("[SessionStore] Error querying timeline records:",f.message),{observations:[],sessions:[],prompts:[]}}}close(){this.db.close()}};var $,N,k=null,ye="cm__claude-mem";try{$=new G,N=new H}catch(c){console.error("[search-server] Failed to initialize search:",c.message),process.exit(1)}async function M(c,e,s){if(!k)throw new Error("Chroma client not initialized");let t=(await k.callTool({name:"chroma_query_documents",arguments:{collection_name:ye,query_texts:[c],n_results:e,include:["documents","metadatas","distances"],where:s}})).content[0]?.text||"",n;try{n=JSON.parse(t)}catch(p){return console.error("[search-server] Failed to parse Chroma response as JSON:",p),{ids:[],distances:[],metadatas:[]}}let o=[],a=n.ids?.[0]||[];for(let p of a){let u=p.match(/obs_(\d+)_/),m=p.match(/summary_(\d+)_/),f=p.match(/prompt_(\d+)/),h=null;u?h=parseInt(u[1],10):m?h=parseInt(m[1],10):f&&(h=parseInt(f[1],10)),h!==null&&!o.includes(h)&&o.push(h)}let d=n.distances?.[0]||[],l=n.metadatas?.[0]||[];return{ids:o,distances:d,metadatas:l}}function j(){return` + `;try{let d=this.db.prepare(p).all(l,u,...i),g=this.db.prepare(h).all(l,u,...i),v=this.db.prepare(f).all(l,u,...i);return{observations:d,sessions:g.map(y=>({id:y.id,sdk_session_id:y.sdk_session_id,project:y.project,request:y.request,completed:y.completed,next_steps:y.next_steps,created_at:y.created_at,created_at_epoch:y.created_at_epoch})),prompts:v.map(y=>({id:y.id,claude_session_id:y.claude_session_id,project:y.project,prompt:y.prompt_text,created_at:y.created_at,created_at_epoch:y.created_at_epoch}))}}catch(d){return console.error("[SessionStore] Error querying timeline records:",d.message),{observations:[],sessions:[],prompts:[]}}}close(){this.db.close()}};var ue,ne,Te=null,_f="cm__claude-mem";try{ue=new js,ne=new Fs}catch(s){console.error("[search-server] Failed to initialize search:",s.message),process.exit(1)}async function Ye(s,e,r){if(!Te)throw new Error("Chroma client not initialized");let t=(await Te.callTool({name:"chroma_query_documents",arguments:{collection_name:_f,query_texts:[s],n_results:e,include:["documents","metadatas","distances"],where:r}})).content[0]?.text||"",n;try{n=JSON.parse(t)}catch(p){return console.error("[search-server] Failed to parse Chroma response as JSON:",p),{ids:[],distances:[],metadatas:[]}}let o=[],i=n.ids?.[0]||[];for(let p of i){let h=p.match(/obs_(\d+)_/),f=p.match(/summary_(\d+)_/),d=p.match(/prompt_(\d+)/),g=null;h?g=parseInt(h[1],10):f?g=parseInt(f[1],10):d&&(g=parseInt(d[1],10)),g!==null&&!o.includes(g)&&o.push(g)}let l=n.distances?.[0]||[],u=n.metadatas?.[0]||[];return{ids:o,distances:l,metadatas:u}}function ar(){return` --- \u{1F4A1} Search Strategy: ALWAYS search with index format FIRST to get an overview and identify relevant results. @@ -548,67 +556,108 @@ Search workflow: Other tips: \u2022 To search by concept: Use find_by_concept tool \u2022 To browse by type: Use find_by_type with ["decision", "feature", etc.] -\u2022 To sort by date: Use orderBy: "date_desc" or "date_asc"`}function q(c,e){let s=c.title||`Observation #${c.id}`,r=new Date(c.created_at_epoch).toLocaleString(),t=c.type?`[${c.type}]`:"";return`${e+1}. ${t} ${s} - Date: ${r} - Source: claude-mem://observation/${c.id}`}function re(c,e){let s=c.request||`Session ${c.sdk_session_id.substring(0,8)}`,r=new Date(c.created_at_epoch).toLocaleString();return`${e+1}. ${s} - Date: ${r} - Source: claude-mem://session/${c.sdk_session_id}`}function W(c){let e=c.title||`Observation #${c.id}`,s=[];s.push(`## ${e}`),s.push(`*Source: claude-mem://observation/${c.id}*`),s.push(""),c.subtitle&&(s.push(`**${c.subtitle}**`),s.push("")),c.narrative&&(s.push(c.narrative),s.push("")),c.text&&(s.push(c.text),s.push(""));let r=[];if(r.push(`Type: ${c.type}`),c.facts)try{let n=JSON.parse(c.facts);n.length>0&&r.push(`Facts: ${n.join("; ")}`)}catch{}if(c.concepts)try{let n=JSON.parse(c.concepts);n.length>0&&r.push(`Concepts: ${n.join(", ")}`)}catch{}if(c.files_read||c.files_modified){let n=[];if(c.files_read)try{n.push(...JSON.parse(c.files_read))}catch{}if(c.files_modified)try{n.push(...JSON.parse(c.files_modified))}catch{}n.length>0&&r.push(`Files: ${[...new Set(n)].join(", ")}`)}r.length>0&&(s.push("---"),s.push(r.join(" | ")));let t=new Date(c.created_at_epoch).toLocaleString();return s.push(""),s.push("---"),s.push(`Date: ${t}`),s.join(` -`)}function ne(c){let e=c.request||`Session ${c.sdk_session_id.substring(0,8)}`,s=[];s.push(`## ${e}`),s.push(`*Source: claude-mem://session/${c.sdk_session_id}*`),s.push(""),c.completed&&(s.push(`**Completed:** ${c.completed}`),s.push("")),c.learned&&(s.push(`**Learned:** ${c.learned}`),s.push("")),c.investigated&&(s.push(`**Investigated:** ${c.investigated}`),s.push("")),c.next_steps&&(s.push(`**Next Steps:** ${c.next_steps}`),s.push("")),c.notes&&(s.push(`**Notes:** ${c.notes}`),s.push(""));let r=[];if(c.files_read||c.files_edited){let n=[];if(c.files_read)try{n.push(...JSON.parse(c.files_read))}catch{}if(c.files_edited)try{n.push(...JSON.parse(c.files_edited))}catch{}n.length>0&&r.push(`Files: ${[...new Set(n)].join(", ")}`)}let t=new Date(c.created_at_epoch).toLocaleDateString();return r.push(`Date: ${t}`),r.length>0&&(s.push("---"),s.push(r.join(" | "))),s.join(` -`)}function Re(c,e){let s=new Date(c.created_at_epoch).toLocaleString();return`${e+1}. "${c.prompt_text}" - Date: ${s} | Prompt #${c.prompt_number} - Source: claude-mem://user-prompt/${c.id}`}function ve(c){let e=[];e.push(`## User Prompt #${c.prompt_number}`),e.push(`*Source: claude-mem://user-prompt/${c.id}*`),e.push(""),e.push(c.prompt_text),e.push(""),e.push("---");let s=new Date(c.created_at_epoch).toLocaleString();return e.push(`Date: ${s}`),e.join(` -`)}var Oe=i.object({project:i.string().optional().describe("Filter by project name"),type:i.union([i.enum(["decision","bugfix","feature","refactor","discovery","change"]),i.array(i.enum(["decision","bugfix","feature","refactor","discovery","change"]))]).optional().describe("Filter by observation type"),concepts:i.union([i.string(),i.array(i.string())]).optional().describe("Filter by concept tags"),files:i.union([i.string(),i.array(i.string())]).optional().describe("Filter by file paths (partial match)"),dateRange:i.object({start:i.union([i.string(),i.number()]).optional().describe("Start date (ISO string or epoch)"),end:i.union([i.string(),i.number()]).optional().describe("End date (ISO string or epoch)")}).optional().describe("Filter by date range"),limit:i.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:i.number().min(0).default(0).describe("Number of results to skip"),orderBy:i.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),oe=[{name:"search_observations",description:'Search observations using full-text search across titles, narratives, facts, and concepts. IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:i.object({query:i.string().describe("Search query for FTS5 full-text search"),format:i.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),...Oe.shape}),handler:async c=>{try{let{query:e,format:s="index",...r}=c,t=[];if(k)try{console.error("[search-server] Using hybrid semantic search (Chroma + SQLite)");let o=await M(e,100);if(console.error(`[search-server] Chroma returned ${o.ids.length} semantic matches`),o.ids.length>0){let a=Date.now()-7776e6,d=o.ids.filter((l,p)=>{let u=o.metadatas[p];return u&&u.created_at_epoch>a});if(console.error(`[search-server] ${d.length} results within 90-day window`),d.length>0){let l=r.limit||20;t=N.getObservationsByIds(d,{orderBy:"date_desc",limit:l}),console.error(`[search-server] Hydrated ${t.length} observations from SQLite`)}}}catch(o){console.error("[search-server] Chroma query failed, falling back to FTS5:",o.message)}if(t.length===0&&(console.error("[search-server] Using FTS5 keyword search"),t=$.searchObservations(e,r)),t.length===0)return{content:[{type:"text",text:`No observations found matching "${e}"`}]};let n;if(s==="index"){let o=`Found ${t.length} observation(s) matching "${e}": +\u2022 To sort by date: Use orderBy: "date_desc" or "date_asc"`}function At(s,e){let r=s.title||`Observation #${s.id}`,a=new Date(s.created_at_epoch).toLocaleString(),t=s.type?`[${s.type}]`:"";return`${e+1}. ${t} ${r} + Date: ${a} + Source: claude-mem://observation/${s.id}`}function sn(s,e){let r=s.request||`Session ${s.sdk_session_id?.substring(0,8)||"unknown"}`,a=new Date(s.created_at_epoch).toLocaleString();return`${e+1}. ${r} + Date: ${a} + Source: claude-mem://session/${s.sdk_session_id}`}function Dt(s){let e=s.title||`Observation #${s.id}`,r=[];r.push(`## ${e}`),r.push(`*Source: claude-mem://observation/${s.id}*`),r.push(""),s.subtitle&&(r.push(`**${s.subtitle}**`),r.push("")),s.narrative&&(r.push(s.narrative),r.push("")),s.text&&(r.push(s.text),r.push(""));let a=[];if(a.push(`Type: ${s.type}`),s.facts)try{let n=JSON.parse(s.facts);n.length>0&&a.push(`Facts: ${n.join("; ")}`)}catch{}if(s.concepts)try{let n=JSON.parse(s.concepts);n.length>0&&a.push(`Concepts: ${n.join(", ")}`)}catch{}if(s.files_read||s.files_modified){let n=[];if(s.files_read)try{n.push(...JSON.parse(s.files_read))}catch{}if(s.files_modified)try{n.push(...JSON.parse(s.files_modified))}catch{}n.length>0&&a.push(`Files: ${[...new Set(n)].join(", ")}`)}a.length>0&&(r.push("---"),r.push(a.join(" | ")));let t=new Date(s.created_at_epoch).toLocaleString();return r.push(""),r.push("---"),r.push(`Date: ${t}`),r.join(` +`)}function an(s){let e=s.request||`Session ${s.sdk_session_id?.substring(0,8)||"unknown"}`,r=[];r.push(`## ${e}`),r.push(`*Source: claude-mem://session/${s.sdk_session_id}*`),r.push(""),s.completed&&(r.push(`**Completed:** ${s.completed}`),r.push("")),s.learned&&(r.push(`**Learned:** ${s.learned}`),r.push("")),s.investigated&&(r.push(`**Investigated:** ${s.investigated}`),r.push("")),s.next_steps&&(r.push(`**Next Steps:** ${s.next_steps}`),r.push("")),s.notes&&(r.push(`**Notes:** ${s.notes}`),r.push(""));let a=[];if(s.files_read||s.files_edited){let n=[];if(s.files_read)try{n.push(...JSON.parse(s.files_read))}catch{}if(s.files_edited)try{n.push(...JSON.parse(s.files_edited))}catch{}n.length>0&&a.push(`Files: ${[...new Set(n)].join(", ")}`)}let t=new Date(s.created_at_epoch).toLocaleDateString();return a.push(`Date: ${t}`),a.length>0&&(r.push("---"),r.push(a.join(" | "))),r.join(` +`)}function El(s,e){let r=new Date(s.created_at_epoch).toLocaleString();return`${e+1}. "${s.prompt_text}" + Date: ${r} | Prompt #${s.prompt_number} + Source: claude-mem://user-prompt/${s.id}`}function Sl(s){let e=[];e.push(`## User Prompt #${s.prompt_number}`),e.push(`*Source: claude-mem://user-prompt/${s.id}*`),e.push(""),e.push(s.prompt_text),e.push(""),e.push("---");let r=new Date(s.created_at_epoch).toLocaleString();return e.push(`Date: ${r}`),e.join(` +`)}var bf=c.object({project:c.string().optional().describe("Filter by project name"),type:c.union([c.enum(["decision","bugfix","feature","refactor","discovery","change"]),c.array(c.enum(["decision","bugfix","feature","refactor","discovery","change"]))]).optional().describe("Filter by observation type"),concepts:c.union([c.string(),c.array(c.string())]).optional().describe("Filter by concept tags"),files:c.union([c.string(),c.array(c.string())]).optional().describe("Filter by file paths (partial match)"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional().describe("Start date (ISO string or epoch)"),end:c.union([c.string(),c.number()]).optional().describe("End date (ISO string or epoch)")}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),xl=[{name:"search",description:'Unified search across all memory types (observations, sessions, and user prompts) using hybrid semantic + full-text search (ChromaDB primary, SQLite FTS5 fallback). Returns combined results from all document types. IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:c.object({query:c.string().describe("Natural language search query (semantic ranking via ChromaDB, FTS5 fallback)"),format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional().describe("Start date (ISO string or epoch)"),end:c.union([c.string(),c.number()]).optional().describe("End date (ISO string or epoch)")}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{query:e,format:r="index",...a}=s,t=[],n=[],o=[];if(Te)try{console.error("[search-server] Using unified hybrid semantic search (all document types)");let h=await Ye(e,100);if(console.error(`[search-server] Chroma returned ${h.ids.length} semantic matches across all types`),h.ids.length>0){let f=Date.now()-7776e6,d=h.metadatas.map((_,R)=>({id:h.ids[R],meta:_,isRecent:_&&_.created_at_epoch>f})).filter(_=>_.isRecent);console.error(`[search-server] ${d.length} results within 90-day window`);let g=[],v=[],y=[];for(let _ of d){let R=_.meta?.doc_type;R==="observation"?g.push(_.id):R==="session_summary"?v.push(_.id):R==="user_prompt"&&y.push(_.id)}console.error(`[search-server] Categorized: ${g.length} obs, ${v.length} sessions, ${y.length} prompts`),g.length>0&&(t=ne.getObservationsByIds(g,{orderBy:"date_desc",limit:a.limit})),v.length>0&&(n=ne.getSessionSummariesByIds(v,{orderBy:"date_desc",limit:a.limit})),y.length>0&&(o=ne.getUserPromptsByIds(y,{orderBy:"date_desc",limit:a.limit})),console.error(`[search-server] Hydrated ${t.length} obs, ${n.length} sessions, ${o.length} prompts from SQLite`)}}catch(h){console.error("[search-server] Chroma query failed, falling back to FTS5:",h.message)}t.length===0&&n.length===0&&o.length===0&&(console.error("[search-server] Using FTS5 keyword search across all types"),t=ue.searchObservations(e,a),n=ue.searchSessions(e,a),o=ue.searchUserPrompts(e,a));let i=t.length+n.length+o.length;if(i===0)return{content:[{type:"text",text:`No results found matching "${e}"`}]};let l=[...t.map(h=>({type:"observation",data:h,epoch:h.created_at_epoch})),...n.map(h=>({type:"session",data:h,epoch:h.created_at_epoch})),...o.map(h=>({type:"prompt",data:h,epoch:h.created_at_epoch}))];a.orderBy==="date_desc"?l.sort((h,f)=>f.epoch-h.epoch):a.orderBy==="date_asc"&&l.sort((h,f)=>h.epoch-f.epoch);let u=l.slice(0,a.limit||20),p;if(r==="index"){let h=`Found ${i} result(s) matching "${e}" (${t.length} obs, ${n.length} sessions, ${o.length} prompts): -`,a=t.map((d,l)=>q(d,l));n=o+a.join(` +`,f=u.map((d,g)=>d.type==="observation"?At(d.data,g):d.type==="session"?sn(d.data,g):El(d.data,g));p=h+f.join(` -`)+j()}else n=t.map(a=>W(a)).join(` +`)+ar()}else p=u.map(f=>f.type==="observation"?Dt(f.data):f.type==="session"?an(f.data):Sl(f.data)).join(` --- -`);return{content:[{type:"text",text:n}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"search_sessions",description:'Search session summaries using full-text search across requests, completions, learnings, and notes. IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:i.object({query:i.string().describe("Search query for FTS5 full-text search"),format:i.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),project:i.string().optional().describe("Filter by project name"),dateRange:i.object({start:i.union([i.string(),i.number()]).optional(),end:i.union([i.string(),i.number()]).optional()}).optional().describe("Filter by date range"),limit:i.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:i.number().min(0).default(0).describe("Number of results to skip"),orderBy:i.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async c=>{try{let{query:e,format:s="index",...r}=c,t=[];if(k)try{console.error("[search-server] Using hybrid semantic search for sessions");let o=await M(e,100,{doc_type:"session_summary"});if(console.error(`[search-server] Chroma returned ${o.ids.length} semantic matches`),o.ids.length>0){let a=Date.now()-7776e6,d=o.ids.filter((l,p)=>{let u=o.metadatas[p];return u&&u.created_at_epoch>a});if(console.error(`[search-server] ${d.length} results within 90-day window`),d.length>0){let l=r.limit||20;t=N.getSessionSummariesByIds(d,{orderBy:"date_desc",limit:l}),console.error(`[search-server] Hydrated ${t.length} sessions from SQLite`)}}}catch(o){console.error("[search-server] Chroma query failed, falling back to FTS5:",o.message)}if(t.length===0&&(console.error("[search-server] Using FTS5 keyword search"),t=$.searchSessions(e,r)),t.length===0)return{content:[{type:"text",text:`No sessions found matching "${e}"`}]};let n;if(s==="index"){let o=`Found ${t.length} session(s) matching "${e}": +`);return{content:[{type:"text",text:p}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"timeline",description:"Get a unified timeline of context around a specific point in time OR search query. Supports two modes: (1) anchor-based: provide observation ID, session ID, or timestamp to center timeline around; (2) query-based: provide natural language query to find relevant observation and center timeline around it. All record types (observations, sessions, prompts) are interleaved chronologically.",inputSchema:c.object({anchor:c.union([c.number(),c.string()]).optional().describe('Anchor point: observation ID (number), session ID (e.g., "S123"), or ISO timestamp. Use this OR query, not both.'),query:c.string().optional().describe("Natural language search query to find relevant observation as anchor. Use this OR anchor, not both."),depth_before:c.number().min(0).max(50).default(10).describe("Number of records to retrieve before anchor (default: 10)"),depth_after:c.number().min(0).max(50).default(10).describe("Number of records to retrieve after anchor (default: 10)"),project:c.string().optional().describe("Filter by project name")}),handler:async s=>{try{let g=function(x){return new Date(x).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})},v=function(x){return new Date(x).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})},y=function(x){return new Date(x).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})},_=function(x){return x?Math.ceil(x.length/4):0};var e=g,r=v,a=y,t=_;let{anchor:n,query:o,depth_before:i=10,depth_after:l=10,project:u}=s;if(!n&&!o)return{content:[{type:"text",text:'Error: Must provide either "anchor" or "query" parameter'}],isError:!0};if(n&&o)return{content:[{type:"text",text:'Error: Cannot provide both "anchor" and "query" parameters. Use one or the other.'}],isError:!0};let p,h,f;if(o){let x=[];if(Te)try{console.error("[search-server] Using hybrid semantic search for timeline query");let N=await Ye(o,100);if(console.error(`[search-server] Chroma returned ${N.ids.length} semantic matches`),N.ids.length>0){let L=Date.now()-7776e6,I=N.ids.filter((F,k)=>{let j=N.metadatas[k];return j&&j.created_at_epoch>L});I.length>0&&(x=ne.getObservationsByIds(I,{orderBy:"date_desc",limit:1}))}}catch(N){console.error("[search-server] Chroma query failed, falling back to FTS5:",N.message)}if(x.length===0&&(console.error("[search-server] Using FTS5 keyword search"),x=ue.searchObservations(o,{orderBy:"relevance",limit:1,project:u})),x.length===0)return{content:[{type:"text",text:`No observations found matching "${o}". Try a different search query.`}]};let T=x[0];p=T.id,h=T.created_at_epoch,console.error(`[search-server] Query mode: Using observation #${T.id} as timeline anchor`),f=ne.getTimelineAroundObservation(T.id,T.created_at_epoch,i,l,u)}else if(typeof n=="number"){let x=ne.getObservationById(n);if(!x)return{content:[{type:"text",text:`Observation #${n} not found`}],isError:!0};p=n,h=x.created_at_epoch,f=ne.getTimelineAroundObservation(n,h,i,l,u)}else if(typeof n=="string")if(n.startsWith("S")||n.startsWith("#S")){let x=n.replace(/^#?S/,""),T=parseInt(x,10),N=ne.getSessionSummariesByIds([T]);if(N.length===0)return{content:[{type:"text",text:`Session #${T} not found`}],isError:!0};h=N[0].created_at_epoch,p=`S${T}`,f=ne.getTimelineAroundTimestamp(h,i,l,u)}else{let x=new Date(n);if(isNaN(x.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${n}`}],isError:!0};h=x.getTime(),p=n,f=ne.getTimelineAroundTimestamp(h,i,l,u)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let d=[...f.observations.map(x=>({type:"observation",data:x,epoch:x.created_at_epoch})),...f.sessions.map(x=>({type:"session",data:x,epoch:x.created_at_epoch})),...f.prompts.map(x=>({type:"prompt",data:x,epoch:x.created_at_epoch}))];if(d.sort((x,T)=>x.epoch-T.epoch),d.length===0)return{content:[{type:"text",text:o?`Found observation matching "${o}", but no timeline context available (${i} records before, ${l} records after).`:`No context found around anchor (${i} records before, ${l} records after)`}]};let R=[];if(o){let x=d.find(N=>N.type==="observation"&&N.data.id===p),T=x?x.data.title||"Untitled":"Unknown";R.push(`# Timeline for query: "${o}"`),R.push(`**Anchor:** Observation #${p} - ${T}`)}else R.push(`# Timeline around anchor: ${p}`);R.push(`**Window:** ${i} records before \u2192 ${l} records after | **Items:** ${d.length} (${f.observations.length} obs, ${f.sessions.length} sessions, ${f.prompts.length} prompts)`),R.push(""),R.push("**Legend:** \u{1F3AF} session-request | \u{1F534} bugfix | \u{1F7E3} feature | \u{1F504} refactor | \u2705 change | \u{1F535} discovery | \u{1F9E0} decision"),R.push("");let S=new Map;for(let x of d){let T=g(x.epoch);S.has(T)||S.set(T,[]),S.get(T).push(x)}let w=Array.from(S.entries()).sort((x,T)=>{let N=new Date(x[0]).getTime(),L=new Date(T[0]).getTime();return N-L});for(let[x,T]of w){R.push(`### ${x}`),R.push("");let N=null,L="",I=!1;for(let F of T){let k=typeof p=="number"&&F.type==="observation"&&F.data.id===p||typeof p=="string"&&p.startsWith("S")&&F.type==="session"&&`S${F.data.id}`===p;if(F.type==="session"){I&&(R.push(""),I=!1,N=null,L="");let j=F.data,$=j.request||"Session summary",A=`claude-mem://session-summary/${j.id}`,M=k?" \u2190 **ANCHOR**":"";R.push(`**\u{1F3AF} #S${j.id}** ${$} (${y(F.epoch)}) [\u2192](${A})${M}`),R.push("")}else if(F.type==="prompt"){I&&(R.push(""),I=!1,N=null,L="");let j=F.data,$=j.prompt.length>100?j.prompt.substring(0,100)+"...":j.prompt;R.push(`**\u{1F4AC} User Prompt #${j.prompt_number}** (${y(F.epoch)})`),R.push(`> ${$}`),R.push("")}else if(F.type==="observation"){let j=F.data,$="General";$!==N&&(I&&R.push(""),R.push(`**${$}**`),R.push("| ID | Time | T | Title | Tokens |"),R.push("|----|------|---|-------|--------|"),N=$,I=!0,L="");let A="\u2022";switch(j.type){case"bugfix":A="\u{1F534}";break;case"feature":A="\u{1F7E3}";break;case"refactor":A="\u{1F504}";break;case"change":A="\u2705";break;case"discovery":A="\u{1F535}";break;case"decision":A="\u{1F9E0}";break}let M=v(F.epoch),ee=j.title||"Untitled",W=_(j.narrative),Q=M!==L?M:"\u2033";L=M;let z=k?" \u2190 **ANCHOR**":"";R.push(`| #${j.id} | ${Q} | ${A} | ${ee}${z} | ~${W} |`)}}I&&R.push("")}return{content:[{type:"text",text:R.join(` +`)}]}}catch(n){return{content:[{type:"text",text:`Timeline query failed: ${n.message}`}],isError:!0}}}},{name:"decisions",description:'Semantic shortcut to find decision-type observations. Returns observations where important architectural, technical, or process decisions were made. Equivalent to find_by_type with type="decision".',inputSchema:c.object({format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default), "full" for complete details'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{format:e="index",...r}=s,a=[];if(Te)try{console.error("[search-server] Using metadata-first + semantic ranking for decisions");let n=ue.findByType("decision",r);if(n.length>0){let o=n.map(u=>u.id),i=await Ye("decision",Math.min(o.length,100)),l=[];for(let u of i.ids)o.includes(u)&&!l.includes(u)&&l.push(u);l.length>0&&(a=ne.getObservationsByIds(l,{limit:r.limit||20}),a.sort((u,p)=>l.indexOf(u.id)-l.indexOf(p.id)))}}catch(n){console.error("[search-server] Chroma ranking failed, using SQLite order:",n.message)}if(a.length===0&&(a=ue.findByType("decision",r)),a.length===0)return{content:[{type:"text",text:"No decision observations found"}]};let t;if(e==="index"){let n=`Found ${a.length} decision(s): -`,a=t.map((d,l)=>re(d,l));n=o+a.join(` +`,o=a.map((i,l)=>At(i,l));t=n+o.join(` -`)+j()}else n=t.map(a=>ne(a)).join(` +`)}else t=a.map(o=>Dt(o)).join(` --- -`);return{content:[{type:"text",text:n}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"find_by_concept",description:'Find observations tagged with a specific concept. Available concepts: "discovery", "problem-solution", "what-changed", "how-it-works", "pattern", "gotcha", "change". IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:i.object({concept:i.string().describe("Concept tag to search for. Available: discovery, problem-solution, what-changed, how-it-works, pattern, gotcha, change"),format:i.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),project:i.string().optional().describe("Filter by project name"),dateRange:i.object({start:i.union([i.string(),i.number()]).optional(),end:i.union([i.string(),i.number()]).optional()}).optional().describe("Filter by date range"),limit:i.number().min(1).max(100).default(20).describe("Maximum results. IMPORTANT: Start with 3-5 to avoid exceeding MCP token limits, even in index mode."),offset:i.number().min(0).default(0).describe("Number of results to skip"),orderBy:i.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async c=>{try{let{concept:e,format:s="index",...r}=c,t=[];if(k)try{console.error("[search-server] Using metadata-first + semantic ranking for concept search");let o=$.findByConcept(e,r);if(console.error(`[search-server] Found ${o.length} observations with concept "${e}"`),o.length>0){let a=o.map(p=>p.id),d=await M(e,Math.min(a.length,100)),l=[];for(let p of d.ids)a.includes(p)&&!l.includes(p)&&l.push(p);console.error(`[search-server] Chroma ranked ${l.length} results by semantic relevance`),l.length>0&&(t=N.getObservationsByIds(l,{limit:r.limit||20}),t.sort((p,u)=>l.indexOf(p.id)-l.indexOf(u.id)))}}catch(o){console.error("[search-server] Chroma ranking failed, using SQLite order:",o.message)}if(t.length===0&&(console.error("[search-server] Using SQLite-only concept search"),t=$.findByConcept(e,r)),t.length===0)return{content:[{type:"text",text:`No observations found with concept "${e}"`}]};let n;if(s==="index"){let o=`Found ${t.length} observation(s) with concept "${e}": +`);return{content:[{type:"text",text:t}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"changes",description:'Semantic shortcut to find change-related observations. Returns observations documenting what changed in the codebase, system behavior, or project state. Searches for type="change" OR concept="change" OR concept="what-changed".',inputSchema:c.object({format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default), "full" for complete details'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{format:e="index",...r}=s,a=[];if(Te)try{console.error("[search-server] Using hybrid search for change-related observations");let n=ue.findByType("change",r),o=ue.findByConcept("change",r),i=ue.findByConcept("what-changed",r),l=new Set;if([...n,...o,...i].forEach(u=>l.add(u.id)),l.size>0){let u=Array.from(l),p=await Ye("what changed",Math.min(u.length,100)),h=[];for(let f of p.ids)u.includes(f)&&!h.includes(f)&&h.push(f);h.length>0&&(a=ne.getObservationsByIds(h,{limit:r.limit||20}),a.sort((f,d)=>h.indexOf(f.id)-h.indexOf(d.id)))}}catch(n){console.error("[search-server] Chroma ranking failed, using SQLite order:",n.message)}if(a.length===0){let n=ue.findByType("change",r),o=ue.findByConcept("change",r),i=ue.findByConcept("what-changed",r),l=new Set;[...n,...o,...i].forEach(u=>l.add(u.id)),a=Array.from(l).map(u=>n.find(p=>p.id===u)||o.find(p=>p.id===u)||i.find(p=>p.id===u)).filter(Boolean),a.sort((u,p)=>p.created_at_epoch-u.created_at_epoch),a=a.slice(0,r.limit||20)}if(a.length===0)return{content:[{type:"text",text:"No change-related observations found"}]};let t;if(e==="index"){let n=`Found ${a.length} change-related observation(s): -`,a=t.map((d,l)=>q(d,l));n=o+a.join(` +`,o=a.map((i,l)=>At(i,l));t=n+o.join(` -`)+j()}else n=t.map(a=>W(a)).join(` +`)}else t=a.map(o=>Dt(o)).join(` --- -`);return{content:[{type:"text",text:n}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"find_by_file",description:'Find observations and sessions that reference a specific file path. IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:i.object({filePath:i.string().describe("File path to search for (supports partial matching)"),format:i.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),project:i.string().optional().describe("Filter by project name"),dateRange:i.object({start:i.union([i.string(),i.number()]).optional(),end:i.union([i.string(),i.number()]).optional()}).optional().describe("Filter by date range"),limit:i.number().min(1).max(100).default(20).describe("Maximum results. IMPORTANT: Start with 3-5 to avoid exceeding MCP token limits, even in index mode."),offset:i.number().min(0).default(0).describe("Number of results to skip"),orderBy:i.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async c=>{try{let{filePath:e,format:s="index",...r}=c,t=[],n=[];if(k)try{console.error("[search-server] Using metadata-first + semantic ranking for file search");let d=$.findByFile(e,r);if(console.error(`[search-server] Found ${d.observations.length} observations, ${d.sessions.length} sessions for file "${e}"`),n=d.sessions,d.observations.length>0){let l=d.observations.map(m=>m.id),p=await M(e,Math.min(l.length,100)),u=[];for(let m of p.ids)l.includes(m)&&!u.includes(m)&&u.push(m);console.error(`[search-server] Chroma ranked ${u.length} observations by semantic relevance`),u.length>0&&(t=N.getObservationsByIds(u,{limit:r.limit||20}),t.sort((m,f)=>u.indexOf(m.id)-u.indexOf(f.id)))}}catch(d){console.error("[search-server] Chroma ranking failed, using SQLite order:",d.message)}if(t.length===0&&n.length===0){console.error("[search-server] Using SQLite-only file search");let d=$.findByFile(e,r);t=d.observations,n=d.sessions}let o=t.length+n.length;if(o===0)return{content:[{type:"text",text:`No results found for file "${e}"`}]};let a;if(s==="index"){let d=`Found ${o} result(s) for file "${e}": +`);return{content:[{type:"text",text:t}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"how_it_works",description:'Semantic shortcut to find "how it works" explanations. Returns observations documenting system architecture, component interactions, data flow, and technical mechanisms. Searches for concept="how-it-works".',inputSchema:c.object({format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default), "full" for complete details'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{format:e="index",...r}=s,a=[];if(Te)try{console.error("[search-server] Using metadata-first + semantic ranking for how-it-works");let n=ue.findByConcept("how-it-works",r);if(n.length>0){let o=n.map(u=>u.id),i=await Ye("how it works architecture",Math.min(o.length,100)),l=[];for(let u of i.ids)o.includes(u)&&!l.includes(u)&&l.push(u);l.length>0&&(a=ne.getObservationsByIds(l,{limit:r.limit||20}),a.sort((u,p)=>l.indexOf(u.id)-l.indexOf(p.id)))}}catch(n){console.error("[search-server] Chroma ranking failed, using SQLite order:",n.message)}if(a.length===0&&(a=ue.findByConcept("how-it-works",r)),a.length===0)return{content:[{type:"text",text:'No "how it works" observations found'}]};let t;if(e==="index"){let n=`Found ${a.length} "how it works" observation(s): -`,l=[];t.forEach((p,u)=>{l.push(q(p,u))}),n.forEach((p,u)=>{l.push(re(p,u+t.length))}),a=d+l.join(` +`,o=a.map((i,l)=>At(i,l));t=n+o.join(` -`)+j()}else{let d=[];t.forEach(l=>{d.push(W(l))}),n.forEach(l=>{d.push(ne(l))}),a=d.join(` +`)}else t=a.map(o=>Dt(o)).join(` --- -`)}return{content:[{type:"text",text:a}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"find_by_type",description:'Find observations of a specific type (decision, bugfix, feature, refactor, discovery, change). IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:i.object({type:i.union([i.enum(["decision","bugfix","feature","refactor","discovery","change"]),i.array(i.enum(["decision","bugfix","feature","refactor","discovery","change"]))]).describe("Observation type(s) to filter by"),format:i.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),project:i.string().optional().describe("Filter by project name"),dateRange:i.object({start:i.union([i.string(),i.number()]).optional(),end:i.union([i.string(),i.number()]).optional()}).optional().describe("Filter by date range"),limit:i.number().min(1).max(100).default(20).describe("Maximum results. IMPORTANT: Start with 3-5 to avoid exceeding MCP token limits, even in index mode."),offset:i.number().min(0).default(0).describe("Number of results to skip"),orderBy:i.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async c=>{try{let{type:e,format:s="index",...r}=c,t=Array.isArray(e)?e.join(", "):e,n=[];if(k)try{console.error("[search-server] Using metadata-first + semantic ranking for type search");let a=$.findByType(e,r);if(console.error(`[search-server] Found ${a.length} observations with type "${t}"`),a.length>0){let d=a.map(u=>u.id),l=await M(t,Math.min(d.length,100)),p=[];for(let u of l.ids)d.includes(u)&&!p.includes(u)&&p.push(u);console.error(`[search-server] Chroma ranked ${p.length} results by semantic relevance`),p.length>0&&(n=N.getObservationsByIds(p,{limit:r.limit||20}),n.sort((u,m)=>p.indexOf(u.id)-p.indexOf(m.id)))}}catch(a){console.error("[search-server] Chroma ranking failed, using SQLite order:",a.message)}if(n.length===0&&(console.error("[search-server] Using SQLite-only type search"),n=$.findByType(e,r)),n.length===0)return{content:[{type:"text",text:`No observations found with type "${t}"`}]};let o;if(s==="index"){let a=`Found ${n.length} observation(s) with type "${t}": +`);return{content:[{type:"text",text:t}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"contextualize",description:`Hybrid context builder that provides comprehensive project overview. Fetches recent observations (7), sessions (7), and user prompts (3), then builds a timeline around the newest activity. Perfect for quickly understanding "what's been happening" in a project.`,inputSchema:c.object({project:c.string().optional().describe("Project name (defaults to current working directory basename)"),observations_limit:c.number().min(1).max(20).default(7).describe("Number of recent observations to fetch (default: 7)"),sessions_limit:c.number().min(1).max(20).default(7).describe("Number of recent sessions to fetch (default: 7)"),prompts_limit:c.number().min(1).max(20).default(3).describe("Number of recent user prompts to fetch (default: 3)"),timeline_depth:c.number().min(0).max(50).default(5).describe("Timeline depth (records before and after newest item, default: 5)")}),handler:async s=>{try{let{project:a=bl(process.cwd()),observations_limit:t=7,sessions_limit:n=7,prompts_limit:o=3,timeline_depth:i=5}=s,l=ue.searchObservations("*",{project:a,orderBy:"date_desc",limit:t}),u=ue.searchSessions("*",{project:a,orderBy:"date_desc",limit:n}),p=ue.searchUserPrompts("*",{project:a,orderBy:"date_desc",limit:o}),h=[...l.map(_=>({type:"observation",data:_,epoch:_.created_at_epoch})),...u.map(_=>({type:"session",data:_,epoch:_.created_at_epoch})),...p.map(_=>({type:"prompt",data:_,epoch:_.created_at_epoch}))];if(h.length===0)return{content:[{type:"text",text:`# Project Context: ${a} -`,d=n.map((l,p)=>q(l,p));o=a+d.join(` +No activity found for this project.`}]};h.sort((_,R)=>R.epoch-_.epoch);let f=h[0],d=ne.getTimelineAroundTimestamp(f.epoch,i,i,a),g=[...d.observations.map(_=>({type:"observation",data:_,epoch:_.created_at_epoch})),...d.sessions.map(_=>({type:"session",data:_,epoch:_.created_at_epoch})),...d.prompts.map(_=>({type:"prompt",data:_,epoch:_.created_at_epoch}))];g.sort((_,R)=>_.epoch-R.epoch);let v=[];v.push(`# Project Context: ${a}`),v.push(""),v.push(`**Overview:** ${l.length} observations, ${u.length} sessions, ${p.length} prompts`);let y=new Date(f.epoch).toLocaleString();if(v.push(`**Latest Activity:** ${y}`),v.push(""),l.length>0){v.push(`## Recent Observations (${l.length})`),v.push("");for(let _=0;_3&&v.push(`... and ${l.length-3} more`),v.push("")}if(u.length>0){v.push(`## Recent Sessions (${u.length})`),v.push("");for(let _=0;_3&&v.push(`... and ${u.length-3} more`),v.push("")}if(p.length>0){v.push(`## Recent User Prompts (${p.length})`),v.push("");for(let _=0;_60?R.prompt_text.substring(0,60)+"...":R.prompt_text;v.push(`${_+1}. \u{1F4AC} "${w}" (${S})`)}v.push("")}if(g.length>0){let _=function(x){return new Date(x).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})},R=function(x){return new Date(x).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})};var e=_,r=R;v.push(`## Activity Timeline (\xB1${i} records around latest)`),v.push("");let S=new Map;for(let x of g){let T=_(x.epoch);S.has(T)||S.set(T,[]),S.get(T).push(x)}let w=Array.from(S.entries()).sort((x,T)=>{let N=new Date(x[0]).getTime();return new Date(T[0]).getTime()-N});for(let[x,T]of w.slice(0,3)){v.push(`**${x}**`);for(let N of T.slice(0,5)){let L=R(N.epoch);if(N.type==="observation"){let I=N.data.type==="decision"?"\u{1F9E0}":N.data.type==="bugfix"?"\u{1F534}":N.data.type==="feature"?"\u{1F7E3}":N.data.type==="change"?"\u2705":N.data.type==="discovery"?"\u{1F535}":"\u2022",F=N.data.title||"Untitled";v.push(`- ${L} ${I} ${F}`)}else if(N.type==="session"){let I=N.data.request||"Session";v.push(`- ${L} \u{1F3AF} ${I}`)}else{let I=N.data.prompt.length>50?N.data.prompt.substring(0,50)+"...":N.data.prompt;v.push(`- ${L} \u{1F4AC} "${I}"`)}}v.push("")}}return v.push("---"),v.push("\u{1F4A1} Use `search`, `timeline`, `decisions`, `changes`, or `how_it_works` tools for deeper exploration"),{content:[{type:"text",text:v.join(` +`)}]}}catch(a){return{content:[{type:"text",text:`Context building failed: ${a.message}`}],isError:!0}}}},{name:"search_observations",description:'Search observations using hybrid semantic + full-text search (ChromaDB primary, SQLite FTS5 fallback). IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:c.object({query:c.string().describe("Natural language search query (semantic ranking via ChromaDB, FTS5 fallback)"),format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),...bf.shape}),handler:async s=>{try{let{query:e,format:r="index",...a}=s,t=[];if(Te)try{console.error("[search-server] Using hybrid semantic search (Chroma + SQLite)");let o=await Ye(e,100);if(console.error(`[search-server] Chroma returned ${o.ids.length} semantic matches`),o.ids.length>0){let i=Date.now()-7776e6,l=o.ids.filter((u,p)=>{let h=o.metadatas[p];return h&&h.created_at_epoch>i});if(console.error(`[search-server] ${l.length} results within 90-day window`),l.length>0){let u=a.limit||20;t=ne.getObservationsByIds(l,{orderBy:"date_desc",limit:u}),console.error(`[search-server] Hydrated ${t.length} observations from SQLite`)}}}catch(o){console.error("[search-server] Chroma query failed, falling back to FTS5:",o.message)}if(t.length===0&&(console.error("[search-server] Using FTS5 keyword search"),t=ue.searchObservations(e,a)),t.length===0)return{content:[{type:"text",text:`No observations found matching "${e}"`}]};let n;if(r==="index"){let o=`Found ${t.length} observation(s) matching "${e}": -`)+j()}else o=n.map(d=>W(d)).join(` +`,i=t.map((l,u)=>At(l,u));n=o+i.join(` + +`)+ar()}else n=t.map(i=>Dt(i)).join(` --- -`);return{content:[{type:"text",text:o}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"get_recent_context",description:"Get recent session context including summaries and observations for a project",inputSchema:i.object({project:i.string().optional().describe("Project name (defaults to current working directory basename)"),limit:i.number().min(1).max(10).default(3).describe("Number of recent sessions to retrieve")}),handler:async c=>{try{let e=c.project||Se(process.cwd()),s=c.limit||3,r=N.getRecentSessionsWithStatus(e,s);if(r.length===0)return{content:[{type:"text",text:`# Recent Session Context +`);return{content:[{type:"text",text:n}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"search_sessions",description:'Search session summaries using hybrid semantic + full-text search (ChromaDB primary, SQLite FTS5 fallback). IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:c.object({query:c.string().describe("Natural language search query (semantic ranking via ChromaDB, FTS5 fallback)"),format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{query:e,format:r="index",...a}=s,t=[];if(Te)try{console.error("[search-server] Using hybrid semantic search for sessions");let o=await Ye(e,100,{doc_type:"session_summary"});if(console.error(`[search-server] Chroma returned ${o.ids.length} semantic matches`),o.ids.length>0){let i=Date.now()-7776e6,l=o.ids.filter((u,p)=>{let h=o.metadatas[p];return h&&h.created_at_epoch>i});if(console.error(`[search-server] ${l.length} results within 90-day window`),l.length>0){let u=a.limit||20;t=ne.getSessionSummariesByIds(l,{orderBy:"date_desc",limit:u}),console.error(`[search-server] Hydrated ${t.length} sessions from SQLite`)}}}catch(o){console.error("[search-server] Chroma query failed, falling back to FTS5:",o.message)}if(t.length===0&&(console.error("[search-server] Using FTS5 keyword search"),t=ue.searchSessions(e,a)),t.length===0)return{content:[{type:"text",text:`No sessions found matching "${e}"`}]};let n;if(r==="index"){let o=`Found ${t.length} session(s) matching "${e}": -No previous sessions found for project "${e}".`}]};let t=[];t.push("# Recent Session Context"),t.push(""),t.push(`Showing last ${r.length} session(s) for **${e}**:`),t.push("");for(let n of r)if(n.sdk_session_id){if(t.push("---"),t.push(""),n.has_summary){let o=N.getSummaryForSession(n.sdk_session_id);if(o){let a=o.prompt_number?` (Prompt #${o.prompt_number})`:"";if(t.push(`**Summary${a}**`),t.push(""),o.request&&t.push(`**Request:** ${o.request}`),o.completed&&t.push(`**Completed:** ${o.completed}`),o.learned&&t.push(`**Learned:** ${o.learned}`),o.next_steps&&t.push(`**Next Steps:** ${o.next_steps}`),o.files_read)try{let l=JSON.parse(o.files_read);Array.isArray(l)&&l.length>0&&t.push(`**Files Read:** ${l.join(", ")}`)}catch{o.files_read.trim()&&t.push(`**Files Read:** ${o.files_read}`)}if(o.files_edited)try{let l=JSON.parse(o.files_edited);Array.isArray(l)&&l.length>0&&t.push(`**Files Edited:** ${l.join(", ")}`)}catch{o.files_edited.trim()&&t.push(`**Files Edited:** ${o.files_edited}`)}let d=new Date(o.created_at).toLocaleString();t.push(`**Date:** ${d}`)}}else if(n.status==="active"){t.push("**In Progress**"),t.push(""),n.user_prompt&&t.push(`**Request:** ${n.user_prompt}`);let o=N.getObservationsForSession(n.sdk_session_id);if(o.length>0){t.push(""),t.push(`**Observations (${o.length}):**`);for(let d of o)t.push(`- ${d.title}`)}else t.push(""),t.push("*No observations yet*");t.push(""),t.push("**Status:** Active - summary pending");let a=new Date(n.started_at).toLocaleString();t.push(`**Date:** ${a}`)}else{t.push(`**${n.status.charAt(0).toUpperCase()+n.status.slice(1)}**`),t.push(""),n.user_prompt&&t.push(`**Request:** ${n.user_prompt}`),t.push(""),t.push(`**Status:** ${n.status} - no summary available`);let o=new Date(n.started_at).toLocaleString();t.push(`**Date:** ${o}`)}t.push("")}return{content:[{type:"text",text:t.join(` -`)}]}}catch(e){return{content:[{type:"text",text:`Failed to get recent context: ${e.message}`}],isError:!0}}}},{name:"search_user_prompts",description:'Search raw user prompts with full-text search. Use this to find what the user actually said/requested across all sessions. IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:i.object({query:i.string().describe("Search query for FTS5 full-text search"),format:i.enum(["index","full"]).default("index").describe('Output format: "index" for truncated prompts/dates (default, RECOMMENDED for initial search), "full" for complete prompt text (use only after reviewing index results)'),project:i.string().optional().describe("Filter by project name"),dateRange:i.object({start:i.union([i.string(),i.number()]).optional(),end:i.union([i.string(),i.number()]).optional()}).optional().describe("Filter by date range"),limit:i.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:i.number().min(0).default(0).describe("Number of results to skip"),orderBy:i.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async c=>{try{let{query:e,format:s="index",...r}=c,t=[];if(k)try{console.error("[search-server] Using hybrid semantic search for user prompts");let o=await M(e,100,{doc_type:"user_prompt"});if(console.error(`[search-server] Chroma returned ${o.ids.length} semantic matches`),o.ids.length>0){let a=Date.now()-7776e6,d=o.ids.filter((l,p)=>{let u=o.metadatas[p];return u&&u.created_at_epoch>a});if(console.error(`[search-server] ${d.length} results within 90-day window`),d.length>0){let l=r.limit||20;t=N.getUserPromptsByIds(d,{orderBy:"date_desc",limit:l}),console.error(`[search-server] Hydrated ${t.length} user prompts from SQLite`)}}}catch(o){console.error("[search-server] Chroma query failed, falling back to FTS5:",o.message)}if(t.length===0&&(console.error("[search-server] Using FTS5 keyword search"),t=$.searchUserPrompts(e,r)),t.length===0)return{content:[{type:"text",text:`No user prompts found matching "${e}"`}]};let n;if(s==="index"){let o=`Found ${t.length} user prompt(s) matching "${e}": +`,i=t.map((l,u)=>sn(l,u));n=o+i.join(` -`,a=t.map((d,l)=>Re(d,l));n=o+a.join(` - -`)+j()}else n=t.map(a=>ve(a)).join(` +`)+ar()}else n=t.map(i=>an(i)).join(` --- -`);return{content:[{type:"text",text:n}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"get_context_timeline",description:'Get a unified timeline of context (observations, sessions, and prompts) around a specific point in time. All record types are interleaved chronologically. Useful for understanding "what was happening when X occurred". Returns depth_before records before anchor + anchor + depth_after records after (total: depth_before + 1 + depth_after mixed records).',inputSchema:i.object({anchor:i.union([i.number().describe("Observation ID to center timeline around"),i.string().describe("Session ID (format: S123) or ISO timestamp to center timeline around")]).describe('Anchor point: observation ID, session ID (e.g., "S123"), or ISO timestamp'),depth_before:i.number().min(0).max(50).default(10).describe("Number of records to retrieve before anchor, not including anchor (default: 10)"),depth_after:i.number().min(0).max(50).default(10).describe("Number of records to retrieve after anchor, not including anchor (default: 10)"),project:i.string().optional().describe("Filter by project name")}),handler:async c=>{try{let f=function(g){return new Date(g).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})},h=function(g){return new Date(g).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})},b=function(g){return new Date(g).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})},_=function(g){return g?Math.ceil(g.length/4):0};var e=f,s=h,r=b,t=_;let{anchor:n,depth_before:o=10,depth_after:a=10,project:d}=c,l,p=n,u;if(typeof n=="number"){let g=N.getObservationById(n);if(!g)return{content:[{type:"text",text:`Observation #${n} not found`}],isError:!0};l=g.created_at_epoch,u=N.getTimelineAroundObservation(n,l,o,a,d)}else if(typeof n=="string")if(n.startsWith("S")||n.startsWith("#S")){let g=n.replace(/^#?S/,""),I=parseInt(g,10),S=N.getSessionSummariesByIds([I]);if(S.length===0)return{content:[{type:"text",text:`Session #${I} not found`}],isError:!0};l=S[0].created_at_epoch,p=`S${I}`,u=N.getTimelineAroundTimestamp(l,o,a,d)}else{let g=new Date(n);if(isNaN(g.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${n}`}],isError:!0};l=g.getTime(),u=N.getTimelineAroundTimestamp(l,o,a,d)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let m=[...u.observations.map(g=>({type:"observation",data:g,epoch:g.created_at_epoch})),...u.sessions.map(g=>({type:"session",data:g,epoch:g.created_at_epoch})),...u.prompts.map(g=>({type:"prompt",data:g,epoch:g.created_at_epoch}))];if(m.sort((g,I)=>g.epoch-I.epoch),m.length===0)return{content:[{type:"text",text:`No context found around ${new Date(l).toLocaleString()} (${o} records before, ${a} records after)`}]};let E=[];E.push(`# Timeline around anchor: ${p}`),E.push(`**Window:** ${o} records before \u2192 ${a} records after | **Items:** ${m.length} (${u.observations.length} obs, ${u.sessions.length} sessions, ${u.prompts.length} prompts)`),E.push(""),E.push("**Legend:** \u{1F3AF} session-request | \u{1F534} bugfix | \u{1F7E3} feature | \u{1F504} refactor | \u2705 change | \u{1F535} discovery | \u{1F9E0} decision"),E.push("");let x=new Map;for(let g of m){let I=f(g.epoch);x.has(I)||x.set(I,[]),x.get(I).push(g)}let T=Array.from(x.entries()).sort((g,I)=>{let S=new Date(g[0]).getTime(),O=new Date(I[0]).getTime();return S-O});for(let[g,I]of T){E.push(`### ${g}`),E.push("");let S=null,O="",C=!1;for(let v of I){let F=typeof p=="number"&&v.type==="observation"&&v.data.id===p||typeof p=="string"&&p.startsWith("S")&&v.type==="session"&&`S${v.data.id}`===p;if(v.type==="session"){C&&(E.push(""),C=!1,S=null,O="");let y=v.data,U=y.request||"Session summary",R=`claude-mem://session-summary/${y.id}`,A=F?" \u2190 **ANCHOR**":"";E.push(`**\u{1F3AF} #S${y.id}** ${U} (${b(v.epoch)}) [\u2192](${R})${A}`),E.push("")}else if(v.type==="prompt"){C&&(E.push(""),C=!1,S=null,O="");let y=v.data,U=y.prompt.length>100?y.prompt.substring(0,100)+"...":y.prompt;E.push(`**\u{1F4AC} User Prompt #${y.prompt_number}** (${b(v.epoch)})`),E.push(`> ${U}`),E.push("")}else if(v.type==="observation"){let y=v.data,U="General";U!==S&&(C&&E.push(""),E.push(`**${U}**`),E.push("| ID | Time | T | Title | Tokens |"),E.push("|----|------|---|-------|--------|"),S=U,C=!0,O="");let R="\u2022";switch(y.type){case"bugfix":R="\u{1F534}";break;case"feature":R="\u{1F7E3}";break;case"refactor":R="\u{1F504}";break;case"change":R="\u2705";break;case"discovery":R="\u{1F535}";break;case"decision":R="\u{1F9E0}";break}let A=h(v.epoch),D=y.title||"Untitled",B=_(y.narrative),Y=A!==O?A:"\u2033";O=A;let Z=F?" \u2190 **ANCHOR**":"";E.push(`| #${y.id} | ${Y} | ${R} | ${D}${Z} | ~${B} |`)}}C&&E.push("")}return{content:[{type:"text",text:E.join(` -`)}]}}catch(n){return{content:[{type:"text",text:`Timeline query failed: ${n.message}`}],isError:!0}}}},{name:"get_timeline_by_query",description:'Search for observations using natural language and get timeline context around the best match. Two modes: "auto" (default) automatically uses top result as timeline anchor; "interactive" returns top matches for you to choose from. This combines search + timeline into a single operation for faster context discovery.',inputSchema:i.object({query:i.string().describe("Natural language search query to find relevant observations"),mode:i.enum(["auto","interactive"]).default("auto").describe("auto: Automatically use top search result as timeline anchor. interactive: Show top N search results for manual anchor selection."),depth_before:i.number().min(0).max(50).default(10).describe("Number of timeline records before anchor (default: 10)"),depth_after:i.number().min(0).max(50).default(10).describe("Number of timeline records after anchor (default: 10)"),limit:i.number().min(1).max(20).default(5).describe("For interactive mode: number of top search results to display (default: 5)"),project:i.string().optional().describe("Filter by project name")}),handler:async c=>{try{let{query:n,mode:o="auto",depth_before:a=10,depth_after:d=10,limit:l=5,project:p}=c,u=[];if(k)try{console.error("[search-server] Using hybrid semantic search for timeline query");let m=await M(n,100);if(console.error(`[search-server] Chroma returned ${m.ids.length} semantic matches`),m.ids.length>0){let f=Date.now()-7776e6,h=m.ids.filter((b,_)=>{let E=m.metadatas[_];return E&&E.created_at_epoch>f});console.error(`[search-server] ${h.length} results within 90-day window`),h.length>0&&(u=N.getObservationsByIds(h,{orderBy:"date_desc",limit:o==="auto"?1:l}),console.error(`[search-server] Hydrated ${u.length} observations from SQLite`))}}catch(m){console.error("[search-server] Chroma query failed, falling back to FTS5:",m.message)}if(u.length===0&&(console.error("[search-server] Using FTS5 keyword search"),u=$.searchObservations(n,{orderBy:"relevance",limit:o==="auto"?1:l,project:p})),u.length===0)return{content:[{type:"text",text:`No observations found matching "${n}". Try a different search query.`}]};if(o==="interactive"){let m=[];m.push("# Timeline Anchor Search Results"),m.push(""),m.push(`Found ${u.length} observation(s) matching "${n}"`),m.push(""),m.push("To get timeline context around any of these observations, use the `get_context_timeline` tool with the observation ID as the anchor."),m.push(""),m.push(`**Top ${u.length} matches:**`),m.push("");for(let f=0;f({type:"observation",data:S,epoch:S.created_at_epoch})),...f.sessions.map(S=>({type:"session",data:S,epoch:S.created_at_epoch})),...f.prompts.map(S=>({type:"prompt",data:S,epoch:S.created_at_epoch}))];if(h.sort((S,O)=>S.epoch-O.epoch),h.length===0)return{content:[{type:"text",text:`Found observation #${m.id} matching "${n}", but no timeline context available (${a} records before, ${d} records after).`}]};let T=[];T.push(`# Timeline for query: "${n}"`),T.push(`**Anchor:** Observation #${m.id} - ${m.title||"Untitled"}`),T.push(`**Window:** ${a} records before \u2192 ${d} records after | **Items:** ${h.length} (${f.observations.length} obs, ${f.sessions.length} sessions, ${f.prompts.length} prompts)`),T.push(""),T.push("**Legend:** \u{1F3AF} session-request | \u{1F534} bugfix | \u{1F7E3} feature | \u{1F504} refactor | \u2705 change | \u{1F535} discovery | \u{1F9E0} decision"),T.push("");let g=new Map;for(let S of h){let O=b(S.epoch);g.has(O)||g.set(O,[]),g.get(O).push(S)}let I=Array.from(g.entries()).sort((S,O)=>{let C=new Date(S[0]).getTime(),v=new Date(O[0]).getTime();return C-v});for(let[S,O]of I){T.push(`### ${S}`),T.push("");let C=null,v="",F=!1;for(let y of O){let U=y.type==="observation"&&y.data.id===m.id;if(y.type==="session"){F&&(T.push(""),F=!1,C=null,v="");let R=y.data,A=R.request||"Session summary",D=`claude-mem://session-summary/${R.id}`;T.push(`**\u{1F3AF} #S${R.id}** ${A} (${E(y.epoch)}) [\u2192](${D})`),T.push("")}else if(y.type==="prompt"){F&&(T.push(""),F=!1,C=null,v="");let R=y.data,A=R.prompt.length>100?R.prompt.substring(0,100)+"...":R.prompt;T.push(`**\u{1F4AC} User Prompt #${R.prompt_number}** (${E(y.epoch)})`),T.push(`> ${A}`),T.push("")}else if(y.type==="observation"){let R=y.data,A="General";A!==C&&(F&&T.push(""),T.push(`**${A}**`),T.push("| ID | Time | T | Title | Tokens |"),T.push("|----|------|---|-------|--------|"),C=A,F=!0,v="");let D="\u2022";switch(R.type){case"bugfix":D="\u{1F534}";break;case"feature":D="\u{1F7E3}";break;case"refactor":D="\u{1F504}";break;case"change":D="\u2705";break;case"discovery":D="\u{1F535}";break;case"decision":D="\u{1F9E0}";break}let B=_(y.epoch),z=R.title||"Untitled",Y=x(R.narrative),ie=B!==v?B:"\u2033";v=B;let ae=U?" \u2190 **ANCHOR**":"";T.push(`| #${R.id} | ${ie} | ${D} | ${z}${ae} | ~${Y} |`)}}F&&T.push("")}return{content:[{type:"text",text:T.join(` -`)}]}}}catch(n){return{content:[{type:"text",text:`Timeline query failed: ${n.message}`}],isError:!0}}}}],Q=new he({name:"claude-mem-search",version:"1.0.0"},{capabilities:{tools:{}}});Q.setRequestHandler(ge,async()=>({tools:oe.map(c=>({name:c.name,description:c.description,inputSchema:Te(c.inputSchema)}))}));Q.setRequestHandler(be,async c=>{let e=oe.find(s=>s.name===c.params.name);if(!e)throw new Error(`Unknown tool: ${c.params.name}`);try{return await e.handler(c.params.arguments||{})}catch(s){return{content:[{type:"text",text:`Tool execution failed: ${s.message}`}],isError:!0}}});async function Ie(){let c=new _e;await Q.connect(c),console.error("[search-server] Claude-mem search server started"),setTimeout(async()=>{try{console.error("[search-server] Initializing Chroma client...");let e=new Ee({command:"uvx",args:["chroma-mcp","--client-type","persistent","--data-dir",te],stderr:"ignore"}),s=new fe({name:"claude-mem-search-chroma-client",version:"1.0.0"},{capabilities:{}});await s.connect(e),k=s,console.error("[search-server] Chroma client connected successfully")}catch(e){console.error("[search-server] Failed to initialize Chroma client:",e.message),console.error("[search-server] Falling back to FTS5-only search"),k=null}},0)}Ie().catch(c=>{console.error("[search-server] Fatal error:",c),process.exit(1)}); +`);return{content:[{type:"text",text:n}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"find_by_concept",description:'Find observations tagged with a specific concept. Available concepts: "discovery", "problem-solution", "what-changed", "how-it-works", "pattern", "gotcha", "change". IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:c.object({concept:c.string().describe("Concept tag to search for. Available: discovery, problem-solution, what-changed, how-it-works, pattern, gotcha, change"),format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum results. IMPORTANT: Start with 3-5 to avoid exceeding MCP token limits, even in index mode."),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{concept:e,format:r="index",...a}=s,t=[];if(Te)try{console.error("[search-server] Using metadata-first + semantic ranking for concept search");let o=ue.findByConcept(e,a);if(console.error(`[search-server] Found ${o.length} observations with concept "${e}"`),o.length>0){let i=o.map(p=>p.id),l=await Ye(e,Math.min(i.length,100)),u=[];for(let p of l.ids)i.includes(p)&&!u.includes(p)&&u.push(p);console.error(`[search-server] Chroma ranked ${u.length} results by semantic relevance`),u.length>0&&(t=ne.getObservationsByIds(u,{limit:a.limit||20}),t.sort((p,h)=>u.indexOf(p.id)-u.indexOf(h.id)))}}catch(o){console.error("[search-server] Chroma ranking failed, using SQLite order:",o.message)}if(t.length===0&&(console.error("[search-server] Using SQLite-only concept search"),t=ue.findByConcept(e,a)),t.length===0)return{content:[{type:"text",text:`No observations found with concept "${e}"`}]};let n;if(r==="index"){let o=`Found ${t.length} observation(s) with concept "${e}": + +`,i=t.map((l,u)=>At(l,u));n=o+i.join(` + +`)+ar()}else n=t.map(i=>Dt(i)).join(` + +--- + +`);return{content:[{type:"text",text:n}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"find_by_file",description:'Find observations and sessions that reference a specific file path. IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:c.object({filePath:c.string().describe("File path to search for (supports partial matching)"),format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum results. IMPORTANT: Start with 3-5 to avoid exceeding MCP token limits, even in index mode."),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{filePath:e,format:r="index",...a}=s,t=[],n=[];if(Te)try{console.error("[search-server] Using metadata-first + semantic ranking for file search");let l=ue.findByFile(e,a);if(console.error(`[search-server] Found ${l.observations.length} observations, ${l.sessions.length} sessions for file "${e}"`),n=l.sessions,l.observations.length>0){let u=l.observations.map(f=>f.id),p=await Ye(e,Math.min(u.length,100)),h=[];for(let f of p.ids)u.includes(f)&&!h.includes(f)&&h.push(f);console.error(`[search-server] Chroma ranked ${h.length} observations by semantic relevance`),h.length>0&&(t=ne.getObservationsByIds(h,{limit:a.limit||20}),t.sort((f,d)=>h.indexOf(f.id)-h.indexOf(d.id)))}}catch(l){console.error("[search-server] Chroma ranking failed, using SQLite order:",l.message)}if(t.length===0&&n.length===0){console.error("[search-server] Using SQLite-only file search");let l=ue.findByFile(e,a);t=l.observations,n=l.sessions}let o=t.length+n.length;if(o===0)return{content:[{type:"text",text:`No results found for file "${e}"`}]};let i;if(r==="index"){let l=`Found ${o} result(s) for file "${e}": + +`,u=[];t.forEach((p,h)=>{u.push(At(p,h))}),n.forEach((p,h)=>{u.push(sn(p,h+t.length))}),i=l+u.join(` + +`)+ar()}else{let l=[];t.forEach(u=>{l.push(Dt(u))}),n.forEach(u=>{l.push(an(u))}),i=l.join(` + +--- + +`)}return{content:[{type:"text",text:i}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"find_by_type",description:'Find observations of a specific type (decision, bugfix, feature, refactor, discovery, change). IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:c.object({type:c.union([c.enum(["decision","bugfix","feature","refactor","discovery","change"]),c.array(c.enum(["decision","bugfix","feature","refactor","discovery","change"]))]).describe("Observation type(s) to filter by"),format:c.enum(["index","full"]).default("index").describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum results. IMPORTANT: Start with 3-5 to avoid exceeding MCP token limits, even in index mode."),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{type:e,format:r="index",...a}=s,t=Array.isArray(e)?e.join(", "):e,n=[];if(Te)try{console.error("[search-server] Using metadata-first + semantic ranking for type search");let i=ue.findByType(e,a);if(console.error(`[search-server] Found ${i.length} observations with type "${t}"`),i.length>0){let l=i.map(h=>h.id),u=await Ye(t,Math.min(l.length,100)),p=[];for(let h of u.ids)l.includes(h)&&!p.includes(h)&&p.push(h);console.error(`[search-server] Chroma ranked ${p.length} results by semantic relevance`),p.length>0&&(n=ne.getObservationsByIds(p,{limit:a.limit||20}),n.sort((h,f)=>p.indexOf(h.id)-p.indexOf(f.id)))}}catch(i){console.error("[search-server] Chroma ranking failed, using SQLite order:",i.message)}if(n.length===0&&(console.error("[search-server] Using SQLite-only type search"),n=ue.findByType(e,a)),n.length===0)return{content:[{type:"text",text:`No observations found with type "${t}"`}]};let o;if(r==="index"){let i=`Found ${n.length} observation(s) with type "${t}": + +`,l=n.map((u,p)=>At(u,p));o=i+l.join(` + +`)+ar()}else o=n.map(l=>Dt(l)).join(` + +--- + +`);return{content:[{type:"text",text:o}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"get_recent_context",description:"Get recent session context including summaries and observations for a project",inputSchema:c.object({project:c.string().optional().describe("Project name (defaults to current working directory basename)"),limit:c.number().min(1).max(10).default(3).describe("Number of recent sessions to retrieve")}),handler:async s=>{try{let e=s.project||bl(process.cwd()),r=s.limit||3,a=ne.getRecentSessionsWithStatus(e,r);if(a.length===0)return{content:[{type:"text",text:`# Recent Session Context + +No previous sessions found for project "${e}".`}]};let t=[];t.push("# Recent Session Context"),t.push(""),t.push(`Showing last ${a.length} session(s) for **${e}**:`),t.push("");for(let n of a)if(n.sdk_session_id){if(t.push("---"),t.push(""),n.has_summary){let o=ne.getSummaryForSession(n.sdk_session_id);if(o){let i=o.prompt_number?` (Prompt #${o.prompt_number})`:"";if(t.push(`**Summary${i}**`),t.push(""),o.request&&t.push(`**Request:** ${o.request}`),o.completed&&t.push(`**Completed:** ${o.completed}`),o.learned&&t.push(`**Learned:** ${o.learned}`),o.next_steps&&t.push(`**Next Steps:** ${o.next_steps}`),o.files_read)try{let u=JSON.parse(o.files_read);Array.isArray(u)&&u.length>0&&t.push(`**Files Read:** ${u.join(", ")}`)}catch{o.files_read.trim()&&t.push(`**Files Read:** ${o.files_read}`)}if(o.files_edited)try{let u=JSON.parse(o.files_edited);Array.isArray(u)&&u.length>0&&t.push(`**Files Edited:** ${u.join(", ")}`)}catch{o.files_edited.trim()&&t.push(`**Files Edited:** ${o.files_edited}`)}let l=new Date(o.created_at).toLocaleString();t.push(`**Date:** ${l}`)}}else if(n.status==="active"){t.push("**In Progress**"),t.push(""),n.user_prompt&&t.push(`**Request:** ${n.user_prompt}`);let o=ne.getObservationsForSession(n.sdk_session_id);if(o.length>0){t.push(""),t.push(`**Observations (${o.length}):**`);for(let l of o)t.push(`- ${l.title}`)}else t.push(""),t.push("*No observations yet*");t.push(""),t.push("**Status:** Active - summary pending");let i=new Date(n.started_at).toLocaleString();t.push(`**Date:** ${i}`)}else{t.push(`**${n.status.charAt(0).toUpperCase()+n.status.slice(1)}**`),t.push(""),n.user_prompt&&t.push(`**Request:** ${n.user_prompt}`),t.push(""),t.push(`**Status:** ${n.status} - no summary available`);let o=new Date(n.started_at).toLocaleString();t.push(`**Date:** ${o}`)}t.push("")}return{content:[{type:"text",text:t.join(` +`)}]}}catch(e){return{content:[{type:"text",text:`Failed to get recent context: ${e.message}`}],isError:!0}}}},{name:"search_user_prompts",description:'Search raw user prompts using hybrid semantic + full-text search (ChromaDB primary, SQLite FTS5 fallback). Use this to find what the user actually said/requested across all sessions. IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.',inputSchema:c.object({query:c.string().describe("Natural language search query (semantic ranking via ChromaDB, FTS5 fallback)"),format:c.enum(["index","full"]).default("index").describe('Output format: "index" for truncated prompts/dates (default, RECOMMENDED for initial search), "full" for complete prompt text (use only after reviewing index results)'),project:c.string().optional().describe("Filter by project name"),dateRange:c.object({start:c.union([c.string(),c.number()]).optional(),end:c.union([c.string(),c.number()]).optional()}).optional().describe("Filter by date range"),limit:c.number().min(1).max(100).default(20).describe("Maximum number of results"),offset:c.number().min(0).default(0).describe("Number of results to skip"),orderBy:c.enum(["relevance","date_desc","date_asc"]).default("date_desc").describe("Sort order")}),handler:async s=>{try{let{query:e,format:r="index",...a}=s,t=[];if(Te)try{console.error("[search-server] Using hybrid semantic search for user prompts");let o=await Ye(e,100,{doc_type:"user_prompt"});if(console.error(`[search-server] Chroma returned ${o.ids.length} semantic matches`),o.ids.length>0){let i=Date.now()-7776e6,l=o.ids.filter((u,p)=>{let h=o.metadatas[p];return h&&h.created_at_epoch>i});if(console.error(`[search-server] ${l.length} results within 90-day window`),l.length>0){let u=a.limit||20;t=ne.getUserPromptsByIds(l,{orderBy:"date_desc",limit:u}),console.error(`[search-server] Hydrated ${t.length} user prompts from SQLite`)}}}catch(o){console.error("[search-server] Chroma query failed, falling back to FTS5:",o.message)}if(t.length===0&&(console.error("[search-server] Using FTS5 keyword search"),t=ue.searchUserPrompts(e,a)),t.length===0)return{content:[{type:"text",text:`No user prompts found matching "${e}"`}]};let n;if(r==="index"){let o=`Found ${t.length} user prompt(s) matching "${e}": + +`,i=t.map((l,u)=>El(l,u));n=o+i.join(` + +`)+ar()}else n=t.map(i=>Sl(i)).join(` + +--- + +`);return{content:[{type:"text",text:n}]}}catch(e){return{content:[{type:"text",text:`Search failed: ${e.message}`}],isError:!0}}}},{name:"get_context_timeline",description:'Get a unified timeline of context (observations, sessions, and prompts) around a specific point in time. All record types are interleaved chronologically. Useful for understanding "what was happening when X occurred". Returns depth_before records before anchor + anchor + depth_after records after (total: depth_before + 1 + depth_after mixed records).',inputSchema:c.object({anchor:c.union([c.number().describe("Observation ID to center timeline around"),c.string().describe("Session ID (format: S123) or ISO timestamp to center timeline around")]).describe('Anchor point: observation ID, session ID (e.g., "S123"), or ISO timestamp'),depth_before:c.number().min(0).max(50).default(10).describe("Number of records to retrieve before anchor, not including anchor (default: 10)"),depth_after:c.number().min(0).max(50).default(10).describe("Number of records to retrieve after anchor, not including anchor (default: 10)"),project:c.string().optional().describe("Filter by project name")}),handler:async s=>{try{let d=function(w){return new Date(w).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})},g=function(w){return new Date(w).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})},v=function(w){return new Date(w).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})},y=function(w){return w?Math.ceil(w.length/4):0};var e=d,r=g,a=v,t=y;let{anchor:n,depth_before:o=10,depth_after:i=10,project:l}=s,u,p=n,h;if(typeof n=="number"){let w=ne.getObservationById(n);if(!w)return{content:[{type:"text",text:`Observation #${n} not found`}],isError:!0};u=w.created_at_epoch,h=ne.getTimelineAroundObservation(n,u,o,i,l)}else if(typeof n=="string")if(n.startsWith("S")||n.startsWith("#S")){let w=n.replace(/^#?S/,""),x=parseInt(w,10),T=ne.getSessionSummariesByIds([x]);if(T.length===0)return{content:[{type:"text",text:`Session #${x} not found`}],isError:!0};u=T[0].created_at_epoch,p=`S${x}`,h=ne.getTimelineAroundTimestamp(u,o,i,l)}else{let w=new Date(n);if(isNaN(w.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${n}`}],isError:!0};u=w.getTime(),h=ne.getTimelineAroundTimestamp(u,o,i,l)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let f=[...h.observations.map(w=>({type:"observation",data:w,epoch:w.created_at_epoch})),...h.sessions.map(w=>({type:"session",data:w,epoch:w.created_at_epoch})),...h.prompts.map(w=>({type:"prompt",data:w,epoch:w.created_at_epoch}))];if(f.sort((w,x)=>w.epoch-x.epoch),f.length===0)return{content:[{type:"text",text:`No context found around ${new Date(u).toLocaleString()} (${o} records before, ${i} records after)`}]};let _=[];_.push(`# Timeline around anchor: ${p}`),_.push(`**Window:** ${o} records before \u2192 ${i} records after | **Items:** ${f.length} (${h.observations.length} obs, ${h.sessions.length} sessions, ${h.prompts.length} prompts)`),_.push(""),_.push("**Legend:** \u{1F3AF} session-request | \u{1F534} bugfix | \u{1F7E3} feature | \u{1F504} refactor | \u2705 change | \u{1F535} discovery | \u{1F9E0} decision"),_.push("");let R=new Map;for(let w of f){let x=d(w.epoch);R.has(x)||R.set(x,[]),R.get(x).push(w)}let S=Array.from(R.entries()).sort((w,x)=>{let T=new Date(w[0]).getTime(),N=new Date(x[0]).getTime();return T-N});for(let[w,x]of S){_.push(`### ${w}`),_.push("");let T=null,N="",L=!1;for(let I of x){let F=typeof p=="number"&&I.type==="observation"&&I.data.id===p||typeof p=="string"&&p.startsWith("S")&&I.type==="session"&&`S${I.data.id}`===p;if(I.type==="session"){L&&(_.push(""),L=!1,T=null,N="");let k=I.data,j=k.request||"Session summary",$=`claude-mem://session-summary/${k.id}`,A=F?" \u2190 **ANCHOR**":"";_.push(`**\u{1F3AF} #S${k.id}** ${j} (${v(I.epoch)}) [\u2192](${$})${A}`),_.push("")}else if(I.type==="prompt"){L&&(_.push(""),L=!1,T=null,N="");let k=I.data,j=k.prompt.length>100?k.prompt.substring(0,100)+"...":k.prompt;_.push(`**\u{1F4AC} User Prompt #${k.prompt_number}** (${v(I.epoch)})`),_.push(`> ${j}`),_.push("")}else if(I.type==="observation"){let k=I.data,j="General";j!==T&&(L&&_.push(""),_.push(`**${j}**`),_.push("| ID | Time | T | Title | Tokens |"),_.push("|----|------|---|-------|--------|"),T=j,L=!0,N="");let $="\u2022";switch(k.type){case"bugfix":$="\u{1F534}";break;case"feature":$="\u{1F7E3}";break;case"refactor":$="\u{1F504}";break;case"change":$="\u2705";break;case"discovery":$="\u{1F535}";break;case"decision":$="\u{1F9E0}";break}let A=g(I.epoch),M=k.title||"Untitled",ee=y(k.narrative),Y=A!==N?A:"\u2033";N=A;let Q=F?" \u2190 **ANCHOR**":"";_.push(`| #${k.id} | ${Y} | ${$} | ${M}${Q} | ~${ee} |`)}}L&&_.push("")}return{content:[{type:"text",text:_.join(` +`)}]}}catch(n){return{content:[{type:"text",text:`Timeline query failed: ${n.message}`}],isError:!0}}}},{name:"get_timeline_by_query",description:'Search for observations using natural language and get timeline context around the best match. Two modes: "auto" (default) automatically uses top result as timeline anchor; "interactive" returns top matches for you to choose from. This combines search + timeline into a single operation for faster context discovery.',inputSchema:c.object({query:c.string().describe("Natural language search query to find relevant observations"),mode:c.enum(["auto","interactive"]).default("auto").describe("auto: Automatically use top search result as timeline anchor. interactive: Show top N search results for manual anchor selection."),depth_before:c.number().min(0).max(50).default(10).describe("Number of timeline records before anchor (default: 10)"),depth_after:c.number().min(0).max(50).default(10).describe("Number of timeline records after anchor (default: 10)"),limit:c.number().min(1).max(20).default(5).describe("For interactive mode: number of top search results to display (default: 5)"),project:c.string().optional().describe("Filter by project name")}),handler:async s=>{try{let{query:n,mode:o="auto",depth_before:i=10,depth_after:l=10,limit:u=5,project:p}=s,h=[];if(Te)try{console.error("[search-server] Using hybrid semantic search for timeline query");let f=await Ye(n,100);if(console.error(`[search-server] Chroma returned ${f.ids.length} semantic matches`),f.ids.length>0){let d=Date.now()-7776e6,g=f.ids.filter((v,y)=>{let _=f.metadatas[y];return _&&_.created_at_epoch>d});console.error(`[search-server] ${g.length} results within 90-day window`),g.length>0&&(h=ne.getObservationsByIds(g,{orderBy:"date_desc",limit:o==="auto"?1:u}),console.error(`[search-server] Hydrated ${h.length} observations from SQLite`))}}catch(f){console.error("[search-server] Chroma query failed, falling back to FTS5:",f.message)}if(h.length===0&&(console.error("[search-server] Using FTS5 keyword search"),h=ue.searchObservations(n,{orderBy:"relevance",limit:o==="auto"?1:u,project:p})),h.length===0)return{content:[{type:"text",text:`No observations found matching "${n}". Try a different search query.`}]};if(o==="interactive"){let f=[];f.push("# Timeline Anchor Search Results"),f.push(""),f.push(`Found ${h.length} observation(s) matching "${n}"`),f.push(""),f.push("To get timeline context around any of these observations, use the `get_context_timeline` tool with the observation ID as the anchor."),f.push(""),f.push(`**Top ${h.length} matches:**`),f.push("");for(let d=0;d({type:"observation",data:T,epoch:T.created_at_epoch})),...d.sessions.map(T=>({type:"session",data:T,epoch:T.created_at_epoch})),...d.prompts.map(T=>({type:"prompt",data:T,epoch:T.created_at_epoch}))];if(g.sort((T,N)=>T.epoch-N.epoch),g.length===0)return{content:[{type:"text",text:`Found observation #${f.id} matching "${n}", but no timeline context available (${i} records before, ${l} records after).`}]};let S=[];S.push(`# Timeline for query: "${n}"`),S.push(`**Anchor:** Observation #${f.id} - ${f.title||"Untitled"}`),S.push(`**Window:** ${i} records before \u2192 ${l} records after | **Items:** ${g.length} (${d.observations.length} obs, ${d.sessions.length} sessions, ${d.prompts.length} prompts)`),S.push(""),S.push("**Legend:** \u{1F3AF} session-request | \u{1F534} bugfix | \u{1F7E3} feature | \u{1F504} refactor | \u2705 change | \u{1F535} discovery | \u{1F9E0} decision"),S.push("");let w=new Map;for(let T of g){let N=v(T.epoch);w.has(N)||w.set(N,[]),w.get(N).push(T)}let x=Array.from(w.entries()).sort((T,N)=>{let L=new Date(T[0]).getTime(),I=new Date(N[0]).getTime();return L-I});for(let[T,N]of x){S.push(`### ${T}`),S.push("");let L=null,I="",F=!1;for(let k of N){let j=k.type==="observation"&&k.data.id===f.id;if(k.type==="session"){F&&(S.push(""),F=!1,L=null,I="");let $=k.data,A=$.request||"Session summary",M=`claude-mem://session-summary/${$.id}`;S.push(`**\u{1F3AF} #S${$.id}** ${A} (${_(k.epoch)}) [\u2192](${M})`),S.push("")}else if(k.type==="prompt"){F&&(S.push(""),F=!1,L=null,I="");let $=k.data,A=$.prompt.length>100?$.prompt.substring(0,100)+"...":$.prompt;S.push(`**\u{1F4AC} User Prompt #${$.prompt_number}** (${_(k.epoch)})`),S.push(`> ${A}`),S.push("")}else if(k.type==="observation"){let $=k.data,A="General";A!==L&&(F&&S.push(""),S.push(`**${A}**`),S.push("| ID | Time | T | Title | Tokens |"),S.push("|----|------|---|-------|--------|"),L=A,F=!0,I="");let M="\u2022";switch($.type){case"bugfix":M="\u{1F534}";break;case"feature":M="\u{1F7E3}";break;case"refactor":M="\u{1F504}";break;case"change":M="\u2705";break;case"discovery":M="\u{1F535}";break;case"decision":M="\u{1F9E0}";break}let ee=y(k.epoch),W=$.title||"Untitled",Y=R($.narrative),z=ee!==I?ee:"\u2033";I=ee;let he=j?" \u2190 **ANCHOR**":"";S.push(`| #${$.id} | ${z} | ${M} | ${W}${he} | ~${Y} |`)}}F&&S.push("")}return{content:[{type:"text",text:S.join(` +`)}]}}}catch(n){return{content:[{type:"text",text:`Timeline query failed: ${n.message}`}],isError:!0}}}}],nn=new Rs({name:"claude-mem-search",version:"1.0.0"},{capabilities:{tools:{}}});nn.setRequestHandler(ia,async()=>({tools:xl.map(s=>({name:s.name,description:s.description,inputSchema:Ya(s.inputSchema)}))}));nn.setRequestHandler(la,async s=>{let e=xl.find(r=>r.name===s.params.name);if(!e)throw new Error(`Unknown tool: ${s.params.name}`);try{return await e.handler(s.params.arguments||{})}catch(r){return{content:[{type:"text",text:`Tool execution failed: ${r.message}`}],isError:!0}}});async function Rl(){if(console.error("[search-server] Shutting down..."),Te)try{await Te.close(),console.error("[search-server] Chroma client closed")}catch(s){console.error("[search-server] Error closing Chroma client:",s.message)}if(ue)try{ue.close(),console.error("[search-server] SessionSearch closed")}catch(s){console.error("[search-server] Error closing SessionSearch:",s.message)}if(ne)try{ne.close(),console.error("[search-server] SessionStore closed")}catch(s){console.error("[search-server] Error closing SessionStore:",s.message)}console.error("[search-server] Shutdown complete"),process.exit(0)}process.on("SIGTERM",Rl);process.on("SIGINT",Rl);async function Ef(){let s=new ws;await nn.connect(s),console.error("[search-server] Claude-mem search server started"),setTimeout(async()=>{try{console.error("[search-server] Initializing Chroma client...");let e=new Is({command:"uvx",args:["chroma-mcp","--client-type","persistent","--data-dir",yl],stderr:"ignore"}),r=new Ps({name:"claude-mem-search-chroma-client",version:"1.0.0"},{capabilities:{}});await r.connect(e),Te=r,console.error("[search-server] Chroma client connected successfully")}catch(e){console.error("[search-server] Failed to initialize Chroma client:",e.message),console.error("[search-server] Falling back to FTS5-only search"),Te=null}},0)}Ef().catch(s=>{console.error("[search-server] Fatal error:",s),process.exit(1)}); +/*! Bundled license information: + +uri-js/dist/es5/uri.all.js: + (** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js *) +*/ diff --git a/plugin/scripts/worker-service.cjs b/plugin/scripts/worker-service.cjs index cbab58e5..7582d9e2 100755 --- a/plugin/scripts/worker-service.cjs +++ b/plugin/scripts/worker-service.cjs @@ -1,5 +1,5 @@ #!/usr/bin/env node -"use strict";var QE=Object.create;var Bi=Object.defineProperty;var XE=Object.getOwnPropertyDescriptor;var JE=Object.getOwnPropertyNames;var YE=Object.getPrototypeOf,ew=Object.prototype.hasOwnProperty;var M=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Hd=(r,e)=>{for(var a in e)Bi(r,a,{get:e[a],enumerable:!0})},Bd=(r,e,a,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of JE(e))!ew.call(r,s)&&s!==a&&Bi(r,s,{get:()=>e[s],enumerable:!(t=XE(e,s))||t.enumerable});return r};var jt=(r,e,a)=>(a=r!=null?QE(YE(r)):{},Bd(e||!r||!r.__esModule?Bi(a,"default",{value:r,enumerable:!0}):a,r)),tw=r=>Bd(Bi({},"__esModule",{value:!0}),r);var Or=M((I$,Wd)=>{var rw=require("path").relative;Wd.exports=ow;var aw=process.cwd();function Gd(r,e){for(var a=r.split(/[ ,]+/),t=String(e).toLowerCase(),s=0;s()=>(e||r((e={exports:{}}).exports,e),e.exports),Hd=(r,e)=>{for(var a in e)Bi(r,a,{get:e[a],enumerable:!0})},Bd=(r,e,a,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of J1(e))!ew.call(r,s)&&s!==a&&Bi(r,s,{get:()=>e[s],enumerable:!(t=X1(e,s))||t.enumerable});return r};var jt=(r,e,a)=>(a=r!=null?Q1(Y1(r)):{},Bd(e||!r||!r.__esModule?Bi(a,"default",{value:r,enumerable:!0}):a,r)),tw=r=>Bd(Bi({},"__esModule",{value:!0}),r);var Or=M((I$,Wd)=>{var rw=require("path").relative;Wd.exports=ow;var aw=process.cwd();function Gd(r,e){for(var a=r.split(/[ ,]+/),t=String(e).toLowerCase(),s=0;s0}function lw(r){if(process.noDeprecation)return!0;var e=process.env.NO_DEPRECATION||"";return Gd(e,r)}function uw(r){if(process.traceDeprecation)return!0;var e=process.env.TRACE_DEPRECATION||"";return Gd(e,r)}function Vi(r,e){var a=cw(process,"deprecation");if(!(!a&&this._ignored)){var t,s,i,n,o=0,l=!1,c=Gi(),u=this._file;for(e?(n=e,i=Ds(c[1]),i.name=n.name,u=i[0]):(o=2,n=Ds(c[o]),i=n);o",a=r.getLineNumber(),t=r.getColumnNumber();r.isEval()&&(e=r.getEvalOrigin()+", "+e);var s=[e,a,t];return s.callSite=r,s.name=r.getFunctionName(),s}function Vd(r){var e=r.callSite,a=r.name;a||(a="");var t=e.getThis(),s=t&&e.getTypeName();return s==="Object"&&(s=void 0),s==="Function"&&(s=t.name||s),s&&e.getMethodName()?s+"."+a:a}function pw(r,e,a){var t=new Date().toUTCString(),s=t+" "+this._namespace+" deprecated "+r;if(this._traced){for(var i=0;i?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0`},georgianacademy:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},georgianps:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},pt154:{type:"_sbcs",chars:"\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},viscii:{type:"_sbcs",chars:`\0\u1EB2\u1EB4\u1EAA\x07\b \v\f\r\u1EF6\u1EF8\x1B\u1EF4 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE`},iso646cn:{type:"_sbcs",chars:`\0\x07\b \v\f\r\x1B !"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},iso646jp:{type:"_sbcs",chars:`\0\x07\b -\v\f\r\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var Hf=M(zf=>{"use strict";var zs=qa().Buffer;zf._dbcs=Wr;var Nt=-1,Uf=-2,sr=-10,Ir=-1e3,Us=new Array(256),Qn=-1;for(so=0;so<256;so++)Us[so]=Nt;var so;function Wr(r,e){if(this.encodingName=r.encodingName,!r)throw new Error("DBCS codec is called without the data.");if(!r.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var a=r.table();this.decodeTables=[],this.decodeTables[0]=Us.slice(0),this.decodeTableSeq=[];for(var t=0;t0;r>>=8)e.push(r&255);e.length==0&&e.push(0);for(var a=this.decodeTables[0],t=e.length-1;t>0;t--){var s=a[e[t]];if(s==Nt)a[e[t]]=Ir-this.decodeTables.length,this.decodeTables.push(a=Us.slice(0));else if(s<=Ir)a=this.decodeTables[Ir-s];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+r.toString(16))}return a};Wr.prototype._addDecodeChunk=function(r){var e=parseInt(r[0],16),a=this._getDecodeTrieNode(e);e=e&255;for(var t=1;t255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+r[0]+": too long"+e)};Wr.prototype._getEncodeBucket=function(r){var e=r>>8;return this.encodeTable[e]===void 0&&(this.encodeTable[e]=Us.slice(0)),this.encodeTable[e]};Wr.prototype._setEncodeChar=function(r,e){var a=this._getEncodeBucket(r),t=r&255;a[t]<=sr?this.encodeTableSeq[sr-a[t]][Qn]=e:a[t]==Nt&&(a[t]=e)};Wr.prototype._setEncodeSequence=function(r,e){var a=r[0],t=this._getEncodeBucket(a),s=a&255,i;t[s]<=sr?i=this.encodeTableSeq[sr-t[s]]:(i={},t[s]!==Nt&&(i[Qn]=t[s]),t[s]=sr-this.encodeTableSeq.length,this.encodeTableSeq.push(i));for(var n=1;n=0?this._setEncodeChar(i,n):i<=Ir?this._fillEncodeTable(Ir-i,n<<8,a):i<=sr&&this._setEncodeSequence(this.decodeTableSeq[sr-i],n))}};function no(r,e){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=e.encodeTable,this.encodeTableSeq=e.encodeTableSeq,this.defaultCharSingleByte=e.defCharSB,this.gb18030=e.gb18030}no.prototype.write=function(r){for(var e=zs.alloc(r.length*(this.gb18030?4:3)),a=this.leadSurrogate,t=this.seqObj,s=-1,i=0,n=0;;){if(s===-1){if(i==r.length)break;var o=r.charCodeAt(i++)}else{var o=s;s=-1}if(55296<=o&&o<57344)if(o<56320)if(a===-1){a=o;continue}else a=o,o=Nt;else a!==-1?(o=65536+(a-55296)*1024+(o-56320),a=-1):o=Nt;else a!==-1&&(s=o,o=Nt,a=-1);var l=Nt;if(t!==void 0&&o!=Nt){var c=t[o];if(typeof c=="object"){t=c;continue}else typeof c=="number"?l=c:c==null&&(c=t[Qn],c!==void 0&&(l=c,s=o));t=void 0}else if(o>=0){var u=this.encodeTable[o>>8];if(u!==void 0&&(l=u[o&255]),l<=sr){t=this.encodeTableSeq[sr-l];continue}if(l==Nt&&this.gb18030){var p=Jl(this.gb18030.uChars,o);if(p!=-1){var l=this.gb18030.gbChars[p]+(o-this.gb18030.uChars[p]);e[n++]=129+Math.floor(l/12600),l=l%12600,e[n++]=48+Math.floor(l/1260),l=l%1260,e[n++]=129+Math.floor(l/10),l=l%10,e[n++]=48+l;continue}}}l===Nt&&(l=this.defaultCharSingleByte),l<256?e[n++]=l:l<65536?(e[n++]=l>>8,e[n++]=l&255):(e[n++]=l>>16,e[n++]=l>>8&255,e[n++]=l&255)}return this.seqObj=t,this.leadSurrogate=a,e.slice(0,n)};no.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var r=zs.alloc(10),e=0;if(this.seqObj){var a=this.seqObj[Qn];a!==void 0&&(a<256?r[e++]=a:(r[e++]=a>>8,r[e++]=a&255)),this.seqObj=void 0}return this.leadSurrogate!==-1&&(r[e++]=this.defaultCharSingleByte,this.leadSurrogate=-1),r.slice(0,e)}};no.prototype.findIdx=Jl;function Xl(r,e){this.nodeIdx=0,this.prevBuf=zs.alloc(0),this.decodeTables=e.decodeTables,this.decodeTableSeq=e.decodeTableSeq,this.defaultCharUnicode=e.defaultCharUnicode,this.gb18030=e.gb18030}Xl.prototype.write=function(r){var e=zs.alloc(r.length*2),a=this.nodeIdx,t=this.prevBuf,s=this.prevBuf.length,i=-this.prevBuf.length,n;s>0&&(t=zs.concat([t,r.slice(0,10)]));for(var o=0,l=0;o=0?r[o]:t[o+s],n=this.decodeTables[a][c];if(!(n>=0))if(n===Nt)o=i,n=this.defaultCharUnicode.charCodeAt(0);else if(n===Uf){var u=i>=0?r.slice(i,o+1):t.slice(i+s,o+1+s),p=(u[0]-129)*12600+(u[1]-48)*1260+(u[2]-129)*10+(u[3]-48),m=Jl(this.gb18030.gbChars,p);n=this.gb18030.uChars[m]+p-this.gb18030.gbChars[m]}else if(n<=Ir){a=Ir-n;continue}else if(n<=sr){for(var f=this.decodeTableSeq[sr-n],h=0;h>8;n=f[f.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+n+" at "+a+"/"+c);if(n>65535){n-=65536;var d=55296+Math.floor(n/1024);e[l++]=d&255,e[l++]=d>>8,n=56320+n%1024}e[l++]=n&255,e[l++]=n>>8,a=0,i=o+1}return this.nodeIdx=a,this.prevBuf=i>=0?r.slice(i):t.slice(i+s),e.slice(0,l).toString("ucs2")};Xl.prototype.end=function(){for(var r="";this.prevBuf.length>0;){r+=this.defaultCharUnicode;var e=this.prevBuf.slice(1);this.prevBuf=zs.alloc(0),this.nodeIdx=0,e.length>0&&(r+=this.write(e))}return this.nodeIdx=0,r};function Jl(r,e){if(r[0]>e)return-1;for(var a=0,t=r.length;a{PS.exports=[["0","\0",128],["a1","\uFF61",62],["8140","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7"],["8180","\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["81c8","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["81da","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["81f0","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["81fc","\u25EF"],["824f","\uFF10",9],["8260","\uFF21",25],["8281","\uFF41",25],["829f","\u3041",82],["8340","\u30A1",62],["8380","\u30E0",22],["839f","\u0391",16,"\u03A3",6],["83bf","\u03B1",16,"\u03C3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043E",17],["849f","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["877e","\u337B"],["8780","\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["889f","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["8940","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],["8980","\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["8a40","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],["8a80","\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["8b40","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],["8b80","\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["8c40","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],["8c80","\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["8d40","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],["8d80","\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["8e40","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],["8e80","\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["8f40","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],["8f80","\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["9040","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],["9080","\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["9140","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],["9180","\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["9240","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],["9280","\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["9340","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],["9380","\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["9440","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],["9480","\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["9540","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],["9580","\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["9640","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],["9680","\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["9740","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],["9780","\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["9840","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["989f","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["9940","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],["9980","\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["9a40","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],["9a80","\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["9b40","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],["9b80","\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["9c40","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["9d40","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],["9d80","\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["9e40","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],["9e80","\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["9f40","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],["9f80","\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["e040","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],["e080","\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e140","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],["e180","\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e240","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],["e280","\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e340","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],["e380","\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e440","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],["e480","\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],["e580","\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["e640","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],["e680","\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["e740","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],["e780","\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["e840","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],["e880","\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["e940","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],["e980","\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["ea40","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],["ea80","\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],["ed40","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],["ed80","\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["ee40","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],["ee80","\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["eeef","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["f040","\uE000",62],["f080","\uE03F",124],["f140","\uE0BC",62],["f180","\uE0FB",124],["f240","\uE178",62],["f280","\uE1B7",124],["f340","\uE234",62],["f380","\uE273",124],["f440","\uE2F0",62],["f480","\uE32F",124],["f540","\uE3AC",62],["f580","\uE3EB",124],["f640","\uE468",62],["f680","\uE4A7",124],["f740","\uE524",62],["f780","\uE563",124],["f840","\uE5E0",62],["f880","\uE61F",124],["f940","\uE69C"],["fa40","\u2170",9,"\u2160",9,"\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],["fa80","\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],["fb40","\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],["fb80","\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],["fc40","\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]]});var Vf=M((eq,RS)=>{RS.exports=[["0","\0",127],["8ea1","\uFF61",62],["a1a1","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],["a2a1","\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["a2ca","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["a2dc","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["a2f2","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["a2fe","\u25EF"],["a3b0","\uFF10",9],["a3c1","\uFF21",25],["a3e1","\uFF41",25],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["addf","\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["b0a1","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["b1a1","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],["b2a1","\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["b3a1","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],["b4a1","\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["b5a1","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],["b6a1","\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["b7a1","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],["b8a1","\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["b9a1","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],["baa1","\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["bba1","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],["bca1","\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["bda1","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],["bea1","\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["bfa1","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],["c0a1","\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["c1a1","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],["c2a1","\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["c3a1","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],["c4a1","\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["c5a1","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],["c6a1","\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["c7a1","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],["c8a1","\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["c9a1","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],["caa1","\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["cba1","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],["cca1","\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["cda1","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],["cea1","\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["cfa1","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["d0a1","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["d1a1","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],["d2a1","\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["d3a1","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],["d4a1","\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["d5a1","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],["d6a1","\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["d7a1","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],["d8a1","\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["d9a1","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],["daa1","\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["dba1","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],["dca1","\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["dda1","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],["dea1","\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["dfa1","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],["e0a1","\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e1a1","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],["e2a1","\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e3a1","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],["e4a1","\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e5a1","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],["e6a1","\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e7a1","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],["eaa1","\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["eba1","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],["eca1","\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["eda1","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],["eea1","\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["efa1","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],["f0a1","\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["f1a1","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],["f2a1","\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["f3a1","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],["f4a1","\u582F\u69C7\u9059\u7464\u51DC\u7199"],["f9a1","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],["faa1","\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["fba1","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],["fca1","\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["fcf1","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["8fa2af","\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],["8fa2c2","\xA1\xA6\xBF"],["8fa2eb","\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038A\u03AA"],["8fa6e7","\u038C"],["8fa6e9","\u038E\u03AB"],["8fa6ec","\u038F"],["8fa6f1","\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],["8fa7c2","\u0402",10,"\u040E\u040F"],["8fa7f2","\u0452",10,"\u045E\u045F"],["8fa9a1","\xC6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013F"],["8fa9ab","\u014A\xD8\u0152"],["8fa9af","\u0166\xDE"],["8fa9c1","\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],["8faaa1","\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],["8faaba","\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],["8faba1","\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],["8fabbd","\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],["8fabc5","\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],["8fb0a1","\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],["8fb1a1","\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509B\u509C\u509E",4,"\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],["8fb3a1","\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],["8fb4a1","\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],["8fb6a1","\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D",5,"\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4",4,"\u56F1\u56EB\u56ED"],["8fb7a1","\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D",4,"\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],["8fb8a1","\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],["8fb9a1","\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],["8fbaa1","\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6",4,"\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],["8fbba1","\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],["8fbca1","\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A",4,"\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],["8fbda1","\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0",4,"\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],["8fbea1","\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110",4,"\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],["8fbfa1","\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],["8fc0a1","\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],["8fc1a1","\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],["8fc2a1","\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],["8fc3a1","\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E",4,"\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],["8fc4a1","\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],["8fc5a1","\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],["8fc6a1","\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],["8fc7a1","\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],["8fc8a1","\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],["8fc9a1","\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094",4,"\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103",4,"\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],["8fcba1","\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],["8fcca1","\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2",6,"\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],["8fcfa1","\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],["8fd0a1","\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],["8fd1a1","\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],["8fd2a1","\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59",5],["8fd3a1","\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],["8fd4a1","\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2",4,"\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],["8fd5a1","\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],["8fd6a1","\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],["8fd7a1","\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],["8fd9a1","\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F",4,"\u8556\u8559\u855C",6,"\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],["8fdaa1","\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660",4,"\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],["8fdba1","\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783",6,"\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],["8fdca1","\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA",4,"\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],["8fdda1","\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4",4,"\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],["8fdea1","\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42",4,"\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],["8fdfa1","\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],["8fe0a1","\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],["8fe1a1","\u8F43\u8F47\u8F4F\u8F51",4,"\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],["8fe2a1","\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],["8fe3a1","\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC",5,"\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275",4,"\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],["8fe4a1","\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF",4,"\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9",4,"\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],["8fe7a1","\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],["8fe8a1","\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931",4,"\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],["8fe9a1","\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF",4],["8feaa1","\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A",4,"\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],["8feba1","\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26",4,"\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],["8feca1","\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],["8feda1","\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43",4,"\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D",4,"\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]]});var io=M((tq,TS)=>{TS.exports=[["0","\0",127,"\u20AC"],["8140","\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A",5,"\u4E72\u4E74",9,"\u4E7F",6,"\u4E87\u4E8A"],["8180","\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02",6,"\u4F0B\u4F0C\u4F12",4,"\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E",4,"\u4F44\u4F45\u4F47",5,"\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],["8240","\u4FA4\u4FAB\u4FAD\u4FB0",4,"\u4FB6",8,"\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2",4,"\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF",11],["8280","\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F",10,"\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050",4,"\u5056\u5057\u5058\u5059\u505B\u505D",7,"\u5066",5,"\u506D",8,"\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E",20,"\u50A4\u50A6\u50AA\u50AB\u50AD",4,"\u50B3",6,"\u50BC"],["8340","\u50BD",17,"\u50D0",5,"\u50D7\u50D8\u50D9\u50DB",10,"\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6",4,"\u50FC",9,"\u5108"],["8380","\u5109\u510A\u510C",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D",4,"\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6",4,"\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2",5],["8440","\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5",5,"\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244",5,"\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273",9,"\u527E\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4",9,"\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9",5,"\u52E0\u52E1\u52E2\u52E3\u52E5",10,"\u52F1",7,"\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],["8540","\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F",9,"\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],["8580","\u5390",4,"\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF",6,"\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3",4,"\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],["8640","\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0",4,"\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4",5,"\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A",4,"\u5512\u5513\u5515",5,"\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],["8680","\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F",5,"\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0",6,"\u55A8",8,"\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF",4,"\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7",4,"\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8",4,"\u55FF\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560A\u560B\u560D\u5610",7,"\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640",11,"\u564F",4,"\u5655\u5656\u565A\u565B\u565D",4],["8780","\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56A4",10,"\u56B0",6,"\u56B8\u56B9\u56BA\u56BB\u56BD",12,"\u56CB",8,"\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5",5,"\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B",6],["8840","\u5712",9,"\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734",4,"\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],["8880","\u5781\u5787\u5788\u5789\u578A\u578D",4,"\u5794",6,"\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9",8,"\u57C4",6,"\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5",7,"\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825",4,"\u582B",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583E",5,"\u5845",6,"\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585F",5,"\u5866",4,"\u586D",16,"\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],["8980","\u588D",4,"\u5894",4,"\u589B\u589C\u589D\u58A0",7,"\u58AA",17,"\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6",10,"\u58D2\u58D3\u58D4\u58D6",13,"\u58E5",5,"\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA",7,"\u5903\u5905\u5906\u5908",4,"\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],["8a40","\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],["8a80","\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3",5,"\u59BA\u59BC\u59BD\u59BF",6,"\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE",4,"\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED",11,"\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A",6,"\u5A33\u5A35\u5A37",4,"\u5A3D\u5A3E\u5A3F\u5A41",4,"\u5A47\u5A48\u5A4B",9,"\u5A56\u5A57\u5A58\u5A59\u5A5B",5],["8b40","\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B",8,"\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80",17,"\u5A93",6,"\u5A9C",13,"\u5AAB\u5AAC"],["8b80","\u5AAD",4,"\u5AB4\u5AB6\u5AB7\u5AB9",4,"\u5ABF\u5AC0\u5AC3",5,"\u5ACA\u5ACB\u5ACD",4,"\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC",4,"\u5AF2",22,"\u5B0A",11,"\u5B18",25,"\u5B33\u5B35\u5B36\u5B38",7,"\u5B41",6],["8c40","\u5B48",7,"\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],["8c80","\u5BD1\u5BD4",8,"\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9",4,"\u5BEF\u5BF1",6,"\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67",6,"\u5C70\u5C72",6,"\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83",4,"\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D",4,"\u5CA4",4],["8d40","\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5",5,"\u5CCC",5,"\u5CD3",5,"\u5CDA",6,"\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1",9,"\u5CFC",4],["8d80","\u5D01\u5D04\u5D05\u5D08",5,"\u5D0F",4,"\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F",4,"\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F",4,"\u5D35",7,"\u5D3F",7,"\u5D48\u5D49\u5D4D",10,"\u5D59\u5D5A\u5D5C\u5D5E",10,"\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75",12,"\u5D83",21,"\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],["8e40","\u5DA1",21,"\u5DB8",12,"\u5DC6",6,"\u5DCE",12,"\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],["8e80","\u5DF0\u5DF5\u5DF6\u5DF8",4,"\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E",7,"\u5E28",4,"\u5E2F\u5E30\u5E32",4,"\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46",5,"\u5E4D",6,"\u5E56",4,"\u5E5C\u5E5D\u5E5F\u5E60\u5E63",14,"\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8",4,"\u5EAE",4,"\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF",6],["8f40","\u5EC6\u5EC7\u5EC8\u5ECB",5,"\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC",11,"\u5EE9\u5EEB",8,"\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],["8f80","\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32",6,"\u5F3B\u5F3D\u5F3E\u5F3F\u5F41",14,"\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2",5,"\u5FA9\u5FAB\u5FAC\u5FAF",5,"\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE",4,"\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],["9040","\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030",4,"\u6036",4,"\u603D\u603E\u6040\u6044",6,"\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD",7,"\u60C7\u60C8\u60C9\u60CC",4,"\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1",4,"\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB",4,"\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110",4,"\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C",18,"\u6140",6],["9140","\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156",6,"\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618C\u618D\u618F",4,"\u6195"],["9180","\u6196",6,"\u619E",8,"\u61AA\u61AB\u61AD",9,"\u61B8",5,"\u61BF\u61C0\u61C1\u61C3",4,"\u61C9\u61CC",4,"\u61D3\u61D5",16,"\u61E7",13,"\u61F6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624A"],["9240","\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B",5,"\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],["9280","\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333",5,"\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],["9340","\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7",6,"\u63DF\u63E2\u63E4",4,"\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406",4,"\u640D\u640E\u6411\u6412\u6415",5,"\u641D\u641F\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642B\u642E",5,"\u6435",4,"\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645F",7,"\u6468\u646A\u646B\u646C\u646E",9,"\u647B",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F",4,"\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6",6,"\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],["9440","\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7",24,"\u6501",7,"\u650A",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540",4,"\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1",7,"\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8",7,"\u65E1\u65E3\u65E4\u65EA\u65EB"],["9540","\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637",4,"\u663D\u663F\u6640\u6642\u6644",6,"\u664D\u664E\u6650\u6651\u6658"],["9580","\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669E",8,"\u66A9",4,"\u66AF",4,"\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF",25,"\u66DA\u66DE",7,"\u66E7\u66E8\u66EA",5,"\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720",5,"\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757",4,"\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],["9680","\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9",7,"\u67C2\u67C5",9,"\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5",7,"\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818",4,"\u681E\u681F\u6820\u6822",6,"\u682B",6,"\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856",5],["9740","\u685C\u685D\u685E\u685F\u686A\u686C",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],["9780","\u68B9",6,"\u68C1\u68C3",5,"\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB",4,"\u68E1\u68E2\u68E4",9,"\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906",4,"\u690C\u690F\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972",4,"\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E",5,"\u6996\u6997\u6999\u699A\u699D",9,"\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],["9880","\u69BE\u69BF\u69C0\u69C2",7,"\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5",5,"\u69DC\u69DD\u69DE\u69E1",11,"\u69EE\u69EF\u69F0\u69F1\u69F3",9,"\u69FE\u6A00",9,"\u6A0B",11,"\u6A19",5,"\u6A20\u6A22",5,"\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36",6,"\u6A3F",4,"\u6A45\u6A46\u6A48",7,"\u6A51",6,"\u6A5A"],["9940","\u6A5C",4,"\u6A62\u6A63\u6A64\u6A66",10,"\u6A72",6,"\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85",8,"\u6A8F\u6A92",4,"\u6A98",7,"\u6AA1",5],["9980","\u6AA7\u6AA8\u6AAA\u6AAD",114,"\u6B25\u6B26\u6B28",6],["9a40","\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D",11,"\u6B5A",7,"\u6B68\u6B69\u6B6B",13,"\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],["9a80","\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C",4,"\u6BA2",7,"\u6BAB",7,"\u6BB6\u6BB8",6,"\u6BC0\u6BC3\u6BC4\u6BC6",4,"\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC",4,"\u6BE2",7,"\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE",6,"\u6C08",4,"\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B",4,"\u6C51\u6C52\u6C53\u6C56\u6C58"],["9b40","\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B",4,"\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],["9b80","\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F",5,"\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D",4,"\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96",4,"\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9",5,"\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],["9c40","\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD",7,"\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],["9c80","\u6E36\u6E37\u6E39\u6E3B",7,"\u6E45",7,"\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60",10,"\u6E6C\u6E6D\u6E6F",14,"\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A",4,"\u6E91",6,"\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA",5],["9d40","\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA",7,"\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A",4,"\u6F10\u6F11\u6F12\u6F16",9,"\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37",6,"\u6F3F\u6F40\u6F41\u6F42"],["9d80","\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E",9,"\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67",5,"\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D",6,"\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F",12,"\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2",4,"\u6FA8",10,"\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA",5,"\u6FC1\u6FC3",5,"\u6FCA",6,"\u6FD3",10,"\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],["9e40","\u6FE6",7,"\u6FF0",32,"\u7012",7,"\u701C",6,"\u7024",6],["9e80","\u702B",9,"\u7036\u7037\u7038\u703A",17,"\u704D\u704E\u7050",13,"\u705F",11,"\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E",12,"\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB",12,"\u70DA"],["9f40","\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0",6,"\u70F8\u70FA\u70FB\u70FC\u70FE",10,"\u710B",4,"\u7111\u7112\u7114\u7117\u711B",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714B\u714D\u714F",12,"\u715D\u715F",4,"\u7165\u7169",4,"\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E",5,"\u7185",4,"\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A",4,"\u71A1",6,"\u71A9\u71AA\u71AB\u71AD",5,"\u71B4\u71B6\u71B7\u71B8\u71BA",8,"\u71C4",9,"\u71CF",4],["a040","\u71D6",9,"\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8",5,"\u71EF",9,"\u71FA",11,"\u7207",19],["a080","\u721B\u721C\u721E",9,"\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240",6,"\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285",4,"\u728C\u728E\u7290\u7291\u7293",11,"\u72A0",11,"\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA",6,"\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],["a1a1","\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uFF01\uFF02\uFF03\uFFE5\uFF05",88,"\uFFE3"],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a6e0","\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],["a6ee","\uFE3B\uFE3C\uFE37\uFE38\uFE31"],["a6f4","\uFE33\uFE34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],["a8a1","\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49",9,"\uFE54\uFE55\uFE56\uFE57\uFE59",8],["a980","\uFE62",4,"\uFE68\uFE69\uFE6A\uFE6B"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72DC\u72DD\u72DF\u72E2",5,"\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304",5,"\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340",8],["aa80","\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736E\u7370\u7371"],["ab40","\u7372",11,"\u737F",4,"\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3",5,"\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3",4],["ab80","\u73CB\u73CC\u73CE\u73D2",6,"\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3",4],["ac40","\u73F8",10,"\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411",8,"\u741C",5,"\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437",4,"\u743D\u743E\u743F\u7440\u7442",11],["ac80","\u744E",6,"\u7456\u7458\u745D\u7460",12,"\u746E\u746F\u7471",4,"\u7478\u7479\u747A"],["ad40","\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491",10,"\u749D\u749F",7,"\u74AA",15,"\u74BB",12],["ad80","\u74C8",9,"\u74D3",8,"\u74DD\u74DF\u74E1\u74E5\u74E7",6,"\u74F0\u74F1\u74F2"],["ae40","\u74F3\u74F5\u74F8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520",4,"\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755D",7,"\u7567\u7568\u7569\u756B",6,"\u7573\u7575\u7576\u7577\u757A",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6",4,"\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],["b040","\u7645",6,"\u764E",5,"\u7655\u7657",4,"\u765D\u765F\u7660\u7661\u7662\u7664",6,"\u766C\u766D\u766E\u7670",7,"\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],["b080","\u769C",7,"\u76A5",8,"\u76AF\u76B0\u76B3\u76B5",9,"\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],["b140","\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0",4,"\u76E6",7,"\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E",10,"\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],["b180","\u772C\u772E\u7730",4,"\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],["b240","\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D",11,"\u777A\u777B\u777C\u7781\u7782\u7783\u7786",5,"\u778F\u7790\u7793",11,"\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6",4],["b280","\u77BC\u77BE\u77C0",12,"\u77CE",8,"\u77D8\u77D9\u77DA\u77DD",4,"\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],["b340","\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803",5,"\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],["b380","\u785B\u785C\u785E",11,"\u786F",7,"\u7878\u7879\u787A\u787B\u787D",6,"\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],["b440","\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8",7,"\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA",9],["b480","\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED",4,"\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],["b540","\u790D",5,"\u7914",9,"\u791F",4,"\u7925",14,"\u7935",4,"\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970",6,"\u7979\u797B",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],["b640","\u7993",6,"\u799B",11,"\u79A8",10,"\u79B4",4,"\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9",5,"\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],["b680","\u79EC\u79EE\u79F1",6,"\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F",4,"\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],["b740","\u7A1D\u7A1F\u7A21\u7A22\u7A24",14,"\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40",5,"\u7A47",9,"\u7A52",4,"\u7A58",16],["b780","\u7A69",6,"\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],["b840","\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE",4,"\u7AB4",10,"\u7AC0",10,"\u7ACC",9,"\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7",5,"\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],["b880","\u7AF4",4,"\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],["b940","\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F",5,"\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63",10,"\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86",6,"\u7B8E\u7B8F"],["b980","\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9",7,"\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],["ba40","\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4",4,"\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2",4,"\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF",7,"\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10",5,"\u7C17\u7C18\u7C19"],["ba80","\u7C1A",4,"\u7C20",5,"\u7C28\u7C29\u7C2B",12,"\u7C39",5,"\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],["bb40","\u7C43",9,"\u7C4E",36,"\u7C75",5,"\u7C7E",9],["bb80","\u7C88\u7C8A",6,"\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4",4,"\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],["bc40","\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE",6,"\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1",6,"\u7CE9",5,"\u7CF0",7,"\u7CF9\u7CFA\u7CFC",13,"\u7D0B",5],["bc80","\u7D11",14,"\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30",6,"\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],["bd40","\u7D37",54,"\u7D6F",7],["bd80","\u7D78",32,"\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],["be40","\u7D99",12,"\u7DA7",6,"\u7DAF",42],["be80","\u7DDA",32,"\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],["bf40","\u7DFB",62],["bf80","\u7E3A\u7E3C",4,"\u7E42",4,"\u7E48",21,"\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],["c040","\u7E5E",35,"\u7E83",23,"\u7E9C\u7E9D\u7E9E"],["c080","\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B",6,"\u7F43\u7F46",9,"\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],["c140","\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63",4,"\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82",7,"\u7F8B\u7F8D\u7F8F",4,"\u7F95",4,"\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8",6,"\u7FB1"],["c180","\u7FB3",4,"\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF",4,"\u7FD6\u7FD7\u7FD9",5,"\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],["c240","\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4",6,"\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B",5,"\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805B",13,"\u806B",5,"\u8072",11,"\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],["c340","\u807E\u8081\u8082\u8085\u8088\u808A\u808D",5,"\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7",4,"\u80CF",6,"\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],["c380","\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F",12,"\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],["c440","\u8140",5,"\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818B\u818C\u818D\u818E\u8190\u8192",5,"\u8199\u819A\u819E",4,"\u81A4\u81A5"],["c480","\u81A7\u81A9\u81AB",7,"\u81B4",5,"\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD",6,"\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],["c540","\u81D4",14,"\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE",4,"\u81F5",5,"\u81FD\u81FF\u8203\u8207",4,"\u820E\u820F\u8211\u8213\u8215",5,"\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250",7,"\u8259\u825B\u825C\u825D\u825E\u8260",7,"\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],["c640","\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],["c680","\u82FA\u82FC",4,"\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D",9,"\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],["c740","\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A",4,"\u8353\u8355",4,"\u835D\u8362\u8370",6,"\u8379\u837A\u837E",6,"\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1",6,"\u83AC\u83AD\u83AE"],["c780","\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],["c840","\u83EE\u83EF\u83F3",4,"\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412",5,"\u8419\u841A\u841B\u841E",5,"\u8429",7,"\u8432",5,"\u8439\u843A\u843B\u843E",7,"\u8447\u8448\u8449"],["c880","\u844A",6,"\u8452",4,"\u8458\u845D\u845E\u845F\u8460\u8462\u8464",4,"\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],["c940","\u847D",4,"\u8483\u8484\u8485\u8486\u848A\u848D\u848F",7,"\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2",12,"\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],["c980","\u84D8",4,"\u84DE\u84E1\u84E2\u84E4\u84E7",4,"\u84ED\u84EE\u84EF\u84F1",10,"\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],["ca40","\u8503",8,"\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522",8,"\u852D",9,"\u853E",4,"\u8544\u8545\u8546\u8547\u854B",10],["ca80","\u8557\u8558\u855A\u855B\u855C\u855D\u855F",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859D",6,"\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1",5,"\u85B8\u85BA",6,"\u85C2",6,"\u85CA",4,"\u85D1\u85D2"],["cb80","\u85D4\u85D6",5,"\u85DD",6,"\u85E5\u85E6\u85E7\u85E8\u85EA",14,"\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],["cc40","\u85F9\u85FA\u85FC\u85FD\u85FE\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862A",13,"\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865B\u865C\u865D\u865F\u8660\u8661\u8663",7,"\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],["cd40","\u866D\u866F\u8670\u8672",6,"\u8683",6,"\u868E",4,"\u8694\u8696",5,"\u869E",4,"\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB",4,"\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],["cd80","\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],["ce40","\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740",6,"\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A",5,"\u8761\u8762\u8766",7,"\u876F\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E",4,"\u8794\u8795\u8796\u8798",6,"\u87A0",4,"\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],["cf40","\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1",4,"\u87C7\u87C8\u87C9\u87CC",4,"\u87D4",6,"\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF",9],["cf80","\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804",5,"\u880B",7,"\u8814\u8817\u8818\u8819\u881A\u881C",4,"\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846",5,"\u884E",5,"\u8855\u8856\u8858\u885A",6,"\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],["d080","\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889D",4,"\u88A3\u88A5",5,"\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],["d140","\u88AC\u88AE\u88AF\u88B0\u88B2",4,"\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA",4,"\u88E0\u88E1\u88E6\u88E7\u88E9",6,"\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903",5],["d180","\u8909\u890B",4,"\u8911\u8914",4,"\u891C",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897C"],["d280","\u897D\u897E\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],["d340","\u89A2",30,"\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4",6],["d380","\u89FB",4,"\u8A01",5,"\u8A08",21,"\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],["d440","\u8A1E",31,"\u8A3F",8,"\u8A49",21],["d480","\u8A5F",25,"\u8A7A",6,"\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],["d540","\u8A81",7,"\u8A8B",7,"\u8A94",46],["d580","\u8AC3",32,"\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],["d640","\u8AE4",34,"\u8B08",27],["d680","\u8B24\u8B25\u8B27",30,"\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],["d740","\u8B46",31,"\u8B67",4,"\u8B6D",25],["d780","\u8B87",24,"\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],["d840","\u8C38",8,"\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D",7,"\u8C56\u8C57\u8C58\u8C59\u8C5B",5,"\u8C63",6,"\u8C6C",6,"\u8C74\u8C75\u8C76\u8C77\u8C7B",6,"\u8C83\u8C84\u8C86\u8C87"],["d880","\u8C88\u8C8B\u8C8D",6,"\u8C95\u8C96\u8C97\u8C99",20,"\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],["d940","\u8CAE",62],["d980","\u8CED",32,"\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],["da40","\u8D0E",14,"\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78",8,"\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C",4,"\u8D92\u8D93\u8D95",9,"\u8DA0\u8DA1"],["da80","\u8DA2\u8DA4",12,"\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],["db40","\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE",6,"\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15",7,"\u8E20\u8E21\u8E24",4,"\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],["db80","\u8E3F\u8E43\u8E45\u8E46\u8E4C",4,"\u8E53",5,"\u8E5A",11,"\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],["dc40","\u8E73\u8E75\u8E77",4,"\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88",6,"\u8E91\u8E92\u8E93\u8E95",6,"\u8E9D\u8E9F",11,"\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3",6,"\u8EBB",7],["dc80","\u8EC3",10,"\u8ECF",21,"\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],["dd40","\u8EE5",62],["dd80","\u8F24",32,"\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],["de40","\u8F45",32,"\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],["de80","\u8FC9",4,"\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],["df40","\u9019\u901C\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048",4,"\u904E\u9054\u9055\u9056\u9059\u905A\u905C",5,"\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F",4,"\u9076",6,"\u907E\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908A\u908C",4,"\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],["e040","\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105",19,"\u911A\u911B\u911C"],["e080","\u911D\u911F\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913A",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180",4,"\u9186\u9188\u918A\u918E\u918F\u9193",6,"\u919C",5,"\u91A4",5,"\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],["e180","\u91BC",10,"\u91C8\u91CB\u91D0\u91D2",9,"\u91DD",8,"\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],["e240","\u91E6",62],["e280","\u9225",32,"\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928F",24,"\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],["e440","\u92A8",5,"\u92AF",24,"\u92C9",31],["e480","\u92E9",32,"\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],["e540","\u930A",51,"\u933F",10],["e580","\u934A",31,"\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],["e640","\u936C",34,"\u9390",27],["e680","\u93AC",29,"\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],["e740","\u93CE",7,"\u93D7",54],["e780","\u940E",32,"\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21",6,"\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F",4,"\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],["e840","\u942F",14,"\u943F",43,"\u946C\u946D\u946E\u946F"],["e880","\u9470",20,"\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],["e940","\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95AB",32,"\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],["ea40","\u95CC",27,"\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623",6,"\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D",4,"\u9673\u9678",12,"\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],["eb40","\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D",9,"\u96A8",7,"\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6",9,"\u96E1",6,"\u96EB"],["eb80","\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],["ec40","\u9721",8,"\u972B\u972C\u972E\u972F\u9731\u9733",4,"\u973A\u973B\u973C\u973D\u973F",18,"\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A",7],["ec80","\u9772\u9775\u9777",4,"\u977D",7,"\u9786",4,"\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],["ed40","\u979E\u979F\u97A1\u97A2\u97A4",6,"\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5",46],["ed80","\u97E4\u97E5\u97E8\u97EE",4,"\u97F4\u97F7",23,"\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],["ee40","\u980F",62],["ee80","\u984E",32,"\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6",4,"\u94BC\u94BD\u94BF\u94C4\u94C8",6,"\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],["ef40","\u986F",5,"\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8",37,"\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0",4],["ef80","\u98E5\u98E6\u98E9",30,"\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512",4,"\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564",8,"\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],["f040","\u9908",4,"\u990E\u990F\u9911",28,"\u992F",26],["f080","\u994A",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28",4,"\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66",6,"\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],["f140","\u998C\u998E\u999A",10,"\u99A6\u99A7\u99A9",47],["f180","\u99D9",32,"\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99FA",62],["f280","\u9A39",32,"\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],["f340","\u9A5A",17,"\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9",6,"\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6",4,"\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],["f380","\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0",8,"\u9AFA\u9AFC",6,"\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],["f440","\u9B07\u9B09",5,"\u9B10\u9B11\u9B12\u9B14",10,"\u9B20\u9B21\u9B22\u9B24",10,"\u9B30\u9B31\u9B33",7,"\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55",5],["f480","\u9B5B",32,"\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],["f540","\u9B7C",62],["f580","\u9BBB",32,"\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],["f640","\u9BDC",62],["f680","\u9C1B",32,"\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85",5,"\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E",5,"\u9CA5",4,"\u9CAB\u9CAD\u9CAE\u9CB0",7,"\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],["f740","\u9C3C",62],["f780","\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE",4,"\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC",4,"\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],["f840","\u9CE3",62],["f880","\u9D22",32],["f940","\u9D43",62],["f980","\u9D82",32],["fa40","\u9DA3",62],["fa80","\u9DE2",32],["fb40","\u9E03",27,"\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74",9,"\u9E80"],["fb80","\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C",5,"\u9E94",8,"\u9E9E\u9EA0",5,"\u9EA7\u9EA8\u9EA9\u9EAA"],["fc40","\u9EAB",8,"\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF",4,"\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0",8,"\u9EFA\u9EFD\u9EFF",6],["fc80","\u9F06",4,"\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A",5,"\u9F21\u9F23",8,"\u9F2D\u9F2E\u9F30\u9F31"],["fd40","\u9F32",4,"\u9F38\u9F3A\u9F3C\u9F3F",4,"\u9F45",10,"\u9F52",38],["fd80","\u9F79",5,"\u9F81\u9F82\u9F8D",11,"\u9F9C\u9F9D\u9F9E\u9FA1",4,"\uF92C\uF979\uF995\uF9E7\uF9F1"],["fe40","\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]]});var Yl=M((rq,kS)=>{kS.exports=[["a140","\uE4C6",62],["a180","\uE505",32],["a240","\uE526",62],["a280","\uE565",32],["a2ab","\uE766",5],["a2e3","\u20AC\uE76D"],["a2ef","\uE76E\uE76F"],["a2fd","\uE770\uE771"],["a340","\uE586",62],["a380","\uE5C5",31,"\u3000"],["a440","\uE5E6",62],["a480","\uE625",32],["a4f4","\uE772",10],["a540","\uE646",62],["a580","\uE685",32],["a5f7","\uE77D",7],["a640","\uE6A6",62],["a680","\uE6E5",32],["a6b9","\uE785",7],["a6d9","\uE78D",6],["a6ec","\uE794\uE795"],["a6f3","\uE796"],["a6f6","\uE797",8],["a740","\uE706",62],["a780","\uE745",32],["a7c2","\uE7A0",14],["a7f2","\uE7AF",12],["a896","\uE7BC",10],["a8bc","\uE7C7"],["a8bf","\u01F9"],["a8c1","\uE7C9\uE7CA\uE7CB\uE7CC"],["a8ea","\uE7CD",20],["a958","\uE7E2"],["a95b","\uE7E3"],["a95d","\uE7E4\uE7E5\uE7E6"],["a989","\u303E\u2FF0",11],["a997","\uE7F4",12],["a9f0","\uE801",14],["aaa1","\uE000",93],["aba1","\uE05E",93],["aca1","\uE0BC",93],["ada1","\uE11A",93],["aea1","\uE178",93],["afa1","\uE1D6",93],["d7fa","\uE810",4],["f8a1","\uE234",93],["f9a1","\uE292",93],["faa1","\uE2F0",93],["fba1","\uE34E",93],["fca1","\uE3AC",93],["fda1","\uE40A",93],["fe50","\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],["fe80","\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13",6,"\u4DAE\uE864\uE468",93]]});var Gf=M((aq,OS)=>{OS.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}});var Zf=M((sq,CS)=>{CS.exports=[["0","\0",127],["8141","\uAC02\uAC03\uAC05\uAC06\uAC0B",4,"\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25",6,"\uAC2E\uAC32\uAC33\uAC34"],["8161","\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41",9,"\uAC4C\uAC4E",5,"\uAC55"],["8181","\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D",18,"\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B",4,"\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95",6,"\uAC9E\uACA2",5,"\uACAB\uACAD\uACAE\uACB1",6,"\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD",7,"\uACD6\uACD8",7,"\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7",4,"\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07",4,"\uAD0E\uAD10\uAD12\uAD13"],["8241","\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21",7,"\uAD2A\uAD2B\uAD2E",5],["8261","\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D",6,"\uAD46\uAD48\uAD4A",5,"\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],["8281","\uAD59",7,"\uAD62\uAD64",7,"\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83",4,"\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91",10,"\uAD9E",5,"\uADA5",17,"\uADB8",7,"\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9",6,"\uADD2\uADD4",7,"\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5",18],["8341","\uADFA\uADFB\uADFD\uADFE\uAE02",5,"\uAE0A\uAE0C\uAE0E",5,"\uAE15",7],["8361","\uAE1D",18,"\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],["8381","\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57",4,"\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71",6,"\uAE7A\uAE7E",5,"\uAE86",5,"\uAE8D",46,"\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5",6,"\uAECE\uAED2",5,"\uAEDA\uAEDB\uAEDD",8],["8441","\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE",5,"\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD",8],["8461","\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11",18],["8481","\uAF24",7,"\uAF2E\uAF2F\uAF31\uAF33\uAF35",6,"\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A",5,"\uAF51",10,"\uAF5E",5,"\uAF66",18,"\uAF7A",5,"\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89",6,"\uAF92\uAF93\uAF94\uAF96",5,"\uAF9D",26,"\uAFBA\uAFBB\uAFBD\uAFBE"],["8541","\uAFBF\uAFC1",5,"\uAFCA\uAFCC\uAFCF",4,"\uAFD5",6,"\uAFDD",4],["8561","\uAFE2",5,"\uAFEA",5,"\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9",6,"\uB002\uB003"],["8581","\uB005",6,"\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015",6,"\uB01E",9,"\uB029",26,"\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E",29,"\uB07E\uB07F\uB081\uB082\uB083\uB085",6,"\uB08E\uB090\uB092",5,"\uB09B\uB09D\uB09E\uB0A3\uB0A4"],["8641","\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD",6,"\uB0C6\uB0CA",5,"\uB0D2"],["8661","\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9",6,"\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6",10],["8681","\uB0F1",22,"\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E",4,"\uB126\uB127\uB129\uB12A\uB12B\uB12D",6,"\uB136\uB13A",5,"\uB142\uB143\uB145\uB146\uB147\uB149",6,"\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161",22,"\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183",4,"\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],["8741","\uB19E",9,"\uB1A9",15],["8761","\uB1B9",18,"\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],["8781","\uB1D6",5,"\uB1DE\uB1E0",7,"\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1",7,"\uB1FA\uB1FC\uB1FE",5,"\uB206\uB207\uB209\uB20A\uB20D",6,"\uB216\uB218\uB21A",5,"\uB221",18,"\uB235",6,"\uB23D",26,"\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261",6,"\uB26A",4],["8841","\uB26F",4,"\uB276",5,"\uB27D",6,"\uB286\uB287\uB288\uB28A",4],["8861","\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B",4,"\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],["8881","\uB2B8",15,"\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3",4,"\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309",6,"\uB312\uB316",5,"\uB31D",54,"\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],["8941","\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379",6,"\uB382\uB386",5,"\uB38D"],["8961","\uB38E\uB38F\uB391\uB392\uB393\uB395",10,"\uB3A2",5,"\uB3A9\uB3AA\uB3AB\uB3AD"],["8981","\uB3AE",21,"\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9",18,"\uB3FD",18,"\uB411",6,"\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421",6,"\uB42A\uB42C",7,"\uB435",15],["8a41","\uB445",10,"\uB452\uB453\uB455\uB456\uB457\uB459",6,"\uB462\uB464\uB466"],["8a61","\uB467",4,"\uB46D",18,"\uB481\uB482"],["8a81","\uB483",4,"\uB489",19,"\uB49E",5,"\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD",7,"\uB4B6\uB4B8\uB4BA",5,"\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9",6,"\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6",5,"\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7",4,"\uB4EE\uB4F0\uB4F2",5,"\uB4F9",26,"\uB516\uB517\uB519\uB51A\uB51D"],["8b41","\uB51E",5,"\uB526\uB52B",4,"\uB532\uB533\uB535\uB536\uB537\uB539",6,"\uB542\uB546"],["8b61","\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555",6,"\uB55E\uB562",8],["8b81","\uB56B",52,"\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6",4,"\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5",6,"\uB5CE\uB5D2",5,"\uB5D9",18,"\uB5ED",18],["8c41","\uB600",15,"\uB612\uB613\uB615\uB616\uB617\uB619",4],["8c61","\uB61E",6,"\uB626",5,"\uB62D",6,"\uB635",5],["8c81","\uB63B",12,"\uB649",26,"\uB665\uB666\uB667\uB669",50,"\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5",5,"\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2",16],["8d41","\uB6C3",16,"\uB6D5",8],["8d61","\uB6DE",17,"\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],["8d81","\uB6FB",4,"\uB702\uB703\uB704\uB706",33,"\uB72A\uB72B\uB72D\uB72E\uB731",6,"\uB73A\uB73C",7,"\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D",6,"\uB756",9,"\uB761\uB762\uB763\uB765\uB766\uB767\uB769",6,"\uB772\uB774\uB776",5,"\uB77E\uB77F\uB781\uB782\uB783\uB785",6,"\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],["8e41","\uB79F\uB7A1",6,"\uB7AA\uB7AE",5,"\uB7B6\uB7B7\uB7B9",8],["8e61","\uB7C2",4,"\uB7C8\uB7CA",19],["8e81","\uB7DE",13,"\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5",6,"\uB7FE\uB802",4,"\uB80A\uB80B\uB80D\uB80E\uB80F\uB811",6,"\uB81A\uB81C\uB81E",5,"\uB826\uB827\uB829\uB82A\uB82B\uB82D",6,"\uB836\uB83A",5,"\uB841\uB842\uB843\uB845",11,"\uB852\uB854",7,"\uB85E\uB85F\uB861\uB862\uB863\uB865",6,"\uB86E\uB870\uB872",5,"\uB879\uB87A\uB87B\uB87D",7],["8f41","\uB885",7,"\uB88E",17],["8f61","\uB8A0",7,"\uB8A9",6,"\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9",4],["8f81","\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6",5,"\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5",7,"\uB8DE\uB8E0\uB8E2",5,"\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1",6,"\uB8FA\uB8FC\uB8FE",5,"\uB905",18,"\uB919",6,"\uB921",26,"\uB93E\uB93F\uB941\uB942\uB943\uB945",6,"\uB94D\uB94E\uB950\uB952",5],["9041","\uB95A\uB95B\uB95D\uB95E\uB95F\uB961",6,"\uB96A\uB96C\uB96E",5,"\uB976\uB977\uB979\uB97A\uB97B\uB97D"],["9061","\uB97E",5,"\uB986\uB988\uB98B\uB98C\uB98F",15],["9081","\uB99F",12,"\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5",6,"\uB9BE\uB9C0\uB9C2",5,"\uB9CA\uB9CB\uB9CD\uB9D3",4,"\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED",6,"\uB9F6\uB9FB",4,"\uBA02",5,"\uBA09",11,"\uBA16",33,"\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],["9141","\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D",6,"\uBA66\uBA6A",5],["9161","\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79",9,"\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D",5],["9181","\uBA93",20,"\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3",4,"\uBABA\uBABC\uBABE",5,"\uBAC5\uBAC6\uBAC7\uBAC9",14,"\uBADA",33,"\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05",7,"\uBB0E\uBB10\uBB12",5,"\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21",6],["9241","\uBB28\uBB2A\uBB2C",7,"\uBB37\uBB39\uBB3A\uBB3F",4,"\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],["9261","\uBB53\uBB55\uBB56\uBB57\uBB59",7,"\uBB62\uBB64",7,"\uBB6D",4],["9281","\uBB72",21,"\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91",18,"\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD",6,"\uBBB5\uBBB6\uBBB8",7,"\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9",6,"\uBBD1\uBBD2\uBBD4",35,"\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],["9341","\uBC03",4,"\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],["9361","\uBC36\uBC37\uBC39",6,"\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51",8],["9381","\uBC5A\uBC5B\uBC5C\uBC5E",37,"\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F",4,"\uBC96\uBC98\uBC9B",4,"\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9",6,"\uBCB2\uBCB6",5,"\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5",7,"\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD",22,"\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],["9441","\uBCFE",5,"\uBD06\uBD08\uBD0A",5,"\uBD11\uBD12\uBD13\uBD15",8],["9461","\uBD1E",5,"\uBD25",6,"\uBD2D",12],["9481","\uBD3A",5,"\uBD41",6,"\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51",6,"\uBD5A",9,"\uBD65\uBD66\uBD67\uBD69",22,"\uBD82\uBD83\uBD85\uBD86\uBD8B",4,"\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D",6,"\uBDA5",10,"\uBDB1",6,"\uBDB9",24],["9541","\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD",11,"\uBDEA",5,"\uBDF1"],["9561","\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9",6,"\uBE01\uBE02\uBE04\uBE06",5,"\uBE0E\uBE0F\uBE11\uBE12\uBE13"],["9581","\uBE15",6,"\uBE1E\uBE20",35,"\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F",4,"\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B",4,"\uBE72\uBE76",4,"\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85",6,"\uBE8E\uBE92",5,"\uBE9A",13,"\uBEA9",14],["9641","\uBEB8",23,"\uBED2\uBED3"],["9661","\uBED5\uBED6\uBED9",6,"\uBEE1\uBEE2\uBEE6",5,"\uBEED",8],["9681","\uBEF6",10,"\uBF02",5,"\uBF0A",13,"\uBF1A\uBF1E",33,"\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49",6,"\uBF52\uBF53\uBF54\uBF56",44],["9741","\uBF83",16,"\uBF95",8],["9761","\uBF9E",17,"\uBFB1",7],["9781","\uBFB9",11,"\uBFC6",5,"\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5",6,"\uBFDD\uBFDE\uBFE0\uBFE2",89,"\uC03D\uC03E\uC03F"],["9841","\uC040",16,"\uC052",5,"\uC059\uC05A\uC05B"],["9861","\uC05D\uC05E\uC05F\uC061",6,"\uC06A",15],["9881","\uC07A",21,"\uC092\uC093\uC095\uC096\uC097\uC099",6,"\uC0A2\uC0A4\uC0A6",5,"\uC0AE\uC0B1\uC0B2\uC0B7",4,"\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1",6,"\uC0DA\uC0DE",5,"\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED",6,"\uC0F6\uC0F8\uC0FA",5,"\uC101\uC102\uC103\uC105\uC106\uC107\uC109",6,"\uC111\uC112\uC113\uC114\uC116",5,"\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],["9941","\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141",6,"\uC14A\uC14E",5,"\uC156\uC157"],["9961","\uC159\uC15A\uC15B\uC15D",6,"\uC166\uC16A",5,"\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],["9981","\uC17C",8,"\uC186",5,"\uC18F\uC191\uC192\uC193\uC195\uC197",4,"\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1",11,"\uC1BE",5,"\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD",6,"\uC1D5\uC1D6\uC1D9",6,"\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9",6,"\uC1F2\uC1F4",7,"\uC1FE\uC1FF\uC201\uC202\uC203\uC205",6,"\uC20E\uC210\uC212",5,"\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],["9a41","\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235",16],["9a61","\uC246\uC247\uC249",6,"\uC252\uC253\uC255\uC256\uC257\uC259",6,"\uC261\uC262\uC263\uC264\uC266"],["9a81","\uC267",4,"\uC26E\uC26F\uC271\uC272\uC273\uC275",6,"\uC27E\uC280\uC282",5,"\uC28A",5,"\uC291",6,"\uC299\uC29A\uC29C\uC29E",5,"\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE",5,"\uC2B6\uC2B8\uC2BA",33,"\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5",5,"\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301",6,"\uC30A\uC30B\uC30E\uC30F"],["9b41","\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D",6,"\uC326\uC327\uC32A",8],["9b61","\uC333",17,"\uC346",7],["9b81","\uC34E",25,"\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373",4,"\uC37A\uC37B\uC37E",5,"\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D",50,"\uC3C1",22,"\uC3DA"],["9c41","\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3",4,"\uC3EA\uC3EB\uC3EC\uC3EE",5,"\uC3F6\uC3F7\uC3F9",5],["9c61","\uC3FF",8,"\uC409",6,"\uC411",9],["9c81","\uC41B",8,"\uC425",6,"\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435",6,"\uC43E",9,"\uC449",26,"\uC466\uC467\uC469\uC46A\uC46B\uC46D",6,"\uC476\uC477\uC478\uC47A",5,"\uC481",18,"\uC495",6,"\uC49D",12],["9d41","\uC4AA",13,"\uC4B9\uC4BA\uC4BB\uC4BD",8],["9d61","\uC4C6",25],["9d81","\uC4E0",8,"\uC4EA",5,"\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502",9,"\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515",6,"\uC51D",10,"\uC52A\uC52B\uC52D\uC52E\uC52F\uC531",6,"\uC53A\uC53C\uC53E",5,"\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569",6,"\uC572\uC576",5,"\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],["9e41","\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1",7,"\uC5AA",9,"\uC5B6"],["9e61","\uC5B7\uC5BA\uC5BF",4,"\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9",6,"\uC5E2\uC5E4\uC5E6\uC5E7"],["9e81","\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611",6,"\uC61A\uC61D",6,"\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649",6,"\uC652\uC656",5,"\uC65E\uC65F\uC661",10,"\uC66D\uC66E\uC670\uC672",5,"\uC67A\uC67B\uC67D\uC67E\uC67F\uC681",6,"\uC68A\uC68C\uC68E",5,"\uC696\uC697\uC699\uC69A\uC69B\uC69D",6,"\uC6A6"],["9f41","\uC6A8\uC6AA",5,"\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB",4,"\uC6C2\uC6C4\uC6C6",5,"\uC6CE"],["9f61","\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5",6,"\uC6DE\uC6DF\uC6E2",5,"\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],["9f81","\uC6F3",4,"\uC6FA\uC6FB\uC6FC\uC6FE",5,"\uC706\uC707\uC709\uC70A\uC70B\uC70D",6,"\uC716\uC718\uC71A",5,"\uC722\uC723\uC725\uC726\uC727\uC729",6,"\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745",4,"\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761",6,"\uC769\uC76A\uC76C",7,"\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B",4,"\uC7A2\uC7A7",4,"\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],["a041","\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2",5,"\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1",6,"\uC7D9\uC7DA\uC7DB\uC7DC"],["a061","\uC7DE",5,"\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED",13],["a081","\uC7FB",4,"\uC802\uC803\uC805\uC806\uC807\uC809\uC80B",4,"\uC812\uC814\uC817",4,"\uC81E\uC81F\uC821\uC822\uC823\uC825",6,"\uC82E\uC830\uC832",5,"\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841",6,"\uC84A\uC84B\uC84E",5,"\uC855",26,"\uC872\uC873\uC875\uC876\uC877\uC879\uC87B",4,"\uC882\uC884\uC888\uC889\uC88A\uC88E",5,"\uC895",7,"\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],["a141","\uC8A5\uC8A6\uC8A7\uC8A9",18,"\uC8BE\uC8BF\uC8C0\uC8C1"],["a161","\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD",6,"\uC8D6\uC8D8\uC8DA",5,"\uC8E2\uC8E3\uC8E5"],["a181","\uC8E6",14,"\uC8F6",5,"\uC8FE\uC8FF\uC901\uC902\uC903\uC907",4,"\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008",9,"\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],["a241","\uC910\uC912",5,"\uC919",18],["a261","\uC92D",6,"\uC935",18],["a281","\uC948",7,"\uC952\uC953\uC955\uC956\uC957\uC959",6,"\uC962\uC964",7,"\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],["a341","\uC971\uC972\uC973\uC975",6,"\uC97D",10,"\uC98A\uC98B\uC98D\uC98E\uC98F"],["a361","\uC991",6,"\uC99A\uC99C\uC99E",16],["a381","\uC9AF",16,"\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB",4,"\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01",58,"\uFFE6\uFF3D",32,"\uFFE3"],["a441","\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2",5,"\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],["a461","\uCA05\uCA06\uCA07\uCA0A\uCA0E",5,"\uCA15\uCA16\uCA17\uCA19",12],["a481","\uCA26\uCA27\uCA28\uCA2A",28,"\u3131",93],["a541","\uCA47",4,"\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55",6,"\uCA5E\uCA62",5,"\uCA69\uCA6A"],["a561","\uCA6B",17,"\uCA7E",5,"\uCA85\uCA86"],["a581","\uCA87",16,"\uCA99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03A3",6],["a5e1","\u03B1",16,"\u03C3",6],["a641","\uCAA8",19,"\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],["a661","\uCAC6",5,"\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA",5,"\uCAE1",6],["a681","\uCAE8\uCAE9\uCAEA\uCAEB\uCAED",6,"\uCAF5",18,"\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543",7],["a741","\uCB0B",4,"\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19",6,"\uCB22",7],["a761","\uCB2A",22,"\uCB42\uCB43\uCB44"],["a781","\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51",6,"\uCB5A\uCB5B\uCB5C\uCB5E",5,"\uCB65",7,"\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399",9,"\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0",9,"\u3380",4,"\u33BA",5,"\u3390",4,"\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],["a841","\uCB6D",10,"\uCB7A",14],["a861","\uCB89",18,"\uCB9D",6],["a881","\uCBA4",19,"\uCBB9",11,"\xC6\xD0\xAA\u0126"],["a8a6","\u0132"],["a8a8","\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],["a8b1","\u3260",27,"\u24D0",25,"\u2460",14,"\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],["a941","\uCBC5",14,"\uCBD5",10],["a961","\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA",18],["a981","\uCBFD",14,"\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15",6,"\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200",27,"\u249C",25,"\u2474",14,"\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],["aa41","\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31",6,"\uCC3A\uCC3F",4,"\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],["aa61","\uCC4F",4,"\uCC56\uCC5A",5,"\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69",6,"\uCC71\uCC72"],["aa81","\uCC73\uCC74\uCC76",29,"\u3041",82],["ab41","\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1",6,"\uCCAA\uCCAE",5,"\uCCB6\uCCB7\uCCB9"],["ab61","\uCCBA\uCCBB\uCCBD",6,"\uCCC6\uCCC8\uCCCA",5,"\uCCD1\uCCD2\uCCD3\uCCD5",5],["ab81","\uCCDB",8,"\uCCE5",6,"\uCCED\uCCEE\uCCEF\uCCF1",12,"\u30A1",85],["ac41","\uCCFE\uCCFF\uCD00\uCD02",5,"\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11",6,"\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],["ac61","\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D",11,"\uCD3A",4],["ac81","\uCD3F",28,"\uCD5D\uCD5E\uCD5F\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\uCD61\uCD62\uCD63\uCD65",6,"\uCD6E\uCD70\uCD72",5,"\uCD79",7],["ad61","\uCD81",6,"\uCD89",10,"\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],["ad81","\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA",5,"\uCDB1",18,"\uCDC5"],["ae41","\uCDC6",5,"\uCDCD\uCDCE\uCDCF\uCDD1",16],["ae61","\uCDE2",5,"\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1",6,"\uCDFA\uCDFC\uCDFE",4],["ae81","\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D",6,"\uCE15\uCE16\uCE17\uCE18\uCE1A",5,"\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],["af41","\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36",19],["af61","\uCE4A",13,"\uCE5A\uCE5B\uCE5D\uCE5E\uCE62",5,"\uCE6A\uCE6C"],["af81","\uCE6E",5,"\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D",6,"\uCE86\uCE88\uCE8A",5,"\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],["b041","\uCE9A",5,"\uCEA2\uCEA6",5,"\uCEAE",12],["b061","\uCEBB",5,"\uCEC2",19],["b081","\uCED6",13,"\uCEE6\uCEE7\uCEE9\uCEEA\uCEED",6,"\uCEF6\uCEFA",5,"\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10",7,"\uAC19",4,"\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],["b141","\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09",6,"\uCF12\uCF14\uCF16",5,"\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],["b161","\uCF25",6,"\uCF2E\uCF32",5,"\uCF39",11],["b181","\uCF45",14,"\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D",6,"\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],["b241","\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79",6,"\uCF81\uCF82\uCF83\uCF84\uCF86",5,"\uCF8D"],["b261","\uCF8E",18,"\uCFA2",5,"\uCFA9"],["b281","\uCFAA",5,"\uCFB1",18,"\uCFC5",6,"\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],["b341","\uCFCC",19,"\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],["b361","\uCFEA",5,"\uCFF2\uCFF4\uCFF6",5,"\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005",5],["b381","\uD00B",5,"\uD012",5,"\uD019",19,"\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB",4,"\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],["b441","\uD02E",5,"\uD036\uD037\uD039\uD03A\uD03B\uD03D",6,"\uD046\uD048\uD04A",5],["b461","\uD051\uD052\uD053\uD055\uD056\uD057\uD059",6,"\uD061",10,"\uD06E\uD06F"],["b481","\uD071\uD072\uD073\uD075",6,"\uD07E\uD07F\uD080\uD082",18,"\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB",4,"\uB2F3\uB2F4\uB2F5\uB2F7",4,"\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],["b541","\uD095",14,"\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD",5],["b561","\uD0B3\uD0B6\uD0B8\uD0BA",5,"\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA",5,"\uD0D2\uD0D6",4],["b581","\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5",6,"\uD0EE\uD0F2",5,"\uD0F9",11,"\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],["b641","\uD105",7,"\uD10E",17],["b661","\uD120",15,"\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],["b681","\uD13F\uD142\uD146",5,"\uD14E\uD14F\uD151\uD152\uD153\uD155",6,"\uD15E\uD160\uD162",5,"\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],["b741","\uD16E",13,"\uD17D",6,"\uD185\uD186\uD187\uD189\uD18A"],["b761","\uD18B",20,"\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],["b781","\uD1A9",6,"\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1",14,"\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],["b841","\uD1D0",7,"\uD1D9",17],["b861","\uD1EB",8,"\uD1F5\uD1F6\uD1F7\uD1F9",13],["b881","\uD208\uD20A",5,"\uD211",24,"\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE",4,"\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],["b941","\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235",6,"\uD23E\uD240\uD242",5,"\uD249\uD24A\uD24B\uD24C"],["b961","\uD24D",14,"\uD25D",6,"\uD265\uD266\uD267\uD268"],["b981","\uD269",22,"\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14",4,"\uBC1B",4,"\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],["ba41","\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296",5,"\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5",6,"\uD2AD"],["ba61","\uD2AE\uD2AF\uD2B0\uD2B2",5,"\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3",4,"\uD2CA\uD2CC",5],["ba81","\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD",6,"\uD2E6",9,"\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],["bb41","\uD2FB",4,"\uD302\uD304\uD306",5,"\uD30F\uD311\uD312\uD313\uD315\uD317",4,"\uD31E\uD322\uD323"],["bb61","\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331",6,"\uD33A\uD33E",5,"\uD346\uD347\uD348\uD349"],["bb81","\uD34A",31,"\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],["bc41","\uD36A",17,"\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],["bc61","\uD388\uD389\uD38A\uD38B\uD38E\uD392",5,"\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1",6,"\uD3AA\uD3AC\uD3AE"],["bc81","\uD3AF",4,"\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD",6,"\uD3C6\uD3C7\uD3CA",5,"\uD3D1",5,"\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C",4,"\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],["bd41","\uD3D7\uD3D9",7,"\uD3E2\uD3E4",7,"\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],["bd61","\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402",5,"\uD409",13],["bd81","\uD417",5,"\uD41E",25,"\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],["be41","\uD438",7,"\uD441\uD442\uD443\uD445",14],["be61","\uD454",7,"\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465",7,"\uD46E\uD470\uD471\uD472"],["be81","\uD473",4,"\uD47A\uD47B\uD47D\uD47E\uD481\uD483",4,"\uD48A\uD48C\uD48E",5,"\uD495",8,"\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4",6,"\uC5CC\uC5CE"],["bf41","\uD49E",10,"\uD4AA",14],["bf61","\uD4B9",18,"\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],["bf81","\uD4D6",5,"\uD4DD\uD4DE\uD4E0",7,"\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1",6,"\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC",5,"\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],["c041","\uD4FE",5,"\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D",6,"\uD516\uD518",5],["c061","\uD51E",25],["c081","\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545",6,"\uD54E\uD550\uD552",5,"\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751",7,"\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],["c141","\uD564\uD566\uD567\uD56A\uD56C\uD56E",5,"\uD576\uD577\uD579\uD57A\uD57B\uD57D",6,"\uD586\uD58A\uD58B"],["c161","\uD58C\uD58D\uD58E\uD58F\uD591",19,"\uD5A6\uD5A7"],["c181","\uD5A8",31,"\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],["c241","\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3",4,"\uD5DA\uD5DC\uD5DE",5,"\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],["c261","\uD5EF",4,"\uD5F6\uD5F8\uD5FA",5,"\uD602\uD603\uD605\uD606\uD607\uD609",6,"\uD612"],["c281","\uD616",5,"\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625",7,"\uD62E",9,"\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],["c341","\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D",4],["c361","\uD662",4,"\uD668\uD66A",5,"\uD672\uD673\uD675",11],["c381","\uD681\uD682\uD684\uD686",5,"\uD68E\uD68F\uD691\uD692\uD693\uD695",7,"\uD69E\uD6A0\uD6A2",5,"\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],["c441","\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1",7,"\uD6BA\uD6BC",7,"\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],["c461","\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA",5,"\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9",4],["c481","\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6",5,"\uD6FE\uD6FF\uD701\uD702\uD703\uD705",11,"\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],["c541","\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721",6,"\uD72A\uD72C\uD72E",5,"\uD736\uD737\uD739"],["c561","\uD73A\uD73B\uD73D",6,"\uD745\uD746\uD748\uD74A",5,"\uD752\uD753\uD755\uD75A",4],["c581","\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775",6,"\uD77E\uD77F\uD780\uD782",5,"\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],["c641","\uD78D\uD78E\uD78F\uD791",6,"\uD79A\uD79C\uD79E",5],["c6a1","\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],["c7a1","\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],["c8a1","\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],["caa1","\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],["cba1","\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],["cca1","\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],["cda1","\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],["cea1","\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],["cfa1","\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],["d0a1","\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],["d1a1","\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E",5,"\u90A3\uF914",4,"\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],["d2a1","\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928",4,"\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933",5,"\u99D1\uF939",10,"\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A",7,"\u5AE9\u8A25\u677B\u7D10\uF952",5,"\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],["d3a1","\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],["d4a1","\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],["d5a1","\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],["d6a1","\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],["d7a1","\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],["d8a1","\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],["d9a1","\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],["daa1","\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],["dba1","\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],["dca1","\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],["dda1","\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],["dea1","\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],["dfa1","\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],["e0a1","\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],["e1a1","\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],["e2a1","\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],["e3a1","\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],["e4a1","\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],["e5a1","\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],["e6a1","\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],["e7a1","\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],["e8a1","\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],["e9a1","\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],["eaa1","\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],["eba1","\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],["eca1","\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],["eda1","\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],["eea1","\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],["efa1","\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],["f0a1","\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],["f1a1","\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],["f2a1","\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],["f3a1","\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],["f4a1","\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],["f5a1","\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],["f6a1","\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],["f7a1","\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],["f8a1","\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],["f9a1","\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],["faa1","\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],["fba1","\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],["fca1","\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],["fda1","\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]]});var eu=M((nq,IS)=>{IS.exports=[["0","\0",127],["a140","\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],["a1a1","\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62",4,"\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],["a240","\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581",7,"\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],["a2a1","\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uFF21",25,"\uFF41",21],["a340","\uFF57\uFF58\uFF59\uFF5A\u0391",16,"\u03A3",6,"\u03B1",16,"\u03C3",6,"\u3105",10],["a3a1","\u3110",25,"\u02D9\u02C9\u02CA\u02C7\u02CB"],["a3e1","\u20AC"],["a440","\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],["a4a1","\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],["a540","\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],["a5a1","\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],["a6a1","\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],["a740","\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],["a7a1","\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],["a840","\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],["a8a1","\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],["a9a1","\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],["aa40","\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],["aaa1","\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],["ab40","\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],["aba1","\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],["ac40","\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],["aca1","\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],["ad40","\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],["ada1","\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],["ae40","\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],["af40","\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],["afa1","\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],["b0a1","\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],["b140","\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],["b1a1","\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],["b240","\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],["b2a1","\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],["b340","\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],["b3a1","\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],["b440","\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],["b4a1","\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],["b540","\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],["b5a1","\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],["b640","\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],["b6a1","\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],["b740","\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],["b7a1","\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],["b840","\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],["b8a1","\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],["b940","\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],["b9a1","\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],["ba40","\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],["baa1","\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],["bb40","\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],["bba1","\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],["bc40","\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],["bca1","\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],["bd40","\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],["bda1","\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],["be40","\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],["bea1","\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],["bf40","\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],["bfa1","\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],["c040","\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],["c0a1","\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],["c140","\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],["c1a1","\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],["c240","\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],["c2a1","\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],["c340","\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],["c3a1","\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],["c440","\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],["c4a1","\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],["c540","\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],["c5a1","\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],["c640","\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],["c940","\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],["c9a1","\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],["ca40","\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],["caa1","\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],["cb40","\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],["cba1","\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],["cc40","\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],["cca1","\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],["cd40","\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],["cda1","\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],["ce40","\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],["cea1","\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],["cf40","\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],["cfa1","\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],["d040","\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],["d0a1","\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],["d140","\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],["d1a1","\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],["d240","\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],["d340","\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],["d3a1","\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],["d440","\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],["d540","\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],["d5a1","\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],["d640","\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],["d6a1","\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],["d740","\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],["d7a1","\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],["d840","\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],["d8a1","\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],["d940","\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],["d9a1","\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],["da40","\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],["daa1","\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],["db40","\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],["dba1","\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],["dc40","\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],["dca1","\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],["dd40","\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],["de40","\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],["dea1","\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],["df40","\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],["dfa1","\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],["e040","\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],["e0a1","\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],["e140","\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],["e1a1","\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],["e240","\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],["e2a1","\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],["e3a1","\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],["e440","\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],["e4a1","\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],["e540","\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],["e5a1","\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],["e640","\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],["e6a1","\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],["e740","\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],["e840","\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],["e8a1","\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],["e940","\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],["e9a1","\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],["ea40","\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],["eaa1","\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],["eba1","\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],["ec40","\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],["eca1","\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],["ed40","\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],["eda1","\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],["ee40","\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],["eea1","\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],["ef40","\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],["efa1","\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],["f040","\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],["f0a1","\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],["f140","\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],["f1a1","\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],["f240","\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],["f2a1","\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],["f340","\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],["f3a1","\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],["f440","\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],["f540","\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],["f5a1","\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],["f640","\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],["f6a1","\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],["f740","\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],["f7a1","\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],["f840","\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],["f8a1","\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],["f940","\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],["f9a1","\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]]});var Wf=M((iq,AS)=>{AS.exports=[["8740","\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],["8767","\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],["87a1","\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],["8840","\u31C0",4,"\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],["88a1","\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],["8940","\u{2A3A9}\u{21145}"],["8943","\u650A"],["8946","\u4E3D\u6EDD\u9D4E\u91DF"],["894c","\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],["89a1","\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],["89ab","\u918C\u78B8\u915E\u80BC"],["89b0","\u8D0B\u80F6\u{209E7}"],["89b5","\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],["89c1","\u6E9A\u823E\u7519"],["89c5","\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],["8a40","\u{27D84}\u5525"],["8a43","\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],["8a64","\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],["8a76","\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],["8aa1","\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],["8aac","\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],["8ab2","\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],["8abb","\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],["8ac9","\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],["8ace","\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],["8adf","\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],["8af6","\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],["8b40","\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],["8b55","\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],["8ba1","\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],["8bde","\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],["8c40","\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],["8ca1","\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],["8ca7","\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],["8cc9","\u9868\u676B\u4276\u573D"],["8cce","\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],["8ce6","\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],["8d40","\u{20B9F}"],["8d42","\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],["8da1","\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],["8e40","\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],["8ea1","\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],["8f40","\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],["8fa1","\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],["9040","\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],["90a1","\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],["9140","\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],["91a1","\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],["9240","\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],["92a1","\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],["9340","\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],["93a1","\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],["9440","\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],["94a1","\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],["9540","\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],["95a1","\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],["9640","\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],["96a1","\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],["9740","\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],["97a1","\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],["9840","\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],["98a1","\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],["99a1","\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],["9a40","\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],["9aa1","\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],["9b40","\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],["9b62","\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],["9ba1","\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],["9c40","\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],["9ca1","\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],["9d40","\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],["9da1","\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],["9e40","\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],["9ea1","\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],["9ead","\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],["9ec5","\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],["9ef5","\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],["9f40","\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],["9f4f","\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],["9fa1","\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],["9fae","\u9159\u9681\u915C"],["9fb2","\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],["9fc1","\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],["9fc9","\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],["9fdb","\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],["9fe7","\u6BFA\u8818\u7F78"],["9feb","\u5620\u{2A64A}\u8E77\u9F53"],["9ff0","\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],["a040","\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],["a055","\u{2183B}\u{26E05}"],["a058","\u8A7E\u{2251B}"],["a05b","\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],["a063","\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],["a073","\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],["a0a1","\u5D57\u{28BC2}\u8FDA\u{28E39}"],["a0a6","\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],["a0ae","\u77FE"],["a0b0","\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],["a0d4","\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],["a0e2","\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041",23],["c740","\u3059",58,"\u30A1\u30A2\u30A3\u30A4"],["c7a1","\u30A5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041B",26,"\u0451\u0436",25,"\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],["c8a1","\u9FB0\u5188\u9FB1\u{27607}"],["c8cd","\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],["c8f5","\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],["f9fe","\uFFED"],["fa40","\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],["faa1","\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],["fb40","\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],["fba1","\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],["fc40","\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],["fca1","\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],["fd40","\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],["fda1","\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],["fea1","\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]]});var Qf=M((oq,Kf)=>{"use strict";Kf.exports={shiftjis:{type:"_dbcs",table:function(){return Bf()},encodeAdd:{"\xA5":92,"\u203E":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return Vf()},encodeAdd:{"\xA5":92,"\u203E":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return io()}},gbk:{type:"_dbcs",table:function(){return io().concat(Yl())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return io().concat(Yl())},gb18030:function(){return Gf()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return Zf()}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return eu()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return eu().concat(Wf())},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var Yf=M((Jf,Hs)=>{"use strict";var Xf=[Cf(),Af(),Nf(),$f(),Mf(),Lf(),Hf(),Qf()];for(oo=0;oo{"use strict";var em=require("buffer").Buffer,lo=require("stream").Transform;tm.exports=function(r){r.encodeStream=function(a,t){return new Fa(r.getEncoder(a,t),t)},r.decodeStream=function(a,t){return new ma(r.getDecoder(a,t),t)},r.supportsStreams=!0,r.IconvLiteEncoderStream=Fa,r.IconvLiteDecoderStream=ma,r._collect=ma.prototype.collect};function Fa(r,e){this.conv=r,e=e||{},e.decodeStrings=!1,lo.call(this,e)}Fa.prototype=Object.create(lo.prototype,{constructor:{value:Fa}});Fa.prototype._transform=function(r,e,a){if(typeof r!="string")return a(new Error("Iconv encoding stream needs strings as its input."));try{var t=this.conv.write(r);t&&t.length&&this.push(t),a()}catch(s){a(s)}};Fa.prototype._flush=function(r){try{var e=this.conv.end();e&&e.length&&this.push(e),r()}catch(a){r(a)}};Fa.prototype.collect=function(r){var e=[];return this.on("error",r),this.on("data",function(a){e.push(a)}),this.on("end",function(){r(null,em.concat(e))}),this};function ma(r,e){this.conv=r,e=e||{},e.encoding=this.encoding="utf8",lo.call(this,e)}ma.prototype=Object.create(lo.prototype,{constructor:{value:ma}});ma.prototype._transform=function(r,e,a){if(!em.isBuffer(r))return a(new Error("Iconv decoding stream needs buffers as its input."));try{var t=this.conv.write(r);t&&t.length&&this.push(t,this.encoding),a()}catch(s){a(s)}};ma.prototype._flush=function(r){try{var e=this.conv.end();e&&e.length&&this.push(e,this.encoding),r()}catch(a){r(a)}};ma.prototype.collect=function(r){var e="";return this.on("error",r),this.on("data",function(a){e+=a}),this.on("end",function(){r(null,e)}),this}});var sm=M((lq,am)=>{"use strict";var ct=require("buffer").Buffer;am.exports=function(r){var e=void 0;r.supportsNodeEncodingsExtension=!(ct.from||new ct(0)instanceof Uint8Array),r.extendNodeEncodings=function(){if(!e){if(e={},!r.supportsNodeEncodingsExtension){console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"),console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");return}var t={hex:!0,utf8:!0,"utf-8":!0,ascii:!0,binary:!0,base64:!0,ucs2:!0,"ucs-2":!0,utf16le:!0,"utf-16le":!0};ct.isNativeEncoding=function(n){return n&&t[n.toLowerCase()]};var s=require("buffer").SlowBuffer;if(e.SlowBufferToString=s.prototype.toString,s.prototype.toString=function(n,o,l){return n=String(n||"utf8").toLowerCase(),ct.isNativeEncoding(n)?e.SlowBufferToString.call(this,n,o,l):(typeof o>"u"&&(o=0),typeof l>"u"&&(l=this.length),r.decode(this.slice(o,l),n))},e.SlowBufferWrite=s.prototype.write,s.prototype.write=function(n,o,l,c){if(isFinite(o))isFinite(l)||(c=l,l=void 0);else{var u=c;c=o,o=l,l=u}o=+o||0;var p=this.length-o;if(l?(l=+l,l>p&&(l=p)):l=p,c=String(c||"utf8").toLowerCase(),ct.isNativeEncoding(c))return e.SlowBufferWrite.call(this,n,o,l,c);if(n.length>0&&(l<0||o<0))throw new RangeError("attempt to write beyond buffer bounds");var m=r.encode(n,c);return m.length"u"&&(o=0),typeof l>"u"&&(l=this.length),r.decode(this.slice(o,l),n))},e.BufferWrite=ct.prototype.write,ct.prototype.write=function(n,o,l,c){var u=o,p=l,m=c;if(isFinite(o))isFinite(l)||(c=l,l=void 0);else{var f=c;c=o,o=l,l=f}if(c=String(c||"utf8").toLowerCase(),ct.isNativeEncoding(c))return e.BufferWrite.call(this,n,u,p,m);o=+o||0;var h=this.length-o;if(l?(l=+l,l>h&&(l=h)):l=h,n.length>0&&(l<0||o<0))throw new RangeError("attempt to write beyond buffer bounds");var d=r.encode(n,c);return d.length{"use strict";var im=qa().Buffer,om=Tf(),Je=cm.exports;Je.encodings=null;Je.defaultCharUnicode="\uFFFD";Je.defaultCharSingleByte="?";Je.encode=function(e,a,t){e=""+(e||"");var s=Je.getEncoder(a,t),i=s.write(e),n=s.end();return n&&n.length>0?im.concat([i,n]):i};Je.decode=function(e,a,t){typeof e=="string"&&(Je.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),Je.skipDecodeWarning=!0),e=im.from(""+(e||""),"binary"));var s=Je.getDecoder(a,t),i=s.write(e),n=s.end();return n?i+n:i};Je.encodingExists=function(e){try{return Je.getCodec(e),!0}catch{return!1}};Je.toEncoding=Je.encode;Je.fromEncoding=Je.decode;Je._codecDataCache={};Je.getCodec=function(e){Je.encodings||(Je.encodings=Yf());for(var a=Je._canonicalizeEncoding(e),t={};;){var s=Je._codecDataCache[a];if(s)return s;var i=Je.encodings[a];switch(typeof i){case"string":a=i;break;case"object":for(var n in i)t[n]=i[n];t.encodingName||(t.encodingName=a),a=i.type;break;case"function":return t.encodingName||(t.encodingName=a),s=new i(t,Je),Je._codecDataCache[t.encodingName]=s,s;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+a+"')")}}};Je._canonicalizeEncoding=function(r){return(""+r).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};Je.getEncoder=function(e,a){var t=Je.getCodec(e),s=new t.encoder(a,t);return t.bomAware&&a&&a.addBOM&&(s=new om.PrependBOM(s,a)),s};Je.getDecoder=function(e,a){var t=Je.getCodec(e),s=new t.decoder(a,t);return t.bomAware&&!(a&&a.stripBOM===!1)&&(s=new om.StripBOM(s,a)),s};var nm=typeof process<"u"&&process.versions&&process.versions.node;nm&&(tu=nm.split(".").map(Number),(tu[0]>0||tu[1]>=10)&&rm()(Je),sm()(Je));var tu});var uo=M((pq,lm)=>{"use strict";lm.exports=NS;function jS(r){for(var e=r.listeners("data"),a=0;a{"use strict";var um=zS(),DS=$s(),La=Da(),$S=ru(),qS=uo();dm.exports=LS;var MS=/^Encoding not recognized: /;function FS(r){if(!r)return null;try{return $S.getDecoder(r)}catch(e){throw MS.test(e.message)?La(415,"specified encoding unsupported",{encoding:r,type:"encoding.unsupported"}):e}}function LS(r,e,a){var t=a,s=e||{};if(r===void 0)throw new TypeError("argument stream is required");if(typeof r!="object"||r===null||typeof r.on!="function")throw new TypeError("argument stream must be a stream");if((e===!0||typeof e=="string")&&(s={encoding:e}),typeof e=="function"&&(t=e,s={}),t!==void 0&&typeof t!="function")throw new TypeError("argument callback must be a function");if(!t&&!global.Promise)throw new TypeError("argument callback is required");var i=s.encoding!==!0?s.encoding:"utf-8",n=DS.parse(s.limit),o=s.length!=null&&!isNaN(s.length)?parseInt(s.length,10):null;return t?pm(r,i,o,n,HS(t)):new Promise(function(c,u){pm(r,i,o,n,function(m,f){if(m)return u(m);c(f)})})}function US(r){qS(r),typeof r.pause=="function"&&r.pause()}function pm(r,e,a,t,s){var i=!1,n=!0;if(t!==null&&a!==null&&a>t)return p(La(413,"request entity too large",{expected:a,length:a,limit:t,type:"entity.too.large"}));var o=r._readableState;if(r._decoder||o&&(o.encoding||o.decoder))return p(La(500,"stream encoding should not be set",{type:"stream.encoding.set"}));if(typeof r.readable<"u"&&!r.readable)return p(La(500,"stream is not readable",{type:"stream.not.readable"}));var l=0,c;try{c=FS(e)}catch(v){return p(v)}var u=c?"":[];r.on("aborted",m),r.on("close",d),r.on("data",f),r.on("end",h),r.on("error",h),n=!1;function p(){for(var v=new Array(arguments.length),g=0;gt?p(La(413,"request entity too large",{limit:t,received:l,type:"entity.too.large"})):c?u+=c.write(v):u.push(v))}function h(v){if(!i){if(v)return p(v);if(a!==null&&l!==a)p(La(400,"request size did not match content length",{expected:a,length:a,received:l,type:"request.size.invalid"}));else{var g=c?u+(c.end()||""):Buffer.concat(u);p(null,g)}}}function d(){u=null,r.removeListener("aborted",m),r.removeListener("data",f),r.removeListener("end",h),r.removeListener("error",h),r.removeListener("close",d)}}function zS(){try{return require("async_hooks")}catch{return{}}}function HS(r){var e;return um.AsyncResource&&(e=new um.AsyncResource(r.name||"bound-anonymous-fn")),!e||!e.runInAsyncScope?r:e.runInAsyncScope.bind(e,r,null)}});var hm=M((fq,mm)=>{"use strict";mm.exports=BS;function BS(r,e){if(!Array.isArray(r))throw new TypeError("arg must be an array of [ee, events...] arrays");for(var a=[],t=0;t{"use strict";au.exports=ZS;au.exports.isFinished=ym;var vm=JS(),gm=hm(),GS=typeof setImmediate=="function"?setImmediate:function(r){process.nextTick(r.bind.apply(r,arguments))};function ZS(r,e){return ym(r)!==!1?(GS(e,null,r),r):(KS(r,YS(e)),r)}function ym(r){var e=r.socket;if(typeof r.finished=="boolean")return!!(r.finished||e&&!e.writable);if(typeof r.complete=="boolean")return!!(r.upgrade||!e||!e.readable||r.complete&&!r.readable)}function WS(r,e){var a,t,s=!1;function i(o){a.cancel(),t.cancel(),s=!0,e(o)}a=t=gm([[r,"end","finish"]],i);function n(o){r.removeListener("socket",n),!s&&a===t&&(t=gm([[o,"error","close"]],i))}if(r.socket){n(r.socket);return}r.on("socket",n),r.socket===void 0&&XS(r,n)}function KS(r,e){var a=r.__onFinished;(!a||!a.queue)&&(a=r.__onFinished=QS(r),WS(r,a)),a.queue.push(e)}function QS(r){function e(a){if(r.__onFinished===e&&(r.__onFinished=null),!!e.queue){var t=e.queue;e.queue=null;for(var s=0;s{"use strict";var ha=Da(),eP=Tl(),tP=fm(),bm=ru(),xm=Xn(),rP=uo(),_m=require("zlib");Em.exports=aP;function aP(r,e,a,t,s,i){var n,o=i,l;r._body=!0;var c=o.encoding!==null?o.encoding:null,u=o.verify;try{l=sP(r,s,o.inflate),n=l.length,l.length=void 0}catch(p){return a(p)}if(o.length=n,o.encoding=u?null:c,o.encoding===null&&c!==null&&!bm.encodingExists(c))return a(ha(415,'unsupported charset "'+c.toUpperCase()+'"',{charset:c.toLowerCase(),type:"charset.unsupported"}));s("read body"),tP(l,o,function(p,m){if(p){var f;p.type==="encoding.unsupported"?f=ha(415,'unsupported charset "'+c.toUpperCase()+'"',{charset:c.toLowerCase(),type:"charset.unsupported"}):f=ha(400,p),l!==r&&(rP(r),eP(l,!0)),nP(r,function(){a(ha(400,f))});return}if(u)try{s("verify body"),u(r,e,m,c)}catch(d){a(ha(403,d,{body:m,type:d.type||"entity.verify.failed"}));return}var h=m;try{s("parse body"),h=typeof m!="string"&&c!==null?bm.decode(m,c):m,r.body=t(h)}catch(d){a(ha(400,d,{body:h,type:d.type||"entity.parse.failed"}));return}a()})}function sP(r,e,a){var t=(r.headers["content-encoding"]||"identity").toLowerCase(),s=r.headers["content-length"],i;if(e('content-encoding "%s"',t),a===!1&&t!=="identity")throw ha(415,"content encoding unsupported",{encoding:t,type:"encoding.unsupported"});switch(t){case"deflate":i=_m.createInflate(),e("inflate body"),r.pipe(i);break;case"gzip":i=_m.createGunzip(),e("gunzip body"),r.pipe(i);break;case"identity":i=r,i.length=s;break;default:throw ha(415,'unsupported content encoding "'+t+'"',{encoding:t,type:"encoding.unsupported"})}return i}function nP(r,e){xm.isFinished(r)?e(null):(xm(r,e),r.resume())}});var Rm=M(su=>{var wm=/; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g,iP=/^[\u0020-\u007e\u0080-\u00ff]+$/,Pm=/^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/,oP=/\\([\u0000-\u007f])/g,cP=/([\\"])/g,lP=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,Sm=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,uP=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;su.format=pP;su.parse=dP;function pP(r){if(!r||typeof r!="object")throw new TypeError("argument obj is required");var e=r.parameters,a=r.subtype,t=r.suffix,s=r.type;if(!s||!Sm.test(s))throw new TypeError("invalid type");if(!a||!lP.test(a))throw new TypeError("invalid subtype");var i=s+"/"+a;if(t){if(!Sm.test(t))throw new TypeError("invalid suffix");i+="+"+t}if(e&&typeof e=="object")for(var n,o=Object.keys(e).sort(),l=0;l0&&!iP.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(cP,"\\$1")+'"'}function hP(r){var e=uP.exec(r.toLowerCase());if(!e)throw new TypeError("invalid media type");var a=e[1],t=e[2],s,i=t.lastIndexOf("+");i!==-1&&(s=t.substr(i+1),t=t.substr(0,i));var n={type:a,subtype:t,suffix:s};return n}});var Tm=M((gq,vP)=>{vP.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var Om=M((yq,km)=>{km.exports=Tm()});var nu=M(Dt=>{"use strict";var po=Om(),gP=require("path").extname,Cm=/^\s*([^;\s]*)(?:;|\s|$)/,yP=/^text\//i;Dt.charset=Im;Dt.charsets={lookup:Im};Dt.contentType=bP;Dt.extension=xP;Dt.extensions=Object.create(null);Dt.lookup=_P;Dt.types=Object.create(null);EP(Dt.extensions,Dt.types);function Im(r){if(!r||typeof r!="string")return!1;var e=Cm.exec(r),a=e&&po[e[1].toLowerCase()];return a&&a.charset?a.charset:e&&yP.test(e[1])?"UTF-8":!1}function bP(r){if(!r||typeof r!="string")return!1;var e=r.indexOf("/")===-1?Dt.lookup(r):r;if(!e)return!1;if(e.indexOf("charset")===-1){var a=Dt.charset(e);a&&(e+="; charset="+a.toLowerCase())}return e}function xP(r){if(!r||typeof r!="string")return!1;var e=Cm.exec(r),a=e&&Dt.extensions[e[1].toLowerCase()];return!a||!a.length?!1:a[0]}function _P(r){if(!r||typeof r!="string")return!1;var e=gP("x."+r).toLowerCase().substr(1);return e&&Dt.types[e]||!1}function EP(r,e){var a=["nginx","apache",void 0,"iana"];Object.keys(po).forEach(function(s){var i=po[s],n=i.extensions;if(!(!n||!n.length)){r[s]=n;for(var o=0;ou||c===u&&e[l].substr(0,12)==="application/"))continue}e[l]=s}}})}});var Vs=M((xq,Bs)=>{"use strict";var Am=Rm(),wP=nu();Bs.exports=SP;Bs.exports.is=jm;Bs.exports.hasBody=Nm;Bs.exports.normalize=Dm;Bs.exports.match=$m;function jm(r,e){var a,t=e,s=RP(r);if(!s)return!1;if(t&&!Array.isArray(t))for(t=new Array(arguments.length-1),a=0;a2){a=new Array(arguments.length-1);for(var t=0;t{"use strict";var TP=$s(),kP=Ln(),OP=Da(),va=tr()("body-parser:json"),CP=Jn(),Mm=Vs();Lm.exports=jP;var IP=/^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/,qm="#",AP=/#+/g;function jP(r){var e=r||{},a=typeof e.limit!="number"?TP.parse(e.limit||"100kb"):e.limit,t=e.inflate!==!1,s=e.reviver,i=e.strict!==!1,n=e.type||"application/json",o=e.verify||!1;if(o!==!1&&typeof o!="function")throw new TypeError("option verify must be function");var l=typeof n!="function"?qP(n):n;function c(u){if(u.length===0)return{};if(i){var p=DP(u);if(p!=="{"&&p!=="[")throw va("strict violation"),NP(u,p)}try{return va("parse json"),JSON.parse(u,s)}catch(m){throw Fm(m,{message:m.message,stack:m.stack})}}return function(p,m,f){if(p._body){va("body already parsed"),f();return}if(p.body=p.body||{},!Mm.hasBody(p)){va("skip empty body"),f();return}if(va("content-type %j",p.headers["content-type"]),!l(p)){va("skip parsing"),f();return}var h=$P(p)||"utf-8";if(h.slice(0,4)!=="utf-"){va("invalid charset"),f(OP(415,'unsupported charset "'+h.toUpperCase()+'"',{charset:h,type:"charset.unsupported"}));return}CP(p,m,f,c,va,{encoding:h,inflate:t,limit:a,verify:o})}}function NP(r,e){var a=r.indexOf(e),t="";if(a!==-1){t=r.substring(0,a)+qm;for(var s=a+1;s{"use strict";var MP=$s(),Yn=tr()("body-parser:raw"),FP=Jn(),zm=Vs();Hm.exports=LP;function LP(r){var e=r||{},a=e.inflate!==!1,t=typeof e.limit!="number"?MP.parse(e.limit||"100kb"):e.limit,s=e.type||"application/octet-stream",i=e.verify||!1;if(i!==!1&&typeof i!="function")throw new TypeError("option verify must be function");var n=typeof s!="function"?UP(s):s;function o(l){return l}return function(c,u,p){if(c._body){Yn("body already parsed"),p();return}if(c.body=c.body||{},!zm.hasBody(c)){Yn("skip empty body"),p();return}if(Yn("content-type %j",c.headers["content-type"]),!n(c)){Yn("skip parsing"),p();return}FP(c,u,p,o,Yn,{encoding:null,inflate:a,limit:t,verify:i})}}function UP(r){return function(a){return!!zm(a,r)}}});var Zm=M((wq,Gm)=>{"use strict";var zP=$s(),HP=Ln(),ei=tr()("body-parser:text"),BP=Jn(),Vm=Vs();Gm.exports=VP;function VP(r){var e=r||{},a=e.defaultCharset||"utf-8",t=e.inflate!==!1,s=typeof e.limit!="number"?zP.parse(e.limit||"100kb"):e.limit,i=e.type||"text/plain",n=e.verify||!1;if(n!==!1&&typeof n!="function")throw new TypeError("option verify must be function");var o=typeof i!="function"?ZP(i):i;function l(c){return c}return function(u,p,m){if(u._body){ei("body already parsed"),m();return}if(u.body=u.body||{},!Vm.hasBody(u)){ei("skip empty body"),m();return}if(ei("content-type %j",u.headers["content-type"]),!o(u)){ei("skip parsing"),m();return}var f=GP(u)||a;BP(u,p,m,l,ei,{encoding:f,inflate:t,limit:s,verify:n})}}function GP(r){try{return(HP.parse(r).parameters.charset||"").toLowerCase()}catch{return}}function ZP(r){return function(a){return!!Vm(a,r)}}});var Ua=M((Sq,Wm)=>{"use strict";Wm.exports=TypeError});var Qm=M((Pq,Km)=>{Km.exports=require("util").inspect});var ni=M((Rq,vh)=>{var hu=typeof Map=="function"&&Map.prototype,iu=Object.getOwnPropertyDescriptor&&hu?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mo=hu&&iu&&typeof iu.get=="function"?iu.get:null,Xm=hu&&Map.prototype.forEach,vu=typeof Set=="function"&&Set.prototype,ou=Object.getOwnPropertyDescriptor&&vu?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,ho=vu&&ou&&typeof ou.get=="function"?ou.get:null,Jm=vu&&Set.prototype.forEach,WP=typeof WeakMap=="function"&&WeakMap.prototype,ri=WP?WeakMap.prototype.has:null,KP=typeof WeakSet=="function"&&WeakSet.prototype,ai=KP?WeakSet.prototype.has:null,QP=typeof WeakRef=="function"&&WeakRef.prototype,Ym=QP?WeakRef.prototype.deref:null,XP=Boolean.prototype.valueOf,JP=Object.prototype.toString,YP=Function.prototype.toString,eR=String.prototype.match,gu=String.prototype.slice,ga=String.prototype.replace,tR=String.prototype.toUpperCase,eh=String.prototype.toLowerCase,lh=RegExp.prototype.test,th=Array.prototype.concat,Ar=Array.prototype.join,rR=Array.prototype.slice,rh=Math.floor,uu=typeof BigInt=="function"?BigInt.prototype.valueOf:null,cu=Object.getOwnPropertySymbols,pu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,Gs=typeof Symbol=="function"&&typeof Symbol.iterator=="object",si=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===Gs||!0)?Symbol.toStringTag:null,uh=Object.prototype.propertyIsEnumerable,ah=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(r){return r.__proto__}:null);function sh(r,e){if(r===1/0||r===-1/0||r!==r||r&&r>-1e3&&r<1e3||lh.call(/e/,e))return e;var a=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof r=="number"){var t=r<0?-rh(-r):rh(r);if(t!==r){var s=String(t),i=gu.call(e,s.length+1);return ga.call(s,a,"$&_")+"."+ga.call(ga.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return ga.call(e,a,"$&_")}var du=Qm(),nh=du.custom,ih=fh(nh)?nh:null,ph={__proto__:null,double:'"',single:"'"},aR={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};vh.exports=function r(e,a,t,s){var i=a||{};if(Kr(i,"quoteStyle")&&!Kr(ph,i.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Kr(i,"maxStringLength")&&(typeof i.maxStringLength=="number"?i.maxStringLength<0&&i.maxStringLength!==1/0:i.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var n=Kr(i,"customInspect")?i.customInspect:!0;if(typeof n!="boolean"&&n!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Kr(i,"indent")&&i.indent!==null&&i.indent!==" "&&!(parseInt(i.indent,10)===i.indent&&i.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Kr(i,"numericSeparator")&&typeof i.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var o=i.numericSeparator;if(typeof e>"u")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return hh(e,i);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var l=String(e);return o?sh(e,l):l}if(typeof e=="bigint"){var c=String(e)+"n";return o?sh(e,c):c}var u=typeof i.depth>"u"?5:i.depth;if(typeof t>"u"&&(t=0),t>=u&&u>0&&typeof e=="object")return fu(e)?"[Array]":"[Object]";var p=_R(i,t);if(typeof s>"u")s=[];else if(mh(s,e)>=0)return"[Circular]";function m(R,j,z){if(j&&(s=rR.call(s),s.push(j)),z){var B={depth:i.depth};return Kr(i,"quoteStyle")&&(B.quoteStyle=i.quoteStyle),r(R,B,t+1,s)}return r(R,i,t+1,s)}if(typeof e=="function"&&!oh(e)){var f=dR(e),h=fo(e,m);return"[Function"+(f?": "+f:" (anonymous)")+"]"+(h.length>0?" { "+Ar.call(h,", ")+" }":"")}if(fh(e)){var d=Gs?ga.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):pu.call(e);return typeof e=="object"&&!Gs?ti(d):d}if(yR(e)){for(var v="<"+eh.call(String(e.nodeName)),g=e.attributes||[],b=0;b",v}if(fu(e)){if(e.length===0)return"[]";var E=fo(e,m);return p&&!xR(E)?"["+mu(E,p)+"]":"[ "+Ar.call(E,", ")+" ]"}if(iR(e)){var k=fo(e,m);return!("cause"in Error.prototype)&&"cause"in e&&!uh.call(e,"cause")?"{ ["+String(e)+"] "+Ar.call(th.call("[cause]: "+m(e.cause),k),", ")+" }":k.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+Ar.call(k,", ")+" }"}if(typeof e=="object"&&n){if(ih&&typeof e[ih]=="function"&&du)return du(e,{depth:u-t});if(n!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(fR(e)){var O=[];return Xm&&Xm.call(e,function(R,j){O.push(m(j,e,!0)+" => "+m(R,e))}),ch("Map",mo.call(e),O,p)}if(vR(e)){var P=[];return Jm&&Jm.call(e,function(R){P.push(m(R,e))}),ch("Set",ho.call(e),P,p)}if(mR(e))return lu("WeakMap");if(gR(e))return lu("WeakSet");if(hR(e))return lu("WeakRef");if(cR(e))return ti(m(Number(e)));if(uR(e))return ti(m(uu.call(e)));if(lR(e))return ti(XP.call(e));if(oR(e))return ti(m(String(e)));if(typeof window<"u"&&e===window)return"{ [object Window] }";if(typeof globalThis<"u"&&e===globalThis||typeof global<"u"&&e===global)return"{ [object globalThis] }";if(!nR(e)&&!oh(e)){var I=fo(e,m),$=ah?ah(e)===Object.prototype:e instanceof Object||e.constructor===Object,A=e instanceof Object?"":"null prototype",F=!$&&si&&Object(e)===e&&si in e?gu.call(ya(e),8,-1):A?"Object":"",q=$||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",C=q+(F||A?"["+Ar.call(th.call([],F||[],A||[]),": ")+"] ":"");return I.length===0?C+"{}":p?C+"{"+mu(I,p)+"}":C+"{ "+Ar.call(I,", ")+" }"}return String(e)};function dh(r,e,a){var t=a.quoteStyle||e,s=ph[t];return s+r+s}function sR(r){return ga.call(String(r),/"/g,""")}function za(r){return!si||!(typeof r=="object"&&(si in r||typeof r[si]<"u"))}function fu(r){return ya(r)==="[object Array]"&&za(r)}function nR(r){return ya(r)==="[object Date]"&&za(r)}function oh(r){return ya(r)==="[object RegExp]"&&za(r)}function iR(r){return ya(r)==="[object Error]"&&za(r)}function oR(r){return ya(r)==="[object String]"&&za(r)}function cR(r){return ya(r)==="[object Number]"&&za(r)}function lR(r){return ya(r)==="[object Boolean]"&&za(r)}function fh(r){if(Gs)return r&&typeof r=="object"&&r instanceof Symbol;if(typeof r=="symbol")return!0;if(!r||typeof r!="object"||!pu)return!1;try{return pu.call(r),!0}catch{}return!1}function uR(r){if(!r||typeof r!="object"||!uu)return!1;try{return uu.call(r),!0}catch{}return!1}var pR=Object.prototype.hasOwnProperty||function(r){return r in this};function Kr(r,e){return pR.call(r,e)}function ya(r){return JP.call(r)}function dR(r){if(r.name)return r.name;var e=eR.call(YP.call(r),/^function\s*([\w$]+)/);return e?e[1]:null}function mh(r,e){if(r.indexOf)return r.indexOf(e);for(var a=0,t=r.length;ae.maxStringLength){var a=r.length-e.maxStringLength,t="... "+a+" more character"+(a>1?"s":"");return hh(gu.call(r,0,e.maxStringLength),e)+t}var s=aR[e.quoteStyle||"single"];s.lastIndex=0;var i=ga.call(ga.call(r,s,"\\$1"),/[\x00-\x1f]/g,bR);return dh(i,"single",e)}function bR(r){var e=r.charCodeAt(0),a={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return a?"\\"+a:"\\x"+(e<16?"0":"")+tR.call(e.toString(16))}function ti(r){return"Object("+r+")"}function lu(r){return r+" { ? }"}function ch(r,e,a,t){var s=t?mu(a,t):Ar.call(a,", ");return r+" ("+e+") {"+s+"}"}function xR(r){for(var e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var Hf=M(zf=>{"use strict";var zs=qa().Buffer;zf._dbcs=Wr;var Nt=-1,Uf=-2,sr=-10,Ir=-1e3,Us=new Array(256),Qn=-1;for(so=0;so<256;so++)Us[so]=Nt;var so;function Wr(r,e){if(this.encodingName=r.encodingName,!r)throw new Error("DBCS codec is called without the data.");if(!r.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var a=r.table();this.decodeTables=[],this.decodeTables[0]=Us.slice(0),this.decodeTableSeq=[];for(var t=0;t0;r>>=8)e.push(r&255);e.length==0&&e.push(0);for(var a=this.decodeTables[0],t=e.length-1;t>0;t--){var s=a[e[t]];if(s==Nt)a[e[t]]=Ir-this.decodeTables.length,this.decodeTables.push(a=Us.slice(0));else if(s<=Ir)a=this.decodeTables[Ir-s];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+r.toString(16))}return a};Wr.prototype._addDecodeChunk=function(r){var e=parseInt(r[0],16),a=this._getDecodeTrieNode(e);e=e&255;for(var t=1;t255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+r[0]+": too long"+e)};Wr.prototype._getEncodeBucket=function(r){var e=r>>8;return this.encodeTable[e]===void 0&&(this.encodeTable[e]=Us.slice(0)),this.encodeTable[e]};Wr.prototype._setEncodeChar=function(r,e){var a=this._getEncodeBucket(r),t=r&255;a[t]<=sr?this.encodeTableSeq[sr-a[t]][Qn]=e:a[t]==Nt&&(a[t]=e)};Wr.prototype._setEncodeSequence=function(r,e){var a=r[0],t=this._getEncodeBucket(a),s=a&255,i;t[s]<=sr?i=this.encodeTableSeq[sr-t[s]]:(i={},t[s]!==Nt&&(i[Qn]=t[s]),t[s]=sr-this.encodeTableSeq.length,this.encodeTableSeq.push(i));for(var n=1;n=0?this._setEncodeChar(i,n):i<=Ir?this._fillEncodeTable(Ir-i,n<<8,a):i<=sr&&this._setEncodeSequence(this.decodeTableSeq[sr-i],n))}};function no(r,e){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=e.encodeTable,this.encodeTableSeq=e.encodeTableSeq,this.defaultCharSingleByte=e.defCharSB,this.gb18030=e.gb18030}no.prototype.write=function(r){for(var e=zs.alloc(r.length*(this.gb18030?4:3)),a=this.leadSurrogate,t=this.seqObj,s=-1,i=0,n=0;;){if(s===-1){if(i==r.length)break;var o=r.charCodeAt(i++)}else{var o=s;s=-1}if(55296<=o&&o<57344)if(o<56320)if(a===-1){a=o;continue}else a=o,o=Nt;else a!==-1?(o=65536+(a-55296)*1024+(o-56320),a=-1):o=Nt;else a!==-1&&(s=o,o=Nt,a=-1);var l=Nt;if(t!==void 0&&o!=Nt){var c=t[o];if(typeof c=="object"){t=c;continue}else typeof c=="number"?l=c:c==null&&(c=t[Qn],c!==void 0&&(l=c,s=o));t=void 0}else if(o>=0){var u=this.encodeTable[o>>8];if(u!==void 0&&(l=u[o&255]),l<=sr){t=this.encodeTableSeq[sr-l];continue}if(l==Nt&&this.gb18030){var p=Jl(this.gb18030.uChars,o);if(p!=-1){var l=this.gb18030.gbChars[p]+(o-this.gb18030.uChars[p]);e[n++]=129+Math.floor(l/12600),l=l%12600,e[n++]=48+Math.floor(l/1260),l=l%1260,e[n++]=129+Math.floor(l/10),l=l%10,e[n++]=48+l;continue}}}l===Nt&&(l=this.defaultCharSingleByte),l<256?e[n++]=l:l<65536?(e[n++]=l>>8,e[n++]=l&255):(e[n++]=l>>16,e[n++]=l>>8&255,e[n++]=l&255)}return this.seqObj=t,this.leadSurrogate=a,e.slice(0,n)};no.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var r=zs.alloc(10),e=0;if(this.seqObj){var a=this.seqObj[Qn];a!==void 0&&(a<256?r[e++]=a:(r[e++]=a>>8,r[e++]=a&255)),this.seqObj=void 0}return this.leadSurrogate!==-1&&(r[e++]=this.defaultCharSingleByte,this.leadSurrogate=-1),r.slice(0,e)}};no.prototype.findIdx=Jl;function Xl(r,e){this.nodeIdx=0,this.prevBuf=zs.alloc(0),this.decodeTables=e.decodeTables,this.decodeTableSeq=e.decodeTableSeq,this.defaultCharUnicode=e.defaultCharUnicode,this.gb18030=e.gb18030}Xl.prototype.write=function(r){var e=zs.alloc(r.length*2),a=this.nodeIdx,t=this.prevBuf,s=this.prevBuf.length,i=-this.prevBuf.length,n;s>0&&(t=zs.concat([t,r.slice(0,10)]));for(var o=0,l=0;o=0?r[o]:t[o+s],n=this.decodeTables[a][c];if(!(n>=0))if(n===Nt)o=i,n=this.defaultCharUnicode.charCodeAt(0);else if(n===Uf){var u=i>=0?r.slice(i,o+1):t.slice(i+s,o+1+s),p=(u[0]-129)*12600+(u[1]-48)*1260+(u[2]-129)*10+(u[3]-48),m=Jl(this.gb18030.gbChars,p);n=this.gb18030.uChars[m]+p-this.gb18030.gbChars[m]}else if(n<=Ir){a=Ir-n;continue}else if(n<=sr){for(var f=this.decodeTableSeq[sr-n],h=0;h>8;n=f[f.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+n+" at "+a+"/"+c);if(n>65535){n-=65536;var d=55296+Math.floor(n/1024);e[l++]=d&255,e[l++]=d>>8,n=56320+n%1024}e[l++]=n&255,e[l++]=n>>8,a=0,i=o+1}return this.nodeIdx=a,this.prevBuf=i>=0?r.slice(i):t.slice(i+s),e.slice(0,l).toString("ucs2")};Xl.prototype.end=function(){for(var r="";this.prevBuf.length>0;){r+=this.defaultCharUnicode;var e=this.prevBuf.slice(1);this.prevBuf=zs.alloc(0),this.nodeIdx=0,e.length>0&&(r+=this.write(e))}return this.nodeIdx=0,r};function Jl(r,e){if(r[0]>e)return-1;for(var a=0,t=r.length;a{PS.exports=[["0","\0",128],["a1","\uFF61",62],["8140","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7"],["8180","\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["81c8","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["81da","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["81f0","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["81fc","\u25EF"],["824f","\uFF10",9],["8260","\uFF21",25],["8281","\uFF41",25],["829f","\u3041",82],["8340","\u30A1",62],["8380","\u30E0",22],["839f","\u0391",16,"\u03A3",6],["83bf","\u03B1",16,"\u03C3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043E",17],["849f","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["877e","\u337B"],["8780","\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["889f","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["8940","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],["8980","\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["8a40","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],["8a80","\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["8b40","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],["8b80","\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["8c40","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],["8c80","\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["8d40","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],["8d80","\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["8e40","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],["8e80","\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["8f40","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],["8f80","\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["9040","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],["9080","\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["9140","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],["9180","\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["9240","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],["9280","\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["9340","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],["9380","\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["9440","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],["9480","\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["9540","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],["9580","\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["9640","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],["9680","\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["9740","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],["9780","\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["9840","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["989f","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["9940","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],["9980","\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["9a40","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],["9a80","\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["9b40","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],["9b80","\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["9c40","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["9d40","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],["9d80","\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["9e40","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],["9e80","\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["9f40","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],["9f80","\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["e040","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],["e080","\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e140","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],["e180","\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e240","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],["e280","\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e340","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],["e380","\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e440","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],["e480","\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],["e580","\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["e640","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],["e680","\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["e740","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],["e780","\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["e840","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],["e880","\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["e940","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],["e980","\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["ea40","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],["ea80","\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],["ed40","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],["ed80","\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["ee40","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],["ee80","\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["eeef","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["f040","\uE000",62],["f080","\uE03F",124],["f140","\uE0BC",62],["f180","\uE0FB",124],["f240","\uE178",62],["f280","\uE1B7",124],["f340","\uE234",62],["f380","\uE273",124],["f440","\uE2F0",62],["f480","\uE32F",124],["f540","\uE3AC",62],["f580","\uE3EB",124],["f640","\uE468",62],["f680","\uE4A7",124],["f740","\uE524",62],["f780","\uE563",124],["f840","\uE5E0",62],["f880","\uE61F",124],["f940","\uE69C"],["fa40","\u2170",9,"\u2160",9,"\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],["fa80","\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],["fb40","\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],["fb80","\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],["fc40","\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]]});var Vf=M((eq,RS)=>{RS.exports=[["0","\0",127],["8ea1","\uFF61",62],["a1a1","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],["a2a1","\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["a2ca","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["a2dc","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["a2f2","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["a2fe","\u25EF"],["a3b0","\uFF10",9],["a3c1","\uFF21",25],["a3e1","\uFF41",25],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["addf","\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["b0a1","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["b1a1","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],["b2a1","\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["b3a1","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],["b4a1","\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["b5a1","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],["b6a1","\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["b7a1","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],["b8a1","\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["b9a1","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],["baa1","\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["bba1","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],["bca1","\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["bda1","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],["bea1","\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["bfa1","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],["c0a1","\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["c1a1","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],["c2a1","\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["c3a1","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],["c4a1","\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["c5a1","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],["c6a1","\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["c7a1","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],["c8a1","\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["c9a1","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],["caa1","\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["cba1","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],["cca1","\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["cda1","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],["cea1","\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["cfa1","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["d0a1","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["d1a1","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],["d2a1","\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["d3a1","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],["d4a1","\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["d5a1","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],["d6a1","\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["d7a1","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],["d8a1","\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["d9a1","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],["daa1","\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["dba1","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],["dca1","\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["dda1","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],["dea1","\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["dfa1","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],["e0a1","\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e1a1","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],["e2a1","\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e3a1","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],["e4a1","\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e5a1","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],["e6a1","\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e7a1","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],["eaa1","\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["eba1","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],["eca1","\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["eda1","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],["eea1","\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["efa1","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],["f0a1","\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["f1a1","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],["f2a1","\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["f3a1","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],["f4a1","\u582F\u69C7\u9059\u7464\u51DC\u7199"],["f9a1","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],["faa1","\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["fba1","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],["fca1","\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["fcf1","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["8fa2af","\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],["8fa2c2","\xA1\xA6\xBF"],["8fa2eb","\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038A\u03AA"],["8fa6e7","\u038C"],["8fa6e9","\u038E\u03AB"],["8fa6ec","\u038F"],["8fa6f1","\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],["8fa7c2","\u0402",10,"\u040E\u040F"],["8fa7f2","\u0452",10,"\u045E\u045F"],["8fa9a1","\xC6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013F"],["8fa9ab","\u014A\xD8\u0152"],["8fa9af","\u0166\xDE"],["8fa9c1","\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],["8faaa1","\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],["8faaba","\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],["8faba1","\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],["8fabbd","\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],["8fabc5","\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],["8fb0a1","\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],["8fb1a1","\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509B\u509C\u509E",4,"\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],["8fb3a1","\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],["8fb4a1","\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],["8fb6a1","\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D",5,"\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4",4,"\u56F1\u56EB\u56ED"],["8fb7a1","\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D",4,"\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],["8fb8a1","\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],["8fb9a1","\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],["8fbaa1","\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6",4,"\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],["8fbba1","\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],["8fbca1","\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A",4,"\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],["8fbda1","\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0",4,"\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],["8fbea1","\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110",4,"\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],["8fbfa1","\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],["8fc0a1","\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],["8fc1a1","\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],["8fc2a1","\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],["8fc3a1","\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E",4,"\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],["8fc4a1","\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],["8fc5a1","\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],["8fc6a1","\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],["8fc7a1","\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],["8fc8a1","\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],["8fc9a1","\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094",4,"\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103",4,"\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],["8fcba1","\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],["8fcca1","\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2",6,"\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],["8fcfa1","\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],["8fd0a1","\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],["8fd1a1","\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],["8fd2a1","\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59",5],["8fd3a1","\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],["8fd4a1","\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2",4,"\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],["8fd5a1","\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],["8fd6a1","\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],["8fd7a1","\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],["8fd9a1","\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F",4,"\u8556\u8559\u855C",6,"\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],["8fdaa1","\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660",4,"\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],["8fdba1","\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783",6,"\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],["8fdca1","\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA",4,"\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],["8fdda1","\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4",4,"\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],["8fdea1","\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42",4,"\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],["8fdfa1","\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],["8fe0a1","\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],["8fe1a1","\u8F43\u8F47\u8F4F\u8F51",4,"\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],["8fe2a1","\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],["8fe3a1","\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC",5,"\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275",4,"\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],["8fe4a1","\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF",4,"\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9",4,"\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],["8fe7a1","\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],["8fe8a1","\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931",4,"\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],["8fe9a1","\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF",4],["8feaa1","\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A",4,"\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],["8feba1","\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26",4,"\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],["8feca1","\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],["8feda1","\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43",4,"\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D",4,"\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]]});var io=M((tq,TS)=>{TS.exports=[["0","\0",127,"\u20AC"],["8140","\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A",5,"\u4E72\u4E74",9,"\u4E7F",6,"\u4E87\u4E8A"],["8180","\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02",6,"\u4F0B\u4F0C\u4F12",4,"\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E",4,"\u4F44\u4F45\u4F47",5,"\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],["8240","\u4FA4\u4FAB\u4FAD\u4FB0",4,"\u4FB6",8,"\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2",4,"\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF",11],["8280","\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F",10,"\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050",4,"\u5056\u5057\u5058\u5059\u505B\u505D",7,"\u5066",5,"\u506D",8,"\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E",20,"\u50A4\u50A6\u50AA\u50AB\u50AD",4,"\u50B3",6,"\u50BC"],["8340","\u50BD",17,"\u50D0",5,"\u50D7\u50D8\u50D9\u50DB",10,"\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6",4,"\u50FC",9,"\u5108"],["8380","\u5109\u510A\u510C",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D",4,"\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6",4,"\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2",5],["8440","\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5",5,"\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244",5,"\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273",9,"\u527E\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4",9,"\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9",5,"\u52E0\u52E1\u52E2\u52E3\u52E5",10,"\u52F1",7,"\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],["8540","\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F",9,"\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],["8580","\u5390",4,"\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF",6,"\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3",4,"\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],["8640","\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0",4,"\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4",5,"\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A",4,"\u5512\u5513\u5515",5,"\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],["8680","\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F",5,"\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0",6,"\u55A8",8,"\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF",4,"\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7",4,"\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8",4,"\u55FF\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560A\u560B\u560D\u5610",7,"\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640",11,"\u564F",4,"\u5655\u5656\u565A\u565B\u565D",4],["8780","\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56A4",10,"\u56B0",6,"\u56B8\u56B9\u56BA\u56BB\u56BD",12,"\u56CB",8,"\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5",5,"\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B",6],["8840","\u5712",9,"\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734",4,"\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],["8880","\u5781\u5787\u5788\u5789\u578A\u578D",4,"\u5794",6,"\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9",8,"\u57C4",6,"\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5",7,"\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825",4,"\u582B",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583E",5,"\u5845",6,"\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585F",5,"\u5866",4,"\u586D",16,"\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],["8980","\u588D",4,"\u5894",4,"\u589B\u589C\u589D\u58A0",7,"\u58AA",17,"\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6",10,"\u58D2\u58D3\u58D4\u58D6",13,"\u58E5",5,"\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA",7,"\u5903\u5905\u5906\u5908",4,"\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],["8a40","\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],["8a80","\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3",5,"\u59BA\u59BC\u59BD\u59BF",6,"\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE",4,"\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED",11,"\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A",6,"\u5A33\u5A35\u5A37",4,"\u5A3D\u5A3E\u5A3F\u5A41",4,"\u5A47\u5A48\u5A4B",9,"\u5A56\u5A57\u5A58\u5A59\u5A5B",5],["8b40","\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B",8,"\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80",17,"\u5A93",6,"\u5A9C",13,"\u5AAB\u5AAC"],["8b80","\u5AAD",4,"\u5AB4\u5AB6\u5AB7\u5AB9",4,"\u5ABF\u5AC0\u5AC3",5,"\u5ACA\u5ACB\u5ACD",4,"\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC",4,"\u5AF2",22,"\u5B0A",11,"\u5B18",25,"\u5B33\u5B35\u5B36\u5B38",7,"\u5B41",6],["8c40","\u5B48",7,"\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],["8c80","\u5BD1\u5BD4",8,"\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9",4,"\u5BEF\u5BF1",6,"\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67",6,"\u5C70\u5C72",6,"\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83",4,"\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D",4,"\u5CA4",4],["8d40","\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5",5,"\u5CCC",5,"\u5CD3",5,"\u5CDA",6,"\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1",9,"\u5CFC",4],["8d80","\u5D01\u5D04\u5D05\u5D08",5,"\u5D0F",4,"\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F",4,"\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F",4,"\u5D35",7,"\u5D3F",7,"\u5D48\u5D49\u5D4D",10,"\u5D59\u5D5A\u5D5C\u5D5E",10,"\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75",12,"\u5D83",21,"\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],["8e40","\u5DA1",21,"\u5DB8",12,"\u5DC6",6,"\u5DCE",12,"\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],["8e80","\u5DF0\u5DF5\u5DF6\u5DF8",4,"\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E",7,"\u5E28",4,"\u5E2F\u5E30\u5E32",4,"\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46",5,"\u5E4D",6,"\u5E56",4,"\u5E5C\u5E5D\u5E5F\u5E60\u5E63",14,"\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8",4,"\u5EAE",4,"\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF",6],["8f40","\u5EC6\u5EC7\u5EC8\u5ECB",5,"\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC",11,"\u5EE9\u5EEB",8,"\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],["8f80","\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32",6,"\u5F3B\u5F3D\u5F3E\u5F3F\u5F41",14,"\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2",5,"\u5FA9\u5FAB\u5FAC\u5FAF",5,"\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE",4,"\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],["9040","\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030",4,"\u6036",4,"\u603D\u603E\u6040\u6044",6,"\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD",7,"\u60C7\u60C8\u60C9\u60CC",4,"\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1",4,"\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB",4,"\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110",4,"\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C",18,"\u6140",6],["9140","\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156",6,"\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618C\u618D\u618F",4,"\u6195"],["9180","\u6196",6,"\u619E",8,"\u61AA\u61AB\u61AD",9,"\u61B8",5,"\u61BF\u61C0\u61C1\u61C3",4,"\u61C9\u61CC",4,"\u61D3\u61D5",16,"\u61E7",13,"\u61F6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624A"],["9240","\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B",5,"\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],["9280","\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333",5,"\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],["9340","\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7",6,"\u63DF\u63E2\u63E4",4,"\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406",4,"\u640D\u640E\u6411\u6412\u6415",5,"\u641D\u641F\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642B\u642E",5,"\u6435",4,"\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645F",7,"\u6468\u646A\u646B\u646C\u646E",9,"\u647B",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F",4,"\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6",6,"\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],["9440","\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7",24,"\u6501",7,"\u650A",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540",4,"\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1",7,"\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8",7,"\u65E1\u65E3\u65E4\u65EA\u65EB"],["9540","\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637",4,"\u663D\u663F\u6640\u6642\u6644",6,"\u664D\u664E\u6650\u6651\u6658"],["9580","\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669E",8,"\u66A9",4,"\u66AF",4,"\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF",25,"\u66DA\u66DE",7,"\u66E7\u66E8\u66EA",5,"\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720",5,"\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757",4,"\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],["9680","\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9",7,"\u67C2\u67C5",9,"\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5",7,"\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818",4,"\u681E\u681F\u6820\u6822",6,"\u682B",6,"\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856",5],["9740","\u685C\u685D\u685E\u685F\u686A\u686C",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],["9780","\u68B9",6,"\u68C1\u68C3",5,"\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB",4,"\u68E1\u68E2\u68E4",9,"\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906",4,"\u690C\u690F\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972",4,"\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E",5,"\u6996\u6997\u6999\u699A\u699D",9,"\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],["9880","\u69BE\u69BF\u69C0\u69C2",7,"\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5",5,"\u69DC\u69DD\u69DE\u69E1",11,"\u69EE\u69EF\u69F0\u69F1\u69F3",9,"\u69FE\u6A00",9,"\u6A0B",11,"\u6A19",5,"\u6A20\u6A22",5,"\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36",6,"\u6A3F",4,"\u6A45\u6A46\u6A48",7,"\u6A51",6,"\u6A5A"],["9940","\u6A5C",4,"\u6A62\u6A63\u6A64\u6A66",10,"\u6A72",6,"\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85",8,"\u6A8F\u6A92",4,"\u6A98",7,"\u6AA1",5],["9980","\u6AA7\u6AA8\u6AAA\u6AAD",114,"\u6B25\u6B26\u6B28",6],["9a40","\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D",11,"\u6B5A",7,"\u6B68\u6B69\u6B6B",13,"\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],["9a80","\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C",4,"\u6BA2",7,"\u6BAB",7,"\u6BB6\u6BB8",6,"\u6BC0\u6BC3\u6BC4\u6BC6",4,"\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC",4,"\u6BE2",7,"\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE",6,"\u6C08",4,"\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B",4,"\u6C51\u6C52\u6C53\u6C56\u6C58"],["9b40","\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B",4,"\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],["9b80","\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F",5,"\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D",4,"\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96",4,"\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9",5,"\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],["9c40","\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD",7,"\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],["9c80","\u6E36\u6E37\u6E39\u6E3B",7,"\u6E45",7,"\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60",10,"\u6E6C\u6E6D\u6E6F",14,"\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A",4,"\u6E91",6,"\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA",5],["9d40","\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA",7,"\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A",4,"\u6F10\u6F11\u6F12\u6F16",9,"\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37",6,"\u6F3F\u6F40\u6F41\u6F42"],["9d80","\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E",9,"\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67",5,"\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D",6,"\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F",12,"\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2",4,"\u6FA8",10,"\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA",5,"\u6FC1\u6FC3",5,"\u6FCA",6,"\u6FD3",10,"\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],["9e40","\u6FE6",7,"\u6FF0",32,"\u7012",7,"\u701C",6,"\u7024",6],["9e80","\u702B",9,"\u7036\u7037\u7038\u703A",17,"\u704D\u704E\u7050",13,"\u705F",11,"\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E",12,"\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB",12,"\u70DA"],["9f40","\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0",6,"\u70F8\u70FA\u70FB\u70FC\u70FE",10,"\u710B",4,"\u7111\u7112\u7114\u7117\u711B",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714B\u714D\u714F",12,"\u715D\u715F",4,"\u7165\u7169",4,"\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E",5,"\u7185",4,"\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A",4,"\u71A1",6,"\u71A9\u71AA\u71AB\u71AD",5,"\u71B4\u71B6\u71B7\u71B8\u71BA",8,"\u71C4",9,"\u71CF",4],["a040","\u71D6",9,"\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8",5,"\u71EF",9,"\u71FA",11,"\u7207",19],["a080","\u721B\u721C\u721E",9,"\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240",6,"\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285",4,"\u728C\u728E\u7290\u7291\u7293",11,"\u72A0",11,"\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA",6,"\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],["a1a1","\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uFF01\uFF02\uFF03\uFFE5\uFF05",88,"\uFFE3"],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a6e0","\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],["a6ee","\uFE3B\uFE3C\uFE37\uFE38\uFE31"],["a6f4","\uFE33\uFE34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],["a8a1","\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49",9,"\uFE54\uFE55\uFE56\uFE57\uFE59",8],["a980","\uFE62",4,"\uFE68\uFE69\uFE6A\uFE6B"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72DC\u72DD\u72DF\u72E2",5,"\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304",5,"\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340",8],["aa80","\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736E\u7370\u7371"],["ab40","\u7372",11,"\u737F",4,"\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3",5,"\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3",4],["ab80","\u73CB\u73CC\u73CE\u73D2",6,"\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3",4],["ac40","\u73F8",10,"\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411",8,"\u741C",5,"\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437",4,"\u743D\u743E\u743F\u7440\u7442",11],["ac80","\u744E",6,"\u7456\u7458\u745D\u7460",12,"\u746E\u746F\u7471",4,"\u7478\u7479\u747A"],["ad40","\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491",10,"\u749D\u749F",7,"\u74AA",15,"\u74BB",12],["ad80","\u74C8",9,"\u74D3",8,"\u74DD\u74DF\u74E1\u74E5\u74E7",6,"\u74F0\u74F1\u74F2"],["ae40","\u74F3\u74F5\u74F8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520",4,"\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755D",7,"\u7567\u7568\u7569\u756B",6,"\u7573\u7575\u7576\u7577\u757A",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6",4,"\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],["b040","\u7645",6,"\u764E",5,"\u7655\u7657",4,"\u765D\u765F\u7660\u7661\u7662\u7664",6,"\u766C\u766D\u766E\u7670",7,"\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],["b080","\u769C",7,"\u76A5",8,"\u76AF\u76B0\u76B3\u76B5",9,"\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],["b140","\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0",4,"\u76E6",7,"\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E",10,"\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],["b180","\u772C\u772E\u7730",4,"\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],["b240","\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D",11,"\u777A\u777B\u777C\u7781\u7782\u7783\u7786",5,"\u778F\u7790\u7793",11,"\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6",4],["b280","\u77BC\u77BE\u77C0",12,"\u77CE",8,"\u77D8\u77D9\u77DA\u77DD",4,"\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],["b340","\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803",5,"\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],["b380","\u785B\u785C\u785E",11,"\u786F",7,"\u7878\u7879\u787A\u787B\u787D",6,"\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],["b440","\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8",7,"\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA",9],["b480","\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED",4,"\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],["b540","\u790D",5,"\u7914",9,"\u791F",4,"\u7925",14,"\u7935",4,"\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970",6,"\u7979\u797B",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],["b640","\u7993",6,"\u799B",11,"\u79A8",10,"\u79B4",4,"\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9",5,"\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],["b680","\u79EC\u79EE\u79F1",6,"\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F",4,"\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],["b740","\u7A1D\u7A1F\u7A21\u7A22\u7A24",14,"\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40",5,"\u7A47",9,"\u7A52",4,"\u7A58",16],["b780","\u7A69",6,"\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],["b840","\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE",4,"\u7AB4",10,"\u7AC0",10,"\u7ACC",9,"\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7",5,"\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],["b880","\u7AF4",4,"\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],["b940","\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F",5,"\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63",10,"\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86",6,"\u7B8E\u7B8F"],["b980","\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9",7,"\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],["ba40","\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4",4,"\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2",4,"\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF",7,"\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10",5,"\u7C17\u7C18\u7C19"],["ba80","\u7C1A",4,"\u7C20",5,"\u7C28\u7C29\u7C2B",12,"\u7C39",5,"\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],["bb40","\u7C43",9,"\u7C4E",36,"\u7C75",5,"\u7C7E",9],["bb80","\u7C88\u7C8A",6,"\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4",4,"\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],["bc40","\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE",6,"\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1",6,"\u7CE9",5,"\u7CF0",7,"\u7CF9\u7CFA\u7CFC",13,"\u7D0B",5],["bc80","\u7D11",14,"\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30",6,"\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],["bd40","\u7D37",54,"\u7D6F",7],["bd80","\u7D78",32,"\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],["be40","\u7D99",12,"\u7DA7",6,"\u7DAF",42],["be80","\u7DDA",32,"\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],["bf40","\u7DFB",62],["bf80","\u7E3A\u7E3C",4,"\u7E42",4,"\u7E48",21,"\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],["c040","\u7E5E",35,"\u7E83",23,"\u7E9C\u7E9D\u7E9E"],["c080","\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B",6,"\u7F43\u7F46",9,"\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],["c140","\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63",4,"\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82",7,"\u7F8B\u7F8D\u7F8F",4,"\u7F95",4,"\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8",6,"\u7FB1"],["c180","\u7FB3",4,"\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF",4,"\u7FD6\u7FD7\u7FD9",5,"\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],["c240","\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4",6,"\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B",5,"\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805B",13,"\u806B",5,"\u8072",11,"\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],["c340","\u807E\u8081\u8082\u8085\u8088\u808A\u808D",5,"\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7",4,"\u80CF",6,"\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],["c380","\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F",12,"\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],["c440","\u8140",5,"\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818B\u818C\u818D\u818E\u8190\u8192",5,"\u8199\u819A\u819E",4,"\u81A4\u81A5"],["c480","\u81A7\u81A9\u81AB",7,"\u81B4",5,"\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD",6,"\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],["c540","\u81D4",14,"\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE",4,"\u81F5",5,"\u81FD\u81FF\u8203\u8207",4,"\u820E\u820F\u8211\u8213\u8215",5,"\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250",7,"\u8259\u825B\u825C\u825D\u825E\u8260",7,"\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],["c640","\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],["c680","\u82FA\u82FC",4,"\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D",9,"\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],["c740","\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A",4,"\u8353\u8355",4,"\u835D\u8362\u8370",6,"\u8379\u837A\u837E",6,"\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1",6,"\u83AC\u83AD\u83AE"],["c780","\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],["c840","\u83EE\u83EF\u83F3",4,"\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412",5,"\u8419\u841A\u841B\u841E",5,"\u8429",7,"\u8432",5,"\u8439\u843A\u843B\u843E",7,"\u8447\u8448\u8449"],["c880","\u844A",6,"\u8452",4,"\u8458\u845D\u845E\u845F\u8460\u8462\u8464",4,"\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],["c940","\u847D",4,"\u8483\u8484\u8485\u8486\u848A\u848D\u848F",7,"\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2",12,"\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],["c980","\u84D8",4,"\u84DE\u84E1\u84E2\u84E4\u84E7",4,"\u84ED\u84EE\u84EF\u84F1",10,"\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],["ca40","\u8503",8,"\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522",8,"\u852D",9,"\u853E",4,"\u8544\u8545\u8546\u8547\u854B",10],["ca80","\u8557\u8558\u855A\u855B\u855C\u855D\u855F",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859D",6,"\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1",5,"\u85B8\u85BA",6,"\u85C2",6,"\u85CA",4,"\u85D1\u85D2"],["cb80","\u85D4\u85D6",5,"\u85DD",6,"\u85E5\u85E6\u85E7\u85E8\u85EA",14,"\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],["cc40","\u85F9\u85FA\u85FC\u85FD\u85FE\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862A",13,"\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865B\u865C\u865D\u865F\u8660\u8661\u8663",7,"\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],["cd40","\u866D\u866F\u8670\u8672",6,"\u8683",6,"\u868E",4,"\u8694\u8696",5,"\u869E",4,"\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB",4,"\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],["cd80","\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],["ce40","\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740",6,"\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A",5,"\u8761\u8762\u8766",7,"\u876F\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E",4,"\u8794\u8795\u8796\u8798",6,"\u87A0",4,"\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],["cf40","\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1",4,"\u87C7\u87C8\u87C9\u87CC",4,"\u87D4",6,"\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF",9],["cf80","\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804",5,"\u880B",7,"\u8814\u8817\u8818\u8819\u881A\u881C",4,"\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846",5,"\u884E",5,"\u8855\u8856\u8858\u885A",6,"\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],["d080","\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889D",4,"\u88A3\u88A5",5,"\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],["d140","\u88AC\u88AE\u88AF\u88B0\u88B2",4,"\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA",4,"\u88E0\u88E1\u88E6\u88E7\u88E9",6,"\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903",5],["d180","\u8909\u890B",4,"\u8911\u8914",4,"\u891C",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897C"],["d280","\u897D\u897E\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],["d340","\u89A2",30,"\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4",6],["d380","\u89FB",4,"\u8A01",5,"\u8A08",21,"\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],["d440","\u8A1E",31,"\u8A3F",8,"\u8A49",21],["d480","\u8A5F",25,"\u8A7A",6,"\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],["d540","\u8A81",7,"\u8A8B",7,"\u8A94",46],["d580","\u8AC3",32,"\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],["d640","\u8AE4",34,"\u8B08",27],["d680","\u8B24\u8B25\u8B27",30,"\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],["d740","\u8B46",31,"\u8B67",4,"\u8B6D",25],["d780","\u8B87",24,"\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],["d840","\u8C38",8,"\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D",7,"\u8C56\u8C57\u8C58\u8C59\u8C5B",5,"\u8C63",6,"\u8C6C",6,"\u8C74\u8C75\u8C76\u8C77\u8C7B",6,"\u8C83\u8C84\u8C86\u8C87"],["d880","\u8C88\u8C8B\u8C8D",6,"\u8C95\u8C96\u8C97\u8C99",20,"\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],["d940","\u8CAE",62],["d980","\u8CED",32,"\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],["da40","\u8D0E",14,"\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78",8,"\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C",4,"\u8D92\u8D93\u8D95",9,"\u8DA0\u8DA1"],["da80","\u8DA2\u8DA4",12,"\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],["db40","\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE",6,"\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15",7,"\u8E20\u8E21\u8E24",4,"\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],["db80","\u8E3F\u8E43\u8E45\u8E46\u8E4C",4,"\u8E53",5,"\u8E5A",11,"\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],["dc40","\u8E73\u8E75\u8E77",4,"\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88",6,"\u8E91\u8E92\u8E93\u8E95",6,"\u8E9D\u8E9F",11,"\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3",6,"\u8EBB",7],["dc80","\u8EC3",10,"\u8ECF",21,"\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],["dd40","\u8EE5",62],["dd80","\u8F24",32,"\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],["de40","\u8F45",32,"\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],["de80","\u8FC9",4,"\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],["df40","\u9019\u901C\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048",4,"\u904E\u9054\u9055\u9056\u9059\u905A\u905C",5,"\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F",4,"\u9076",6,"\u907E\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908A\u908C",4,"\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],["e040","\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105",19,"\u911A\u911B\u911C"],["e080","\u911D\u911F\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913A",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180",4,"\u9186\u9188\u918A\u918E\u918F\u9193",6,"\u919C",5,"\u91A4",5,"\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],["e180","\u91BC",10,"\u91C8\u91CB\u91D0\u91D2",9,"\u91DD",8,"\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],["e240","\u91E6",62],["e280","\u9225",32,"\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928F",24,"\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],["e440","\u92A8",5,"\u92AF",24,"\u92C9",31],["e480","\u92E9",32,"\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],["e540","\u930A",51,"\u933F",10],["e580","\u934A",31,"\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],["e640","\u936C",34,"\u9390",27],["e680","\u93AC",29,"\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],["e740","\u93CE",7,"\u93D7",54],["e780","\u940E",32,"\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21",6,"\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F",4,"\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],["e840","\u942F",14,"\u943F",43,"\u946C\u946D\u946E\u946F"],["e880","\u9470",20,"\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],["e940","\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95AB",32,"\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],["ea40","\u95CC",27,"\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623",6,"\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D",4,"\u9673\u9678",12,"\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],["eb40","\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D",9,"\u96A8",7,"\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6",9,"\u96E1",6,"\u96EB"],["eb80","\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],["ec40","\u9721",8,"\u972B\u972C\u972E\u972F\u9731\u9733",4,"\u973A\u973B\u973C\u973D\u973F",18,"\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A",7],["ec80","\u9772\u9775\u9777",4,"\u977D",7,"\u9786",4,"\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],["ed40","\u979E\u979F\u97A1\u97A2\u97A4",6,"\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5",46],["ed80","\u97E4\u97E5\u97E8\u97EE",4,"\u97F4\u97F7",23,"\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],["ee40","\u980F",62],["ee80","\u984E",32,"\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6",4,"\u94BC\u94BD\u94BF\u94C4\u94C8",6,"\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],["ef40","\u986F",5,"\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8",37,"\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0",4],["ef80","\u98E5\u98E6\u98E9",30,"\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512",4,"\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564",8,"\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],["f040","\u9908",4,"\u990E\u990F\u9911",28,"\u992F",26],["f080","\u994A",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28",4,"\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66",6,"\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],["f140","\u998C\u998E\u999A",10,"\u99A6\u99A7\u99A9",47],["f180","\u99D9",32,"\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99FA",62],["f280","\u9A39",32,"\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],["f340","\u9A5A",17,"\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9",6,"\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6",4,"\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],["f380","\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0",8,"\u9AFA\u9AFC",6,"\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],["f440","\u9B07\u9B09",5,"\u9B10\u9B11\u9B12\u9B14",10,"\u9B20\u9B21\u9B22\u9B24",10,"\u9B30\u9B31\u9B33",7,"\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55",5],["f480","\u9B5B",32,"\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],["f540","\u9B7C",62],["f580","\u9BBB",32,"\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],["f640","\u9BDC",62],["f680","\u9C1B",32,"\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85",5,"\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E",5,"\u9CA5",4,"\u9CAB\u9CAD\u9CAE\u9CB0",7,"\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],["f740","\u9C3C",62],["f780","\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE",4,"\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC",4,"\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],["f840","\u9CE3",62],["f880","\u9D22",32],["f940","\u9D43",62],["f980","\u9D82",32],["fa40","\u9DA3",62],["fa80","\u9DE2",32],["fb40","\u9E03",27,"\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74",9,"\u9E80"],["fb80","\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C",5,"\u9E94",8,"\u9E9E\u9EA0",5,"\u9EA7\u9EA8\u9EA9\u9EAA"],["fc40","\u9EAB",8,"\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF",4,"\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0",8,"\u9EFA\u9EFD\u9EFF",6],["fc80","\u9F06",4,"\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A",5,"\u9F21\u9F23",8,"\u9F2D\u9F2E\u9F30\u9F31"],["fd40","\u9F32",4,"\u9F38\u9F3A\u9F3C\u9F3F",4,"\u9F45",10,"\u9F52",38],["fd80","\u9F79",5,"\u9F81\u9F82\u9F8D",11,"\u9F9C\u9F9D\u9F9E\u9FA1",4,"\uF92C\uF979\uF995\uF9E7\uF9F1"],["fe40","\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]]});var Yl=M((rq,kS)=>{kS.exports=[["a140","\uE4C6",62],["a180","\uE505",32],["a240","\uE526",62],["a280","\uE565",32],["a2ab","\uE766",5],["a2e3","\u20AC\uE76D"],["a2ef","\uE76E\uE76F"],["a2fd","\uE770\uE771"],["a340","\uE586",62],["a380","\uE5C5",31,"\u3000"],["a440","\uE5E6",62],["a480","\uE625",32],["a4f4","\uE772",10],["a540","\uE646",62],["a580","\uE685",32],["a5f7","\uE77D",7],["a640","\uE6A6",62],["a680","\uE6E5",32],["a6b9","\uE785",7],["a6d9","\uE78D",6],["a6ec","\uE794\uE795"],["a6f3","\uE796"],["a6f6","\uE797",8],["a740","\uE706",62],["a780","\uE745",32],["a7c2","\uE7A0",14],["a7f2","\uE7AF",12],["a896","\uE7BC",10],["a8bc","\uE7C7"],["a8bf","\u01F9"],["a8c1","\uE7C9\uE7CA\uE7CB\uE7CC"],["a8ea","\uE7CD",20],["a958","\uE7E2"],["a95b","\uE7E3"],["a95d","\uE7E4\uE7E5\uE7E6"],["a989","\u303E\u2FF0",11],["a997","\uE7F4",12],["a9f0","\uE801",14],["aaa1","\uE000",93],["aba1","\uE05E",93],["aca1","\uE0BC",93],["ada1","\uE11A",93],["aea1","\uE178",93],["afa1","\uE1D6",93],["d7fa","\uE810",4],["f8a1","\uE234",93],["f9a1","\uE292",93],["faa1","\uE2F0",93],["fba1","\uE34E",93],["fca1","\uE3AC",93],["fda1","\uE40A",93],["fe50","\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],["fe80","\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13",6,"\u4DAE\uE864\uE468",93]]});var Gf=M((aq,OS)=>{OS.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}});var Zf=M((sq,CS)=>{CS.exports=[["0","\0",127],["8141","\uAC02\uAC03\uAC05\uAC06\uAC0B",4,"\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25",6,"\uAC2E\uAC32\uAC33\uAC34"],["8161","\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41",9,"\uAC4C\uAC4E",5,"\uAC55"],["8181","\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D",18,"\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B",4,"\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95",6,"\uAC9E\uACA2",5,"\uACAB\uACAD\uACAE\uACB1",6,"\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD",7,"\uACD6\uACD8",7,"\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7",4,"\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07",4,"\uAD0E\uAD10\uAD12\uAD13"],["8241","\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21",7,"\uAD2A\uAD2B\uAD2E",5],["8261","\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D",6,"\uAD46\uAD48\uAD4A",5,"\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],["8281","\uAD59",7,"\uAD62\uAD64",7,"\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83",4,"\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91",10,"\uAD9E",5,"\uADA5",17,"\uADB8",7,"\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9",6,"\uADD2\uADD4",7,"\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5",18],["8341","\uADFA\uADFB\uADFD\uADFE\uAE02",5,"\uAE0A\uAE0C\uAE0E",5,"\uAE15",7],["8361","\uAE1D",18,"\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],["8381","\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57",4,"\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71",6,"\uAE7A\uAE7E",5,"\uAE86",5,"\uAE8D",46,"\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5",6,"\uAECE\uAED2",5,"\uAEDA\uAEDB\uAEDD",8],["8441","\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE",5,"\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD",8],["8461","\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11",18],["8481","\uAF24",7,"\uAF2E\uAF2F\uAF31\uAF33\uAF35",6,"\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A",5,"\uAF51",10,"\uAF5E",5,"\uAF66",18,"\uAF7A",5,"\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89",6,"\uAF92\uAF93\uAF94\uAF96",5,"\uAF9D",26,"\uAFBA\uAFBB\uAFBD\uAFBE"],["8541","\uAFBF\uAFC1",5,"\uAFCA\uAFCC\uAFCF",4,"\uAFD5",6,"\uAFDD",4],["8561","\uAFE2",5,"\uAFEA",5,"\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9",6,"\uB002\uB003"],["8581","\uB005",6,"\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015",6,"\uB01E",9,"\uB029",26,"\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E",29,"\uB07E\uB07F\uB081\uB082\uB083\uB085",6,"\uB08E\uB090\uB092",5,"\uB09B\uB09D\uB09E\uB0A3\uB0A4"],["8641","\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD",6,"\uB0C6\uB0CA",5,"\uB0D2"],["8661","\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9",6,"\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6",10],["8681","\uB0F1",22,"\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E",4,"\uB126\uB127\uB129\uB12A\uB12B\uB12D",6,"\uB136\uB13A",5,"\uB142\uB143\uB145\uB146\uB147\uB149",6,"\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161",22,"\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183",4,"\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],["8741","\uB19E",9,"\uB1A9",15],["8761","\uB1B9",18,"\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],["8781","\uB1D6",5,"\uB1DE\uB1E0",7,"\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1",7,"\uB1FA\uB1FC\uB1FE",5,"\uB206\uB207\uB209\uB20A\uB20D",6,"\uB216\uB218\uB21A",5,"\uB221",18,"\uB235",6,"\uB23D",26,"\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261",6,"\uB26A",4],["8841","\uB26F",4,"\uB276",5,"\uB27D",6,"\uB286\uB287\uB288\uB28A",4],["8861","\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B",4,"\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],["8881","\uB2B8",15,"\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3",4,"\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309",6,"\uB312\uB316",5,"\uB31D",54,"\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],["8941","\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379",6,"\uB382\uB386",5,"\uB38D"],["8961","\uB38E\uB38F\uB391\uB392\uB393\uB395",10,"\uB3A2",5,"\uB3A9\uB3AA\uB3AB\uB3AD"],["8981","\uB3AE",21,"\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9",18,"\uB3FD",18,"\uB411",6,"\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421",6,"\uB42A\uB42C",7,"\uB435",15],["8a41","\uB445",10,"\uB452\uB453\uB455\uB456\uB457\uB459",6,"\uB462\uB464\uB466"],["8a61","\uB467",4,"\uB46D",18,"\uB481\uB482"],["8a81","\uB483",4,"\uB489",19,"\uB49E",5,"\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD",7,"\uB4B6\uB4B8\uB4BA",5,"\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9",6,"\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6",5,"\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7",4,"\uB4EE\uB4F0\uB4F2",5,"\uB4F9",26,"\uB516\uB517\uB519\uB51A\uB51D"],["8b41","\uB51E",5,"\uB526\uB52B",4,"\uB532\uB533\uB535\uB536\uB537\uB539",6,"\uB542\uB546"],["8b61","\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555",6,"\uB55E\uB562",8],["8b81","\uB56B",52,"\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6",4,"\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5",6,"\uB5CE\uB5D2",5,"\uB5D9",18,"\uB5ED",18],["8c41","\uB600",15,"\uB612\uB613\uB615\uB616\uB617\uB619",4],["8c61","\uB61E",6,"\uB626",5,"\uB62D",6,"\uB635",5],["8c81","\uB63B",12,"\uB649",26,"\uB665\uB666\uB667\uB669",50,"\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5",5,"\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2",16],["8d41","\uB6C3",16,"\uB6D5",8],["8d61","\uB6DE",17,"\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],["8d81","\uB6FB",4,"\uB702\uB703\uB704\uB706",33,"\uB72A\uB72B\uB72D\uB72E\uB731",6,"\uB73A\uB73C",7,"\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D",6,"\uB756",9,"\uB761\uB762\uB763\uB765\uB766\uB767\uB769",6,"\uB772\uB774\uB776",5,"\uB77E\uB77F\uB781\uB782\uB783\uB785",6,"\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],["8e41","\uB79F\uB7A1",6,"\uB7AA\uB7AE",5,"\uB7B6\uB7B7\uB7B9",8],["8e61","\uB7C2",4,"\uB7C8\uB7CA",19],["8e81","\uB7DE",13,"\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5",6,"\uB7FE\uB802",4,"\uB80A\uB80B\uB80D\uB80E\uB80F\uB811",6,"\uB81A\uB81C\uB81E",5,"\uB826\uB827\uB829\uB82A\uB82B\uB82D",6,"\uB836\uB83A",5,"\uB841\uB842\uB843\uB845",11,"\uB852\uB854",7,"\uB85E\uB85F\uB861\uB862\uB863\uB865",6,"\uB86E\uB870\uB872",5,"\uB879\uB87A\uB87B\uB87D",7],["8f41","\uB885",7,"\uB88E",17],["8f61","\uB8A0",7,"\uB8A9",6,"\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9",4],["8f81","\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6",5,"\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5",7,"\uB8DE\uB8E0\uB8E2",5,"\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1",6,"\uB8FA\uB8FC\uB8FE",5,"\uB905",18,"\uB919",6,"\uB921",26,"\uB93E\uB93F\uB941\uB942\uB943\uB945",6,"\uB94D\uB94E\uB950\uB952",5],["9041","\uB95A\uB95B\uB95D\uB95E\uB95F\uB961",6,"\uB96A\uB96C\uB96E",5,"\uB976\uB977\uB979\uB97A\uB97B\uB97D"],["9061","\uB97E",5,"\uB986\uB988\uB98B\uB98C\uB98F",15],["9081","\uB99F",12,"\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5",6,"\uB9BE\uB9C0\uB9C2",5,"\uB9CA\uB9CB\uB9CD\uB9D3",4,"\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED",6,"\uB9F6\uB9FB",4,"\uBA02",5,"\uBA09",11,"\uBA16",33,"\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],["9141","\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D",6,"\uBA66\uBA6A",5],["9161","\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79",9,"\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D",5],["9181","\uBA93",20,"\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3",4,"\uBABA\uBABC\uBABE",5,"\uBAC5\uBAC6\uBAC7\uBAC9",14,"\uBADA",33,"\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05",7,"\uBB0E\uBB10\uBB12",5,"\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21",6],["9241","\uBB28\uBB2A\uBB2C",7,"\uBB37\uBB39\uBB3A\uBB3F",4,"\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],["9261","\uBB53\uBB55\uBB56\uBB57\uBB59",7,"\uBB62\uBB64",7,"\uBB6D",4],["9281","\uBB72",21,"\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91",18,"\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD",6,"\uBBB5\uBBB6\uBBB8",7,"\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9",6,"\uBBD1\uBBD2\uBBD4",35,"\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],["9341","\uBC03",4,"\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],["9361","\uBC36\uBC37\uBC39",6,"\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51",8],["9381","\uBC5A\uBC5B\uBC5C\uBC5E",37,"\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F",4,"\uBC96\uBC98\uBC9B",4,"\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9",6,"\uBCB2\uBCB6",5,"\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5",7,"\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD",22,"\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],["9441","\uBCFE",5,"\uBD06\uBD08\uBD0A",5,"\uBD11\uBD12\uBD13\uBD15",8],["9461","\uBD1E",5,"\uBD25",6,"\uBD2D",12],["9481","\uBD3A",5,"\uBD41",6,"\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51",6,"\uBD5A",9,"\uBD65\uBD66\uBD67\uBD69",22,"\uBD82\uBD83\uBD85\uBD86\uBD8B",4,"\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D",6,"\uBDA5",10,"\uBDB1",6,"\uBDB9",24],["9541","\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD",11,"\uBDEA",5,"\uBDF1"],["9561","\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9",6,"\uBE01\uBE02\uBE04\uBE06",5,"\uBE0E\uBE0F\uBE11\uBE12\uBE13"],["9581","\uBE15",6,"\uBE1E\uBE20",35,"\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F",4,"\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B",4,"\uBE72\uBE76",4,"\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85",6,"\uBE8E\uBE92",5,"\uBE9A",13,"\uBEA9",14],["9641","\uBEB8",23,"\uBED2\uBED3"],["9661","\uBED5\uBED6\uBED9",6,"\uBEE1\uBEE2\uBEE6",5,"\uBEED",8],["9681","\uBEF6",10,"\uBF02",5,"\uBF0A",13,"\uBF1A\uBF1E",33,"\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49",6,"\uBF52\uBF53\uBF54\uBF56",44],["9741","\uBF83",16,"\uBF95",8],["9761","\uBF9E",17,"\uBFB1",7],["9781","\uBFB9",11,"\uBFC6",5,"\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5",6,"\uBFDD\uBFDE\uBFE0\uBFE2",89,"\uC03D\uC03E\uC03F"],["9841","\uC040",16,"\uC052",5,"\uC059\uC05A\uC05B"],["9861","\uC05D\uC05E\uC05F\uC061",6,"\uC06A",15],["9881","\uC07A",21,"\uC092\uC093\uC095\uC096\uC097\uC099",6,"\uC0A2\uC0A4\uC0A6",5,"\uC0AE\uC0B1\uC0B2\uC0B7",4,"\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1",6,"\uC0DA\uC0DE",5,"\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED",6,"\uC0F6\uC0F8\uC0FA",5,"\uC101\uC102\uC103\uC105\uC106\uC107\uC109",6,"\uC111\uC112\uC113\uC114\uC116",5,"\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],["9941","\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141",6,"\uC14A\uC14E",5,"\uC156\uC157"],["9961","\uC159\uC15A\uC15B\uC15D",6,"\uC166\uC16A",5,"\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],["9981","\uC17C",8,"\uC186",5,"\uC18F\uC191\uC192\uC193\uC195\uC197",4,"\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1",11,"\uC1BE",5,"\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD",6,"\uC1D5\uC1D6\uC1D9",6,"\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9",6,"\uC1F2\uC1F4",7,"\uC1FE\uC1FF\uC201\uC202\uC203\uC205",6,"\uC20E\uC210\uC212",5,"\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],["9a41","\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235",16],["9a61","\uC246\uC247\uC249",6,"\uC252\uC253\uC255\uC256\uC257\uC259",6,"\uC261\uC262\uC263\uC264\uC266"],["9a81","\uC267",4,"\uC26E\uC26F\uC271\uC272\uC273\uC275",6,"\uC27E\uC280\uC282",5,"\uC28A",5,"\uC291",6,"\uC299\uC29A\uC29C\uC29E",5,"\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE",5,"\uC2B6\uC2B8\uC2BA",33,"\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5",5,"\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301",6,"\uC30A\uC30B\uC30E\uC30F"],["9b41","\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D",6,"\uC326\uC327\uC32A",8],["9b61","\uC333",17,"\uC346",7],["9b81","\uC34E",25,"\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373",4,"\uC37A\uC37B\uC37E",5,"\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D",50,"\uC3C1",22,"\uC3DA"],["9c41","\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3",4,"\uC3EA\uC3EB\uC3EC\uC3EE",5,"\uC3F6\uC3F7\uC3F9",5],["9c61","\uC3FF",8,"\uC409",6,"\uC411",9],["9c81","\uC41B",8,"\uC425",6,"\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435",6,"\uC43E",9,"\uC449",26,"\uC466\uC467\uC469\uC46A\uC46B\uC46D",6,"\uC476\uC477\uC478\uC47A",5,"\uC481",18,"\uC495",6,"\uC49D",12],["9d41","\uC4AA",13,"\uC4B9\uC4BA\uC4BB\uC4BD",8],["9d61","\uC4C6",25],["9d81","\uC4E0",8,"\uC4EA",5,"\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502",9,"\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515",6,"\uC51D",10,"\uC52A\uC52B\uC52D\uC52E\uC52F\uC531",6,"\uC53A\uC53C\uC53E",5,"\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569",6,"\uC572\uC576",5,"\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],["9e41","\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1",7,"\uC5AA",9,"\uC5B6"],["9e61","\uC5B7\uC5BA\uC5BF",4,"\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9",6,"\uC5E2\uC5E4\uC5E6\uC5E7"],["9e81","\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611",6,"\uC61A\uC61D",6,"\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649",6,"\uC652\uC656",5,"\uC65E\uC65F\uC661",10,"\uC66D\uC66E\uC670\uC672",5,"\uC67A\uC67B\uC67D\uC67E\uC67F\uC681",6,"\uC68A\uC68C\uC68E",5,"\uC696\uC697\uC699\uC69A\uC69B\uC69D",6,"\uC6A6"],["9f41","\uC6A8\uC6AA",5,"\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB",4,"\uC6C2\uC6C4\uC6C6",5,"\uC6CE"],["9f61","\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5",6,"\uC6DE\uC6DF\uC6E2",5,"\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],["9f81","\uC6F3",4,"\uC6FA\uC6FB\uC6FC\uC6FE",5,"\uC706\uC707\uC709\uC70A\uC70B\uC70D",6,"\uC716\uC718\uC71A",5,"\uC722\uC723\uC725\uC726\uC727\uC729",6,"\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745",4,"\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761",6,"\uC769\uC76A\uC76C",7,"\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B",4,"\uC7A2\uC7A7",4,"\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],["a041","\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2",5,"\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1",6,"\uC7D9\uC7DA\uC7DB\uC7DC"],["a061","\uC7DE",5,"\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED",13],["a081","\uC7FB",4,"\uC802\uC803\uC805\uC806\uC807\uC809\uC80B",4,"\uC812\uC814\uC817",4,"\uC81E\uC81F\uC821\uC822\uC823\uC825",6,"\uC82E\uC830\uC832",5,"\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841",6,"\uC84A\uC84B\uC84E",5,"\uC855",26,"\uC872\uC873\uC875\uC876\uC877\uC879\uC87B",4,"\uC882\uC884\uC888\uC889\uC88A\uC88E",5,"\uC895",7,"\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],["a141","\uC8A5\uC8A6\uC8A7\uC8A9",18,"\uC8BE\uC8BF\uC8C0\uC8C1"],["a161","\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD",6,"\uC8D6\uC8D8\uC8DA",5,"\uC8E2\uC8E3\uC8E5"],["a181","\uC8E6",14,"\uC8F6",5,"\uC8FE\uC8FF\uC901\uC902\uC903\uC907",4,"\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008",9,"\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],["a241","\uC910\uC912",5,"\uC919",18],["a261","\uC92D",6,"\uC935",18],["a281","\uC948",7,"\uC952\uC953\uC955\uC956\uC957\uC959",6,"\uC962\uC964",7,"\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],["a341","\uC971\uC972\uC973\uC975",6,"\uC97D",10,"\uC98A\uC98B\uC98D\uC98E\uC98F"],["a361","\uC991",6,"\uC99A\uC99C\uC99E",16],["a381","\uC9AF",16,"\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB",4,"\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01",58,"\uFFE6\uFF3D",32,"\uFFE3"],["a441","\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2",5,"\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],["a461","\uCA05\uCA06\uCA07\uCA0A\uCA0E",5,"\uCA15\uCA16\uCA17\uCA19",12],["a481","\uCA26\uCA27\uCA28\uCA2A",28,"\u3131",93],["a541","\uCA47",4,"\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55",6,"\uCA5E\uCA62",5,"\uCA69\uCA6A"],["a561","\uCA6B",17,"\uCA7E",5,"\uCA85\uCA86"],["a581","\uCA87",16,"\uCA99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03A3",6],["a5e1","\u03B1",16,"\u03C3",6],["a641","\uCAA8",19,"\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],["a661","\uCAC6",5,"\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA",5,"\uCAE1",6],["a681","\uCAE8\uCAE9\uCAEA\uCAEB\uCAED",6,"\uCAF5",18,"\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543",7],["a741","\uCB0B",4,"\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19",6,"\uCB22",7],["a761","\uCB2A",22,"\uCB42\uCB43\uCB44"],["a781","\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51",6,"\uCB5A\uCB5B\uCB5C\uCB5E",5,"\uCB65",7,"\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399",9,"\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0",9,"\u3380",4,"\u33BA",5,"\u3390",4,"\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],["a841","\uCB6D",10,"\uCB7A",14],["a861","\uCB89",18,"\uCB9D",6],["a881","\uCBA4",19,"\uCBB9",11,"\xC6\xD0\xAA\u0126"],["a8a6","\u0132"],["a8a8","\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],["a8b1","\u3260",27,"\u24D0",25,"\u2460",14,"\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],["a941","\uCBC5",14,"\uCBD5",10],["a961","\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA",18],["a981","\uCBFD",14,"\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15",6,"\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200",27,"\u249C",25,"\u2474",14,"\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],["aa41","\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31",6,"\uCC3A\uCC3F",4,"\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],["aa61","\uCC4F",4,"\uCC56\uCC5A",5,"\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69",6,"\uCC71\uCC72"],["aa81","\uCC73\uCC74\uCC76",29,"\u3041",82],["ab41","\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1",6,"\uCCAA\uCCAE",5,"\uCCB6\uCCB7\uCCB9"],["ab61","\uCCBA\uCCBB\uCCBD",6,"\uCCC6\uCCC8\uCCCA",5,"\uCCD1\uCCD2\uCCD3\uCCD5",5],["ab81","\uCCDB",8,"\uCCE5",6,"\uCCED\uCCEE\uCCEF\uCCF1",12,"\u30A1",85],["ac41","\uCCFE\uCCFF\uCD00\uCD02",5,"\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11",6,"\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],["ac61","\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D",11,"\uCD3A",4],["ac81","\uCD3F",28,"\uCD5D\uCD5E\uCD5F\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\uCD61\uCD62\uCD63\uCD65",6,"\uCD6E\uCD70\uCD72",5,"\uCD79",7],["ad61","\uCD81",6,"\uCD89",10,"\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],["ad81","\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA",5,"\uCDB1",18,"\uCDC5"],["ae41","\uCDC6",5,"\uCDCD\uCDCE\uCDCF\uCDD1",16],["ae61","\uCDE2",5,"\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1",6,"\uCDFA\uCDFC\uCDFE",4],["ae81","\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D",6,"\uCE15\uCE16\uCE17\uCE18\uCE1A",5,"\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],["af41","\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36",19],["af61","\uCE4A",13,"\uCE5A\uCE5B\uCE5D\uCE5E\uCE62",5,"\uCE6A\uCE6C"],["af81","\uCE6E",5,"\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D",6,"\uCE86\uCE88\uCE8A",5,"\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],["b041","\uCE9A",5,"\uCEA2\uCEA6",5,"\uCEAE",12],["b061","\uCEBB",5,"\uCEC2",19],["b081","\uCED6",13,"\uCEE6\uCEE7\uCEE9\uCEEA\uCEED",6,"\uCEF6\uCEFA",5,"\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10",7,"\uAC19",4,"\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],["b141","\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09",6,"\uCF12\uCF14\uCF16",5,"\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],["b161","\uCF25",6,"\uCF2E\uCF32",5,"\uCF39",11],["b181","\uCF45",14,"\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D",6,"\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],["b241","\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79",6,"\uCF81\uCF82\uCF83\uCF84\uCF86",5,"\uCF8D"],["b261","\uCF8E",18,"\uCFA2",5,"\uCFA9"],["b281","\uCFAA",5,"\uCFB1",18,"\uCFC5",6,"\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],["b341","\uCFCC",19,"\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],["b361","\uCFEA",5,"\uCFF2\uCFF4\uCFF6",5,"\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005",5],["b381","\uD00B",5,"\uD012",5,"\uD019",19,"\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB",4,"\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],["b441","\uD02E",5,"\uD036\uD037\uD039\uD03A\uD03B\uD03D",6,"\uD046\uD048\uD04A",5],["b461","\uD051\uD052\uD053\uD055\uD056\uD057\uD059",6,"\uD061",10,"\uD06E\uD06F"],["b481","\uD071\uD072\uD073\uD075",6,"\uD07E\uD07F\uD080\uD082",18,"\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB",4,"\uB2F3\uB2F4\uB2F5\uB2F7",4,"\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],["b541","\uD095",14,"\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD",5],["b561","\uD0B3\uD0B6\uD0B8\uD0BA",5,"\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA",5,"\uD0D2\uD0D6",4],["b581","\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5",6,"\uD0EE\uD0F2",5,"\uD0F9",11,"\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],["b641","\uD105",7,"\uD10E",17],["b661","\uD120",15,"\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],["b681","\uD13F\uD142\uD146",5,"\uD14E\uD14F\uD151\uD152\uD153\uD155",6,"\uD15E\uD160\uD162",5,"\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],["b741","\uD16E",13,"\uD17D",6,"\uD185\uD186\uD187\uD189\uD18A"],["b761","\uD18B",20,"\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],["b781","\uD1A9",6,"\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1",14,"\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],["b841","\uD1D0",7,"\uD1D9",17],["b861","\uD1EB",8,"\uD1F5\uD1F6\uD1F7\uD1F9",13],["b881","\uD208\uD20A",5,"\uD211",24,"\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE",4,"\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],["b941","\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235",6,"\uD23E\uD240\uD242",5,"\uD249\uD24A\uD24B\uD24C"],["b961","\uD24D",14,"\uD25D",6,"\uD265\uD266\uD267\uD268"],["b981","\uD269",22,"\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14",4,"\uBC1B",4,"\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],["ba41","\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296",5,"\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5",6,"\uD2AD"],["ba61","\uD2AE\uD2AF\uD2B0\uD2B2",5,"\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3",4,"\uD2CA\uD2CC",5],["ba81","\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD",6,"\uD2E6",9,"\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],["bb41","\uD2FB",4,"\uD302\uD304\uD306",5,"\uD30F\uD311\uD312\uD313\uD315\uD317",4,"\uD31E\uD322\uD323"],["bb61","\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331",6,"\uD33A\uD33E",5,"\uD346\uD347\uD348\uD349"],["bb81","\uD34A",31,"\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],["bc41","\uD36A",17,"\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],["bc61","\uD388\uD389\uD38A\uD38B\uD38E\uD392",5,"\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1",6,"\uD3AA\uD3AC\uD3AE"],["bc81","\uD3AF",4,"\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD",6,"\uD3C6\uD3C7\uD3CA",5,"\uD3D1",5,"\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C",4,"\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],["bd41","\uD3D7\uD3D9",7,"\uD3E2\uD3E4",7,"\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],["bd61","\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402",5,"\uD409",13],["bd81","\uD417",5,"\uD41E",25,"\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],["be41","\uD438",7,"\uD441\uD442\uD443\uD445",14],["be61","\uD454",7,"\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465",7,"\uD46E\uD470\uD471\uD472"],["be81","\uD473",4,"\uD47A\uD47B\uD47D\uD47E\uD481\uD483",4,"\uD48A\uD48C\uD48E",5,"\uD495",8,"\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4",6,"\uC5CC\uC5CE"],["bf41","\uD49E",10,"\uD4AA",14],["bf61","\uD4B9",18,"\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],["bf81","\uD4D6",5,"\uD4DD\uD4DE\uD4E0",7,"\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1",6,"\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC",5,"\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],["c041","\uD4FE",5,"\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D",6,"\uD516\uD518",5],["c061","\uD51E",25],["c081","\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545",6,"\uD54E\uD550\uD552",5,"\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751",7,"\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],["c141","\uD564\uD566\uD567\uD56A\uD56C\uD56E",5,"\uD576\uD577\uD579\uD57A\uD57B\uD57D",6,"\uD586\uD58A\uD58B"],["c161","\uD58C\uD58D\uD58E\uD58F\uD591",19,"\uD5A6\uD5A7"],["c181","\uD5A8",31,"\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],["c241","\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3",4,"\uD5DA\uD5DC\uD5DE",5,"\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],["c261","\uD5EF",4,"\uD5F6\uD5F8\uD5FA",5,"\uD602\uD603\uD605\uD606\uD607\uD609",6,"\uD612"],["c281","\uD616",5,"\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625",7,"\uD62E",9,"\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],["c341","\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D",4],["c361","\uD662",4,"\uD668\uD66A",5,"\uD672\uD673\uD675",11],["c381","\uD681\uD682\uD684\uD686",5,"\uD68E\uD68F\uD691\uD692\uD693\uD695",7,"\uD69E\uD6A0\uD6A2",5,"\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],["c441","\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1",7,"\uD6BA\uD6BC",7,"\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],["c461","\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA",5,"\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9",4],["c481","\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6",5,"\uD6FE\uD6FF\uD701\uD702\uD703\uD705",11,"\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],["c541","\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721",6,"\uD72A\uD72C\uD72E",5,"\uD736\uD737\uD739"],["c561","\uD73A\uD73B\uD73D",6,"\uD745\uD746\uD748\uD74A",5,"\uD752\uD753\uD755\uD75A",4],["c581","\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775",6,"\uD77E\uD77F\uD780\uD782",5,"\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],["c641","\uD78D\uD78E\uD78F\uD791",6,"\uD79A\uD79C\uD79E",5],["c6a1","\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],["c7a1","\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],["c8a1","\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],["caa1","\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],["cba1","\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],["cca1","\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],["cda1","\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],["cea1","\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],["cfa1","\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],["d0a1","\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],["d1a1","\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E",5,"\u90A3\uF914",4,"\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],["d2a1","\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928",4,"\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933",5,"\u99D1\uF939",10,"\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A",7,"\u5AE9\u8A25\u677B\u7D10\uF952",5,"\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],["d3a1","\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],["d4a1","\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],["d5a1","\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],["d6a1","\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],["d7a1","\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],["d8a1","\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],["d9a1","\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],["daa1","\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],["dba1","\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],["dca1","\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],["dda1","\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],["dea1","\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],["dfa1","\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],["e0a1","\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],["e1a1","\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],["e2a1","\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],["e3a1","\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],["e4a1","\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],["e5a1","\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],["e6a1","\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],["e7a1","\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],["e8a1","\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],["e9a1","\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],["eaa1","\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],["eba1","\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],["eca1","\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],["eda1","\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],["eea1","\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],["efa1","\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],["f0a1","\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],["f1a1","\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],["f2a1","\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],["f3a1","\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],["f4a1","\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],["f5a1","\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],["f6a1","\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],["f7a1","\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],["f8a1","\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],["f9a1","\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],["faa1","\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],["fba1","\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],["fca1","\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],["fda1","\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]]});var eu=M((nq,IS)=>{IS.exports=[["0","\0",127],["a140","\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],["a1a1","\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62",4,"\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],["a240","\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581",7,"\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],["a2a1","\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uFF21",25,"\uFF41",21],["a340","\uFF57\uFF58\uFF59\uFF5A\u0391",16,"\u03A3",6,"\u03B1",16,"\u03C3",6,"\u3105",10],["a3a1","\u3110",25,"\u02D9\u02C9\u02CA\u02C7\u02CB"],["a3e1","\u20AC"],["a440","\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],["a4a1","\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],["a540","\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],["a5a1","\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],["a6a1","\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],["a740","\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],["a7a1","\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],["a840","\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],["a8a1","\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],["a9a1","\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],["aa40","\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],["aaa1","\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],["ab40","\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],["aba1","\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],["ac40","\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],["aca1","\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],["ad40","\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],["ada1","\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],["ae40","\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],["af40","\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],["afa1","\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],["b0a1","\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],["b140","\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],["b1a1","\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],["b240","\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],["b2a1","\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],["b340","\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],["b3a1","\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],["b440","\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],["b4a1","\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],["b540","\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],["b5a1","\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],["b640","\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],["b6a1","\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],["b740","\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],["b7a1","\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],["b840","\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],["b8a1","\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],["b940","\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],["b9a1","\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],["ba40","\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],["baa1","\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],["bb40","\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],["bba1","\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],["bc40","\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],["bca1","\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],["bd40","\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],["bda1","\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],["be40","\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],["bea1","\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],["bf40","\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],["bfa1","\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],["c040","\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],["c0a1","\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],["c140","\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],["c1a1","\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],["c240","\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],["c2a1","\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],["c340","\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],["c3a1","\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],["c440","\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],["c4a1","\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],["c540","\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],["c5a1","\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],["c640","\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],["c940","\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],["c9a1","\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],["ca40","\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],["caa1","\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],["cb40","\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],["cba1","\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],["cc40","\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],["cca1","\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],["cd40","\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],["cda1","\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],["ce40","\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],["cea1","\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],["cf40","\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],["cfa1","\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],["d040","\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],["d0a1","\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],["d140","\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],["d1a1","\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],["d240","\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],["d340","\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],["d3a1","\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],["d440","\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],["d540","\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],["d5a1","\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],["d640","\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],["d6a1","\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],["d740","\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],["d7a1","\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],["d840","\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],["d8a1","\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],["d940","\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],["d9a1","\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],["da40","\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],["daa1","\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],["db40","\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],["dba1","\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],["dc40","\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],["dca1","\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],["dd40","\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],["de40","\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],["dea1","\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],["df40","\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],["dfa1","\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],["e040","\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],["e0a1","\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],["e140","\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],["e1a1","\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],["e240","\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],["e2a1","\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],["e3a1","\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],["e440","\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],["e4a1","\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],["e540","\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],["e5a1","\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],["e640","\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],["e6a1","\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],["e740","\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],["e840","\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],["e8a1","\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],["e940","\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],["e9a1","\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],["ea40","\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],["eaa1","\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],["eba1","\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],["ec40","\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],["eca1","\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],["ed40","\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],["eda1","\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],["ee40","\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],["eea1","\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],["ef40","\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],["efa1","\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],["f040","\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],["f0a1","\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],["f140","\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],["f1a1","\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],["f240","\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],["f2a1","\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],["f340","\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],["f3a1","\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],["f440","\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],["f540","\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],["f5a1","\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],["f640","\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],["f6a1","\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],["f740","\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],["f7a1","\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],["f840","\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],["f8a1","\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],["f940","\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],["f9a1","\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]]});var Wf=M((iq,AS)=>{AS.exports=[["8740","\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],["8767","\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],["87a1","\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],["8840","\u31C0",4,"\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],["88a1","\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],["8940","\u{2A3A9}\u{21145}"],["8943","\u650A"],["8946","\u4E3D\u6EDD\u9D4E\u91DF"],["894c","\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],["89a1","\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],["89ab","\u918C\u78B8\u915E\u80BC"],["89b0","\u8D0B\u80F6\u{209E7}"],["89b5","\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],["89c1","\u6E9A\u823E\u7519"],["89c5","\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],["8a40","\u{27D84}\u5525"],["8a43","\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],["8a64","\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],["8a76","\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],["8aa1","\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],["8aac","\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],["8ab2","\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],["8abb","\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],["8ac9","\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],["8ace","\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],["8adf","\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],["8af6","\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],["8b40","\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],["8b55","\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],["8ba1","\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],["8bde","\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],["8c40","\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],["8ca1","\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],["8ca7","\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],["8cc9","\u9868\u676B\u4276\u573D"],["8cce","\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],["8ce6","\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],["8d40","\u{20B9F}"],["8d42","\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],["8da1","\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],["8e40","\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],["8ea1","\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],["8f40","\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],["8fa1","\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],["9040","\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],["90a1","\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],["9140","\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],["91a1","\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],["9240","\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],["92a1","\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],["9340","\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],["93a1","\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],["9440","\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],["94a1","\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],["9540","\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],["95a1","\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],["9640","\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],["96a1","\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],["9740","\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],["97a1","\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],["9840","\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],["98a1","\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],["99a1","\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],["9a40","\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],["9aa1","\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],["9b40","\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],["9b62","\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],["9ba1","\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],["9c40","\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],["9ca1","\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],["9d40","\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],["9da1","\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],["9e40","\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],["9ea1","\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],["9ead","\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],["9ec5","\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],["9ef5","\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],["9f40","\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],["9f4f","\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],["9fa1","\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],["9fae","\u9159\u9681\u915C"],["9fb2","\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],["9fc1","\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],["9fc9","\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],["9fdb","\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],["9fe7","\u6BFA\u8818\u7F78"],["9feb","\u5620\u{2A64A}\u8E77\u9F53"],["9ff0","\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],["a040","\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],["a055","\u{2183B}\u{26E05}"],["a058","\u8A7E\u{2251B}"],["a05b","\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],["a063","\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],["a073","\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],["a0a1","\u5D57\u{28BC2}\u8FDA\u{28E39}"],["a0a6","\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],["a0ae","\u77FE"],["a0b0","\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],["a0d4","\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],["a0e2","\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041",23],["c740","\u3059",58,"\u30A1\u30A2\u30A3\u30A4"],["c7a1","\u30A5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041B",26,"\u0451\u0436",25,"\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],["c8a1","\u9FB0\u5188\u9FB1\u{27607}"],["c8cd","\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],["c8f5","\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],["f9fe","\uFFED"],["fa40","\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],["faa1","\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],["fb40","\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],["fba1","\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],["fc40","\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],["fca1","\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],["fd40","\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],["fda1","\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],["fea1","\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]]});var Qf=M((oq,Kf)=>{"use strict";Kf.exports={shiftjis:{type:"_dbcs",table:function(){return Bf()},encodeAdd:{"\xA5":92,"\u203E":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return Vf()},encodeAdd:{"\xA5":92,"\u203E":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return io()}},gbk:{type:"_dbcs",table:function(){return io().concat(Yl())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return io().concat(Yl())},gb18030:function(){return Gf()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return Zf()}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return eu()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return eu().concat(Wf())},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var Yf=M((Jf,Hs)=>{"use strict";var Xf=[Cf(),Af(),Nf(),$f(),Mf(),Lf(),Hf(),Qf()];for(oo=0;oo{"use strict";var em=require("buffer").Buffer,lo=require("stream").Transform;tm.exports=function(r){r.encodeStream=function(a,t){return new Fa(r.getEncoder(a,t),t)},r.decodeStream=function(a,t){return new ma(r.getDecoder(a,t),t)},r.supportsStreams=!0,r.IconvLiteEncoderStream=Fa,r.IconvLiteDecoderStream=ma,r._collect=ma.prototype.collect};function Fa(r,e){this.conv=r,e=e||{},e.decodeStrings=!1,lo.call(this,e)}Fa.prototype=Object.create(lo.prototype,{constructor:{value:Fa}});Fa.prototype._transform=function(r,e,a){if(typeof r!="string")return a(new Error("Iconv encoding stream needs strings as its input."));try{var t=this.conv.write(r);t&&t.length&&this.push(t),a()}catch(s){a(s)}};Fa.prototype._flush=function(r){try{var e=this.conv.end();e&&e.length&&this.push(e),r()}catch(a){r(a)}};Fa.prototype.collect=function(r){var e=[];return this.on("error",r),this.on("data",function(a){e.push(a)}),this.on("end",function(){r(null,em.concat(e))}),this};function ma(r,e){this.conv=r,e=e||{},e.encoding=this.encoding="utf8",lo.call(this,e)}ma.prototype=Object.create(lo.prototype,{constructor:{value:ma}});ma.prototype._transform=function(r,e,a){if(!em.isBuffer(r))return a(new Error("Iconv decoding stream needs buffers as its input."));try{var t=this.conv.write(r);t&&t.length&&this.push(t,this.encoding),a()}catch(s){a(s)}};ma.prototype._flush=function(r){try{var e=this.conv.end();e&&e.length&&this.push(e,this.encoding),r()}catch(a){r(a)}};ma.prototype.collect=function(r){var e="";return this.on("error",r),this.on("data",function(a){e+=a}),this.on("end",function(){r(null,e)}),this}});var sm=M((lq,am)=>{"use strict";var ct=require("buffer").Buffer;am.exports=function(r){var e=void 0;r.supportsNodeEncodingsExtension=!(ct.from||new ct(0)instanceof Uint8Array),r.extendNodeEncodings=function(){if(!e){if(e={},!r.supportsNodeEncodingsExtension){console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"),console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");return}var t={hex:!0,utf8:!0,"utf-8":!0,ascii:!0,binary:!0,base64:!0,ucs2:!0,"ucs-2":!0,utf16le:!0,"utf-16le":!0};ct.isNativeEncoding=function(n){return n&&t[n.toLowerCase()]};var s=require("buffer").SlowBuffer;if(e.SlowBufferToString=s.prototype.toString,s.prototype.toString=function(n,o,l){return n=String(n||"utf8").toLowerCase(),ct.isNativeEncoding(n)?e.SlowBufferToString.call(this,n,o,l):(typeof o>"u"&&(o=0),typeof l>"u"&&(l=this.length),r.decode(this.slice(o,l),n))},e.SlowBufferWrite=s.prototype.write,s.prototype.write=function(n,o,l,c){if(isFinite(o))isFinite(l)||(c=l,l=void 0);else{var u=c;c=o,o=l,l=u}o=+o||0;var p=this.length-o;if(l?(l=+l,l>p&&(l=p)):l=p,c=String(c||"utf8").toLowerCase(),ct.isNativeEncoding(c))return e.SlowBufferWrite.call(this,n,o,l,c);if(n.length>0&&(l<0||o<0))throw new RangeError("attempt to write beyond buffer bounds");var m=r.encode(n,c);return m.length"u"&&(o=0),typeof l>"u"&&(l=this.length),r.decode(this.slice(o,l),n))},e.BufferWrite=ct.prototype.write,ct.prototype.write=function(n,o,l,c){var u=o,p=l,m=c;if(isFinite(o))isFinite(l)||(c=l,l=void 0);else{var f=c;c=o,o=l,l=f}if(c=String(c||"utf8").toLowerCase(),ct.isNativeEncoding(c))return e.BufferWrite.call(this,n,u,p,m);o=+o||0;var h=this.length-o;if(l?(l=+l,l>h&&(l=h)):l=h,n.length>0&&(l<0||o<0))throw new RangeError("attempt to write beyond buffer bounds");var d=r.encode(n,c);return d.length{"use strict";var im=qa().Buffer,om=Tf(),Je=cm.exports;Je.encodings=null;Je.defaultCharUnicode="\uFFFD";Je.defaultCharSingleByte="?";Je.encode=function(e,a,t){e=""+(e||"");var s=Je.getEncoder(a,t),i=s.write(e),n=s.end();return n&&n.length>0?im.concat([i,n]):i};Je.decode=function(e,a,t){typeof e=="string"&&(Je.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),Je.skipDecodeWarning=!0),e=im.from(""+(e||""),"binary"));var s=Je.getDecoder(a,t),i=s.write(e),n=s.end();return n?i+n:i};Je.encodingExists=function(e){try{return Je.getCodec(e),!0}catch{return!1}};Je.toEncoding=Je.encode;Je.fromEncoding=Je.decode;Je._codecDataCache={};Je.getCodec=function(e){Je.encodings||(Je.encodings=Yf());for(var a=Je._canonicalizeEncoding(e),t={};;){var s=Je._codecDataCache[a];if(s)return s;var i=Je.encodings[a];switch(typeof i){case"string":a=i;break;case"object":for(var n in i)t[n]=i[n];t.encodingName||(t.encodingName=a),a=i.type;break;case"function":return t.encodingName||(t.encodingName=a),s=new i(t,Je),Je._codecDataCache[t.encodingName]=s,s;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+a+"')")}}};Je._canonicalizeEncoding=function(r){return(""+r).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};Je.getEncoder=function(e,a){var t=Je.getCodec(e),s=new t.encoder(a,t);return t.bomAware&&a&&a.addBOM&&(s=new om.PrependBOM(s,a)),s};Je.getDecoder=function(e,a){var t=Je.getCodec(e),s=new t.decoder(a,t);return t.bomAware&&!(a&&a.stripBOM===!1)&&(s=new om.StripBOM(s,a)),s};var nm=typeof process<"u"&&process.versions&&process.versions.node;nm&&(tu=nm.split(".").map(Number),(tu[0]>0||tu[1]>=10)&&rm()(Je),sm()(Je));var tu});var uo=M((pq,lm)=>{"use strict";lm.exports=NS;function jS(r){for(var e=r.listeners("data"),a=0;a{"use strict";var um=zS(),DS=$s(),La=Da(),$S=ru(),qS=uo();dm.exports=LS;var MS=/^Encoding not recognized: /;function FS(r){if(!r)return null;try{return $S.getDecoder(r)}catch(e){throw MS.test(e.message)?La(415,"specified encoding unsupported",{encoding:r,type:"encoding.unsupported"}):e}}function LS(r,e,a){var t=a,s=e||{};if(r===void 0)throw new TypeError("argument stream is required");if(typeof r!="object"||r===null||typeof r.on!="function")throw new TypeError("argument stream must be a stream");if((e===!0||typeof e=="string")&&(s={encoding:e}),typeof e=="function"&&(t=e,s={}),t!==void 0&&typeof t!="function")throw new TypeError("argument callback must be a function");if(!t&&!global.Promise)throw new TypeError("argument callback is required");var i=s.encoding!==!0?s.encoding:"utf-8",n=DS.parse(s.limit),o=s.length!=null&&!isNaN(s.length)?parseInt(s.length,10):null;return t?pm(r,i,o,n,HS(t)):new Promise(function(c,u){pm(r,i,o,n,function(m,f){if(m)return u(m);c(f)})})}function US(r){qS(r),typeof r.pause=="function"&&r.pause()}function pm(r,e,a,t,s){var i=!1,n=!0;if(t!==null&&a!==null&&a>t)return p(La(413,"request entity too large",{expected:a,length:a,limit:t,type:"entity.too.large"}));var o=r._readableState;if(r._decoder||o&&(o.encoding||o.decoder))return p(La(500,"stream encoding should not be set",{type:"stream.encoding.set"}));if(typeof r.readable<"u"&&!r.readable)return p(La(500,"stream is not readable",{type:"stream.not.readable"}));var l=0,c;try{c=FS(e)}catch(v){return p(v)}var u=c?"":[];r.on("aborted",m),r.on("close",d),r.on("data",f),r.on("end",h),r.on("error",h),n=!1;function p(){for(var v=new Array(arguments.length),x=0;xt?p(La(413,"request entity too large",{limit:t,received:l,type:"entity.too.large"})):c?u+=c.write(v):u.push(v))}function h(v){if(!i){if(v)return p(v);if(a!==null&&l!==a)p(La(400,"request size did not match content length",{expected:a,length:a,received:l,type:"request.size.invalid"}));else{var x=c?u+(c.end()||""):Buffer.concat(u);p(null,x)}}}function d(){u=null,r.removeListener("aborted",m),r.removeListener("data",f),r.removeListener("end",h),r.removeListener("error",h),r.removeListener("close",d)}}function zS(){try{return require("async_hooks")}catch{return{}}}function HS(r){var e;return um.AsyncResource&&(e=new um.AsyncResource(r.name||"bound-anonymous-fn")),!e||!e.runInAsyncScope?r:e.runInAsyncScope.bind(e,r,null)}});var hm=M((fq,mm)=>{"use strict";mm.exports=BS;function BS(r,e){if(!Array.isArray(r))throw new TypeError("arg must be an array of [ee, events...] arrays");for(var a=[],t=0;t{"use strict";au.exports=ZS;au.exports.isFinished=ym;var vm=JS(),gm=hm(),GS=typeof setImmediate=="function"?setImmediate:function(r){process.nextTick(r.bind.apply(r,arguments))};function ZS(r,e){return ym(r)!==!1?(GS(e,null,r),r):(KS(r,YS(e)),r)}function ym(r){var e=r.socket;if(typeof r.finished=="boolean")return!!(r.finished||e&&!e.writable);if(typeof r.complete=="boolean")return!!(r.upgrade||!e||!e.readable||r.complete&&!r.readable)}function WS(r,e){var a,t,s=!1;function i(o){a.cancel(),t.cancel(),s=!0,e(o)}a=t=gm([[r,"end","finish"]],i);function n(o){r.removeListener("socket",n),!s&&a===t&&(t=gm([[o,"error","close"]],i))}if(r.socket){n(r.socket);return}r.on("socket",n),r.socket===void 0&&XS(r,n)}function KS(r,e){var a=r.__onFinished;(!a||!a.queue)&&(a=r.__onFinished=QS(r),WS(r,a)),a.queue.push(e)}function QS(r){function e(a){if(r.__onFinished===e&&(r.__onFinished=null),!!e.queue){var t=e.queue;e.queue=null;for(var s=0;s{"use strict";var ha=Da(),eP=Tl(),tP=fm(),bm=ru(),xm=Xn(),rP=uo(),_m=require("zlib");Em.exports=aP;function aP(r,e,a,t,s,i){var n,o=i,l;r._body=!0;var c=o.encoding!==null?o.encoding:null,u=o.verify;try{l=sP(r,s,o.inflate),n=l.length,l.length=void 0}catch(p){return a(p)}if(o.length=n,o.encoding=u?null:c,o.encoding===null&&c!==null&&!bm.encodingExists(c))return a(ha(415,'unsupported charset "'+c.toUpperCase()+'"',{charset:c.toLowerCase(),type:"charset.unsupported"}));s("read body"),tP(l,o,function(p,m){if(p){var f;p.type==="encoding.unsupported"?f=ha(415,'unsupported charset "'+c.toUpperCase()+'"',{charset:c.toLowerCase(),type:"charset.unsupported"}):f=ha(400,p),l!==r&&(rP(r),eP(l,!0)),nP(r,function(){a(ha(400,f))});return}if(u)try{s("verify body"),u(r,e,m,c)}catch(d){a(ha(403,d,{body:m,type:d.type||"entity.verify.failed"}));return}var h=m;try{s("parse body"),h=typeof m!="string"&&c!==null?bm.decode(m,c):m,r.body=t(h)}catch(d){a(ha(400,d,{body:h,type:d.type||"entity.parse.failed"}));return}a()})}function sP(r,e,a){var t=(r.headers["content-encoding"]||"identity").toLowerCase(),s=r.headers["content-length"],i;if(e('content-encoding "%s"',t),a===!1&&t!=="identity")throw ha(415,"content encoding unsupported",{encoding:t,type:"encoding.unsupported"});switch(t){case"deflate":i=_m.createInflate(),e("inflate body"),r.pipe(i);break;case"gzip":i=_m.createGunzip(),e("gunzip body"),r.pipe(i);break;case"identity":i=r,i.length=s;break;default:throw ha(415,'unsupported content encoding "'+t+'"',{encoding:t,type:"encoding.unsupported"})}return i}function nP(r,e){xm.isFinished(r)?e(null):(xm(r,e),r.resume())}});var Rm=M(su=>{var wm=/; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g,iP=/^[\u0020-\u007e\u0080-\u00ff]+$/,Pm=/^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/,oP=/\\([\u0000-\u007f])/g,cP=/([\\"])/g,lP=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,Sm=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,uP=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;su.format=pP;su.parse=dP;function pP(r){if(!r||typeof r!="object")throw new TypeError("argument obj is required");var e=r.parameters,a=r.subtype,t=r.suffix,s=r.type;if(!s||!Sm.test(s))throw new TypeError("invalid type");if(!a||!lP.test(a))throw new TypeError("invalid subtype");var i=s+"/"+a;if(t){if(!Sm.test(t))throw new TypeError("invalid suffix");i+="+"+t}if(e&&typeof e=="object")for(var n,o=Object.keys(e).sort(),l=0;l0&&!iP.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(cP,"\\$1")+'"'}function hP(r){var e=uP.exec(r.toLowerCase());if(!e)throw new TypeError("invalid media type");var a=e[1],t=e[2],s,i=t.lastIndexOf("+");i!==-1&&(s=t.substr(i+1),t=t.substr(0,i));var n={type:a,subtype:t,suffix:s};return n}});var Tm=M((gq,vP)=>{vP.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var Om=M((yq,km)=>{km.exports=Tm()});var nu=M(Dt=>{"use strict";var po=Om(),gP=require("path").extname,Cm=/^\s*([^;\s]*)(?:;|\s|$)/,yP=/^text\//i;Dt.charset=Im;Dt.charsets={lookup:Im};Dt.contentType=bP;Dt.extension=xP;Dt.extensions=Object.create(null);Dt.lookup=_P;Dt.types=Object.create(null);EP(Dt.extensions,Dt.types);function Im(r){if(!r||typeof r!="string")return!1;var e=Cm.exec(r),a=e&&po[e[1].toLowerCase()];return a&&a.charset?a.charset:e&&yP.test(e[1])?"UTF-8":!1}function bP(r){if(!r||typeof r!="string")return!1;var e=r.indexOf("/")===-1?Dt.lookup(r):r;if(!e)return!1;if(e.indexOf("charset")===-1){var a=Dt.charset(e);a&&(e+="; charset="+a.toLowerCase())}return e}function xP(r){if(!r||typeof r!="string")return!1;var e=Cm.exec(r),a=e&&Dt.extensions[e[1].toLowerCase()];return!a||!a.length?!1:a[0]}function _P(r){if(!r||typeof r!="string")return!1;var e=gP("x."+r).toLowerCase().substr(1);return e&&Dt.types[e]||!1}function EP(r,e){var a=["nginx","apache",void 0,"iana"];Object.keys(po).forEach(function(s){var i=po[s],n=i.extensions;if(!(!n||!n.length)){r[s]=n;for(var o=0;ou||c===u&&e[l].substr(0,12)==="application/"))continue}e[l]=s}}})}});var Vs=M((xq,Bs)=>{"use strict";var Am=Rm(),wP=nu();Bs.exports=SP;Bs.exports.is=jm;Bs.exports.hasBody=Nm;Bs.exports.normalize=Dm;Bs.exports.match=$m;function jm(r,e){var a,t=e,s=RP(r);if(!s)return!1;if(t&&!Array.isArray(t))for(t=new Array(arguments.length-1),a=0;a2){a=new Array(arguments.length-1);for(var t=0;t{"use strict";var TP=$s(),kP=Ln(),OP=Da(),va=tr()("body-parser:json"),CP=Jn(),Mm=Vs();Lm.exports=jP;var IP=/^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/,qm="#",AP=/#+/g;function jP(r){var e=r||{},a=typeof e.limit!="number"?TP.parse(e.limit||"100kb"):e.limit,t=e.inflate!==!1,s=e.reviver,i=e.strict!==!1,n=e.type||"application/json",o=e.verify||!1;if(o!==!1&&typeof o!="function")throw new TypeError("option verify must be function");var l=typeof n!="function"?qP(n):n;function c(u){if(u.length===0)return{};if(i){var p=DP(u);if(p!=="{"&&p!=="[")throw va("strict violation"),NP(u,p)}try{return va("parse json"),JSON.parse(u,s)}catch(m){throw Fm(m,{message:m.message,stack:m.stack})}}return function(p,m,f){if(p._body){va("body already parsed"),f();return}if(p.body=p.body||{},!Mm.hasBody(p)){va("skip empty body"),f();return}if(va("content-type %j",p.headers["content-type"]),!l(p)){va("skip parsing"),f();return}var h=$P(p)||"utf-8";if(h.slice(0,4)!=="utf-"){va("invalid charset"),f(OP(415,'unsupported charset "'+h.toUpperCase()+'"',{charset:h,type:"charset.unsupported"}));return}CP(p,m,f,c,va,{encoding:h,inflate:t,limit:a,verify:o})}}function NP(r,e){var a=r.indexOf(e),t="";if(a!==-1){t=r.substring(0,a)+qm;for(var s=a+1;s{"use strict";var MP=$s(),Yn=tr()("body-parser:raw"),FP=Jn(),zm=Vs();Hm.exports=LP;function LP(r){var e=r||{},a=e.inflate!==!1,t=typeof e.limit!="number"?MP.parse(e.limit||"100kb"):e.limit,s=e.type||"application/octet-stream",i=e.verify||!1;if(i!==!1&&typeof i!="function")throw new TypeError("option verify must be function");var n=typeof s!="function"?UP(s):s;function o(l){return l}return function(c,u,p){if(c._body){Yn("body already parsed"),p();return}if(c.body=c.body||{},!zm.hasBody(c)){Yn("skip empty body"),p();return}if(Yn("content-type %j",c.headers["content-type"]),!n(c)){Yn("skip parsing"),p();return}FP(c,u,p,o,Yn,{encoding:null,inflate:a,limit:t,verify:i})}}function UP(r){return function(a){return!!zm(a,r)}}});var Zm=M((wq,Gm)=>{"use strict";var zP=$s(),HP=Ln(),ei=tr()("body-parser:text"),BP=Jn(),Vm=Vs();Gm.exports=VP;function VP(r){var e=r||{},a=e.defaultCharset||"utf-8",t=e.inflate!==!1,s=typeof e.limit!="number"?zP.parse(e.limit||"100kb"):e.limit,i=e.type||"text/plain",n=e.verify||!1;if(n!==!1&&typeof n!="function")throw new TypeError("option verify must be function");var o=typeof i!="function"?ZP(i):i;function l(c){return c}return function(u,p,m){if(u._body){ei("body already parsed"),m();return}if(u.body=u.body||{},!Vm.hasBody(u)){ei("skip empty body"),m();return}if(ei("content-type %j",u.headers["content-type"]),!o(u)){ei("skip parsing"),m();return}var f=GP(u)||a;BP(u,p,m,l,ei,{encoding:f,inflate:t,limit:s,verify:n})}}function GP(r){try{return(HP.parse(r).parameters.charset||"").toLowerCase()}catch{return}}function ZP(r){return function(a){return!!Vm(a,r)}}});var Ua=M((Sq,Wm)=>{"use strict";Wm.exports=TypeError});var Qm=M((Pq,Km)=>{Km.exports=require("util").inspect});var ni=M((Rq,vh)=>{var hu=typeof Map=="function"&&Map.prototype,iu=Object.getOwnPropertyDescriptor&&hu?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,mo=hu&&iu&&typeof iu.get=="function"?iu.get:null,Xm=hu&&Map.prototype.forEach,vu=typeof Set=="function"&&Set.prototype,ou=Object.getOwnPropertyDescriptor&&vu?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,ho=vu&&ou&&typeof ou.get=="function"?ou.get:null,Jm=vu&&Set.prototype.forEach,WP=typeof WeakMap=="function"&&WeakMap.prototype,ri=WP?WeakMap.prototype.has:null,KP=typeof WeakSet=="function"&&WeakSet.prototype,ai=KP?WeakSet.prototype.has:null,QP=typeof WeakRef=="function"&&WeakRef.prototype,Ym=QP?WeakRef.prototype.deref:null,XP=Boolean.prototype.valueOf,JP=Object.prototype.toString,YP=Function.prototype.toString,eR=String.prototype.match,gu=String.prototype.slice,ga=String.prototype.replace,tR=String.prototype.toUpperCase,eh=String.prototype.toLowerCase,lh=RegExp.prototype.test,th=Array.prototype.concat,Ar=Array.prototype.join,rR=Array.prototype.slice,rh=Math.floor,uu=typeof BigInt=="function"?BigInt.prototype.valueOf:null,cu=Object.getOwnPropertySymbols,pu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,Gs=typeof Symbol=="function"&&typeof Symbol.iterator=="object",si=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===Gs||!0)?Symbol.toStringTag:null,uh=Object.prototype.propertyIsEnumerable,ah=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(r){return r.__proto__}:null);function sh(r,e){if(r===1/0||r===-1/0||r!==r||r&&r>-1e3&&r<1e3||lh.call(/e/,e))return e;var a=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof r=="number"){var t=r<0?-rh(-r):rh(r);if(t!==r){var s=String(t),i=gu.call(e,s.length+1);return ga.call(s,a,"$&_")+"."+ga.call(ga.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return ga.call(e,a,"$&_")}var du=Qm(),nh=du.custom,ih=fh(nh)?nh:null,ph={__proto__:null,double:'"',single:"'"},aR={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};vh.exports=function r(e,a,t,s){var i=a||{};if(Kr(i,"quoteStyle")&&!Kr(ph,i.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Kr(i,"maxStringLength")&&(typeof i.maxStringLength=="number"?i.maxStringLength<0&&i.maxStringLength!==1/0:i.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var n=Kr(i,"customInspect")?i.customInspect:!0;if(typeof n!="boolean"&&n!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Kr(i,"indent")&&i.indent!==null&&i.indent!==" "&&!(parseInt(i.indent,10)===i.indent&&i.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Kr(i,"numericSeparator")&&typeof i.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var o=i.numericSeparator;if(typeof e>"u")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return hh(e,i);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var l=String(e);return o?sh(e,l):l}if(typeof e=="bigint"){var c=String(e)+"n";return o?sh(e,c):c}var u=typeof i.depth>"u"?5:i.depth;if(typeof t>"u"&&(t=0),t>=u&&u>0&&typeof e=="object")return fu(e)?"[Array]":"[Object]";var p=_R(i,t);if(typeof s>"u")s=[];else if(mh(s,e)>=0)return"[Circular]";function m(R,j,z){if(j&&(s=rR.call(s),s.push(j)),z){var B={depth:i.depth};return Kr(i,"quoteStyle")&&(B.quoteStyle=i.quoteStyle),r(R,B,t+1,s)}return r(R,i,t+1,s)}if(typeof e=="function"&&!oh(e)){var f=dR(e),h=fo(e,m);return"[Function"+(f?": "+f:" (anonymous)")+"]"+(h.length>0?" { "+Ar.call(h,", ")+" }":"")}if(fh(e)){var d=Gs?ga.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):pu.call(e);return typeof e=="object"&&!Gs?ti(d):d}if(yR(e)){for(var v="<"+eh.call(String(e.nodeName)),x=e.attributes||[],b=0;b",v}if(fu(e)){if(e.length===0)return"[]";var E=fo(e,m);return p&&!xR(E)?"["+mu(E,p)+"]":"[ "+Ar.call(E,", ")+" ]"}if(iR(e)){var k=fo(e,m);return!("cause"in Error.prototype)&&"cause"in e&&!uh.call(e,"cause")?"{ ["+String(e)+"] "+Ar.call(th.call("[cause]: "+m(e.cause),k),", ")+" }":k.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+Ar.call(k,", ")+" }"}if(typeof e=="object"&&n){if(ih&&typeof e[ih]=="function"&&du)return du(e,{depth:u-t});if(n!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(fR(e)){var O=[];return Xm&&Xm.call(e,function(R,j){O.push(m(j,e,!0)+" => "+m(R,e))}),ch("Map",mo.call(e),O,p)}if(vR(e)){var P=[];return Jm&&Jm.call(e,function(R){P.push(m(R,e))}),ch("Set",ho.call(e),P,p)}if(mR(e))return lu("WeakMap");if(gR(e))return lu("WeakSet");if(hR(e))return lu("WeakRef");if(cR(e))return ti(m(Number(e)));if(uR(e))return ti(m(uu.call(e)));if(lR(e))return ti(XP.call(e));if(oR(e))return ti(m(String(e)));if(typeof window<"u"&&e===window)return"{ [object Window] }";if(typeof globalThis<"u"&&e===globalThis||typeof global<"u"&&e===global)return"{ [object globalThis] }";if(!nR(e)&&!oh(e)){var I=fo(e,m),$=ah?ah(e)===Object.prototype:e instanceof Object||e.constructor===Object,A=e instanceof Object?"":"null prototype",F=!$&&si&&Object(e)===e&&si in e?gu.call(ya(e),8,-1):A?"Object":"",q=$||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",C=q+(F||A?"["+Ar.call(th.call([],F||[],A||[]),": ")+"] ":"");return I.length===0?C+"{}":p?C+"{"+mu(I,p)+"}":C+"{ "+Ar.call(I,", ")+" }"}return String(e)};function dh(r,e,a){var t=a.quoteStyle||e,s=ph[t];return s+r+s}function sR(r){return ga.call(String(r),/"/g,""")}function za(r){return!si||!(typeof r=="object"&&(si in r||typeof r[si]<"u"))}function fu(r){return ya(r)==="[object Array]"&&za(r)}function nR(r){return ya(r)==="[object Date]"&&za(r)}function oh(r){return ya(r)==="[object RegExp]"&&za(r)}function iR(r){return ya(r)==="[object Error]"&&za(r)}function oR(r){return ya(r)==="[object String]"&&za(r)}function cR(r){return ya(r)==="[object Number]"&&za(r)}function lR(r){return ya(r)==="[object Boolean]"&&za(r)}function fh(r){if(Gs)return r&&typeof r=="object"&&r instanceof Symbol;if(typeof r=="symbol")return!0;if(!r||typeof r!="object"||!pu)return!1;try{return pu.call(r),!0}catch{}return!1}function uR(r){if(!r||typeof r!="object"||!uu)return!1;try{return uu.call(r),!0}catch{}return!1}var pR=Object.prototype.hasOwnProperty||function(r){return r in this};function Kr(r,e){return pR.call(r,e)}function ya(r){return JP.call(r)}function dR(r){if(r.name)return r.name;var e=eR.call(YP.call(r),/^function\s*([\w$]+)/);return e?e[1]:null}function mh(r,e){if(r.indexOf)return r.indexOf(e);for(var a=0,t=r.length;ae.maxStringLength){var a=r.length-e.maxStringLength,t="... "+a+" more character"+(a>1?"s":"");return hh(gu.call(r,0,e.maxStringLength),e)+t}var s=aR[e.quoteStyle||"single"];s.lastIndex=0;var i=ga.call(ga.call(r,s,"\\$1"),/[\x00-\x1f]/g,bR);return dh(i,"single",e)}function bR(r){var e=r.charCodeAt(0),a={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return a?"\\"+a:"\\x"+(e<16?"0":"")+tR.call(e.toString(16))}function ti(r){return"Object("+r+")"}function lu(r){return r+" { ? }"}function ch(r,e,a,t){var s=t?mu(a,t):Ar.call(a,", ");return r+" ("+e+") {"+s+"}"}function xR(r){for(var e=0;e=0)return!1;return!0}function _R(r,e){var a;if(r.indent===" ")a=" ";else if(typeof r.indent=="number"&&r.indent>0)a=Ar.call(Array(r.indent+1)," ");else return null;return{base:a,prev:Ar.call(Array(e+1),a)}}function mu(r,e){if(r.length===0)return"";var a=` `+e.prev+e.base;return a+Ar.call(r,","+a)+` -`+e.prev}function fo(r,e){var a=fu(r),t=[];if(a){t.length=r.length;for(var s=0;s{"use strict";var ER=ni(),wR=Ua(),vo=function(r,e,a){for(var t=r,s;(s=t.next)!=null;t=s)if(s.key===e)return t.next=s.next,a||(s.next=r.next,r.next=s),s},SR=function(r,e){if(r){var a=vo(r,e);return a&&a.value}},PR=function(r,e,a){var t=vo(r,e);t?t.value=a:r.next={key:e,next:r.next,value:a}},RR=function(r,e){return r?!!vo(r,e):!1},TR=function(r,e){if(r)return vo(r,e,!0)};gh.exports=function(){var e,a={assert:function(t){if(!a.has(t))throw new wR("Side channel does not contain "+ER(t))},delete:function(t){var s=e&&e.next,i=TR(e,t);return i&&s&&s===i&&(e=void 0),!!i},get:function(t){return SR(e,t)},has:function(t){return RR(e,t)},set:function(t,s){e||(e={next:void 0}),PR(e,t,s)}};return a}});var yu=M((kq,bh)=>{"use strict";bh.exports=Object});var _h=M((Oq,xh)=>{"use strict";xh.exports=Error});var wh=M((Cq,Eh)=>{"use strict";Eh.exports=EvalError});var Ph=M((Iq,Sh)=>{"use strict";Sh.exports=RangeError});var Th=M((Aq,Rh)=>{"use strict";Rh.exports=ReferenceError});var Oh=M((jq,kh)=>{"use strict";kh.exports=SyntaxError});var Ih=M((Nq,Ch)=>{"use strict";Ch.exports=URIError});var jh=M((Dq,Ah)=>{"use strict";Ah.exports=Math.abs});var Dh=M(($q,Nh)=>{"use strict";Nh.exports=Math.floor});var qh=M((qq,$h)=>{"use strict";$h.exports=Math.max});var Fh=M((Mq,Mh)=>{"use strict";Mh.exports=Math.min});var Uh=M((Fq,Lh)=>{"use strict";Lh.exports=Math.pow});var Hh=M((Lq,zh)=>{"use strict";zh.exports=Math.round});var Vh=M((Uq,Bh)=>{"use strict";Bh.exports=Number.isNaN||function(e){return e!==e}});var Zh=M((zq,Gh)=>{"use strict";var kR=Vh();Gh.exports=function(e){return kR(e)||e===0?e:e<0?-1:1}});var Kh=M((Hq,Wh)=>{"use strict";Wh.exports=Object.getOwnPropertyDescriptor});var bu=M((Bq,Qh)=>{"use strict";var go=Kh();if(go)try{go([],"length")}catch{go=null}Qh.exports=go});var Jh=M((Vq,Xh)=>{"use strict";var yo=Object.defineProperty||!1;if(yo)try{yo({},"a",{value:1})}catch{yo=!1}Xh.exports=yo});var ev=M((Gq,Yh)=>{"use strict";Yh.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},a=Symbol("test"),t=Object(a);if(typeof a=="string"||Object.prototype.toString.call(a)!=="[object Symbol]"||Object.prototype.toString.call(t)!=="[object Symbol]")return!1;var s=42;e[a]=s;for(var i in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var n=Object.getOwnPropertySymbols(e);if(n.length!==1||n[0]!==a||!Object.prototype.propertyIsEnumerable.call(e,a))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var o=Object.getOwnPropertyDescriptor(e,a);if(o.value!==s||o.enumerable!==!0)return!1}return!0}});var av=M((Zq,rv)=>{"use strict";var tv=typeof Symbol<"u"&&Symbol,OR=ev();rv.exports=function(){return typeof tv!="function"||typeof Symbol!="function"||typeof tv("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:OR()}});var xu=M((Wq,sv)=>{"use strict";sv.exports=typeof Reflect<"u"&&Reflect.getPrototypeOf||null});var _u=M((Kq,nv)=>{"use strict";var CR=yu();nv.exports=CR.getPrototypeOf||null});var cv=M((Qq,ov)=>{"use strict";var IR="Function.prototype.bind called on incompatible ",AR=Object.prototype.toString,jR=Math.max,NR="[object Function]",iv=function(e,a){for(var t=[],s=0;s{"use strict";var qR=cv();lv.exports=Function.prototype.bind||qR});var bo=M((Jq,uv)=>{"use strict";uv.exports=Function.prototype.call});var Eu=M((Yq,pv)=>{"use strict";pv.exports=Function.prototype.apply});var fv=M((eM,dv)=>{"use strict";dv.exports=typeof Reflect<"u"&&Reflect&&Reflect.apply});var hv=M((tM,mv)=>{"use strict";var MR=ii(),FR=Eu(),LR=bo(),UR=fv();mv.exports=UR||MR.call(LR,FR)});var wu=M((rM,vv)=>{"use strict";var zR=ii(),HR=Ua(),BR=bo(),VR=hv();vv.exports=function(e){if(e.length<1||typeof e[0]!="function")throw new HR("a function is required");return VR(zR,BR,e)}});var Ev=M((aM,_v)=>{"use strict";var GR=wu(),gv=bu(),bv;try{bv=[].__proto__===Array.prototype}catch(r){if(!r||typeof r!="object"||!("code"in r)||r.code!=="ERR_PROTO_ACCESS")throw r}var Su=!!bv&&gv&&gv(Object.prototype,"__proto__"),xv=Object,yv=xv.getPrototypeOf;_v.exports=Su&&typeof Su.get=="function"?GR([Su.get]):typeof yv=="function"?function(e){return yv(e==null?e:xv(e))}:!1});var Tv=M((sM,Rv)=>{"use strict";var wv=xu(),Sv=_u(),Pv=Ev();Rv.exports=wv?function(e){return wv(e)}:Sv?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return Sv(e)}:Pv?function(e){return Pv(e)}:null});var Ov=M((nM,kv)=>{"use strict";var ZR=Function.prototype.call,WR=Object.prototype.hasOwnProperty,KR=ii();kv.exports=KR.call(ZR,WR)});var Eo=M((iM,Dv)=>{"use strict";var ze,QR=yu(),XR=_h(),JR=wh(),YR=Ph(),eT=Th(),Qs=Oh(),Ks=Ua(),tT=Ih(),rT=jh(),aT=Dh(),sT=qh(),nT=Fh(),iT=Uh(),oT=Hh(),cT=Zh(),jv=Function,Pu=function(r){try{return jv('"use strict"; return ('+r+").constructor;")()}catch{}},oi=bu(),lT=Jh(),Ru=function(){throw new Ks},uT=oi?(function(){try{return arguments.callee,Ru}catch{try{return oi(arguments,"callee").get}catch{return Ru}}})():Ru,Zs=av()(),yt=Tv(),pT=_u(),dT=xu(),Nv=Eu(),ci=bo(),Ws={},fT=typeof Uint8Array>"u"||!yt?ze:yt(Uint8Array),Ha={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?ze:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?ze:ArrayBuffer,"%ArrayIteratorPrototype%":Zs&&yt?yt([][Symbol.iterator]()):ze,"%AsyncFromSyncIteratorPrototype%":ze,"%AsyncFunction%":Ws,"%AsyncGenerator%":Ws,"%AsyncGeneratorFunction%":Ws,"%AsyncIteratorPrototype%":Ws,"%Atomics%":typeof Atomics>"u"?ze:Atomics,"%BigInt%":typeof BigInt>"u"?ze:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?ze:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?ze:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?ze:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":XR,"%eval%":eval,"%EvalError%":JR,"%Float16Array%":typeof Float16Array>"u"?ze:Float16Array,"%Float32Array%":typeof Float32Array>"u"?ze:Float32Array,"%Float64Array%":typeof Float64Array>"u"?ze:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?ze:FinalizationRegistry,"%Function%":jv,"%GeneratorFunction%":Ws,"%Int8Array%":typeof Int8Array>"u"?ze:Int8Array,"%Int16Array%":typeof Int16Array>"u"?ze:Int16Array,"%Int32Array%":typeof Int32Array>"u"?ze:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Zs&&yt?yt(yt([][Symbol.iterator]())):ze,"%JSON%":typeof JSON=="object"?JSON:ze,"%Map%":typeof Map>"u"?ze:Map,"%MapIteratorPrototype%":typeof Map>"u"||!Zs||!yt?ze:yt(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":QR,"%Object.getOwnPropertyDescriptor%":oi,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?ze:Promise,"%Proxy%":typeof Proxy>"u"?ze:Proxy,"%RangeError%":YR,"%ReferenceError%":eT,"%Reflect%":typeof Reflect>"u"?ze:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?ze:Set,"%SetIteratorPrototype%":typeof Set>"u"||!Zs||!yt?ze:yt(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?ze:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Zs&&yt?yt(""[Symbol.iterator]()):ze,"%Symbol%":Zs?Symbol:ze,"%SyntaxError%":Qs,"%ThrowTypeError%":uT,"%TypedArray%":fT,"%TypeError%":Ks,"%Uint8Array%":typeof Uint8Array>"u"?ze:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?ze:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?ze:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?ze:Uint32Array,"%URIError%":tT,"%WeakMap%":typeof WeakMap>"u"?ze:WeakMap,"%WeakRef%":typeof WeakRef>"u"?ze:WeakRef,"%WeakSet%":typeof WeakSet>"u"?ze:WeakSet,"%Function.prototype.call%":ci,"%Function.prototype.apply%":Nv,"%Object.defineProperty%":lT,"%Object.getPrototypeOf%":pT,"%Math.abs%":rT,"%Math.floor%":aT,"%Math.max%":sT,"%Math.min%":nT,"%Math.pow%":iT,"%Math.round%":oT,"%Math.sign%":cT,"%Reflect.getPrototypeOf%":dT};if(yt)try{null.error}catch(r){Cv=yt(yt(r)),Ha["%Error.prototype%"]=Cv}var Cv,mT=function r(e){var a;if(e==="%AsyncFunction%")a=Pu("async function () {}");else if(e==="%GeneratorFunction%")a=Pu("function* () {}");else if(e==="%AsyncGeneratorFunction%")a=Pu("async function* () {}");else if(e==="%AsyncGenerator%"){var t=r("%AsyncGeneratorFunction%");t&&(a=t.prototype)}else if(e==="%AsyncIteratorPrototype%"){var s=r("%AsyncGenerator%");s&&yt&&(a=yt(s.prototype))}return Ha[e]=a,a},Iv={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},li=ii(),xo=Ov(),hT=li.call(ci,Array.prototype.concat),vT=li.call(Nv,Array.prototype.splice),Av=li.call(ci,String.prototype.replace),_o=li.call(ci,String.prototype.slice),gT=li.call(ci,RegExp.prototype.exec),yT=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,bT=/\\(\\)?/g,xT=function(e){var a=_o(e,0,1),t=_o(e,-1);if(a==="%"&&t!=="%")throw new Qs("invalid intrinsic syntax, expected closing `%`");if(t==="%"&&a!=="%")throw new Qs("invalid intrinsic syntax, expected opening `%`");var s=[];return Av(e,yT,function(i,n,o,l){s[s.length]=o?Av(l,bT,"$1"):n||i}),s},_T=function(e,a){var t=e,s;if(xo(Iv,t)&&(s=Iv[t],t="%"+s[0]+"%"),xo(Ha,t)){var i=Ha[t];if(i===Ws&&(i=mT(t)),typeof i>"u"&&!a)throw new Ks("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:s,name:t,value:i}}throw new Qs("intrinsic "+e+" does not exist!")};Dv.exports=function(e,a){if(typeof e!="string"||e.length===0)throw new Ks("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof a!="boolean")throw new Ks('"allowMissing" argument must be a boolean');if(gT(/^%?[^%]*%?$/,e)===null)throw new Qs("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var t=xT(e),s=t.length>0?t[0]:"",i=_T("%"+s+"%",a),n=i.name,o=i.value,l=!1,c=i.alias;c&&(s=c[0],vT(t,hT([0,1],c)));for(var u=1,p=!0;u=t.length){var d=oi(o,m);p=!!d,p&&"get"in d&&!("originalValue"in d.get)?o=d.get:o=o[m]}else p=xo(o,m),o=o[m];p&&!l&&(Ha[n]=o)}}return o}});var Tu=M((oM,Mv)=>{"use strict";var $v=Eo(),qv=wu(),ET=qv([$v("%String.prototype.indexOf%")]);Mv.exports=function(e,a){var t=$v(e,!!a);return typeof t=="function"&&ET(e,".prototype.")>-1?qv([t]):t}});var ku=M((cM,Lv)=>{"use strict";var wT=Eo(),ui=Tu(),ST=ni(),PT=Ua(),Fv=wT("%Map%",!0),RT=ui("Map.prototype.get",!0),TT=ui("Map.prototype.set",!0),kT=ui("Map.prototype.has",!0),OT=ui("Map.prototype.delete",!0),CT=ui("Map.prototype.size",!0);Lv.exports=!!Fv&&function(){var e,a={assert:function(t){if(!a.has(t))throw new PT("Side channel does not contain "+ST(t))},delete:function(t){if(e){var s=OT(e,t);return CT(e)===0&&(e=void 0),s}return!1},get:function(t){if(e)return RT(e,t)},has:function(t){return e?kT(e,t):!1},set:function(t,s){e||(e=new Fv),TT(e,t,s)}};return a}});var zv=M((lM,Uv)=>{"use strict";var IT=Eo(),So=Tu(),AT=ni(),wo=ku(),jT=Ua(),Xs=IT("%WeakMap%",!0),NT=So("WeakMap.prototype.get",!0),DT=So("WeakMap.prototype.set",!0),$T=So("WeakMap.prototype.has",!0),qT=So("WeakMap.prototype.delete",!0);Uv.exports=Xs?function(){var e,a,t={assert:function(s){if(!t.has(s))throw new jT("Side channel does not contain "+AT(s))},delete:function(s){if(Xs&&s&&(typeof s=="object"||typeof s=="function")){if(e)return qT(e,s)}else if(wo&&a)return a.delete(s);return!1},get:function(s){return Xs&&s&&(typeof s=="object"||typeof s=="function")&&e?NT(e,s):a&&a.get(s)},has:function(s){return Xs&&s&&(typeof s=="object"||typeof s=="function")&&e?$T(e,s):!!a&&a.has(s)},set:function(s,i){Xs&&s&&(typeof s=="object"||typeof s=="function")?(e||(e=new Xs),DT(e,s,i)):wo&&(a||(a=wo()),a.set(s,i))}};return t}:wo});var Bv=M((uM,Hv)=>{"use strict";var MT=Ua(),FT=ni(),LT=yh(),UT=ku(),zT=zv(),HT=zT||UT||LT;Hv.exports=function(){var e,a={assert:function(t){if(!a.has(t))throw new MT("Side channel does not contain "+FT(t))},delete:function(t){return!!e&&e.delete(t)},get:function(t){return e&&e.get(t)},has:function(t){return!!e&&e.has(t)},set:function(t,s){e||(e=HT()),e.set(t,s)}};return a}});var Po=M((pM,Vv)=>{"use strict";var BT=String.prototype.replace,VT=/%20/g,Ou={RFC1738:"RFC1738",RFC3986:"RFC3986"};Vv.exports={default:Ou.RFC3986,formatters:{RFC1738:function(r){return BT.call(r,VT,"+")},RFC3986:function(r){return String(r)}},RFC1738:Ou.RFC1738,RFC3986:Ou.RFC3986}});var Au=M((dM,Zv)=>{"use strict";var GT=Po(),Cu=Object.prototype.hasOwnProperty,Ba=Array.isArray,jr=(function(){for(var r=[],e=0;e<256;++e)r.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return r})(),ZT=function(e){for(;e.length>1;){var a=e.pop(),t=a.obj[a.prop];if(Ba(t)){for(var s=[],i=0;i=Iu?n.slice(l,l+Iu):n,u=[],p=0;p=48&&m<=57||m>=65&&m<=90||m>=97&&m<=122||i===GT.RFC1738&&(m===40||m===41)){u[u.length]=c.charAt(p);continue}if(m<128){u[u.length]=jr[m];continue}if(m<2048){u[u.length]=jr[192|m>>6]+jr[128|m&63];continue}if(m<55296||m>=57344){u[u.length]=jr[224|m>>12]+jr[128|m>>6&63]+jr[128|m&63];continue}p+=1,m=65536+((m&1023)<<10|c.charCodeAt(p)&1023),u[u.length]=jr[240|m>>18]+jr[128|m>>12&63]+jr[128|m>>6&63]+jr[128|m&63]}o+=u.join("")}return o},JT=function(e){for(var a=[{obj:{o:e},prop:"o"}],t=[],s=0;s{"use strict";var Kv=Bv(),Ro=Au(),pi=Po(),ak=Object.prototype.hasOwnProperty,Qv={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,a){return e+"["+a+"]"},repeat:function(e){return e}},Nr=Array.isArray,sk=Array.prototype.push,Xv=function(r,e){sk.apply(r,Nr(e)?e:[e])},nk=Date.prototype.toISOString,Wv=pi.default,ht={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Ro.encode,encodeValuesOnly:!1,format:Wv,formatter:pi.formatters[Wv],indices:!1,serializeDate:function(e){return nk.call(e)},skipNulls:!1,strictNullHandling:!1},ik=function(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"},ju={},ok=function r(e,a,t,s,i,n,o,l,c,u,p,m,f,h,d,v,g,b){for(var E=e,k=b,O=0,P=!1;(k=k.get(ju))!==void 0&&!P;){var I=k.get(e);if(O+=1,typeof I<"u"){if(I===O)throw new RangeError("Cyclic object value");P=!0}typeof k.get(ju)>"u"&&(O=0)}if(typeof u=="function"?E=u(a,E):E instanceof Date?E=f(E):t==="comma"&&Nr(E)&&(E=Ro.maybeMap(E,function(V){return V instanceof Date?f(V):V})),E===null){if(n)return c&&!v?c(a,ht.encoder,g,"key",h):a;E=""}if(ik(E)||Ro.isBuffer(E)){if(c){var $=v?a:c(a,ht.encoder,g,"key",h);return[d($)+"="+d(c(E,ht.encoder,g,"value",h))]}return[d(a)+"="+d(String(E))]}var A=[];if(typeof E>"u")return A;var F;if(t==="comma"&&Nr(E))v&&c&&(E=Ro.maybeMap(E,c)),F=[{value:E.length>0?E.join(",")||null:void 0}];else if(Nr(u))F=u;else{var q=Object.keys(E);F=p?q.sort(p):q}var C=l?a.replace(/\./g,"%2E"):a,R=s&&Nr(E)&&E.length===1?C+"[]":C;if(i&&Nr(E)&&E.length===0)return R+"[]";for(var j=0;j"u"?e.encodeDotInKeys===!0?!0:ht.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:ht.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:ht.allowEmptyArrays,arrayFormat:n,charset:a,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:ht.charsetSentinel,commaRoundTrip:e.commaRoundTrip,delimiter:typeof e.delimiter>"u"?ht.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:ht.encode,encodeDotInKeys:typeof e.encodeDotInKeys=="boolean"?e.encodeDotInKeys:ht.encodeDotInKeys,encoder:typeof e.encoder=="function"?e.encoder:ht.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:ht.encodeValuesOnly,filter:i,format:t,formatter:s,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:ht.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:ht.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:ht.strictNullHandling}};Jv.exports=function(r,e){var a=r,t=ck(e),s,i;typeof t.filter=="function"?(i=t.filter,a=i("",a)):Nr(t.filter)&&(i=t.filter,s=i);var n=[];if(typeof a!="object"||a===null)return"";var o=Qv[t.arrayFormat],l=o==="comma"&&t.commaRoundTrip;s||(s=Object.keys(a)),t.sort&&s.sort(t.sort);for(var c=Kv(),u=0;u0?f+m:""}});var rg=M((mM,tg)=>{"use strict";var Js=Au(),Nu=Object.prototype.hasOwnProperty,lk=Array.isArray,lt={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:Js.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1},uk=function(r){return r.replace(/&#(\d+);/g,function(e,a){return String.fromCharCode(parseInt(a,10))})},eg=function(r,e){return r&&typeof r=="string"&&e.comma&&r.indexOf(",")>-1?r.split(","):r},pk="utf8=%26%2310003%3B",dk="utf8=%E2%9C%93",fk=function(e,a){var t={__proto__:null},s=a.ignoreQueryPrefix?e.replace(/^\?/,""):e;s=s.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var i=a.parameterLimit===1/0?void 0:a.parameterLimit,n=s.split(a.delimiter,i),o=-1,l,c=a.charset;if(a.charsetSentinel)for(l=0;l-1&&(h=lk(h)?[h]:h);var d=Nu.call(t,f);d&&a.duplicates==="combine"?t[f]=Js.combine(t[f],h):(!d||a.duplicates==="last")&&(t[f]=h)}return t},mk=function(r,e,a,t){for(var s=t?e:eg(e,a),i=r.length-1;i>=0;--i){var n,o=r[i];if(o==="[]"&&a.parseArrays)n=a.allowEmptyArrays&&(s===""||a.strictNullHandling&&s===null)?[]:[].concat(s);else{n=a.plainObjects?Object.create(null):{};var l=o.charAt(0)==="["&&o.charAt(o.length-1)==="]"?o.slice(1,-1):o,c=a.decodeDotInKeys?l.replace(/%2E/g,"."):l,u=parseInt(c,10);!a.parseArrays&&c===""?n={0:s}:!isNaN(u)&&o!==c&&String(u)===c&&u>=0&&a.parseArrays&&u<=a.arrayLimit?(n=[],n[u]=s):c!=="__proto__"&&(n[c]=s)}s=n}return s},hk=function(e,a,t,s){if(e){var i=t.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,n=/(\[[^[\]]*])/,o=/(\[[^[\]]*])/g,l=t.depth>0&&n.exec(i),c=l?i.slice(0,l.index):i,u=[];if(c){if(!t.plainObjects&&Nu.call(Object.prototype,c)&&!t.allowPrototypes)return;u.push(c)}for(var p=0;t.depth>0&&(l=o.exec(i))!==null&&p"u"?lt.charset:e.charset,t=typeof e.duplicates>"u"?lt.duplicates:e.duplicates;if(t!=="combine"&&t!=="first"&&t!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var s=typeof e.allowDots>"u"?e.decodeDotInKeys===!0?!0:lt.allowDots:!!e.allowDots;return{allowDots:s,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:lt.allowEmptyArrays,allowPrototypes:typeof e.allowPrototypes=="boolean"?e.allowPrototypes:lt.allowPrototypes,allowSparse:typeof e.allowSparse=="boolean"?e.allowSparse:lt.allowSparse,arrayLimit:typeof e.arrayLimit=="number"?e.arrayLimit:lt.arrayLimit,charset:a,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:lt.charsetSentinel,comma:typeof e.comma=="boolean"?e.comma:lt.comma,decodeDotInKeys:typeof e.decodeDotInKeys=="boolean"?e.decodeDotInKeys:lt.decodeDotInKeys,decoder:typeof e.decoder=="function"?e.decoder:lt.decoder,delimiter:typeof e.delimiter=="string"||Js.isRegExp(e.delimiter)?e.delimiter:lt.delimiter,depth:typeof e.depth=="number"||e.depth===!1?+e.depth:lt.depth,duplicates:t,ignoreQueryPrefix:e.ignoreQueryPrefix===!0,interpretNumericEntities:typeof e.interpretNumericEntities=="boolean"?e.interpretNumericEntities:lt.interpretNumericEntities,parameterLimit:typeof e.parameterLimit=="number"?e.parameterLimit:lt.parameterLimit,parseArrays:e.parseArrays!==!1,plainObjects:typeof e.plainObjects=="boolean"?e.plainObjects:lt.plainObjects,strictDepth:typeof e.strictDepth=="boolean"?!!e.strictDepth:lt.strictDepth,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:lt.strictNullHandling}};tg.exports=function(r,e){var a=vk(e);if(r===""||r===null||typeof r>"u")return a.plainObjects?Object.create(null):{};for(var t=typeof r=="string"?fk(r,a):r,s=a.plainObjects?Object.create(null):{},i=Object.keys(t),n=0;n{"use strict";var gk=Yv(),yk=rg(),bk=Po();ag.exports={formats:bk,parse:yk,stringify:gk}});var lg=M((vM,cg)=>{"use strict";var xk=$s(),_k=Ln(),ko=Da(),_r=tr()("body-parser:urlencoded"),Ek=Or()("body-parser"),wk=Jn(),ng=Vs();cg.exports=Sk;var sg=Object.create(null);function Sk(r){var e=r||{};e.extended===void 0&&Ek("undefined extended: provide extended option");var a=e.extended!==!1,t=e.inflate!==!1,s=typeof e.limit!="number"?xk.parse(e.limit||"100kb"):e.limit,i=e.type||"application/x-www-form-urlencoded",n=e.verify||!1,o=typeof e.depth!="number"?Number(e.depth||32):e.depth;if(n!==!1&&typeof n!="function")throw new TypeError("option verify must be function");var l=a?Pk(e):Tk(e),c=typeof i!="function"?kk(i):i;function u(p){return p.length?l(p):{}}return function(m,f,h){if(m._body){_r("body already parsed"),h();return}if(m.body=m.body||{},!ng.hasBody(m)){_r("skip empty body"),h();return}if(_r("content-type %j",m.headers["content-type"]),!c(m)){_r("skip parsing"),h();return}var d=Rk(m)||"utf-8";if(d!=="utf-8"){_r("invalid charset"),h(ko(415,'unsupported charset "'+d.toUpperCase()+'"',{charset:d,type:"charset.unsupported"}));return}wk(m,f,h,u,_r,{debug:_r,encoding:d,inflate:t,limit:s,verify:n,depth:o})}}function Pk(r){var e=r.parameterLimit!==void 0?r.parameterLimit:1e3,a=typeof r.depth!="number"?Number(r.depth||32):r.depth,t=og("qs");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");if(isNaN(a)||a<0)throw new TypeError("option depth must be a zero or a positive number");return isFinite(e)&&(e=e|0),function(i){var n=ig(i,e);if(n===void 0)throw _r("too many parameters"),ko(413,"too many parameters",{type:"parameters.too.many"});var o=Math.max(100,n);_r("parse extended urlencoding");try{return t(i,{allowPrototypes:!0,arrayLimit:o,depth:a,strictDepth:!0,parameterLimit:e})}catch(l){throw l instanceof RangeError?ko(400,"The input exceeded the depth",{type:"querystring.parse.rangeError"}):l}}}function Rk(r){try{return(_k.parse(r).parameters.charset||"").toLowerCase()}catch{return}}function ig(r,e){for(var a=0,t=0;(t=r.indexOf("&",t))!==-1;)if(a++,t++,a===e)return;return a}function og(r){var e=sg[r];if(e!==void 0)return e.parse;switch(r){case"qs":e=To();break;case"querystring":e=require("querystring");break}return sg[r]=e,e.parse}function Tk(r){var e=r.parameterLimit!==void 0?r.parameterLimit:1e3,a=og("querystring");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");return isFinite(e)&&(e=e|0),function(s){var i=ig(s,e);if(i===void 0)throw _r("too many parameters"),ko(413,"too many parameters",{type:"parameters.too.many"});return _r("parse urlencoding"),a(s,void 0,void 0,{maxKeys:e})}}function kk(r){return function(a){return!!ng(a,r)}}});var dg=M((ba,pg)=>{"use strict";var Ok=Or()("body-parser"),ug=Object.create(null);ba=pg.exports=Ok.function(Ck,"bodyParser: use individual json/urlencoded middlewares");Object.defineProperty(ba,"json",{configurable:!0,enumerable:!0,get:Oo("json")});Object.defineProperty(ba,"raw",{configurable:!0,enumerable:!0,get:Oo("raw")});Object.defineProperty(ba,"text",{configurable:!0,enumerable:!0,get:Oo("text")});Object.defineProperty(ba,"urlencoded",{configurable:!0,enumerable:!0,get:Oo("urlencoded")});function Ck(r){var e=Object.create(r||null,{type:{configurable:!0,enumerable:!0,value:void 0,writable:!0}}),a=ba.urlencoded(e),t=ba.json(e);return function(i,n,o){t(i,n,function(l){if(l)return o(l);a(i,n,o)})}}function Oo(r){return function(){return Ik(r)}}function Ik(r){var e=ug[r];if(e!==void 0)return e;switch(r){case"json":e=Um();break;case"raw":e=Bm();break;case"text":e=Zm();break;case"urlencoded":e=lg();break}return ug[r]=e}});var mg=M((gM,fg)=>{"use strict";fg.exports=jk;var Ak=Object.prototype.hasOwnProperty;function jk(r,e,a){if(!r)throw new TypeError("argument dest is required");if(!e)throw new TypeError("argument src is required");return a===void 0&&(a=!0),Object.getOwnPropertyNames(e).forEach(function(s){if(!(!a&&Ak.call(r,s))){var i=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(r,s,i)}}),r}});var Co=M((yM,hg)=>{"use strict";hg.exports=qk;var Nk=/(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g,Dk=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g,$k="$1\uFFFD$2";function qk(r){return String(r).replace(Dk,$k).replace(Nk,encodeURI)}});var di=M((bM,vg)=>{"use strict";var Mk=/["'&<>]/;vg.exports=Fk;function Fk(r){var e=""+r,a=Mk.exec(e);if(!a)return e;var t,s="",i=0,n=0;for(i=a.index;i{"use strict";var yg=require("url"),gg=yg.parse,Io=yg.Url;Du.exports=bg;Du.exports.original=Lk;function bg(r){var e=r.url;if(e!==void 0){var a=r._parsedUrl;return _g(e,a)?a:(a=xg(e),a._raw=e,r._parsedUrl=a)}}function Lk(r){var e=r.originalUrl;if(typeof e!="string")return bg(r);var a=r._parsedOriginalUrl;return _g(e,a)?a:(a=xg(e),a._raw=e,r._parsedOriginalUrl=a)}function xg(r){if(typeof r!="string"||r.charCodeAt(0)!==47)return gg(r);for(var e=r,a=null,t=null,s=1;s{"use strict";var $u=tr()("finalhandler"),Uk=Co(),zk=di(),wg=Xn(),Hk=Ys(),Sg=zn(),Bk=uo(),Vk=/\x20{2}/g,Gk=/\n/g,Zk=typeof setImmediate=="function"?setImmediate:function(r){process.nextTick(r.bind.apply(r,arguments))},Wk=wg.isFinished;function Kk(r){var e=zk(r).replace(Gk,"
").replace(Vk,"  ");return` +`+e.prev}function fo(r,e){var a=fu(r),t=[];if(a){t.length=r.length;for(var s=0;s{"use strict";var ER=ni(),wR=Ua(),vo=function(r,e,a){for(var t=r,s;(s=t.next)!=null;t=s)if(s.key===e)return t.next=s.next,a||(s.next=r.next,r.next=s),s},SR=function(r,e){if(r){var a=vo(r,e);return a&&a.value}},PR=function(r,e,a){var t=vo(r,e);t?t.value=a:r.next={key:e,next:r.next,value:a}},RR=function(r,e){return r?!!vo(r,e):!1},TR=function(r,e){if(r)return vo(r,e,!0)};gh.exports=function(){var e,a={assert:function(t){if(!a.has(t))throw new wR("Side channel does not contain "+ER(t))},delete:function(t){var s=e&&e.next,i=TR(e,t);return i&&s&&s===i&&(e=void 0),!!i},get:function(t){return SR(e,t)},has:function(t){return RR(e,t)},set:function(t,s){e||(e={next:void 0}),PR(e,t,s)}};return a}});var yu=M((kq,bh)=>{"use strict";bh.exports=Object});var _h=M((Oq,xh)=>{"use strict";xh.exports=Error});var wh=M((Cq,Eh)=>{"use strict";Eh.exports=EvalError});var Ph=M((Iq,Sh)=>{"use strict";Sh.exports=RangeError});var Th=M((Aq,Rh)=>{"use strict";Rh.exports=ReferenceError});var Oh=M((jq,kh)=>{"use strict";kh.exports=SyntaxError});var Ih=M((Nq,Ch)=>{"use strict";Ch.exports=URIError});var jh=M((Dq,Ah)=>{"use strict";Ah.exports=Math.abs});var Dh=M(($q,Nh)=>{"use strict";Nh.exports=Math.floor});var qh=M((qq,$h)=>{"use strict";$h.exports=Math.max});var Fh=M((Mq,Mh)=>{"use strict";Mh.exports=Math.min});var Uh=M((Fq,Lh)=>{"use strict";Lh.exports=Math.pow});var Hh=M((Lq,zh)=>{"use strict";zh.exports=Math.round});var Vh=M((Uq,Bh)=>{"use strict";Bh.exports=Number.isNaN||function(e){return e!==e}});var Zh=M((zq,Gh)=>{"use strict";var kR=Vh();Gh.exports=function(e){return kR(e)||e===0?e:e<0?-1:1}});var Kh=M((Hq,Wh)=>{"use strict";Wh.exports=Object.getOwnPropertyDescriptor});var bu=M((Bq,Qh)=>{"use strict";var go=Kh();if(go)try{go([],"length")}catch{go=null}Qh.exports=go});var Jh=M((Vq,Xh)=>{"use strict";var yo=Object.defineProperty||!1;if(yo)try{yo({},"a",{value:1})}catch{yo=!1}Xh.exports=yo});var ev=M((Gq,Yh)=>{"use strict";Yh.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},a=Symbol("test"),t=Object(a);if(typeof a=="string"||Object.prototype.toString.call(a)!=="[object Symbol]"||Object.prototype.toString.call(t)!=="[object Symbol]")return!1;var s=42;e[a]=s;for(var i in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var n=Object.getOwnPropertySymbols(e);if(n.length!==1||n[0]!==a||!Object.prototype.propertyIsEnumerable.call(e,a))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var o=Object.getOwnPropertyDescriptor(e,a);if(o.value!==s||o.enumerable!==!0)return!1}return!0}});var av=M((Zq,rv)=>{"use strict";var tv=typeof Symbol<"u"&&Symbol,OR=ev();rv.exports=function(){return typeof tv!="function"||typeof Symbol!="function"||typeof tv("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:OR()}});var xu=M((Wq,sv)=>{"use strict";sv.exports=typeof Reflect<"u"&&Reflect.getPrototypeOf||null});var _u=M((Kq,nv)=>{"use strict";var CR=yu();nv.exports=CR.getPrototypeOf||null});var cv=M((Qq,ov)=>{"use strict";var IR="Function.prototype.bind called on incompatible ",AR=Object.prototype.toString,jR=Math.max,NR="[object Function]",iv=function(e,a){for(var t=[],s=0;s{"use strict";var qR=cv();lv.exports=Function.prototype.bind||qR});var bo=M((Jq,uv)=>{"use strict";uv.exports=Function.prototype.call});var Eu=M((Yq,pv)=>{"use strict";pv.exports=Function.prototype.apply});var fv=M((eM,dv)=>{"use strict";dv.exports=typeof Reflect<"u"&&Reflect&&Reflect.apply});var hv=M((tM,mv)=>{"use strict";var MR=ii(),FR=Eu(),LR=bo(),UR=fv();mv.exports=UR||MR.call(LR,FR)});var wu=M((rM,vv)=>{"use strict";var zR=ii(),HR=Ua(),BR=bo(),VR=hv();vv.exports=function(e){if(e.length<1||typeof e[0]!="function")throw new HR("a function is required");return VR(zR,BR,e)}});var Ev=M((aM,_v)=>{"use strict";var GR=wu(),gv=bu(),bv;try{bv=[].__proto__===Array.prototype}catch(r){if(!r||typeof r!="object"||!("code"in r)||r.code!=="ERR_PROTO_ACCESS")throw r}var Su=!!bv&&gv&&gv(Object.prototype,"__proto__"),xv=Object,yv=xv.getPrototypeOf;_v.exports=Su&&typeof Su.get=="function"?GR([Su.get]):typeof yv=="function"?function(e){return yv(e==null?e:xv(e))}:!1});var Tv=M((sM,Rv)=>{"use strict";var wv=xu(),Sv=_u(),Pv=Ev();Rv.exports=wv?function(e){return wv(e)}:Sv?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return Sv(e)}:Pv?function(e){return Pv(e)}:null});var Ov=M((nM,kv)=>{"use strict";var ZR=Function.prototype.call,WR=Object.prototype.hasOwnProperty,KR=ii();kv.exports=KR.call(ZR,WR)});var Eo=M((iM,Dv)=>{"use strict";var ze,QR=yu(),XR=_h(),JR=wh(),YR=Ph(),eT=Th(),Qs=Oh(),Ks=Ua(),tT=Ih(),rT=jh(),aT=Dh(),sT=qh(),nT=Fh(),iT=Uh(),oT=Hh(),cT=Zh(),jv=Function,Pu=function(r){try{return jv('"use strict"; return ('+r+").constructor;")()}catch{}},oi=bu(),lT=Jh(),Ru=function(){throw new Ks},uT=oi?(function(){try{return arguments.callee,Ru}catch{try{return oi(arguments,"callee").get}catch{return Ru}}})():Ru,Zs=av()(),yt=Tv(),pT=_u(),dT=xu(),Nv=Eu(),ci=bo(),Ws={},fT=typeof Uint8Array>"u"||!yt?ze:yt(Uint8Array),Ha={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?ze:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?ze:ArrayBuffer,"%ArrayIteratorPrototype%":Zs&&yt?yt([][Symbol.iterator]()):ze,"%AsyncFromSyncIteratorPrototype%":ze,"%AsyncFunction%":Ws,"%AsyncGenerator%":Ws,"%AsyncGeneratorFunction%":Ws,"%AsyncIteratorPrototype%":Ws,"%Atomics%":typeof Atomics>"u"?ze:Atomics,"%BigInt%":typeof BigInt>"u"?ze:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?ze:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?ze:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?ze:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":XR,"%eval%":eval,"%EvalError%":JR,"%Float16Array%":typeof Float16Array>"u"?ze:Float16Array,"%Float32Array%":typeof Float32Array>"u"?ze:Float32Array,"%Float64Array%":typeof Float64Array>"u"?ze:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?ze:FinalizationRegistry,"%Function%":jv,"%GeneratorFunction%":Ws,"%Int8Array%":typeof Int8Array>"u"?ze:Int8Array,"%Int16Array%":typeof Int16Array>"u"?ze:Int16Array,"%Int32Array%":typeof Int32Array>"u"?ze:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Zs&&yt?yt(yt([][Symbol.iterator]())):ze,"%JSON%":typeof JSON=="object"?JSON:ze,"%Map%":typeof Map>"u"?ze:Map,"%MapIteratorPrototype%":typeof Map>"u"||!Zs||!yt?ze:yt(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":QR,"%Object.getOwnPropertyDescriptor%":oi,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?ze:Promise,"%Proxy%":typeof Proxy>"u"?ze:Proxy,"%RangeError%":YR,"%ReferenceError%":eT,"%Reflect%":typeof Reflect>"u"?ze:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?ze:Set,"%SetIteratorPrototype%":typeof Set>"u"||!Zs||!yt?ze:yt(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?ze:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Zs&&yt?yt(""[Symbol.iterator]()):ze,"%Symbol%":Zs?Symbol:ze,"%SyntaxError%":Qs,"%ThrowTypeError%":uT,"%TypedArray%":fT,"%TypeError%":Ks,"%Uint8Array%":typeof Uint8Array>"u"?ze:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?ze:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?ze:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?ze:Uint32Array,"%URIError%":tT,"%WeakMap%":typeof WeakMap>"u"?ze:WeakMap,"%WeakRef%":typeof WeakRef>"u"?ze:WeakRef,"%WeakSet%":typeof WeakSet>"u"?ze:WeakSet,"%Function.prototype.call%":ci,"%Function.prototype.apply%":Nv,"%Object.defineProperty%":lT,"%Object.getPrototypeOf%":pT,"%Math.abs%":rT,"%Math.floor%":aT,"%Math.max%":sT,"%Math.min%":nT,"%Math.pow%":iT,"%Math.round%":oT,"%Math.sign%":cT,"%Reflect.getPrototypeOf%":dT};if(yt)try{null.error}catch(r){Cv=yt(yt(r)),Ha["%Error.prototype%"]=Cv}var Cv,mT=function r(e){var a;if(e==="%AsyncFunction%")a=Pu("async function () {}");else if(e==="%GeneratorFunction%")a=Pu("function* () {}");else if(e==="%AsyncGeneratorFunction%")a=Pu("async function* () {}");else if(e==="%AsyncGenerator%"){var t=r("%AsyncGeneratorFunction%");t&&(a=t.prototype)}else if(e==="%AsyncIteratorPrototype%"){var s=r("%AsyncGenerator%");s&&yt&&(a=yt(s.prototype))}return Ha[e]=a,a},Iv={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},li=ii(),xo=Ov(),hT=li.call(ci,Array.prototype.concat),vT=li.call(Nv,Array.prototype.splice),Av=li.call(ci,String.prototype.replace),_o=li.call(ci,String.prototype.slice),gT=li.call(ci,RegExp.prototype.exec),yT=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,bT=/\\(\\)?/g,xT=function(e){var a=_o(e,0,1),t=_o(e,-1);if(a==="%"&&t!=="%")throw new Qs("invalid intrinsic syntax, expected closing `%`");if(t==="%"&&a!=="%")throw new Qs("invalid intrinsic syntax, expected opening `%`");var s=[];return Av(e,yT,function(i,n,o,l){s[s.length]=o?Av(l,bT,"$1"):n||i}),s},_T=function(e,a){var t=e,s;if(xo(Iv,t)&&(s=Iv[t],t="%"+s[0]+"%"),xo(Ha,t)){var i=Ha[t];if(i===Ws&&(i=mT(t)),typeof i>"u"&&!a)throw new Ks("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:s,name:t,value:i}}throw new Qs("intrinsic "+e+" does not exist!")};Dv.exports=function(e,a){if(typeof e!="string"||e.length===0)throw new Ks("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof a!="boolean")throw new Ks('"allowMissing" argument must be a boolean');if(gT(/^%?[^%]*%?$/,e)===null)throw new Qs("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var t=xT(e),s=t.length>0?t[0]:"",i=_T("%"+s+"%",a),n=i.name,o=i.value,l=!1,c=i.alias;c&&(s=c[0],vT(t,hT([0,1],c)));for(var u=1,p=!0;u=t.length){var d=oi(o,m);p=!!d,p&&"get"in d&&!("originalValue"in d.get)?o=d.get:o=o[m]}else p=xo(o,m),o=o[m];p&&!l&&(Ha[n]=o)}}return o}});var Tu=M((oM,Mv)=>{"use strict";var $v=Eo(),qv=wu(),ET=qv([$v("%String.prototype.indexOf%")]);Mv.exports=function(e,a){var t=$v(e,!!a);return typeof t=="function"&&ET(e,".prototype.")>-1?qv([t]):t}});var ku=M((cM,Lv)=>{"use strict";var wT=Eo(),ui=Tu(),ST=ni(),PT=Ua(),Fv=wT("%Map%",!0),RT=ui("Map.prototype.get",!0),TT=ui("Map.prototype.set",!0),kT=ui("Map.prototype.has",!0),OT=ui("Map.prototype.delete",!0),CT=ui("Map.prototype.size",!0);Lv.exports=!!Fv&&function(){var e,a={assert:function(t){if(!a.has(t))throw new PT("Side channel does not contain "+ST(t))},delete:function(t){if(e){var s=OT(e,t);return CT(e)===0&&(e=void 0),s}return!1},get:function(t){if(e)return RT(e,t)},has:function(t){return e?kT(e,t):!1},set:function(t,s){e||(e=new Fv),TT(e,t,s)}};return a}});var zv=M((lM,Uv)=>{"use strict";var IT=Eo(),So=Tu(),AT=ni(),wo=ku(),jT=Ua(),Xs=IT("%WeakMap%",!0),NT=So("WeakMap.prototype.get",!0),DT=So("WeakMap.prototype.set",!0),$T=So("WeakMap.prototype.has",!0),qT=So("WeakMap.prototype.delete",!0);Uv.exports=Xs?function(){var e,a,t={assert:function(s){if(!t.has(s))throw new jT("Side channel does not contain "+AT(s))},delete:function(s){if(Xs&&s&&(typeof s=="object"||typeof s=="function")){if(e)return qT(e,s)}else if(wo&&a)return a.delete(s);return!1},get:function(s){return Xs&&s&&(typeof s=="object"||typeof s=="function")&&e?NT(e,s):a&&a.get(s)},has:function(s){return Xs&&s&&(typeof s=="object"||typeof s=="function")&&e?$T(e,s):!!a&&a.has(s)},set:function(s,i){Xs&&s&&(typeof s=="object"||typeof s=="function")?(e||(e=new Xs),DT(e,s,i)):wo&&(a||(a=wo()),a.set(s,i))}};return t}:wo});var Bv=M((uM,Hv)=>{"use strict";var MT=Ua(),FT=ni(),LT=yh(),UT=ku(),zT=zv(),HT=zT||UT||LT;Hv.exports=function(){var e,a={assert:function(t){if(!a.has(t))throw new MT("Side channel does not contain "+FT(t))},delete:function(t){return!!e&&e.delete(t)},get:function(t){return e&&e.get(t)},has:function(t){return!!e&&e.has(t)},set:function(t,s){e||(e=HT()),e.set(t,s)}};return a}});var Po=M((pM,Vv)=>{"use strict";var BT=String.prototype.replace,VT=/%20/g,Ou={RFC1738:"RFC1738",RFC3986:"RFC3986"};Vv.exports={default:Ou.RFC3986,formatters:{RFC1738:function(r){return BT.call(r,VT,"+")},RFC3986:function(r){return String(r)}},RFC1738:Ou.RFC1738,RFC3986:Ou.RFC3986}});var Au=M((dM,Zv)=>{"use strict";var GT=Po(),Cu=Object.prototype.hasOwnProperty,Ba=Array.isArray,jr=(function(){for(var r=[],e=0;e<256;++e)r.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return r})(),ZT=function(e){for(;e.length>1;){var a=e.pop(),t=a.obj[a.prop];if(Ba(t)){for(var s=[],i=0;i=Iu?n.slice(l,l+Iu):n,u=[],p=0;p=48&&m<=57||m>=65&&m<=90||m>=97&&m<=122||i===GT.RFC1738&&(m===40||m===41)){u[u.length]=c.charAt(p);continue}if(m<128){u[u.length]=jr[m];continue}if(m<2048){u[u.length]=jr[192|m>>6]+jr[128|m&63];continue}if(m<55296||m>=57344){u[u.length]=jr[224|m>>12]+jr[128|m>>6&63]+jr[128|m&63];continue}p+=1,m=65536+((m&1023)<<10|c.charCodeAt(p)&1023),u[u.length]=jr[240|m>>18]+jr[128|m>>12&63]+jr[128|m>>6&63]+jr[128|m&63]}o+=u.join("")}return o},JT=function(e){for(var a=[{obj:{o:e},prop:"o"}],t=[],s=0;s{"use strict";var Kv=Bv(),Ro=Au(),pi=Po(),ak=Object.prototype.hasOwnProperty,Qv={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,a){return e+"["+a+"]"},repeat:function(e){return e}},Nr=Array.isArray,sk=Array.prototype.push,Xv=function(r,e){sk.apply(r,Nr(e)?e:[e])},nk=Date.prototype.toISOString,Wv=pi.default,ht={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Ro.encode,encodeValuesOnly:!1,format:Wv,formatter:pi.formatters[Wv],indices:!1,serializeDate:function(e){return nk.call(e)},skipNulls:!1,strictNullHandling:!1},ik=function(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"},ju={},ok=function r(e,a,t,s,i,n,o,l,c,u,p,m,f,h,d,v,x,b){for(var E=e,k=b,O=0,P=!1;(k=k.get(ju))!==void 0&&!P;){var I=k.get(e);if(O+=1,typeof I<"u"){if(I===O)throw new RangeError("Cyclic object value");P=!0}typeof k.get(ju)>"u"&&(O=0)}if(typeof u=="function"?E=u(a,E):E instanceof Date?E=f(E):t==="comma"&&Nr(E)&&(E=Ro.maybeMap(E,function(V){return V instanceof Date?f(V):V})),E===null){if(n)return c&&!v?c(a,ht.encoder,x,"key",h):a;E=""}if(ik(E)||Ro.isBuffer(E)){if(c){var $=v?a:c(a,ht.encoder,x,"key",h);return[d($)+"="+d(c(E,ht.encoder,x,"value",h))]}return[d(a)+"="+d(String(E))]}var A=[];if(typeof E>"u")return A;var F;if(t==="comma"&&Nr(E))v&&c&&(E=Ro.maybeMap(E,c)),F=[{value:E.length>0?E.join(",")||null:void 0}];else if(Nr(u))F=u;else{var q=Object.keys(E);F=p?q.sort(p):q}var C=l?a.replace(/\./g,"%2E"):a,R=s&&Nr(E)&&E.length===1?C+"[]":C;if(i&&Nr(E)&&E.length===0)return R+"[]";for(var j=0;j"u"?e.encodeDotInKeys===!0?!0:ht.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:ht.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:ht.allowEmptyArrays,arrayFormat:n,charset:a,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:ht.charsetSentinel,commaRoundTrip:e.commaRoundTrip,delimiter:typeof e.delimiter>"u"?ht.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:ht.encode,encodeDotInKeys:typeof e.encodeDotInKeys=="boolean"?e.encodeDotInKeys:ht.encodeDotInKeys,encoder:typeof e.encoder=="function"?e.encoder:ht.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:ht.encodeValuesOnly,filter:i,format:t,formatter:s,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:ht.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:ht.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:ht.strictNullHandling}};Jv.exports=function(r,e){var a=r,t=ck(e),s,i;typeof t.filter=="function"?(i=t.filter,a=i("",a)):Nr(t.filter)&&(i=t.filter,s=i);var n=[];if(typeof a!="object"||a===null)return"";var o=Qv[t.arrayFormat],l=o==="comma"&&t.commaRoundTrip;s||(s=Object.keys(a)),t.sort&&s.sort(t.sort);for(var c=Kv(),u=0;u0?f+m:""}});var rg=M((mM,tg)=>{"use strict";var Js=Au(),Nu=Object.prototype.hasOwnProperty,lk=Array.isArray,lt={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:Js.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1},uk=function(r){return r.replace(/&#(\d+);/g,function(e,a){return String.fromCharCode(parseInt(a,10))})},eg=function(r,e){return r&&typeof r=="string"&&e.comma&&r.indexOf(",")>-1?r.split(","):r},pk="utf8=%26%2310003%3B",dk="utf8=%E2%9C%93",fk=function(e,a){var t={__proto__:null},s=a.ignoreQueryPrefix?e.replace(/^\?/,""):e;s=s.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var i=a.parameterLimit===1/0?void 0:a.parameterLimit,n=s.split(a.delimiter,i),o=-1,l,c=a.charset;if(a.charsetSentinel)for(l=0;l-1&&(h=lk(h)?[h]:h);var d=Nu.call(t,f);d&&a.duplicates==="combine"?t[f]=Js.combine(t[f],h):(!d||a.duplicates==="last")&&(t[f]=h)}return t},mk=function(r,e,a,t){for(var s=t?e:eg(e,a),i=r.length-1;i>=0;--i){var n,o=r[i];if(o==="[]"&&a.parseArrays)n=a.allowEmptyArrays&&(s===""||a.strictNullHandling&&s===null)?[]:[].concat(s);else{n=a.plainObjects?Object.create(null):{};var l=o.charAt(0)==="["&&o.charAt(o.length-1)==="]"?o.slice(1,-1):o,c=a.decodeDotInKeys?l.replace(/%2E/g,"."):l,u=parseInt(c,10);!a.parseArrays&&c===""?n={0:s}:!isNaN(u)&&o!==c&&String(u)===c&&u>=0&&a.parseArrays&&u<=a.arrayLimit?(n=[],n[u]=s):c!=="__proto__"&&(n[c]=s)}s=n}return s},hk=function(e,a,t,s){if(e){var i=t.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,n=/(\[[^[\]]*])/,o=/(\[[^[\]]*])/g,l=t.depth>0&&n.exec(i),c=l?i.slice(0,l.index):i,u=[];if(c){if(!t.plainObjects&&Nu.call(Object.prototype,c)&&!t.allowPrototypes)return;u.push(c)}for(var p=0;t.depth>0&&(l=o.exec(i))!==null&&p"u"?lt.charset:e.charset,t=typeof e.duplicates>"u"?lt.duplicates:e.duplicates;if(t!=="combine"&&t!=="first"&&t!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var s=typeof e.allowDots>"u"?e.decodeDotInKeys===!0?!0:lt.allowDots:!!e.allowDots;return{allowDots:s,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:lt.allowEmptyArrays,allowPrototypes:typeof e.allowPrototypes=="boolean"?e.allowPrototypes:lt.allowPrototypes,allowSparse:typeof e.allowSparse=="boolean"?e.allowSparse:lt.allowSparse,arrayLimit:typeof e.arrayLimit=="number"?e.arrayLimit:lt.arrayLimit,charset:a,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:lt.charsetSentinel,comma:typeof e.comma=="boolean"?e.comma:lt.comma,decodeDotInKeys:typeof e.decodeDotInKeys=="boolean"?e.decodeDotInKeys:lt.decodeDotInKeys,decoder:typeof e.decoder=="function"?e.decoder:lt.decoder,delimiter:typeof e.delimiter=="string"||Js.isRegExp(e.delimiter)?e.delimiter:lt.delimiter,depth:typeof e.depth=="number"||e.depth===!1?+e.depth:lt.depth,duplicates:t,ignoreQueryPrefix:e.ignoreQueryPrefix===!0,interpretNumericEntities:typeof e.interpretNumericEntities=="boolean"?e.interpretNumericEntities:lt.interpretNumericEntities,parameterLimit:typeof e.parameterLimit=="number"?e.parameterLimit:lt.parameterLimit,parseArrays:e.parseArrays!==!1,plainObjects:typeof e.plainObjects=="boolean"?e.plainObjects:lt.plainObjects,strictDepth:typeof e.strictDepth=="boolean"?!!e.strictDepth:lt.strictDepth,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:lt.strictNullHandling}};tg.exports=function(r,e){var a=vk(e);if(r===""||r===null||typeof r>"u")return a.plainObjects?Object.create(null):{};for(var t=typeof r=="string"?fk(r,a):r,s=a.plainObjects?Object.create(null):{},i=Object.keys(t),n=0;n{"use strict";var gk=Yv(),yk=rg(),bk=Po();ag.exports={formats:bk,parse:yk,stringify:gk}});var lg=M((vM,cg)=>{"use strict";var xk=$s(),_k=Ln(),ko=Da(),_r=tr()("body-parser:urlencoded"),Ek=Or()("body-parser"),wk=Jn(),ng=Vs();cg.exports=Sk;var sg=Object.create(null);function Sk(r){var e=r||{};e.extended===void 0&&Ek("undefined extended: provide extended option");var a=e.extended!==!1,t=e.inflate!==!1,s=typeof e.limit!="number"?xk.parse(e.limit||"100kb"):e.limit,i=e.type||"application/x-www-form-urlencoded",n=e.verify||!1,o=typeof e.depth!="number"?Number(e.depth||32):e.depth;if(n!==!1&&typeof n!="function")throw new TypeError("option verify must be function");var l=a?Pk(e):Tk(e),c=typeof i!="function"?kk(i):i;function u(p){return p.length?l(p):{}}return function(m,f,h){if(m._body){_r("body already parsed"),h();return}if(m.body=m.body||{},!ng.hasBody(m)){_r("skip empty body"),h();return}if(_r("content-type %j",m.headers["content-type"]),!c(m)){_r("skip parsing"),h();return}var d=Rk(m)||"utf-8";if(d!=="utf-8"){_r("invalid charset"),h(ko(415,'unsupported charset "'+d.toUpperCase()+'"',{charset:d,type:"charset.unsupported"}));return}wk(m,f,h,u,_r,{debug:_r,encoding:d,inflate:t,limit:s,verify:n,depth:o})}}function Pk(r){var e=r.parameterLimit!==void 0?r.parameterLimit:1e3,a=typeof r.depth!="number"?Number(r.depth||32):r.depth,t=og("qs");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");if(isNaN(a)||a<0)throw new TypeError("option depth must be a zero or a positive number");return isFinite(e)&&(e=e|0),function(i){var n=ig(i,e);if(n===void 0)throw _r("too many parameters"),ko(413,"too many parameters",{type:"parameters.too.many"});var o=Math.max(100,n);_r("parse extended urlencoding");try{return t(i,{allowPrototypes:!0,arrayLimit:o,depth:a,strictDepth:!0,parameterLimit:e})}catch(l){throw l instanceof RangeError?ko(400,"The input exceeded the depth",{type:"querystring.parse.rangeError"}):l}}}function Rk(r){try{return(_k.parse(r).parameters.charset||"").toLowerCase()}catch{return}}function ig(r,e){for(var a=0,t=0;(t=r.indexOf("&",t))!==-1;)if(a++,t++,a===e)return;return a}function og(r){var e=sg[r];if(e!==void 0)return e.parse;switch(r){case"qs":e=To();break;case"querystring":e=require("querystring");break}return sg[r]=e,e.parse}function Tk(r){var e=r.parameterLimit!==void 0?r.parameterLimit:1e3,a=og("querystring");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");return isFinite(e)&&(e=e|0),function(s){var i=ig(s,e);if(i===void 0)throw _r("too many parameters"),ko(413,"too many parameters",{type:"parameters.too.many"});return _r("parse urlencoding"),a(s,void 0,void 0,{maxKeys:e})}}function kk(r){return function(a){return!!ng(a,r)}}});var dg=M((ba,pg)=>{"use strict";var Ok=Or()("body-parser"),ug=Object.create(null);ba=pg.exports=Ok.function(Ck,"bodyParser: use individual json/urlencoded middlewares");Object.defineProperty(ba,"json",{configurable:!0,enumerable:!0,get:Oo("json")});Object.defineProperty(ba,"raw",{configurable:!0,enumerable:!0,get:Oo("raw")});Object.defineProperty(ba,"text",{configurable:!0,enumerable:!0,get:Oo("text")});Object.defineProperty(ba,"urlencoded",{configurable:!0,enumerable:!0,get:Oo("urlencoded")});function Ck(r){var e=Object.create(r||null,{type:{configurable:!0,enumerable:!0,value:void 0,writable:!0}}),a=ba.urlencoded(e),t=ba.json(e);return function(i,n,o){t(i,n,function(l){if(l)return o(l);a(i,n,o)})}}function Oo(r){return function(){return Ik(r)}}function Ik(r){var e=ug[r];if(e!==void 0)return e;switch(r){case"json":e=Um();break;case"raw":e=Bm();break;case"text":e=Zm();break;case"urlencoded":e=lg();break}return ug[r]=e}});var mg=M((gM,fg)=>{"use strict";fg.exports=jk;var Ak=Object.prototype.hasOwnProperty;function jk(r,e,a){if(!r)throw new TypeError("argument dest is required");if(!e)throw new TypeError("argument src is required");return a===void 0&&(a=!0),Object.getOwnPropertyNames(e).forEach(function(s){if(!(!a&&Ak.call(r,s))){var i=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(r,s,i)}}),r}});var Co=M((yM,hg)=>{"use strict";hg.exports=qk;var Nk=/(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g,Dk=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g,$k="$1\uFFFD$2";function qk(r){return String(r).replace(Dk,$k).replace(Nk,encodeURI)}});var di=M((bM,vg)=>{"use strict";var Mk=/["'&<>]/;vg.exports=Fk;function Fk(r){var e=""+r,a=Mk.exec(e);if(!a)return e;var t,s="",i=0,n=0;for(i=a.index;i{"use strict";var yg=require("url"),gg=yg.parse,Io=yg.Url;Du.exports=bg;Du.exports.original=Lk;function bg(r){var e=r.url;if(e!==void 0){var a=r._parsedUrl;return _g(e,a)?a:(a=xg(e),a._raw=e,r._parsedUrl=a)}}function Lk(r){var e=r.originalUrl;if(typeof e!="string")return bg(r);var a=r._parsedOriginalUrl;return _g(e,a)?a:(a=xg(e),a._raw=e,r._parsedOriginalUrl=a)}function xg(r){if(typeof r!="string"||r.charCodeAt(0)!==47)return gg(r);for(var e=r,a=null,t=null,s=1;s{"use strict";var $u=tr()("finalhandler"),Uk=Co(),zk=di(),wg=Xn(),Hk=Ys(),Sg=zn(),Bk=uo(),Vk=/\x20{2}/g,Gk=/\n/g,Zk=typeof setImmediate=="function"?setImmediate:function(r){process.nextTick(r.bind.apply(r,arguments))},Wk=wg.isFinished;function Kk(r){var e=zk(r).replace(Gk,"
").replace(Vk,"  ");return` @@ -28,7 +28,7 @@ return fn.apply(this, arguments)
`+e+`
-`}Pg.exports=Qk;function Qk(r,e,a){var t=a||{},s=t.env||process.env.NODE_ENV||"development",i=t.onerror;return function(n){var o,l,c;if(!n&&Eg(e)){$u("cannot 404 after headers sent");return}if(n?(c=Yk(n),c===void 0?c=tO(e):o=Xk(n),l=Jk(n,c,s)):(c=404,l="Cannot "+r.method+" "+Uk(eO(r))),$u("default %s",c),n&&i&&Zk(i,n,r,e),Eg(e)){$u("cannot %d after headers sent",c),r.socket&&r.socket.destroy();return}rO(r,e,c,o,l)}}function Xk(r){if(!(!r.headers||typeof r.headers!="object")){for(var e=Object.create(null),a=Object.keys(r.headers),t=0;t=400&&r.status<600)return r.status;if(typeof r.statusCode=="number"&&r.statusCode>=400&&r.statusCode<600)return r.statusCode}function eO(r){try{return Hk.original(r).pathname}catch{return"resource"}}function tO(r){var e=r.statusCode;return(typeof e!="number"||e<400||e>599)&&(e=500),e}function Eg(r){return typeof r.headersSent!="boolean"?!!r._header:r.headersSent}function rO(r,e,a,t,s){function i(){var n=Kk(s);if(e.statusCode=a,r.httpVersionMajor<2&&(e.statusMessage=Sg.message[a]),e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Range"),aO(e,t),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Content-Type","text/html; charset=utf-8"),e.setHeader("Content-Length",Buffer.byteLength(n,"utf8")),r.method==="HEAD"){e.end();return}e.end(n,"utf8")}if(Wk(r)){i();return}Bk(r),wg(r,i),r.resume()}function aO(r,e){if(e)for(var a=Object.keys(e),t=0;t{"use strict";Og.exports=sO;function Tg(r,e,a){for(var t=0;t0&&Array.isArray(s)?Tg(s,e,a-1):e.push(s)}return e}function kg(r,e){for(var a=0;a{Ag.exports=Ig;var Cg=/\\.|\((?:\?<(.*?)>)?(?!\?)/g;function Ig(r,e,a){a=a||{},e=e||[];var t=a.strict,s=a.end!==!1,i=a.sensitive?"":"i",n=a.lookahead!==!1,o=0,l=e.length,c=0,u=0,p=0,m="",f;if(r instanceof RegExp){for(;f=Cg.exec(r.source);)f[0][0]!=="\\"&&e.push({name:f[1]||u++,optional:!1,offset:f.index});return r}if(Array.isArray(r))return r=r.map(function(h){return Ig(h,e,a).source}),new RegExp(r.join("|"),i);if(typeof r!="string")throw new TypeError("path must be a string, array of strings, or regular expression");for(r=r.replace(/\\.|(\/)?(\.)?:(\w+)(\(.*?\))?(\*)?(\?)?|[.*]|\/\(/g,function(h,d,v,g,b,E,k,O){if(h[0]==="\\")return m+=h,p+=2,h;if(h===".")return m+="\\.",o+=1,p+=1,"\\.";if(d||v?m="":m+=r.slice(p,O),p=O+h.length,h==="*")return o+=3,"(.*)";if(h==="/(")return m+="/",o+=2,"/(?:";d=d||"",v=v?"\\.":"",k=k||"",b=b?b.replace(/\\.|\*/,function(I){return I==="*"?"(.*)":I}):m?"((?:(?!/|"+m+").)+?)":"([^/"+v+"]+?)",e.push({name:g,optional:!!k,offset:O+o});var P="(?:"+v+d+b+(E?"((?:[/"+v+"].+?)?)":"")+")"+k;return o+=P.length-h.length,P});f=Cg.exec(r);)f[0][0]!=="\\"&&((l+c===e.length||e[l+c].offset>f.index)&&e.splice(l+c,0,{name:u++,optional:!1,offset:f.index}),c++);return r+=t?"":r[r.length-1]==="/"?"?":"/?",s?r+="$":r[r.length-1]!=="/"&&(r+=n?"(?=/|$)":"(?:/|$)"),new RegExp("^"+r,i)}});var qu=M((SM,Dg)=>{"use strict";var nO=jg(),iO=tr()("express:router:layer"),oO=Object.prototype.hasOwnProperty;Dg.exports=en;function en(r,e,a){if(!(this instanceof en))return new en(r,e,a);iO("new %o",r);var t=e||{};this.handle=a,this.name=a.name||"",this.params=void 0,this.path=void 0,this.regexp=nO(r,this.keys=[],t),this.regexp.fast_star=r==="*",this.regexp.fast_slash=r==="/"&&t.end===!1}en.prototype.handle_error=function(e,a,t,s){var i=this.handle;if(i.length!==4)return s(e);try{i(e,a,t,s)}catch(n){s(n)}};en.prototype.handle_request=function(e,a,t){var s=this.handle;if(s.length>3)return t();try{s(e,a,t)}catch(i){t(i)}};en.prototype.match=function(e){var a;if(e!=null){if(this.regexp.fast_slash)return this.params={},this.path="",!0;if(this.regexp.fast_star)return this.params={0:Ng(e)},this.path=e,!0;a=this.regexp.exec(e)}if(!a)return this.params=void 0,this.path=void 0,!1;this.params={},this.path=a[0];for(var t=this.keys,s=this.params,i=1;i{"use strict";var $g=require("http");qg.exports=cO()||lO();function cO(){return $g.METHODS&&$g.METHODS.map(function(e){return e.toLowerCase()})}function lO(){return["get","post","put","head","delete","options","trace","copy","lock","mkcol","move","purge","propfind","proppatch","unlock","report","mkactivity","checkout","merge","m-search","notify","subscribe","unsubscribe","patch","search","connect"]}});var Mu=M((RM,Hg)=>{"use strict";var Mg=tr()("express:router:route"),Fg=fi(),Lg=qu(),uO=Ao(),Ug=Array.prototype.slice,zg=Object.prototype.toString;Hg.exports=tn;function tn(r){this.path=r,this.stack=[],Mg("new %o",r),this.methods={}}tn.prototype._handles_method=function(e){if(this.methods._all)return!0;var a=typeof e=="string"?e.toLowerCase():e;return a==="head"&&!this.methods.head&&(a="get"),!!this.methods[a]};tn.prototype._options=function(){var e=Object.keys(this.methods);this.methods.get&&!this.methods.head&&e.push("head");for(var a=0;a100)return setImmediate(l,c);var u=i[s++];if(!u)return t(c);u.method&&u.method!==o?l(c):c?u.handle_error(c,e,a,l):u.handle_request(e,a,l),n=0}};tn.prototype.all=function(){for(var e=Fg(Ug.call(arguments)),a=0;a{Bg=Vg.exports=function(r,e){if(r&&e)for(var a in e)r[a]=e[a];return r}});var Lu=M((TM,Kg)=>{"use strict";var pO=Mu(),Zg=qu(),dO=Ao(),Fu=mi(),jo=tr()("express:router"),Gg=Or()("express"),fO=fi(),mO=Ys(),hO=Un(),vO=/^\[object (\S+)\]$/,Wg=Array.prototype.slice,gO=Object.prototype.toString,Va=Kg.exports=function(r){var e=r||{};function a(t,s,i){a.handle(t,s,i)}return hO(a,Va),a.params={},a._params=[],a.caseSensitive=e.caseSensitive,a.mergeParams=e.mergeParams,a.strict=e.strict,a.stack=[],a};Va.param=function(e,a){if(typeof e=="function"){Gg("router.param(fn): Refactor to use path params"),this._params.push(e);return}var t=this._params,s=t.length,i;e[0]===":"&&(Gg("router.param("+JSON.stringify(e)+", fn): Use router.param("+JSON.stringify(e.slice(1))+", fn) instead"),e=e.slice(1));for(var n=0;n=m.length){setImmediate(d,E);return}if(++c>100)return setImmediate(v,b);var k=bO(e);if(k==null)return d(E);for(var O,P,I;P!==!0&&i=o.length)return i();if(u=0,p=o[l++],c=p.name,m=t.params[c],f=n[c],h=a[c],m===void 0||!f)return d();if(h&&(h.match===m||h.error&&h.error!=="route"))return t.params[c]=h.value,d(h.error);a[c]=h={error:null,match:m,value:m},v()}function v(g){var b=f[u++];if(h.value=t.params[p.name],g){h.error=g,d(g);return}if(!b)return d();try{b(t,s,v,m,p.name)}catch(E){v(E)}}d()};Va.use=function(e){var a=0,t="/";if(typeof e!="function"){for(var s=e;Array.isArray(s)&&s.length!==0;)s=s[0];typeof s!="function"&&(a=1,t=e)}var i=fO(Wg.call(arguments,a));if(i.length===0)throw new TypeError("Router.use() requires a middleware function");for(var n=0;n");var o=new Zg(t,{sensitive:this.caseSensitive,strict:!1,end:!1},e);o.route=void 0,this.stack.push(o)}return this};Va.route=function(e){var a=new pO(e),t=new Zg(e,{sensitive:this.caseSensitive,strict:this.strict,end:!0},a.dispatch.bind(a));return t.route=a,this.stack.push(t),a};dO.concat("all").forEach(function(r){Va[r]=function(e){var a=this.route(e);return a[r].apply(a,Wg.call(arguments,1)),this}});function yO(r,e){for(var a=0;a=0;t--)r[t+s]=r[t],t{"use strict";var Qg=Un();Xg.init=function(r){return function(a,t,s){r.enabled("x-powered-by")&&t.setHeader("X-Powered-By","Express"),a.res=t,t.req=a,a.next=s,Qg(a,r.request),Qg(t,r.response),t.locals=t.locals||Object.create(null),s()}}});var Uu=M((OM,Yg)=>{"use strict";var TO=mi(),kO=Ys(),OO=To();Yg.exports=function(e){var a=TO({},e),t=OO.parse;return typeof e=="function"&&(t=e,a=void 0),a!==void 0&&a.allowPrototypes===void 0&&(a.allowPrototypes=!0),function(i,n,o){if(!i.query){var l=kO(i).query;i.query=t(l,a)}o()}}});var sy=M((CM,ay)=>{"use strict";var No=tr()("express:view"),hi=require("path"),CO=require("fs"),IO=hi.dirname,ry=hi.basename,AO=hi.extname,ey=hi.join,jO=hi.resolve;ay.exports=Do;function Do(r,e){var a=e||{};if(this.defaultEngine=a.defaultEngine,this.ext=AO(r),this.name=r,this.root=a.root,!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");var t=r;if(this.ext||(this.ext=this.defaultEngine[0]!=="."?"."+this.defaultEngine:this.defaultEngine,t+=this.ext),!a.engines[this.ext]){var s=this.ext.slice(1);No('require "%s"',s);var i=require(s).__express;if(typeof i!="function")throw new Error('Module "'+s+'" does not provide a view engine.');a.engines[this.ext]=i}this.engine=a.engines[this.ext],this.path=this.lookup(t)}Do.prototype.lookup=function(e){var a,t=[].concat(this.root);No('lookup "%s"',e);for(var s=0;s{var $o=require("buffer"),Dr=$o.Buffer;function ny(r,e){for(var a in r)e[a]=r[a]}Dr.from&&Dr.alloc&&Dr.allocUnsafe&&Dr.allocUnsafeSlow?iy.exports=$o:(ny($o,zu),zu.Buffer=Ga);function Ga(r,e,a){return Dr(r,e,a)}Ga.prototype=Object.create(Dr.prototype);ny(Dr,Ga);Ga.from=function(r,e,a){if(typeof r=="number")throw new TypeError("Argument must not be a number");return Dr(r,e,a)};Ga.alloc=function(r,e,a){if(typeof r!="number")throw new TypeError("Argument must be a number");var t=Dr(r);return e!==void 0?typeof a=="string"?t.fill(e,a):t.fill(e):t.fill(0),t};Ga.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return Dr(r)};Ga.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return $o.SlowBuffer(r)}});var Bu=M((IM,Hu)=>{"use strict";Hu.exports=BO;Hu.exports.parse=WO;var oy=require("path").basename,NO=qo().Buffer,DO=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,$O=/%[0-9A-Fa-f]{2}/,qO=/%([0-9A-Fa-f]{2})/g,ly=/[^\x20-\x7e\xa0-\xff]/g,MO=/\\([\u0000-\u007f])/g,FO=/([\\"])/g,cy=/;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g,LO=/^[\x20-\x7e\x80-\xff]+$/,UO=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,zO=/^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/,HO=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function BO(r,e){var a=e||{},t=a.type||"attachment",s=VO(r,a.fallback);return GO(new py(t,s))}function VO(r,e){if(r!==void 0){var a={};if(typeof r!="string")throw new TypeError("filename must be a string");if(e===void 0&&(e=!0),typeof e!="string"&&typeof e!="boolean")throw new TypeError("fallback must be a string or boolean");if(typeof e=="string"&&ly.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var t=oy(r),s=LO.test(t),i=typeof e!="string"?e&&uy(t):oy(e),n=typeof i=="string"&&i!==t;return(n||!s||$O.test(t))&&(a["filename*"]=t),(s||n)&&(a.filename=n?i:t),a}}function GO(r){var e=r.parameters,a=r.type;if(!a||typeof a!="string"||!UO.test(a))throw new TypeError("invalid type");var t=String(a).toLowerCase();if(e&&typeof e=="object")for(var s,i=Object.keys(e).sort(),n=0;n{"use strict";dy.exports=rC;var YO=/(?:[^\x21\x25\x26-\x3B\x3D\x3F-\x5B\x5D\x5F\x61-\x7A\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g,eC=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g,tC="$1\uFFFD$2";function rC(r){return String(r).replace(eC,tC).replace(YO,encodeURI)}});var Vu=M((jM,vy)=>{"use strict";vy.exports=nC;var aC=require("crypto"),my=require("fs").Stats,hy=Object.prototype.toString;function sC(r){if(r.length===0)return'"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';var e=aC.createHash("sha1").update(r,"utf8").digest("base64").substring(0,27),a=typeof r=="string"?Buffer.byteLength(r,"utf8"):r.length;return'"'+a.toString(16)+"-"+e+'"'}function nC(r,e){if(r==null)throw new TypeError("argument entity is required");var a=iC(r),t=e&&typeof e.weak=="boolean"?e.weak:a;if(!a&&typeof r!="string"&&!Buffer.isBuffer(r))throw new TypeError("argument entity must be string, Buffer, or fs.Stats");var s=a?oC(r):sC(r);return t?"W/"+s:s}function iC(r){return typeof my=="function"&&r instanceof my?!0:r&&typeof r=="object"&&"ctime"in r&&hy.call(r.ctime)==="[object Date]"&&"mtime"in r&&hy.call(r.mtime)==="[object Date]"&&"ino"in r&&typeof r.ino=="number"&&"size"in r&&typeof r.size=="number"}function oC(r){var e=r.mtime.getTime().toString(16),a=r.size.toString(16);return'"'+a+"-"+e+'"'}});var Gu=M((NM,yy)=>{"use strict";var cC=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;yy.exports=lC;function lC(r,e){var a=r["if-modified-since"],t=r["if-none-match"];if(!a&&!t)return!1;var s=r["cache-control"];if(s&&cC.test(s))return!1;if(t&&t!=="*"){var i=e.etag;if(!i)return!1;for(var n=!0,o=uC(t),l=0;l{pC.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/bdoc":["bdoc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":[],"application/font-woff2":[],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":[],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":[],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":[],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":[],"application/x-msdownload":["com","bat"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":[],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":[],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp3":[],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/wav":["wav"],"audio/wave":[],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":[],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":[],"audio/x-wav":[],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/apng":["apng"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":[],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":[],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/rtf":[],"text/sgml":["sgml","sgm"],"text/slim":["slim","slm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":[],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/xml":[],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}});var _y=M((qM,xy)=>{var $M=require("path"),dC=require("fs");function an(){this.types=Object.create(null),this.extensions=Object.create(null)}an.prototype.define=function(r){for(var e in r){for(var a=r[e],t=0;t{var sn=1e3,nn=sn*60,on=nn*60,Za=on*24,fC=Za*7,mC=Za*365.25;Ey.exports=function(r,e){e=e||{};var a=typeof r;if(a==="string"&&r.length>0)return hC(r);if(a==="number"&&isFinite(r))return e.long?gC(r):vC(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function hC(r){if(r=String(r),!(r.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(e){var a=parseFloat(e[1]),t=(e[2]||"ms").toLowerCase();switch(t){case"years":case"year":case"yrs":case"yr":case"y":return a*mC;case"weeks":case"week":case"w":return a*fC;case"days":case"day":case"d":return a*Za;case"hours":case"hour":case"hrs":case"hr":case"h":return a*on;case"minutes":case"minute":case"mins":case"min":case"m":return a*nn;case"seconds":case"second":case"secs":case"sec":case"s":return a*sn;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}}}function vC(r){var e=Math.abs(r);return e>=Za?Math.round(r/Za)+"d":e>=on?Math.round(r/on)+"h":e>=nn?Math.round(r/nn)+"m":e>=sn?Math.round(r/sn)+"s":r+"ms"}function gC(r){var e=Math.abs(r);return e>=Za?Mo(r,e,Za,"day"):e>=on?Mo(r,e,on,"hour"):e>=nn?Mo(r,e,nn,"minute"):e>=sn?Mo(r,e,sn,"second"):r+" ms"}function Mo(r,e,a,t){var s=e>=a*1.5;return Math.round(r/a)+" "+t+(s?"s":"")}});var Zu=M((FM,Sy)=>{"use strict";Sy.exports=yC;function yC(r,e,a){if(typeof e!="string")throw new TypeError("argument str must be a string");var t=e.indexOf("=");if(t===-1)return-2;var s=e.slice(t+1).split(","),i=[];i.type=e.slice(0,t);for(var n=0;nr-1&&(c=r-1),!(isNaN(l)||isNaN(c)||l>c||l<0)&&i.push({start:l,end:c})}return i.length<1?-1:a&&a.combine?bC(i):i}function bC(r){for(var e=r.map(xC).sort(wC),a=0,t=1;ti.end+1?e[++a]=s:s.end>i.end&&(i.end=s.end,i.index=Math.min(i.index,s.index))}e.length=a+1;var n=e.sort(EC).map(_C);return n.type=r.type,n}function xC(r,e){return{start:r.start,end:r.end,index:e}}function _C(r){return{start:r.start,end:r.end}}function EC(r,e){return r.index-e.index}function wC(r,e){return r.start-e.start}});var zo=M((LM,Yu)=>{"use strict";var Wu=Da(),ot=tr()("send"),Wa=Or()("send"),SC=Tl(),PC=fy(),Ty=di(),RC=Vu(),TC=Gu(),Lo=require("fs"),Qu=_y(),ky=wy(),kC=Xn(),OC=Zu(),vi=require("path"),CC=zn(),Oy=require("stream"),IC=require("util"),AC=vi.extname,Cy=vi.join,Ku=vi.normalize,Ju=vi.resolve,Fo=vi.sep,jC=/^ *bytes=/,Iy=3600*24*365*1e3,Py=/(?:^|[\\/])\.\.(?:[\\/]|$)/;Yu.exports=NC;Yu.exports.mime=Qu;function NC(r,e,a){return new tt(r,e,a)}function tt(r,e,a){Oy.call(this);var t=a||{};if(this.options=t,this.path=e,this.req=r,this._acceptRanges=t.acceptRanges!==void 0?!!t.acceptRanges:!0,this._cacheControl=t.cacheControl!==void 0?!!t.cacheControl:!0,this._etag=t.etag!==void 0?!!t.etag:!0,this._dotfiles=t.dotfiles!==void 0?t.dotfiles:"ignore",this._dotfiles!=="ignore"&&this._dotfiles!=="allow"&&this._dotfiles!=="deny")throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');this._hidden=!!t.hidden,t.hidden!==void 0&&Wa("hidden: use dotfiles: '"+(this._hidden?"allow":"ignore")+"' instead"),t.dotfiles===void 0&&(this._dotfiles=void 0),this._extensions=t.extensions!==void 0?Xu(t.extensions,"extensions option"):[],this._immutable=t.immutable!==void 0?!!t.immutable:!1,this._index=t.index!==void 0?Xu(t.index,"index option"):["index.html"],this._lastModified=t.lastModified!==void 0?!!t.lastModified:!0,this._maxage=t.maxAge||t.maxage,this._maxage=typeof this._maxage=="string"?ky(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),Iy),this._root=t.root?Ju(t.root):null,!this._root&&t.from&&this.from(t.from)}IC.inherits(tt,Oy);tt.prototype.etag=Wa.function(function(e){return this._etag=!!e,ot("etag %s",this._etag),this},"send.etag: pass etag as option");tt.prototype.hidden=Wa.function(function(e){return this._hidden=!!e,this._dotfiles=void 0,ot("hidden %s",this._hidden),this},"send.hidden: use dotfiles option");tt.prototype.index=Wa.function(function(e){var a=e?Xu(e,"paths argument"):[];return ot("index %o",e),this._index=a,this},"send.index: pass index as option");tt.prototype.root=function(e){return this._root=Ju(String(e)),ot("root %s",this._root),this};tt.prototype.from=Wa.function(tt.prototype.root,"send.from: pass root as option");tt.prototype.root=Wa.function(tt.prototype.root,"send.root: pass root as option");tt.prototype.maxage=Wa.function(function(e){return this._maxage=typeof e=="string"?ky(e):Number(e),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),Iy),ot("max-age %d",this._maxage),this},"send.maxage: pass maxAge as option");tt.prototype.error=function(e,a){if(jy(this,"error"))return this.emit("error",MC(e,a));var t=this.res,s=CC.message[e]||String(e),i=Ay("Error",Ty(s));DC(t),a&&a.headers&&HC(t,a.headers),t.statusCode=e,t.setHeader("Content-Type","text/html; charset=UTF-8"),t.setHeader("Content-Length",Buffer.byteLength(i)),t.setHeader("Content-Security-Policy","default-src 'none'"),t.setHeader("X-Content-Type-Options","nosniff"),t.end(i)};tt.prototype.hasTrailingSlash=function(){return this.path[this.path.length-1]==="/"};tt.prototype.isConditionalGET=function(){return this.req.headers["if-match"]||this.req.headers["if-unmodified-since"]||this.req.headers["if-none-match"]||this.req.headers["if-modified-since"]};tt.prototype.isPreconditionFailure=function(){var e=this.req,a=this.res,t=e.headers["if-match"];if(t){var s=a.getHeader("ETag");return!s||t!=="*"&&zC(t).every(function(o){return o!==s&&o!=="W/"+s&&"W/"+o!==s})}var i=Uo(e.headers["if-unmodified-since"]);if(!isNaN(i)){var n=Uo(a.getHeader("Last-Modified"));return isNaN(n)||n>i}return!1};tt.prototype.removeContentHeaderFields=function(){var e=this.res;e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Length"),e.removeHeader("Content-Range"),e.removeHeader("Content-Type")};tt.prototype.notModified=function(){var e=this.res;ot("not modified"),this.removeContentHeaderFields(),e.statusCode=304,e.end()};tt.prototype.headersAlreadySent=function(){var e=new Error("Can't set headers after they are sent.");ot("headers already sent"),this.error(500,e)};tt.prototype.isCachable=function(){var e=this.res.statusCode;return e>=200&&e<300||e===304};tt.prototype.onStatError=function(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e);break}};tt.prototype.isFresh=function(){return TC(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})};tt.prototype.isRangeFresh=function(){var e=this.req.headers["if-range"];if(!e)return!0;if(e.indexOf('"')!==-1){var a=this.res.getHeader("ETag");return!!(a&&e.indexOf(a)!==-1)}var t=this.res.getHeader("Last-Modified");return Uo(t)<=Uo(e)};tt.prototype.redirect=function(e){var a=this.res;if(jy(this,"directory")){this.emit("directory",a,e);return}if(this.hasTrailingSlash()){this.error(403);return}var t=PC($C(this.path+"/")),s=Ay("Redirecting","Redirecting to "+Ty(t));a.statusCode=301,a.setHeader("Content-Type","text/html; charset=UTF-8"),a.setHeader("Content-Length",Buffer.byteLength(s)),a.setHeader("Content-Security-Policy","default-src 'none'"),a.setHeader("X-Content-Type-Options","nosniff"),a.setHeader("Location",t),a.end(s)};tt.prototype.pipe=function(e){var a=this._root;this.res=e;var t=FC(this.path);if(t===-1)return this.error(400),e;if(~t.indexOf("\0"))return this.error(400),e;var s;if(a!==null){if(t&&(t=Ku("."+Fo+t)),Py.test(t))return ot('malicious path "%s"',t),this.error(403),e;s=t.split(Fo),t=Ku(Cy(a,t))}else{if(Py.test(t))return ot('malicious path "%s"',t),this.error(403),e;s=Ku(t).split(Fo),t=Ju(t)}if(qC(s)){var i=this._dotfiles;switch(i===void 0&&(i=s[s.length-1][0]==="."?this._hidden?"allow":"ignore":"allow"),ot('%s dotfile "%s"',i,t),i){case"allow":break;case"deny":return this.error(403),e;case"ignore":default:return this.error(404),e}}return this._index.length&&this.hasTrailingSlash()?(this.sendIndex(t),e):(this.sendFile(t),e)};tt.prototype.send=function(e,a){var t=a.size,s=this.options,i={},n=this.res,o=this.req,l=o.headers.range,c=s.start||0;if(UC(n)){this.headersAlreadySent();return}if(ot('pipe "%s"',e),this.setHeader(e,a),this.type(e),this.isConditionalGET()){if(this.isPreconditionFailure()){this.error(412);return}if(this.isCachable()&&this.isFresh()){this.notModified();return}}if(t=Math.max(0,t-c),s.end!==void 0){var u=s.end-c+1;t>u&&(t=u)}if(this._acceptRanges&&jC.test(l)){if(l=OC(t,l,{combine:!0}),this.isRangeFresh()||(ot("range stale"),l=-2),l===-1)return ot("range unsatisfiable"),n.setHeader("Content-Range",Ry("bytes",t)),this.error(416,{headers:{"Content-Range":n.getHeader("Content-Range")}});l!==-2&&l.length===1&&(ot("range %j",l),n.statusCode=206,n.setHeader("Content-Range",Ry("bytes",t,l[0])),c+=l[0].start,t=l[0].end-l[0].start+1)}for(var p in s)i[p]=s[p];if(i.start=c,i.end=Math.max(c,c+t-1),n.setHeader("Content-Length",t),o.method==="HEAD"){n.end();return}this.stream(e,i)};tt.prototype.sendFile=function(e){var a=0,t=this;ot('stat "%s"',e),Lo.stat(e,function(n,o){if(n&&n.code==="ENOENT"&&!AC(e)&&e[e.length-1]!==Fo)return s(n);if(n)return t.onStatError(n);if(o.isDirectory())return t.redirect(e);t.emit("file",e,o),t.send(e,o)});function s(i){if(t._extensions.length<=a)return i?t.onStatError(i):t.error(404);var n=e+"."+t._extensions[a++];ot('stat "%s"',n),Lo.stat(n,function(o,l){if(o)return s(o);if(l.isDirectory())return s();t.emit("file",n,l),t.send(n,l)})}};tt.prototype.sendIndex=function(e){var a=-1,t=this;function s(i){if(++a>=t._index.length)return i?t.onStatError(i):t.error(404);var n=Cy(e,t._index[a]);ot('stat "%s"',n),Lo.stat(n,function(o,l){if(o)return s(o);if(l.isDirectory())return s();t.emit("file",n,l),t.send(n,l)})}s()};tt.prototype.stream=function(e,a){var t=this,s=this.res,i=Lo.createReadStream(e,a);this.emit("stream",i),i.pipe(s);function n(){SC(i,!0)}kC(s,n),i.on("error",function(l){n(),t.onStatError(l)}),i.on("end",function(){t.emit("end")})};tt.prototype.type=function(e){var a=this.res;if(!a.getHeader("Content-Type")){var t=Qu.lookup(e);if(!t){ot("no content-type");return}var s=Qu.charsets.lookup(t);ot("content-type %s",t),a.setHeader("Content-Type",t+(s?"; charset="+s:""))}};tt.prototype.setHeader=function(e,a){var t=this.res;if(this.emit("headers",t,e,a),this._acceptRanges&&!t.getHeader("Accept-Ranges")&&(ot("accept ranges"),t.setHeader("Accept-Ranges","bytes")),this._cacheControl&&!t.getHeader("Cache-Control")){var s="public, max-age="+Math.floor(this._maxage/1e3);this._immutable&&(s+=", immutable"),ot("cache-control %s",s),t.setHeader("Cache-Control",s)}if(this._lastModified&&!t.getHeader("Last-Modified")){var i=a.mtime.toUTCString();ot("modified %s",i),t.setHeader("Last-Modified",i)}if(this._etag&&!t.getHeader("ETag")){var n=RC(a);ot("etag %s",n),t.setHeader("ETag",n)}};function DC(r){for(var e=LC(r),a=0;a1?"/"+r.substr(e):r}function qC(r){for(var e=0;e1&&a[0]===".")return!0}return!1}function Ry(r,e,a){return r+" "+(a?a.start+"-"+a.end:"*")+"/"+e}function Ay(r,e){return` +`}Pg.exports=Qk;function Qk(r,e,a){var t=a||{},s=t.env||process.env.NODE_ENV||"development",i=t.onerror;return function(n){var o,l,c;if(!n&&Eg(e)){$u("cannot 404 after headers sent");return}if(n?(c=Yk(n),c===void 0?c=tO(e):o=Xk(n),l=Jk(n,c,s)):(c=404,l="Cannot "+r.method+" "+Uk(eO(r))),$u("default %s",c),n&&i&&Zk(i,n,r,e),Eg(e)){$u("cannot %d after headers sent",c),r.socket&&r.socket.destroy();return}rO(r,e,c,o,l)}}function Xk(r){if(!(!r.headers||typeof r.headers!="object")){for(var e=Object.create(null),a=Object.keys(r.headers),t=0;t=400&&r.status<600)return r.status;if(typeof r.statusCode=="number"&&r.statusCode>=400&&r.statusCode<600)return r.statusCode}function eO(r){try{return Hk.original(r).pathname}catch{return"resource"}}function tO(r){var e=r.statusCode;return(typeof e!="number"||e<400||e>599)&&(e=500),e}function Eg(r){return typeof r.headersSent!="boolean"?!!r._header:r.headersSent}function rO(r,e,a,t,s){function i(){var n=Kk(s);if(e.statusCode=a,r.httpVersionMajor<2&&(e.statusMessage=Sg.message[a]),e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Range"),aO(e,t),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Content-Type","text/html; charset=utf-8"),e.setHeader("Content-Length",Buffer.byteLength(n,"utf8")),r.method==="HEAD"){e.end();return}e.end(n,"utf8")}if(Wk(r)){i();return}Bk(r),wg(r,i),r.resume()}function aO(r,e){if(e)for(var a=Object.keys(e),t=0;t{"use strict";Og.exports=sO;function Tg(r,e,a){for(var t=0;t0&&Array.isArray(s)?Tg(s,e,a-1):e.push(s)}return e}function kg(r,e){for(var a=0;a{Ag.exports=Ig;var Cg=/\\.|\((?:\?<(.*?)>)?(?!\?)/g;function Ig(r,e,a){a=a||{},e=e||[];var t=a.strict,s=a.end!==!1,i=a.sensitive?"":"i",n=a.lookahead!==!1,o=0,l=e.length,c=0,u=0,p=0,m="",f;if(r instanceof RegExp){for(;f=Cg.exec(r.source);)f[0][0]!=="\\"&&e.push({name:f[1]||u++,optional:!1,offset:f.index});return r}if(Array.isArray(r))return r=r.map(function(h){return Ig(h,e,a).source}),new RegExp(r.join("|"),i);if(typeof r!="string")throw new TypeError("path must be a string, array of strings, or regular expression");for(r=r.replace(/\\.|(\/)?(\.)?:(\w+)(\(.*?\))?(\*)?(\?)?|[.*]|\/\(/g,function(h,d,v,x,b,E,k,O){if(h[0]==="\\")return m+=h,p+=2,h;if(h===".")return m+="\\.",o+=1,p+=1,"\\.";if(d||v?m="":m+=r.slice(p,O),p=O+h.length,h==="*")return o+=3,"(.*)";if(h==="/(")return m+="/",o+=2,"/(?:";d=d||"",v=v?"\\.":"",k=k||"",b=b?b.replace(/\\.|\*/,function(I){return I==="*"?"(.*)":I}):m?"((?:(?!/|"+m+").)+?)":"([^/"+v+"]+?)",e.push({name:x,optional:!!k,offset:O+o});var P="(?:"+v+d+b+(E?"((?:[/"+v+"].+?)?)":"")+")"+k;return o+=P.length-h.length,P});f=Cg.exec(r);)f[0][0]!=="\\"&&((l+c===e.length||e[l+c].offset>f.index)&&e.splice(l+c,0,{name:u++,optional:!1,offset:f.index}),c++);return r+=t?"":r[r.length-1]==="/"?"?":"/?",s?r+="$":r[r.length-1]!=="/"&&(r+=n?"(?=/|$)":"(?:/|$)"),new RegExp("^"+r,i)}});var qu=M((SM,Dg)=>{"use strict";var nO=jg(),iO=tr()("express:router:layer"),oO=Object.prototype.hasOwnProperty;Dg.exports=en;function en(r,e,a){if(!(this instanceof en))return new en(r,e,a);iO("new %o",r);var t=e||{};this.handle=a,this.name=a.name||"",this.params=void 0,this.path=void 0,this.regexp=nO(r,this.keys=[],t),this.regexp.fast_star=r==="*",this.regexp.fast_slash=r==="/"&&t.end===!1}en.prototype.handle_error=function(e,a,t,s){var i=this.handle;if(i.length!==4)return s(e);try{i(e,a,t,s)}catch(n){s(n)}};en.prototype.handle_request=function(e,a,t){var s=this.handle;if(s.length>3)return t();try{s(e,a,t)}catch(i){t(i)}};en.prototype.match=function(e){var a;if(e!=null){if(this.regexp.fast_slash)return this.params={},this.path="",!0;if(this.regexp.fast_star)return this.params={0:Ng(e)},this.path=e,!0;a=this.regexp.exec(e)}if(!a)return this.params=void 0,this.path=void 0,!1;this.params={},this.path=a[0];for(var t=this.keys,s=this.params,i=1;i{"use strict";var $g=require("http");qg.exports=cO()||lO();function cO(){return $g.METHODS&&$g.METHODS.map(function(e){return e.toLowerCase()})}function lO(){return["get","post","put","head","delete","options","trace","copy","lock","mkcol","move","purge","propfind","proppatch","unlock","report","mkactivity","checkout","merge","m-search","notify","subscribe","unsubscribe","patch","search","connect"]}});var Mu=M((RM,Hg)=>{"use strict";var Mg=tr()("express:router:route"),Fg=fi(),Lg=qu(),uO=Ao(),Ug=Array.prototype.slice,zg=Object.prototype.toString;Hg.exports=tn;function tn(r){this.path=r,this.stack=[],Mg("new %o",r),this.methods={}}tn.prototype._handles_method=function(e){if(this.methods._all)return!0;var a=typeof e=="string"?e.toLowerCase():e;return a==="head"&&!this.methods.head&&(a="get"),!!this.methods[a]};tn.prototype._options=function(){var e=Object.keys(this.methods);this.methods.get&&!this.methods.head&&e.push("head");for(var a=0;a100)return setImmediate(l,c);var u=i[s++];if(!u)return t(c);u.method&&u.method!==o?l(c):c?u.handle_error(c,e,a,l):u.handle_request(e,a,l),n=0}};tn.prototype.all=function(){for(var e=Fg(Ug.call(arguments)),a=0;a{Bg=Vg.exports=function(r,e){if(r&&e)for(var a in e)r[a]=e[a];return r}});var Lu=M((TM,Kg)=>{"use strict";var pO=Mu(),Zg=qu(),dO=Ao(),Fu=mi(),jo=tr()("express:router"),Gg=Or()("express"),fO=fi(),mO=Ys(),hO=Un(),vO=/^\[object (\S+)\]$/,Wg=Array.prototype.slice,gO=Object.prototype.toString,Va=Kg.exports=function(r){var e=r||{};function a(t,s,i){a.handle(t,s,i)}return hO(a,Va),a.params={},a._params=[],a.caseSensitive=e.caseSensitive,a.mergeParams=e.mergeParams,a.strict=e.strict,a.stack=[],a};Va.param=function(e,a){if(typeof e=="function"){Gg("router.param(fn): Refactor to use path params"),this._params.push(e);return}var t=this._params,s=t.length,i;e[0]===":"&&(Gg("router.param("+JSON.stringify(e)+", fn): Use router.param("+JSON.stringify(e.slice(1))+", fn) instead"),e=e.slice(1));for(var n=0;n=m.length){setImmediate(d,E);return}if(++c>100)return setImmediate(v,b);var k=bO(e);if(k==null)return d(E);for(var O,P,I;P!==!0&&i=o.length)return i();if(u=0,p=o[l++],c=p.name,m=t.params[c],f=n[c],h=a[c],m===void 0||!f)return d();if(h&&(h.match===m||h.error&&h.error!=="route"))return t.params[c]=h.value,d(h.error);a[c]=h={error:null,match:m,value:m},v()}function v(x){var b=f[u++];if(h.value=t.params[p.name],x){h.error=x,d(x);return}if(!b)return d();try{b(t,s,v,m,p.name)}catch(E){v(E)}}d()};Va.use=function(e){var a=0,t="/";if(typeof e!="function"){for(var s=e;Array.isArray(s)&&s.length!==0;)s=s[0];typeof s!="function"&&(a=1,t=e)}var i=fO(Wg.call(arguments,a));if(i.length===0)throw new TypeError("Router.use() requires a middleware function");for(var n=0;n");var o=new Zg(t,{sensitive:this.caseSensitive,strict:!1,end:!1},e);o.route=void 0,this.stack.push(o)}return this};Va.route=function(e){var a=new pO(e),t=new Zg(e,{sensitive:this.caseSensitive,strict:this.strict,end:!0},a.dispatch.bind(a));return t.route=a,this.stack.push(t),a};dO.concat("all").forEach(function(r){Va[r]=function(e){var a=this.route(e);return a[r].apply(a,Wg.call(arguments,1)),this}});function yO(r,e){for(var a=0;a=0;t--)r[t+s]=r[t],t{"use strict";var Qg=Un();Xg.init=function(r){return function(a,t,s){r.enabled("x-powered-by")&&t.setHeader("X-Powered-By","Express"),a.res=t,t.req=a,a.next=s,Qg(a,r.request),Qg(t,r.response),t.locals=t.locals||Object.create(null),s()}}});var Uu=M((OM,Yg)=>{"use strict";var TO=mi(),kO=Ys(),OO=To();Yg.exports=function(e){var a=TO({},e),t=OO.parse;return typeof e=="function"&&(t=e,a=void 0),a!==void 0&&a.allowPrototypes===void 0&&(a.allowPrototypes=!0),function(i,n,o){if(!i.query){var l=kO(i).query;i.query=t(l,a)}o()}}});var sy=M((CM,ay)=>{"use strict";var No=tr()("express:view"),hi=require("path"),CO=require("fs"),IO=hi.dirname,ry=hi.basename,AO=hi.extname,ey=hi.join,jO=hi.resolve;ay.exports=Do;function Do(r,e){var a=e||{};if(this.defaultEngine=a.defaultEngine,this.ext=AO(r),this.name=r,this.root=a.root,!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");var t=r;if(this.ext||(this.ext=this.defaultEngine[0]!=="."?"."+this.defaultEngine:this.defaultEngine,t+=this.ext),!a.engines[this.ext]){var s=this.ext.slice(1);No('require "%s"',s);var i=require(s).__express;if(typeof i!="function")throw new Error('Module "'+s+'" does not provide a view engine.');a.engines[this.ext]=i}this.engine=a.engines[this.ext],this.path=this.lookup(t)}Do.prototype.lookup=function(e){var a,t=[].concat(this.root);No('lookup "%s"',e);for(var s=0;s{var $o=require("buffer"),Dr=$o.Buffer;function ny(r,e){for(var a in r)e[a]=r[a]}Dr.from&&Dr.alloc&&Dr.allocUnsafe&&Dr.allocUnsafeSlow?iy.exports=$o:(ny($o,zu),zu.Buffer=Ga);function Ga(r,e,a){return Dr(r,e,a)}Ga.prototype=Object.create(Dr.prototype);ny(Dr,Ga);Ga.from=function(r,e,a){if(typeof r=="number")throw new TypeError("Argument must not be a number");return Dr(r,e,a)};Ga.alloc=function(r,e,a){if(typeof r!="number")throw new TypeError("Argument must be a number");var t=Dr(r);return e!==void 0?typeof a=="string"?t.fill(e,a):t.fill(e):t.fill(0),t};Ga.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return Dr(r)};Ga.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return $o.SlowBuffer(r)}});var Bu=M((IM,Hu)=>{"use strict";Hu.exports=BO;Hu.exports.parse=WO;var oy=require("path").basename,NO=qo().Buffer,DO=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,$O=/%[0-9A-Fa-f]{2}/,qO=/%([0-9A-Fa-f]{2})/g,ly=/[^\x20-\x7e\xa0-\xff]/g,MO=/\\([\u0000-\u007f])/g,FO=/([\\"])/g,cy=/;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g,LO=/^[\x20-\x7e\x80-\xff]+$/,UO=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,zO=/^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/,HO=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function BO(r,e){var a=e||{},t=a.type||"attachment",s=VO(r,a.fallback);return GO(new py(t,s))}function VO(r,e){if(r!==void 0){var a={};if(typeof r!="string")throw new TypeError("filename must be a string");if(e===void 0&&(e=!0),typeof e!="string"&&typeof e!="boolean")throw new TypeError("fallback must be a string or boolean");if(typeof e=="string"&&ly.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var t=oy(r),s=LO.test(t),i=typeof e!="string"?e&&uy(t):oy(e),n=typeof i=="string"&&i!==t;return(n||!s||$O.test(t))&&(a["filename*"]=t),(s||n)&&(a.filename=n?i:t),a}}function GO(r){var e=r.parameters,a=r.type;if(!a||typeof a!="string"||!UO.test(a))throw new TypeError("invalid type");var t=String(a).toLowerCase();if(e&&typeof e=="object")for(var s,i=Object.keys(e).sort(),n=0;n{"use strict";dy.exports=rC;var YO=/(?:[^\x21\x25\x26-\x3B\x3D\x3F-\x5B\x5D\x5F\x61-\x7A\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g,eC=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g,tC="$1\uFFFD$2";function rC(r){return String(r).replace(eC,tC).replace(YO,encodeURI)}});var Vu=M((jM,vy)=>{"use strict";vy.exports=nC;var aC=require("crypto"),my=require("fs").Stats,hy=Object.prototype.toString;function sC(r){if(r.length===0)return'"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';var e=aC.createHash("sha1").update(r,"utf8").digest("base64").substring(0,27),a=typeof r=="string"?Buffer.byteLength(r,"utf8"):r.length;return'"'+a.toString(16)+"-"+e+'"'}function nC(r,e){if(r==null)throw new TypeError("argument entity is required");var a=iC(r),t=e&&typeof e.weak=="boolean"?e.weak:a;if(!a&&typeof r!="string"&&!Buffer.isBuffer(r))throw new TypeError("argument entity must be string, Buffer, or fs.Stats");var s=a?oC(r):sC(r);return t?"W/"+s:s}function iC(r){return typeof my=="function"&&r instanceof my?!0:r&&typeof r=="object"&&"ctime"in r&&hy.call(r.ctime)==="[object Date]"&&"mtime"in r&&hy.call(r.mtime)==="[object Date]"&&"ino"in r&&typeof r.ino=="number"&&"size"in r&&typeof r.size=="number"}function oC(r){var e=r.mtime.getTime().toString(16),a=r.size.toString(16);return'"'+a+"-"+e+'"'}});var Gu=M((NM,yy)=>{"use strict";var cC=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;yy.exports=lC;function lC(r,e){var a=r["if-modified-since"],t=r["if-none-match"];if(!a&&!t)return!1;var s=r["cache-control"];if(s&&cC.test(s))return!1;if(t&&t!=="*"){var i=e.etag;if(!i)return!1;for(var n=!0,o=uC(t),l=0;l{pC.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/bdoc":["bdoc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":[],"application/font-woff2":[],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":[],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":[],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":[],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":[],"application/x-msdownload":["com","bat"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":[],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":[],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp3":[],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/wav":["wav"],"audio/wave":[],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":[],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":[],"audio/x-wav":[],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/apng":["apng"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":[],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":[],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/rtf":[],"text/sgml":["sgml","sgm"],"text/slim":["slim","slm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":[],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/xml":[],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}});var _y=M((qM,xy)=>{var $M=require("path"),dC=require("fs");function an(){this.types=Object.create(null),this.extensions=Object.create(null)}an.prototype.define=function(r){for(var e in r){for(var a=r[e],t=0;t{var sn=1e3,nn=sn*60,on=nn*60,Za=on*24,fC=Za*7,mC=Za*365.25;Ey.exports=function(r,e){e=e||{};var a=typeof r;if(a==="string"&&r.length>0)return hC(r);if(a==="number"&&isFinite(r))return e.long?gC(r):vC(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function hC(r){if(r=String(r),!(r.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(r);if(e){var a=parseFloat(e[1]),t=(e[2]||"ms").toLowerCase();switch(t){case"years":case"year":case"yrs":case"yr":case"y":return a*mC;case"weeks":case"week":case"w":return a*fC;case"days":case"day":case"d":return a*Za;case"hours":case"hour":case"hrs":case"hr":case"h":return a*on;case"minutes":case"minute":case"mins":case"min":case"m":return a*nn;case"seconds":case"second":case"secs":case"sec":case"s":return a*sn;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}}}function vC(r){var e=Math.abs(r);return e>=Za?Math.round(r/Za)+"d":e>=on?Math.round(r/on)+"h":e>=nn?Math.round(r/nn)+"m":e>=sn?Math.round(r/sn)+"s":r+"ms"}function gC(r){var e=Math.abs(r);return e>=Za?Mo(r,e,Za,"day"):e>=on?Mo(r,e,on,"hour"):e>=nn?Mo(r,e,nn,"minute"):e>=sn?Mo(r,e,sn,"second"):r+" ms"}function Mo(r,e,a,t){var s=e>=a*1.5;return Math.round(r/a)+" "+t+(s?"s":"")}});var Zu=M((FM,Sy)=>{"use strict";Sy.exports=yC;function yC(r,e,a){if(typeof e!="string")throw new TypeError("argument str must be a string");var t=e.indexOf("=");if(t===-1)return-2;var s=e.slice(t+1).split(","),i=[];i.type=e.slice(0,t);for(var n=0;nr-1&&(c=r-1),!(isNaN(l)||isNaN(c)||l>c||l<0)&&i.push({start:l,end:c})}return i.length<1?-1:a&&a.combine?bC(i):i}function bC(r){for(var e=r.map(xC).sort(wC),a=0,t=1;ti.end+1?e[++a]=s:s.end>i.end&&(i.end=s.end,i.index=Math.min(i.index,s.index))}e.length=a+1;var n=e.sort(EC).map(_C);return n.type=r.type,n}function xC(r,e){return{start:r.start,end:r.end,index:e}}function _C(r){return{start:r.start,end:r.end}}function EC(r,e){return r.index-e.index}function wC(r,e){return r.start-e.start}});var zo=M((LM,Yu)=>{"use strict";var Wu=Da(),ot=tr()("send"),Wa=Or()("send"),SC=Tl(),PC=fy(),Ty=di(),RC=Vu(),TC=Gu(),Lo=require("fs"),Qu=_y(),ky=wy(),kC=Xn(),OC=Zu(),vi=require("path"),CC=zn(),Oy=require("stream"),IC=require("util"),AC=vi.extname,Cy=vi.join,Ku=vi.normalize,Ju=vi.resolve,Fo=vi.sep,jC=/^ *bytes=/,Iy=3600*24*365*1e3,Py=/(?:^|[\\/])\.\.(?:[\\/]|$)/;Yu.exports=NC;Yu.exports.mime=Qu;function NC(r,e,a){return new tt(r,e,a)}function tt(r,e,a){Oy.call(this);var t=a||{};if(this.options=t,this.path=e,this.req=r,this._acceptRanges=t.acceptRanges!==void 0?!!t.acceptRanges:!0,this._cacheControl=t.cacheControl!==void 0?!!t.cacheControl:!0,this._etag=t.etag!==void 0?!!t.etag:!0,this._dotfiles=t.dotfiles!==void 0?t.dotfiles:"ignore",this._dotfiles!=="ignore"&&this._dotfiles!=="allow"&&this._dotfiles!=="deny")throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');this._hidden=!!t.hidden,t.hidden!==void 0&&Wa("hidden: use dotfiles: '"+(this._hidden?"allow":"ignore")+"' instead"),t.dotfiles===void 0&&(this._dotfiles=void 0),this._extensions=t.extensions!==void 0?Xu(t.extensions,"extensions option"):[],this._immutable=t.immutable!==void 0?!!t.immutable:!1,this._index=t.index!==void 0?Xu(t.index,"index option"):["index.html"],this._lastModified=t.lastModified!==void 0?!!t.lastModified:!0,this._maxage=t.maxAge||t.maxage,this._maxage=typeof this._maxage=="string"?ky(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),Iy),this._root=t.root?Ju(t.root):null,!this._root&&t.from&&this.from(t.from)}IC.inherits(tt,Oy);tt.prototype.etag=Wa.function(function(e){return this._etag=!!e,ot("etag %s",this._etag),this},"send.etag: pass etag as option");tt.prototype.hidden=Wa.function(function(e){return this._hidden=!!e,this._dotfiles=void 0,ot("hidden %s",this._hidden),this},"send.hidden: use dotfiles option");tt.prototype.index=Wa.function(function(e){var a=e?Xu(e,"paths argument"):[];return ot("index %o",e),this._index=a,this},"send.index: pass index as option");tt.prototype.root=function(e){return this._root=Ju(String(e)),ot("root %s",this._root),this};tt.prototype.from=Wa.function(tt.prototype.root,"send.from: pass root as option");tt.prototype.root=Wa.function(tt.prototype.root,"send.root: pass root as option");tt.prototype.maxage=Wa.function(function(e){return this._maxage=typeof e=="string"?ky(e):Number(e),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),Iy),ot("max-age %d",this._maxage),this},"send.maxage: pass maxAge as option");tt.prototype.error=function(e,a){if(jy(this,"error"))return this.emit("error",MC(e,a));var t=this.res,s=CC.message[e]||String(e),i=Ay("Error",Ty(s));DC(t),a&&a.headers&&HC(t,a.headers),t.statusCode=e,t.setHeader("Content-Type","text/html; charset=UTF-8"),t.setHeader("Content-Length",Buffer.byteLength(i)),t.setHeader("Content-Security-Policy","default-src 'none'"),t.setHeader("X-Content-Type-Options","nosniff"),t.end(i)};tt.prototype.hasTrailingSlash=function(){return this.path[this.path.length-1]==="/"};tt.prototype.isConditionalGET=function(){return this.req.headers["if-match"]||this.req.headers["if-unmodified-since"]||this.req.headers["if-none-match"]||this.req.headers["if-modified-since"]};tt.prototype.isPreconditionFailure=function(){var e=this.req,a=this.res,t=e.headers["if-match"];if(t){var s=a.getHeader("ETag");return!s||t!=="*"&&zC(t).every(function(o){return o!==s&&o!=="W/"+s&&"W/"+o!==s})}var i=Uo(e.headers["if-unmodified-since"]);if(!isNaN(i)){var n=Uo(a.getHeader("Last-Modified"));return isNaN(n)||n>i}return!1};tt.prototype.removeContentHeaderFields=function(){var e=this.res;e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Length"),e.removeHeader("Content-Range"),e.removeHeader("Content-Type")};tt.prototype.notModified=function(){var e=this.res;ot("not modified"),this.removeContentHeaderFields(),e.statusCode=304,e.end()};tt.prototype.headersAlreadySent=function(){var e=new Error("Can't set headers after they are sent.");ot("headers already sent"),this.error(500,e)};tt.prototype.isCachable=function(){var e=this.res.statusCode;return e>=200&&e<300||e===304};tt.prototype.onStatError=function(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e);break}};tt.prototype.isFresh=function(){return TC(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})};tt.prototype.isRangeFresh=function(){var e=this.req.headers["if-range"];if(!e)return!0;if(e.indexOf('"')!==-1){var a=this.res.getHeader("ETag");return!!(a&&e.indexOf(a)!==-1)}var t=this.res.getHeader("Last-Modified");return Uo(t)<=Uo(e)};tt.prototype.redirect=function(e){var a=this.res;if(jy(this,"directory")){this.emit("directory",a,e);return}if(this.hasTrailingSlash()){this.error(403);return}var t=PC($C(this.path+"/")),s=Ay("Redirecting","Redirecting to "+Ty(t));a.statusCode=301,a.setHeader("Content-Type","text/html; charset=UTF-8"),a.setHeader("Content-Length",Buffer.byteLength(s)),a.setHeader("Content-Security-Policy","default-src 'none'"),a.setHeader("X-Content-Type-Options","nosniff"),a.setHeader("Location",t),a.end(s)};tt.prototype.pipe=function(e){var a=this._root;this.res=e;var t=FC(this.path);if(t===-1)return this.error(400),e;if(~t.indexOf("\0"))return this.error(400),e;var s;if(a!==null){if(t&&(t=Ku("."+Fo+t)),Py.test(t))return ot('malicious path "%s"',t),this.error(403),e;s=t.split(Fo),t=Ku(Cy(a,t))}else{if(Py.test(t))return ot('malicious path "%s"',t),this.error(403),e;s=Ku(t).split(Fo),t=Ju(t)}if(qC(s)){var i=this._dotfiles;switch(i===void 0&&(i=s[s.length-1][0]==="."?this._hidden?"allow":"ignore":"allow"),ot('%s dotfile "%s"',i,t),i){case"allow":break;case"deny":return this.error(403),e;case"ignore":default:return this.error(404),e}}return this._index.length&&this.hasTrailingSlash()?(this.sendIndex(t),e):(this.sendFile(t),e)};tt.prototype.send=function(e,a){var t=a.size,s=this.options,i={},n=this.res,o=this.req,l=o.headers.range,c=s.start||0;if(UC(n)){this.headersAlreadySent();return}if(ot('pipe "%s"',e),this.setHeader(e,a),this.type(e),this.isConditionalGET()){if(this.isPreconditionFailure()){this.error(412);return}if(this.isCachable()&&this.isFresh()){this.notModified();return}}if(t=Math.max(0,t-c),s.end!==void 0){var u=s.end-c+1;t>u&&(t=u)}if(this._acceptRanges&&jC.test(l)){if(l=OC(t,l,{combine:!0}),this.isRangeFresh()||(ot("range stale"),l=-2),l===-1)return ot("range unsatisfiable"),n.setHeader("Content-Range",Ry("bytes",t)),this.error(416,{headers:{"Content-Range":n.getHeader("Content-Range")}});l!==-2&&l.length===1&&(ot("range %j",l),n.statusCode=206,n.setHeader("Content-Range",Ry("bytes",t,l[0])),c+=l[0].start,t=l[0].end-l[0].start+1)}for(var p in s)i[p]=s[p];if(i.start=c,i.end=Math.max(c,c+t-1),n.setHeader("Content-Length",t),o.method==="HEAD"){n.end();return}this.stream(e,i)};tt.prototype.sendFile=function(e){var a=0,t=this;ot('stat "%s"',e),Lo.stat(e,function(n,o){if(n&&n.code==="ENOENT"&&!AC(e)&&e[e.length-1]!==Fo)return s(n);if(n)return t.onStatError(n);if(o.isDirectory())return t.redirect(e);t.emit("file",e,o),t.send(e,o)});function s(i){if(t._extensions.length<=a)return i?t.onStatError(i):t.error(404);var n=e+"."+t._extensions[a++];ot('stat "%s"',n),Lo.stat(n,function(o,l){if(o)return s(o);if(l.isDirectory())return s();t.emit("file",n,l),t.send(n,l)})}};tt.prototype.sendIndex=function(e){var a=-1,t=this;function s(i){if(++a>=t._index.length)return i?t.onStatError(i):t.error(404);var n=Cy(e,t._index[a]);ot('stat "%s"',n),Lo.stat(n,function(o,l){if(o)return s(o);if(l.isDirectory())return s();t.emit("file",n,l),t.send(n,l)})}s()};tt.prototype.stream=function(e,a){var t=this,s=this.res,i=Lo.createReadStream(e,a);this.emit("stream",i),i.pipe(s);function n(){SC(i,!0)}kC(s,n),i.on("error",function(l){n(),t.onStatError(l)}),i.on("end",function(){t.emit("end")})};tt.prototype.type=function(e){var a=this.res;if(!a.getHeader("Content-Type")){var t=Qu.lookup(e);if(!t){ot("no content-type");return}var s=Qu.charsets.lookup(t);ot("content-type %s",t),a.setHeader("Content-Type",t+(s?"; charset="+s:""))}};tt.prototype.setHeader=function(e,a){var t=this.res;if(this.emit("headers",t,e,a),this._acceptRanges&&!t.getHeader("Accept-Ranges")&&(ot("accept ranges"),t.setHeader("Accept-Ranges","bytes")),this._cacheControl&&!t.getHeader("Cache-Control")){var s="public, max-age="+Math.floor(this._maxage/1e3);this._immutable&&(s+=", immutable"),ot("cache-control %s",s),t.setHeader("Cache-Control",s)}if(this._lastModified&&!t.getHeader("Last-Modified")){var i=a.mtime.toUTCString();ot("modified %s",i),t.setHeader("Last-Modified",i)}if(this._etag&&!t.getHeader("ETag")){var n=RC(a);ot("etag %s",n),t.setHeader("ETag",n)}};function DC(r){for(var e=LC(r),a=0;a1?"/"+r.substr(e):r}function qC(r){for(var e=0;e1&&a[0]===".")return!0}return!1}function Ry(r,e,a){return r+" "+(a?a.start+"-"+a.end:"*")+"/"+e}function Ay(r,e){return` @@ -38,8 +38,8 @@ return fn.apply(this, arguments)
`+e+`
-`}function MC(r,e){return e?e instanceof Error?Wu(r,e,{expose:!1}):Wu(r,e):Wu(r)}function FC(r){try{return decodeURIComponent(r)}catch{return-1}}function LC(r){return typeof r.getHeaderNames!="function"?Object.keys(r._headers||{}):r.getHeaderNames()}function jy(r,e){var a=typeof r.listenerCount!="function"?r.listeners(e).length:r.listenerCount(e);return a>0}function UC(r){return typeof r.headersSent!="boolean"?!!r._header:r.headersSent}function Xu(r,e){for(var a=[].concat(r||[]),t=0;t{"use strict";Ny.exports=BC;function BC(r){if(!r)throw new TypeError("argument req is required");var e=GC(r.headers["x-forwarded-for"]||""),a=VC(r),t=[a].concat(e);return t}function VC(r){return r.socket?r.socket.remoteAddress:r.connection.remoteAddress}function GC(r){for(var e=r.length,a=[],t=r.length,s=r.length-1;s>=0;s--)switch(r.charCodeAt(s)){case 32:t===e&&(t=e=s);break;case 44:t!==e&&a.push(r.substring(t,e)),t=e=s;break;default:t=s;break}return t!==e&&a.push(r.substring(t,e)),a}});var qy=M(($y,gi)=>{(function(){var r,e,a,t,s,i,n,o,l;e={},o=this,typeof gi<"u"&&gi!==null&&gi.exports?gi.exports=e:o.ipaddr=e,n=function(c,u,p,m){var f,h;if(c.length!==u.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(f=0;m>0;){if(h=p-m,h<0&&(h=0),c[f]>>h!==u[f]>>h)return!1;m-=p,f+=1}return!0},e.subnetMatch=function(c,u,p){var m,f,h,d,v;p==null&&(p="unicast");for(h in u)for(d=u[h],d[0]&&!(d[0]instanceof Array)&&(d=[d]),m=0,f=d.length;m=0;p=m+=-1)if(f=this.octets[p],f in v){if(d=v[f],h&&d!==0)return null;d!==8&&(h=!0),u+=d}else return null;return 32-u},c})(),a="(0?\\d+|0x[a-f0-9]+)",t={fourOctet:new RegExp("^"+a+"\\."+a+"\\."+a+"\\."+a+"$","i"),longValue:new RegExp("^"+a+"$","i")},e.IPv4.parser=function(c){var u,p,m,f,h;if(p=function(d){return d[0]==="0"&&d[1]!=="x"?parseInt(d,8):parseInt(d)},u=c.match(t.fourOctet))return(function(){var d,v,g,b;for(g=u.slice(1,6),b=[],d=0,v=g.length;d4294967295||h<0)throw new Error("ipaddr: address outside defined range");return(function(){var d,v;for(v=[],f=d=0;d<=24;f=d+=8)v.push(h>>f&255);return v})().reverse()}else return null},e.IPv6=(function(){function c(u,p){var m,f,h,d,v,g;if(u.length===16)for(this.parts=[],m=f=0;f<=14;m=f+=2)this.parts.push(u[m]<<8|u[m+1]);else if(u.length===8)this.parts=u;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(g=this.parts,h=0,d=g.length;hp&&(u=m.index,p=m[0].length);return p<0?h:h.substring(0,u)+"::"+h.substring(u+p)},c.prototype.toByteArray=function(){var u,p,m,f,h;for(u=[],h=this.parts,p=0,m=h.length;p>8),u.push(f&255);return u},c.prototype.toNormalizedString=function(){var u,p,m;return u=(function(){var f,h,d,v;for(d=this.parts,v=[],f=0,h=d.length;f>8,u&255,p>>8,p&255])},c.prototype.prefixLengthFromSubnetMask=function(){var u,p,m,f,h,d,v;for(v={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},u=0,h=!1,p=m=7;m>=0;p=m+=-1)if(f=this.parts[p],f in v){if(d=v[f],h&&d!==0)return null;d!==16&&(h=!0),u+=d}else return null;return 128-u},c})(),s="(?:[0-9a-f]+::?)+",l="%[0-9a-z]{1,}",i={zoneIndex:new RegExp(l,"i"),native:new RegExp("^(::)?("+s+")?([0-9a-f]+)?(::)?("+l+")?$","i"),transitional:new RegExp("^((?:"+s+")|(?:::)(?:"+s+")?)"+(a+"\\."+a+"\\."+a+"\\."+a)+("("+l+")?$"),"i")},r=function(c,u){var p,m,f,h,d,v;if(c.indexOf("::")!==c.lastIndexOf("::"))return null;for(v=(c.match(i.zoneIndex)||[])[0],v&&(v=v.substring(1),c=c.replace(/%.+$/,"")),p=0,m=-1;(m=c.indexOf(":",m+1))>=0;)p++;if(c.substr(0,2)==="::"&&p--,c.substr(-2,2)==="::"&&p--,p>u)return null;for(d=u-p,h=":";d--;)h+="0:";return c=c.replace("::",h),c[0]===":"&&(c=c.slice(1)),c[c.length-1]===":"&&(c=c.slice(0,-1)),u=(function(){var g,b,E,k;for(E=c.split(":"),k=[],g=0,b=E.length;g=0&&u<=32))return m=[this.parse(p[1]),u],Object.defineProperty(m,"toString",{value:function(){return this.join("/")}}),m;throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},e.IPv4.subnetMaskFromPrefixLength=function(c){var u,p,m;if(c=parseInt(c),c<0||c>32)throw new Error("ipaddr: invalid IPv4 prefix length");for(m=[0,0,0,0],p=0,u=Math.floor(c/8);p=0&&u<=128))return m=[this.parse(p[1]),u],Object.defineProperty(m,"toString",{value:function(){return this.join("/")}}),m;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},e.isValid=function(c){return e.IPv6.isValid(c)||e.IPv4.isValid(c)},e.parse=function(c){if(e.IPv6.isValid(c))return e.IPv6.parse(c);if(e.IPv4.isValid(c))return e.IPv4.parse(c);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},e.parseCIDR=function(c){var u;try{return e.IPv6.parseCIDR(c)}catch(p){u=p;try{return e.IPv4.parseCIDR(c)}catch(m){throw u=m,new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},e.fromByteArray=function(c){var u;if(u=c.length,u===4)return new e.IPv4(c);if(u===16)return new e.IPv6(c);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},e.process=function(c){var u;return u=this.parse(c),u.kind()==="ipv6"&&u.isIPv4MappedAddress()?u.toIPv4Address():u}}).call($y)});var ep=M((zM,Vo)=>{"use strict";Vo.exports=YC;Vo.exports.all=Ly;Vo.exports.compile=Uy;var ZC=Dy(),Fy=qy(),WC=/^[0-9]+$/,Ho=Fy.isValid,Bo=Fy.parse,My={linklocal:["169.254.0.0/16","fe80::/10"],loopback:["127.0.0.1/8","::1/128"],uniquelocal:["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","fc00::/7"]};function Ly(r,e){var a=ZC(r);if(!e)return a;typeof e!="function"&&(e=Uy(e));for(var t=0;ts)throw new TypeError("invalid range on address: "+r);return[t,i]}function JC(r){var e=Bo(r),a=e.kind();return a==="ipv4"?e.prefixLengthFromSubnetMask():null}function YC(r,e){if(!r)throw new TypeError("req argument is required");if(!e)throw new TypeError("trust argument is required");var a=Ly(r,e),t=a[a.length-1];return t}function e4(){return!1}function t4(r){return function(a){if(!Ho(a))return!1;for(var t=Bo(a),s,i=t.kind(),n=0;n{"use strict";var zy=qo().Buffer,a4=Bu(),Hy=Ln(),By=Or()("express"),s4=fi(),n4=zo().mime,i4=Vu(),o4=ep(),c4=To(),l4=require("querystring");kt.etag=Vy({weak:!1});kt.wetag=Vy({weak:!0});kt.isAbsolute=function(r){if(r[0]==="/"||r[1]===":"&&(r[2]==="\\"||r[2]==="/")||r.substring(0,2)==="\\\\")return!0};kt.flatten=By.function(s4,"utils.flatten: use array-flatten npm module instead");kt.normalizeType=function(r){return~r.indexOf("/")?u4(r):{value:n4.lookup(r),params:{}}};kt.normalizeTypes=function(r){for(var e=[],a=0;a{"use strict";var f4=Rg(),m4=Lu(),rp=Ao(),h4=Jg(),v4=Uu(),Go=tr()("express:application"),g4=sy(),y4=require("http"),b4=xa().compileETag,x4=xa().compileQueryParser,_4=xa().compileTrust,E4=Or()("express"),w4=fi(),tp=mi(),S4=require("path").resolve,cn=Un(),P4=Object.prototype.hasOwnProperty,sp=Array.prototype.slice,mt=Gy=Zy.exports={},ap="@@symbol:trust_proxy_default";mt.init=function(){this.cache={},this.engines={},this.settings={},this.defaultConfiguration()};mt.defaultConfiguration=function(){var e=process.env.NODE_ENV||"development";this.enable("x-powered-by"),this.set("etag","weak"),this.set("env",e),this.set("query parser","extended"),this.set("subdomain offset",2),this.set("trust proxy",!1),Object.defineProperty(this.settings,ap,{configurable:!0,value:!0}),Go("booting in %s mode",e),this.on("mount",function(t){this.settings[ap]===!0&&typeof t.settings["trust proxy fn"]=="function"&&(delete this.settings["trust proxy"],delete this.settings["trust proxy fn"]),cn(this.request,t.request),cn(this.response,t.response),cn(this.engines,t.engines),cn(this.settings,t.settings)}),this.locals=Object.create(null),this.mountpath="/",this.locals.settings=this.settings,this.set("view",g4),this.set("views",S4("views")),this.set("jsonp callback name","callback"),e==="production"&&this.enable("view cache"),Object.defineProperty(this,"router",{get:function(){throw new Error(`'app.router' is deprecated! -Please see the 3.x to 4.x migration guide for details on how to update your app.`)}})};mt.lazyrouter=function(){this._router||(this._router=new m4({caseSensitive:this.enabled("case sensitive routing"),strict:this.enabled("strict routing")}),this._router.use(v4(this.get("query parser fn"))),this._router.use(h4.init(this)))};mt.handle=function(e,a,t){var s=this._router,i=t||f4(e,a,{env:this.get("env"),onerror:R4.bind(this)});if(!s){Go("no routes defined on app"),i();return}s.handle(e,a,i)};mt.use=function(e){var a=0,t="/";if(typeof e!="function"){for(var s=e;Array.isArray(s)&&s.length!==0;)s=s[0];typeof s!="function"&&(a=1,t=e)}var i=w4(sp.call(arguments,a));if(i.length===0)throw new TypeError("app.use() requires a middleware function");this.lazyrouter();var n=this._router;return i.forEach(function(o){if(!o||!o.handle||!o.set)return n.use(t,o);Go(".use app under %s",t),o.mountpath=t,o.parent=this,n.use(t,function(c,u,p){var m=c.app;o.handle(c,u,function(f){cn(c,m.request),cn(u,m.response),p(f)})}),o.emit("mount",this)},this),this};mt.route=function(e){return this.lazyrouter(),this._router.route(e)};mt.engine=function(e,a){if(typeof a!="function")throw new Error("callback function required");var t=e[0]!=="."?"."+e:e;return this.engines[t]=a,this};mt.param=function(e,a){if(this.lazyrouter(),Array.isArray(e)){for(var t=0;t1?'directories "'+c.root.slice(0,-1).join('", "')+'" or "'+c.root[c.root.length-1]+'"':'directory "'+c.root+'"',m=new Error('Failed to lookup view "'+e+'" in views '+p);return m.view=c,i(m)}l.cache&&(s[e]=c)}T4(c,l,i)};mt.listen=function(){var e=y4.createServer(this);return e.listen.apply(e,arguments)};function R4(r){this.get("env")!=="test"&&console.error(r.stack||r.toString())}function T4(r,e,a){try{r.render(e,a)}catch(t){a(t)}}});var Jy=M((BM,np)=>{"use strict";np.exports=Xy;np.exports.preferredCharsets=Xy;var k4=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function O4(r){for(var e=r.split(","),a=0,t=0;a0}});var ab=M((VM,ip)=>{"use strict";ip.exports=rb;ip.exports.preferredEncodings=rb;var N4=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function D4(r){for(var e=r.split(","),a=!1,t=1,s=0,i=0;s0}});var cb=M((GM,op)=>{"use strict";op.exports=ob;op.exports.preferredLanguages=ob;var F4=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function L4(r){for(var e=r.split(","),a=0,t=0;a0}});var mb=M((ZM,cp)=>{"use strict";cp.exports=db;cp.exports.preferredMediaTypes=db;var B4=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function V4(r){for(var e=Q4(r),a=0,t=0;a0)if(i.every(function(n){return e.params[n]=="*"||(e.params[n]||"").toLowerCase()==(t.params[n]||"").toLowerCase()}))s|=1;else return null;return{i:a,o:e.i,q:e.q,s}}function db(r,e){var a=V4(r===void 0?"*/*":r||"");if(!e)return a.filter(ub).sort(lb).map(W4);var t=e.map(function(i,n){return G4(i,a,n)});return t.filter(ub).sort(lb).map(function(i){return e[t.indexOf(i)]})}function lb(r,e){return e.q-r.q||e.s-r.s||r.o-e.o||r.i-e.i||0}function W4(r){return r.type+"/"+r.subtype}function ub(r){return r.q>0}function fb(r){for(var e=0,a=0;(a=r.indexOf('"',a))!==-1;)e++,a++;return e}function K4(r){var e=r.indexOf("="),a,t;return e===-1?a=r:(a=r.substr(0,e),t=r.substr(e+1)),[a,t]}function Q4(r){for(var e=r.split(","),a=1,t=0;a{"use strict";var J4=Jy(),Y4=ab(),eI=cb(),tI=mb();lp.exports=rt;lp.exports.Negotiator=rt;function rt(r){if(!(this instanceof rt))return new rt(r);this.request=r}rt.prototype.charset=function(e){var a=this.charsets(e);return a&&a[0]};rt.prototype.charsets=function(e){return J4(this.request.headers["accept-charset"],e)};rt.prototype.encoding=function(e){var a=this.encodings(e);return a&&a[0]};rt.prototype.encodings=function(e){return Y4(this.request.headers["accept-encoding"],e)};rt.prototype.language=function(e){var a=this.languages(e);return a&&a[0]};rt.prototype.languages=function(e){return eI(this.request.headers["accept-language"],e)};rt.prototype.mediaType=function(e){var a=this.mediaTypes(e);return a&&a[0]};rt.prototype.mediaTypes=function(e){return tI(this.request.headers.accept,e)};rt.prototype.preferredCharset=rt.prototype.charset;rt.prototype.preferredCharsets=rt.prototype.charsets;rt.prototype.preferredEncoding=rt.prototype.encoding;rt.prototype.preferredEncodings=rt.prototype.encodings;rt.prototype.preferredLanguage=rt.prototype.language;rt.prototype.preferredLanguages=rt.prototype.languages;rt.prototype.preferredMediaType=rt.prototype.mediaType;rt.prototype.preferredMediaTypes=rt.prototype.mediaTypes});var gb=M((KM,vb)=>{"use strict";var rI=hb(),aI=nu();vb.exports=Wt;function Wt(r){if(!(this instanceof Wt))return new Wt(r);this.headers=r.headers,this.negotiator=new rI(r)}Wt.prototype.type=Wt.prototype.types=function(r){var e=r;if(e&&!Array.isArray(e)){e=new Array(arguments.length);for(var a=0;a{"use strict";var Zo=gb(),yi=Or()("express"),iI=require("net").isIP,oI=Vs(),cI=require("http"),lI=Gu(),uI=Zu(),pI=Ys(),yb=ep(),at=Object.create(cI.IncomingMessage.prototype);bb.exports=at;at.get=at.header=function(e){if(!e)throw new TypeError("name argument is required to req.get");if(typeof e!="string")throw new TypeError("name must be a string to req.get");var a=e.toLowerCase();switch(a){case"referer":case"referrer":return this.headers.referrer||this.headers.referer;default:return this.headers[a]}};at.accepts=function(){var r=Zo(this);return r.types.apply(r,arguments)};at.acceptsEncodings=function(){var r=Zo(this);return r.encodings.apply(r,arguments)};at.acceptsEncoding=yi.function(at.acceptsEncodings,"req.acceptsEncoding: Use acceptsEncodings instead");at.acceptsCharsets=function(){var r=Zo(this);return r.charsets.apply(r,arguments)};at.acceptsCharset=yi.function(at.acceptsCharsets,"req.acceptsCharset: Use acceptsCharsets instead");at.acceptsLanguages=function(){var r=Zo(this);return r.languages.apply(r,arguments)};at.acceptsLanguage=yi.function(at.acceptsLanguages,"req.acceptsLanguage: Use acceptsLanguages instead");at.range=function(e,a){var t=this.get("Range");if(t)return uI(e,t,a)};at.param=function(e,a){var t=this.params||{},s=this.body||{},i=this.query||{},n=arguments.length===1?"name":"name, default";return yi("req.param("+n+"): Use req.params, req.body, or req.query instead"),t[e]!=null&&t.hasOwnProperty(e)?t[e]:s[e]!=null?s[e]:i[e]!=null?i[e]:a};at.is=function(e){var a=e;if(!Array.isArray(e)){a=new Array(arguments.length);for(var t=0;t=200&&a<300||a===304?lI(this.headers,{etag:e.get("ETag"),"last-modified":e.get("Last-Modified")}):!1});Er(at,"stale",function(){return!this.fresh});Er(at,"xhr",function(){var e=this.get("X-Requested-With")||"";return e.toLowerCase()==="xmlhttprequest"});function Er(r,e,a){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:a})}});var wb=M(Wo=>{var Eb=require("crypto");Wo.sign=function(r,e){if(typeof r!="string")throw new TypeError("Cookie value must be provided as a string.");if(typeof e!="string")throw new TypeError("Secret string must be provided.");return r+"."+Eb.createHmac("sha256",e).update(r).digest("base64").replace(/\=+$/,"")};Wo.unsign=function(r,e){if(typeof r!="string")throw new TypeError("Signed cookie string must be provided.");if(typeof e!="string")throw new TypeError("Secret string must be provided.");var a=r.slice(0,r.lastIndexOf(".")),t=Wo.sign(a,e);return _b(t)==_b(r)?a:!1};function _b(r){return Eb.createHash("sha1").update(r).digest("hex")}});var Rb=M(up=>{"use strict";up.parse=gI;up.serialize=yI;var dI=Object.prototype.toString,fI=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,mI=/^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/,hI=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,vI=/^[\u0020-\u003A\u003D-\u007E]*$/;function gI(r,e){if(typeof r!="string")throw new TypeError("argument str must be a string");var a={},t=r.length;if(t<2)return a;var s=e&&e.decode||bI,i=0,n=0,o=0;do{if(n=r.indexOf("=",i),n===-1)break;if(o=r.indexOf(";",i),o===-1)o=t;else if(n>o){i=r.lastIndexOf(";",n-1)+1;continue}var l=Sb(r,i,n),c=Pb(r,n,l),u=r.slice(l,c);if(!a.hasOwnProperty(u)){var p=Sb(r,n+1,o),m=Pb(r,o,p);r.charCodeAt(p)===34&&r.charCodeAt(m-1)===34&&(p++,m--);var f=r.slice(p,m);a[u]=_I(f,s)}i=o+1}while(ia;){var t=r.charCodeAt(--e);if(t!==32&&t!==9)return e+1}return a}function yI(r,e,a){var t=a&&a.encode||encodeURIComponent;if(typeof t!="function")throw new TypeError("option encode is invalid");if(!fI.test(r))throw new TypeError("argument name is invalid");var s=t(e);if(!mI.test(s))throw new TypeError("argument val is invalid");var i=r+"="+s;if(!a)return i;if(a.maxAge!=null){var n=Math.floor(a.maxAge);if(!isFinite(n))throw new TypeError("option maxAge is invalid");i+="; Max-Age="+n}if(a.domain){if(!hI.test(a.domain))throw new TypeError("option domain is invalid");i+="; Domain="+a.domain}if(a.path){if(!vI.test(a.path))throw new TypeError("option path is invalid");i+="; Path="+a.path}if(a.expires){var o=a.expires;if(!xI(o)||isNaN(o.valueOf()))throw new TypeError("option expires is invalid");i+="; Expires="+o.toUTCString()}if(a.httpOnly&&(i+="; HttpOnly"),a.secure&&(i+="; Secure"),a.partitioned&&(i+="; Partitioned"),a.priority){var l=typeof a.priority=="string"?a.priority.toLowerCase():a.priority;switch(l){case"low":i+="; Priority=Low";break;case"medium":i+="; Priority=Medium";break;case"high":i+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(a.sameSite){var c=typeof a.sameSite=="string"?a.sameSite.toLowerCase():a.sameSite;switch(c){case!0:i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"strict":i+="; SameSite=Strict";break;case"none":i+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return i}function bI(r){return r.indexOf("%")!==-1?decodeURIComponent(r):r}function xI(r){return dI.call(r)==="[object Date]"}function _I(r,e){try{return e(r)}catch{return r}}});var dp=M((YM,pp)=>{"use strict";pp.exports=wI;pp.exports.append=kb;var EI=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function kb(r,e){if(typeof r!="string")throw new TypeError("header argument is required");if(!e)throw new TypeError("field argument is required");for(var a=Array.isArray(e)?e:Tb(String(e)),t=0;t{"use strict";var bi=qo().Buffer,Ob=Bu(),SI=Da(),$t=Or()("express"),PI=Co(),RI=di(),TI=require("http"),kI=xa().isAbsolute,OI=Xn(),Cb=require("path"),Ko=zn(),Ib=mi(),CI=wb().sign,II=xa().normalizeType,AI=xa().normalizeTypes,jI=xa().setCharset,NI=Rb(),fp=zo(),DI=Cb.extname,Ab=fp.mime,$I=Cb.resolve,qI=dp(),nt=Object.create(TI.ServerResponse.prototype);Db.exports=nt;var MI=/;\s*charset\s*=/;nt.status=function(e){return(typeof e=="string"||Math.floor(e)!==e)&&e>99&&e<1e3&&$t("res.status("+JSON.stringify(e)+"): use res.status("+Math.floor(e)+") instead"),this.statusCode=e,this};nt.links=function(r){var e=this.get("Link")||"";return e&&(e+=", "),this.set("Link",e+Object.keys(r).map(function(a){return"<"+r[a]+'>; rel="'+a+'"'}).join(", "))};nt.send=function(e){var a=e,t,s=this.req,i,n=this.app;switch(arguments.length===2&&(typeof arguments[0]!="number"&&typeof arguments[1]=="number"?($t("res.send(body, status): Use res.status(status).send(body) instead"),this.statusCode=arguments[1]):($t("res.send(status, body): Use res.status(status).send(body) instead"),this.statusCode=arguments[0],a=arguments[1])),typeof a=="number"&&arguments.length===1&&(this.get("Content-Type")||this.type("txt"),$t("res.send(status): Use res.sendStatus(status) instead"),this.statusCode=a,a=Ko.message[a]),typeof a){case"string":this.get("Content-Type")||this.type("html");break;case"boolean":case"number":case"object":if(a===null)a="";else if(bi.isBuffer(a))this.get("Content-Type")||this.type("bin");else return this.json(a);break}typeof a=="string"&&(t="utf8",i=this.get("Content-Type"),typeof i=="string"&&this.set("Content-Type",jI(i,"utf-8")));var o=n.get("etag fn"),l=!this.get("ETag")&&typeof o=="function",c;a!==void 0&&(bi.isBuffer(a)?c=a.length:!l&&a.length<1e3?c=bi.byteLength(a,t):(a=bi.from(a,t),t=void 0,c=a.length),this.set("Content-Length",c));var u;return l&&c!==void 0&&(u=o(a,t))&&this.set("ETag",u),s.fresh&&(this.statusCode=304),(this.statusCode===204||this.statusCode===304)&&(this.removeHeader("Content-Type"),this.removeHeader("Content-Length"),this.removeHeader("Transfer-Encoding"),a=""),this.statusCode===205&&(this.set("Content-Length","0"),this.removeHeader("Transfer-Encoding"),a=""),s.method==="HEAD"?this.end():this.end(a,t),this};nt.json=function(e){var a=e;arguments.length===2&&(typeof arguments[1]=="number"?($t("res.json(obj, status): Use res.status(status).json(obj) instead"),this.statusCode=arguments[1]):($t("res.json(status, obj): Use res.status(status).json(obj) instead"),this.statusCode=arguments[0],a=arguments[1]));var t=this.app,s=t.get("json escape"),i=t.get("json replacer"),n=t.get("json spaces"),o=Nb(a,i,n,s);return this.get("Content-Type")||this.set("Content-Type","application/json"),this.send(o)};nt.jsonp=function(e){var a=e;arguments.length===2&&(typeof arguments[1]=="number"?($t("res.jsonp(obj, status): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[1]):($t("res.jsonp(status, obj): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[0],a=arguments[1]));var t=this.app,s=t.get("json escape"),i=t.get("json replacer"),n=t.get("json spaces"),o=Nb(a,i,n,s),l=this.req.query[t.get("jsonp callback name")];return this.get("Content-Type")||(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","application/json")),Array.isArray(l)&&(l=l[0]),typeof l=="string"&&l.length!==0&&(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","text/javascript"),l=l.replace(/[^\[\]\w$.]/g,""),o===void 0?o="":typeof o=="string"&&(o=o.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")),o="/**/ typeof "+l+" === 'function' && "+l+"("+o+");"),this.send(o)};nt.sendStatus=function(e){var a=Ko.message[e]||String(e);return this.statusCode=e,this.type("txt"),this.send(a)};nt.sendFile=function(e,a,t){var s=t,i=this.req,n=this,o=i.next,l=a||{};if(!e)throw new TypeError("path argument is required to res.sendFile");if(typeof e!="string")throw new TypeError("path must be a string to res.sendFile");if(typeof a=="function"&&(s=a,l={}),!l.root&&!kI(e))throw new TypeError("path must be absolute or specify root to res.sendFile");var c=encodeURI(e),u=fp(i,c,l);jb(n,u,l,function(p){if(s)return s(p);if(p&&p.code==="EISDIR")return o();p&&p.code!=="ECONNABORTED"&&p.syscall!=="write"&&o(p)})};nt.sendfile=function(r,e,a){var t=a,s=this.req,i=this,n=s.next,o=e||{};typeof e=="function"&&(t=e,o={});var l=fp(s,r,o);jb(i,l,o,function(c){if(t)return t(c);if(c&&c.code==="EISDIR")return n();c&&c.code!=="ECONNABORTED"&&c.syscall!=="write"&&n(c)})};nt.sendfile=$t.function(nt.sendfile,"res.sendfile: Use res.sendFile instead");nt.download=function(e,a,t,s){var i=s,n=a,o=t||null;typeof a=="function"?(i=a,n=null,o=null):typeof t=="function"&&(i=t,o=null),typeof a=="object"&&(typeof t=="function"||t===void 0)&&(n=null,o=a);var l={"Content-Disposition":Ob(n||e)};if(o&&o.headers)for(var c=Object.keys(o.headers),u=0;u0?e.accepts(t):!1;return this.vary("Accept"),s?(this.set("Content-Type",II(s).value),r[s](e,this,a)):r.default?r.default(e,this,a):a(SI(406,{types:AI(t).map(function(i){return i.value})})),this};nt.attachment=function(e){return e&&this.type(DI(e)),this.set("Content-Disposition",Ob(e)),this};nt.append=function(e,a){var t=this.get(e),s=a;return t&&(s=Array.isArray(t)?t.concat(a):Array.isArray(a)?[t].concat(a):[t,a]),this.set(e,s)};nt.set=nt.header=function(e,a){if(arguments.length===2){var t=Array.isArray(a)?a.map(String):String(a);if(e.toLowerCase()==="content-type"){if(Array.isArray(t))throw new TypeError("Content-Type cannot be set to an Array");if(!MI.test(t)){var s=Ab.charsets.lookup(t.split(";")[0]);s&&(t+="; charset="+s.toLowerCase())}}this.setHeader(e,t)}else for(var i in e)this.set(i,e[i]);return this};nt.get=function(r){return this.getHeader(r)};nt.clearCookie=function(e,a){a&&(a.maxAge&&$t('res.clearCookie: Passing "options.maxAge" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'),a.expires&&$t('res.clearCookie: Passing "options.expires" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'));var t=Ib({expires:new Date(1),path:"/"},a);return this.cookie(e,"",t)};nt.cookie=function(r,e,a){var t=Ib({},a),s=this.req.secret,i=t.signed;if(i&&!s)throw new Error('cookieParser("secret") required for signed cookies');var n=typeof e=="object"?"j:"+JSON.stringify(e):String(e);if(i&&(n="s:"+CI(n,s)),t.maxAge!=null){var o=t.maxAge-0;isNaN(o)||(t.expires=new Date(Date.now()+o),t.maxAge=Math.floor(o/1e3))}return t.path==null&&(t.path="/"),this.append("Set-Cookie",NI.serialize(r,String(n),t)),this};nt.location=function(e){var a;return e==="back"?($t('res.location("back"): use res.location(req.get("Referrer") || "/") and refer to https://dub.sh/security-redirect for best practices'),a=this.req.get("Referrer")||"/"):a=String(e),this.set("Location",PI(a))};nt.redirect=function(e){var a=e,t,s=302;arguments.length===2&&(typeof arguments[0]=="number"?(s=arguments[0],a=arguments[1]):($t("res.redirect(url, status): Use res.redirect(status, url) instead"),s=arguments[1])),a=this.location(a).get("Location"),this.format({text:function(){t=Ko.message[s]+". Redirecting to "+a},html:function(){var i=RI(a);t="

"+Ko.message[s]+". Redirecting to "+i+"

"},default:function(){t=""}}),this.statusCode=s,this.set("Content-Length",bi.byteLength(t)),this.req.method==="HEAD"?this.end():this.end(t)};nt.vary=function(r){return!r||Array.isArray(r)&&!r.length?($t("res.vary(): Provide a field name"),this):(qI(this,r),this)};nt.render=function(e,a,t){var s=this.req.app,i=t,n=a||{},o=this.req,l=this;typeof a=="function"&&(i=a,n={}),n._locals=l.locals,i=i||function(c,u){if(c)return o.next(c);l.send(u)},s.render(e,n,i)};function jb(r,e,a,t){var s=!1,i;function n(){if(!s){s=!0;var f=new Error("Request aborted");f.code="ECONNABORTED",t(f)}}function o(){if(!s){s=!0;var f=new Error("EISDIR, read");f.code="EISDIR",t(f)}}function l(f){s||(s=!0,t(f))}function c(){s||(s=!0,t())}function u(){i=!1}function p(f){if(f&&f.code==="ECONNRESET")return n();if(f)return l(f);s||setImmediate(function(){if(i!==!1&&!s){n();return}s||(s=!0,t())})}function m(){i=!0}e.on("directory",o),e.on("end",c),e.on("error",l),e.on("file",u),e.on("stream",m),OI(r,p),a.headers&&e.on("headers",function(h){for(var d=a.headers,v=Object.keys(d),g=0;g&]/g,function(i){switch(i.charCodeAt(0)){case 60:return"\\u003c";case 62:return"\\u003e";case 38:return"\\u0026";default:return i}})),s}});var Mb=M((tF,hp)=>{"use strict";var FI=Co(),LI=di(),mp=Ys(),UI=require("path").resolve,qb=zo(),zI=require("url");hp.exports=HI;hp.exports.mime=qb.mime;function HI(r,e){if(!r)throw new TypeError("root path required");if(typeof r!="string")throw new TypeError("root path must be a string");var a=Object.create(e||null),t=a.fallthrough!==!1,s=a.redirect!==!1,i=a.setHeaders;if(i&&typeof i!="function")throw new TypeError("option setHeaders must be function");a.maxage=a.maxage||a.maxAge||0,a.root=UI(r);var n=s?ZI():GI();return function(l,c,u){if(l.method!=="GET"&&l.method!=="HEAD"){if(t)return u();c.statusCode=405,c.setHeader("Allow","GET, HEAD"),c.setHeader("Content-Length","0"),c.end();return}var p=!t,m=mp.original(l),f=mp(l).pathname;f==="/"&&m.pathname.substr(-1)!=="/"&&(f="");var h=qb(l,f,a);h.on("directory",n),i&&h.on("headers",i),t&&h.on("file",function(){p=!0}),h.on("error",function(v){if(p||!(v.statusCode<500)){u(v);return}u()}),h.pipe(c)}}function BI(r){for(var e=0;e1?"/"+r.substr(e):r}function VI(r,e){return` +`}function MC(r,e){return e?e instanceof Error?Wu(r,e,{expose:!1}):Wu(r,e):Wu(r)}function FC(r){try{return decodeURIComponent(r)}catch{return-1}}function LC(r){return typeof r.getHeaderNames!="function"?Object.keys(r._headers||{}):r.getHeaderNames()}function jy(r,e){var a=typeof r.listenerCount!="function"?r.listeners(e).length:r.listenerCount(e);return a>0}function UC(r){return typeof r.headersSent!="boolean"?!!r._header:r.headersSent}function Xu(r,e){for(var a=[].concat(r||[]),t=0;t{"use strict";Ny.exports=BC;function BC(r){if(!r)throw new TypeError("argument req is required");var e=GC(r.headers["x-forwarded-for"]||""),a=VC(r),t=[a].concat(e);return t}function VC(r){return r.socket?r.socket.remoteAddress:r.connection.remoteAddress}function GC(r){for(var e=r.length,a=[],t=r.length,s=r.length-1;s>=0;s--)switch(r.charCodeAt(s)){case 32:t===e&&(t=e=s);break;case 44:t!==e&&a.push(r.substring(t,e)),t=e=s;break;default:t=s;break}return t!==e&&a.push(r.substring(t,e)),a}});var qy=M(($y,gi)=>{(function(){var r,e,a,t,s,i,n,o,l;e={},o=this,typeof gi<"u"&&gi!==null&&gi.exports?gi.exports=e:o.ipaddr=e,n=function(c,u,p,m){var f,h;if(c.length!==u.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(f=0;m>0;){if(h=p-m,h<0&&(h=0),c[f]>>h!==u[f]>>h)return!1;m-=p,f+=1}return!0},e.subnetMatch=function(c,u,p){var m,f,h,d,v;p==null&&(p="unicast");for(h in u)for(d=u[h],d[0]&&!(d[0]instanceof Array)&&(d=[d]),m=0,f=d.length;m=0;p=m+=-1)if(f=this.octets[p],f in v){if(d=v[f],h&&d!==0)return null;d!==8&&(h=!0),u+=d}else return null;return 32-u},c})(),a="(0?\\d+|0x[a-f0-9]+)",t={fourOctet:new RegExp("^"+a+"\\."+a+"\\."+a+"\\."+a+"$","i"),longValue:new RegExp("^"+a+"$","i")},e.IPv4.parser=function(c){var u,p,m,f,h;if(p=function(d){return d[0]==="0"&&d[1]!=="x"?parseInt(d,8):parseInt(d)},u=c.match(t.fourOctet))return(function(){var d,v,x,b;for(x=u.slice(1,6),b=[],d=0,v=x.length;d4294967295||h<0)throw new Error("ipaddr: address outside defined range");return(function(){var d,v;for(v=[],f=d=0;d<=24;f=d+=8)v.push(h>>f&255);return v})().reverse()}else return null},e.IPv6=(function(){function c(u,p){var m,f,h,d,v,x;if(u.length===16)for(this.parts=[],m=f=0;f<=14;m=f+=2)this.parts.push(u[m]<<8|u[m+1]);else if(u.length===8)this.parts=u;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(x=this.parts,h=0,d=x.length;hp&&(u=m.index,p=m[0].length);return p<0?h:h.substring(0,u)+"::"+h.substring(u+p)},c.prototype.toByteArray=function(){var u,p,m,f,h;for(u=[],h=this.parts,p=0,m=h.length;p>8),u.push(f&255);return u},c.prototype.toNormalizedString=function(){var u,p,m;return u=(function(){var f,h,d,v;for(d=this.parts,v=[],f=0,h=d.length;f>8,u&255,p>>8,p&255])},c.prototype.prefixLengthFromSubnetMask=function(){var u,p,m,f,h,d,v;for(v={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},u=0,h=!1,p=m=7;m>=0;p=m+=-1)if(f=this.parts[p],f in v){if(d=v[f],h&&d!==0)return null;d!==16&&(h=!0),u+=d}else return null;return 128-u},c})(),s="(?:[0-9a-f]+::?)+",l="%[0-9a-z]{1,}",i={zoneIndex:new RegExp(l,"i"),native:new RegExp("^(::)?("+s+")?([0-9a-f]+)?(::)?("+l+")?$","i"),transitional:new RegExp("^((?:"+s+")|(?:::)(?:"+s+")?)"+(a+"\\."+a+"\\."+a+"\\."+a)+("("+l+")?$"),"i")},r=function(c,u){var p,m,f,h,d,v;if(c.indexOf("::")!==c.lastIndexOf("::"))return null;for(v=(c.match(i.zoneIndex)||[])[0],v&&(v=v.substring(1),c=c.replace(/%.+$/,"")),p=0,m=-1;(m=c.indexOf(":",m+1))>=0;)p++;if(c.substr(0,2)==="::"&&p--,c.substr(-2,2)==="::"&&p--,p>u)return null;for(d=u-p,h=":";d--;)h+="0:";return c=c.replace("::",h),c[0]===":"&&(c=c.slice(1)),c[c.length-1]===":"&&(c=c.slice(0,-1)),u=(function(){var x,b,E,k;for(E=c.split(":"),k=[],x=0,b=E.length;x=0&&u<=32))return m=[this.parse(p[1]),u],Object.defineProperty(m,"toString",{value:function(){return this.join("/")}}),m;throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},e.IPv4.subnetMaskFromPrefixLength=function(c){var u,p,m;if(c=parseInt(c),c<0||c>32)throw new Error("ipaddr: invalid IPv4 prefix length");for(m=[0,0,0,0],p=0,u=Math.floor(c/8);p=0&&u<=128))return m=[this.parse(p[1]),u],Object.defineProperty(m,"toString",{value:function(){return this.join("/")}}),m;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},e.isValid=function(c){return e.IPv6.isValid(c)||e.IPv4.isValid(c)},e.parse=function(c){if(e.IPv6.isValid(c))return e.IPv6.parse(c);if(e.IPv4.isValid(c))return e.IPv4.parse(c);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},e.parseCIDR=function(c){var u;try{return e.IPv6.parseCIDR(c)}catch(p){u=p;try{return e.IPv4.parseCIDR(c)}catch(m){throw u=m,new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},e.fromByteArray=function(c){var u;if(u=c.length,u===4)return new e.IPv4(c);if(u===16)return new e.IPv6(c);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},e.process=function(c){var u;return u=this.parse(c),u.kind()==="ipv6"&&u.isIPv4MappedAddress()?u.toIPv4Address():u}}).call($y)});var ep=M((zM,Vo)=>{"use strict";Vo.exports=YC;Vo.exports.all=Ly;Vo.exports.compile=Uy;var ZC=Dy(),Fy=qy(),WC=/^[0-9]+$/,Ho=Fy.isValid,Bo=Fy.parse,My={linklocal:["169.254.0.0/16","fe80::/10"],loopback:["127.0.0.1/8","::1/128"],uniquelocal:["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","fc00::/7"]};function Ly(r,e){var a=ZC(r);if(!e)return a;typeof e!="function"&&(e=Uy(e));for(var t=0;ts)throw new TypeError("invalid range on address: "+r);return[t,i]}function JC(r){var e=Bo(r),a=e.kind();return a==="ipv4"?e.prefixLengthFromSubnetMask():null}function YC(r,e){if(!r)throw new TypeError("req argument is required");if(!e)throw new TypeError("trust argument is required");var a=Ly(r,e),t=a[a.length-1];return t}function e4(){return!1}function t4(r){return function(a){if(!Ho(a))return!1;for(var t=Bo(a),s,i=t.kind(),n=0;n{"use strict";var zy=qo().Buffer,a4=Bu(),Hy=Ln(),By=Or()("express"),s4=fi(),n4=zo().mime,i4=Vu(),o4=ep(),c4=To(),l4=require("querystring");kt.etag=Vy({weak:!1});kt.wetag=Vy({weak:!0});kt.isAbsolute=function(r){if(r[0]==="/"||r[1]===":"&&(r[2]==="\\"||r[2]==="/")||r.substring(0,2)==="\\\\")return!0};kt.flatten=By.function(s4,"utils.flatten: use array-flatten npm module instead");kt.normalizeType=function(r){return~r.indexOf("/")?u4(r):{value:n4.lookup(r),params:{}}};kt.normalizeTypes=function(r){for(var e=[],a=0;a{"use strict";var f4=Rg(),m4=Lu(),rp=Ao(),h4=Jg(),v4=Uu(),Go=tr()("express:application"),g4=sy(),y4=require("http"),b4=xa().compileETag,x4=xa().compileQueryParser,_4=xa().compileTrust,E4=Or()("express"),w4=fi(),tp=mi(),S4=require("path").resolve,cn=Un(),P4=Object.prototype.hasOwnProperty,sp=Array.prototype.slice,mt=Gy=Zy.exports={},ap="@@symbol:trust_proxy_default";mt.init=function(){this.cache={},this.engines={},this.settings={},this.defaultConfiguration()};mt.defaultConfiguration=function(){var e=process.env.NODE_ENV||"development";this.enable("x-powered-by"),this.set("etag","weak"),this.set("env",e),this.set("query parser","extended"),this.set("subdomain offset",2),this.set("trust proxy",!1),Object.defineProperty(this.settings,ap,{configurable:!0,value:!0}),Go("booting in %s mode",e),this.on("mount",function(t){this.settings[ap]===!0&&typeof t.settings["trust proxy fn"]=="function"&&(delete this.settings["trust proxy"],delete this.settings["trust proxy fn"]),cn(this.request,t.request),cn(this.response,t.response),cn(this.engines,t.engines),cn(this.settings,t.settings)}),this.locals=Object.create(null),this.mountpath="/",this.locals.settings=this.settings,this.set("view",g4),this.set("views",S4("views")),this.set("jsonp callback name","callback"),e==="production"&&this.enable("view cache"),Object.defineProperty(this,"router",{get:function(){throw new Error(`'app.router' is deprecated! +Please see the 3.x to 4.x migration guide for details on how to update your app.`)}})};mt.lazyrouter=function(){this._router||(this._router=new m4({caseSensitive:this.enabled("case sensitive routing"),strict:this.enabled("strict routing")}),this._router.use(v4(this.get("query parser fn"))),this._router.use(h4.init(this)))};mt.handle=function(e,a,t){var s=this._router,i=t||f4(e,a,{env:this.get("env"),onerror:R4.bind(this)});if(!s){Go("no routes defined on app"),i();return}s.handle(e,a,i)};mt.use=function(e){var a=0,t="/";if(typeof e!="function"){for(var s=e;Array.isArray(s)&&s.length!==0;)s=s[0];typeof s!="function"&&(a=1,t=e)}var i=w4(sp.call(arguments,a));if(i.length===0)throw new TypeError("app.use() requires a middleware function");this.lazyrouter();var n=this._router;return i.forEach(function(o){if(!o||!o.handle||!o.set)return n.use(t,o);Go(".use app under %s",t),o.mountpath=t,o.parent=this,n.use(t,function(c,u,p){var m=c.app;o.handle(c,u,function(f){cn(c,m.request),cn(u,m.response),p(f)})}),o.emit("mount",this)},this),this};mt.route=function(e){return this.lazyrouter(),this._router.route(e)};mt.engine=function(e,a){if(typeof a!="function")throw new Error("callback function required");var t=e[0]!=="."?"."+e:e;return this.engines[t]=a,this};mt.param=function(e,a){if(this.lazyrouter(),Array.isArray(e)){for(var t=0;t1?'directories "'+c.root.slice(0,-1).join('", "')+'" or "'+c.root[c.root.length-1]+'"':'directory "'+c.root+'"',m=new Error('Failed to lookup view "'+e+'" in views '+p);return m.view=c,i(m)}l.cache&&(s[e]=c)}T4(c,l,i)};mt.listen=function(){var e=y4.createServer(this);return e.listen.apply(e,arguments)};function R4(r){this.get("env")!=="test"&&console.error(r.stack||r.toString())}function T4(r,e,a){try{r.render(e,a)}catch(t){a(t)}}});var Jy=M((BM,np)=>{"use strict";np.exports=Xy;np.exports.preferredCharsets=Xy;var k4=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function O4(r){for(var e=r.split(","),a=0,t=0;a0}});var ab=M((VM,ip)=>{"use strict";ip.exports=rb;ip.exports.preferredEncodings=rb;var N4=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function D4(r){for(var e=r.split(","),a=!1,t=1,s=0,i=0;s0}});var cb=M((GM,op)=>{"use strict";op.exports=ob;op.exports.preferredLanguages=ob;var F4=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function L4(r){for(var e=r.split(","),a=0,t=0;a0}});var mb=M((ZM,cp)=>{"use strict";cp.exports=db;cp.exports.preferredMediaTypes=db;var B4=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function V4(r){for(var e=Q4(r),a=0,t=0;a0)if(i.every(function(n){return e.params[n]=="*"||(e.params[n]||"").toLowerCase()==(t.params[n]||"").toLowerCase()}))s|=1;else return null;return{i:a,o:e.i,q:e.q,s}}function db(r,e){var a=V4(r===void 0?"*/*":r||"");if(!e)return a.filter(ub).sort(lb).map(W4);var t=e.map(function(i,n){return G4(i,a,n)});return t.filter(ub).sort(lb).map(function(i){return e[t.indexOf(i)]})}function lb(r,e){return e.q-r.q||e.s-r.s||r.o-e.o||r.i-e.i||0}function W4(r){return r.type+"/"+r.subtype}function ub(r){return r.q>0}function fb(r){for(var e=0,a=0;(a=r.indexOf('"',a))!==-1;)e++,a++;return e}function K4(r){var e=r.indexOf("="),a,t;return e===-1?a=r:(a=r.substr(0,e),t=r.substr(e+1)),[a,t]}function Q4(r){for(var e=r.split(","),a=1,t=0;a{"use strict";var J4=Jy(),Y4=ab(),eI=cb(),tI=mb();lp.exports=rt;lp.exports.Negotiator=rt;function rt(r){if(!(this instanceof rt))return new rt(r);this.request=r}rt.prototype.charset=function(e){var a=this.charsets(e);return a&&a[0]};rt.prototype.charsets=function(e){return J4(this.request.headers["accept-charset"],e)};rt.prototype.encoding=function(e){var a=this.encodings(e);return a&&a[0]};rt.prototype.encodings=function(e){return Y4(this.request.headers["accept-encoding"],e)};rt.prototype.language=function(e){var a=this.languages(e);return a&&a[0]};rt.prototype.languages=function(e){return eI(this.request.headers["accept-language"],e)};rt.prototype.mediaType=function(e){var a=this.mediaTypes(e);return a&&a[0]};rt.prototype.mediaTypes=function(e){return tI(this.request.headers.accept,e)};rt.prototype.preferredCharset=rt.prototype.charset;rt.prototype.preferredCharsets=rt.prototype.charsets;rt.prototype.preferredEncoding=rt.prototype.encoding;rt.prototype.preferredEncodings=rt.prototype.encodings;rt.prototype.preferredLanguage=rt.prototype.language;rt.prototype.preferredLanguages=rt.prototype.languages;rt.prototype.preferredMediaType=rt.prototype.mediaType;rt.prototype.preferredMediaTypes=rt.prototype.mediaTypes});var gb=M((KM,vb)=>{"use strict";var rI=hb(),aI=nu();vb.exports=Wt;function Wt(r){if(!(this instanceof Wt))return new Wt(r);this.headers=r.headers,this.negotiator=new rI(r)}Wt.prototype.type=Wt.prototype.types=function(r){var e=r;if(e&&!Array.isArray(e)){e=new Array(arguments.length);for(var a=0;a{"use strict";var Zo=gb(),yi=Or()("express"),iI=require("net").isIP,oI=Vs(),cI=require("http"),lI=Gu(),uI=Zu(),pI=Ys(),yb=ep(),at=Object.create(cI.IncomingMessage.prototype);bb.exports=at;at.get=at.header=function(e){if(!e)throw new TypeError("name argument is required to req.get");if(typeof e!="string")throw new TypeError("name must be a string to req.get");var a=e.toLowerCase();switch(a){case"referer":case"referrer":return this.headers.referrer||this.headers.referer;default:return this.headers[a]}};at.accepts=function(){var r=Zo(this);return r.types.apply(r,arguments)};at.acceptsEncodings=function(){var r=Zo(this);return r.encodings.apply(r,arguments)};at.acceptsEncoding=yi.function(at.acceptsEncodings,"req.acceptsEncoding: Use acceptsEncodings instead");at.acceptsCharsets=function(){var r=Zo(this);return r.charsets.apply(r,arguments)};at.acceptsCharset=yi.function(at.acceptsCharsets,"req.acceptsCharset: Use acceptsCharsets instead");at.acceptsLanguages=function(){var r=Zo(this);return r.languages.apply(r,arguments)};at.acceptsLanguage=yi.function(at.acceptsLanguages,"req.acceptsLanguage: Use acceptsLanguages instead");at.range=function(e,a){var t=this.get("Range");if(t)return uI(e,t,a)};at.param=function(e,a){var t=this.params||{},s=this.body||{},i=this.query||{},n=arguments.length===1?"name":"name, default";return yi("req.param("+n+"): Use req.params, req.body, or req.query instead"),t[e]!=null&&t.hasOwnProperty(e)?t[e]:s[e]!=null?s[e]:i[e]!=null?i[e]:a};at.is=function(e){var a=e;if(!Array.isArray(e)){a=new Array(arguments.length);for(var t=0;t=200&&a<300||a===304?lI(this.headers,{etag:e.get("ETag"),"last-modified":e.get("Last-Modified")}):!1});Er(at,"stale",function(){return!this.fresh});Er(at,"xhr",function(){var e=this.get("X-Requested-With")||"";return e.toLowerCase()==="xmlhttprequest"});function Er(r,e,a){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:a})}});var wb=M(Wo=>{var Eb=require("crypto");Wo.sign=function(r,e){if(typeof r!="string")throw new TypeError("Cookie value must be provided as a string.");if(typeof e!="string")throw new TypeError("Secret string must be provided.");return r+"."+Eb.createHmac("sha256",e).update(r).digest("base64").replace(/\=+$/,"")};Wo.unsign=function(r,e){if(typeof r!="string")throw new TypeError("Signed cookie string must be provided.");if(typeof e!="string")throw new TypeError("Secret string must be provided.");var a=r.slice(0,r.lastIndexOf(".")),t=Wo.sign(a,e);return _b(t)==_b(r)?a:!1};function _b(r){return Eb.createHash("sha1").update(r).digest("hex")}});var Rb=M(up=>{"use strict";up.parse=gI;up.serialize=yI;var dI=Object.prototype.toString,fI=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,mI=/^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/,hI=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,vI=/^[\u0020-\u003A\u003D-\u007E]*$/;function gI(r,e){if(typeof r!="string")throw new TypeError("argument str must be a string");var a={},t=r.length;if(t<2)return a;var s=e&&e.decode||bI,i=0,n=0,o=0;do{if(n=r.indexOf("=",i),n===-1)break;if(o=r.indexOf(";",i),o===-1)o=t;else if(n>o){i=r.lastIndexOf(";",n-1)+1;continue}var l=Sb(r,i,n),c=Pb(r,n,l),u=r.slice(l,c);if(!a.hasOwnProperty(u)){var p=Sb(r,n+1,o),m=Pb(r,o,p);r.charCodeAt(p)===34&&r.charCodeAt(m-1)===34&&(p++,m--);var f=r.slice(p,m);a[u]=_I(f,s)}i=o+1}while(ia;){var t=r.charCodeAt(--e);if(t!==32&&t!==9)return e+1}return a}function yI(r,e,a){var t=a&&a.encode||encodeURIComponent;if(typeof t!="function")throw new TypeError("option encode is invalid");if(!fI.test(r))throw new TypeError("argument name is invalid");var s=t(e);if(!mI.test(s))throw new TypeError("argument val is invalid");var i=r+"="+s;if(!a)return i;if(a.maxAge!=null){var n=Math.floor(a.maxAge);if(!isFinite(n))throw new TypeError("option maxAge is invalid");i+="; Max-Age="+n}if(a.domain){if(!hI.test(a.domain))throw new TypeError("option domain is invalid");i+="; Domain="+a.domain}if(a.path){if(!vI.test(a.path))throw new TypeError("option path is invalid");i+="; Path="+a.path}if(a.expires){var o=a.expires;if(!xI(o)||isNaN(o.valueOf()))throw new TypeError("option expires is invalid");i+="; Expires="+o.toUTCString()}if(a.httpOnly&&(i+="; HttpOnly"),a.secure&&(i+="; Secure"),a.partitioned&&(i+="; Partitioned"),a.priority){var l=typeof a.priority=="string"?a.priority.toLowerCase():a.priority;switch(l){case"low":i+="; Priority=Low";break;case"medium":i+="; Priority=Medium";break;case"high":i+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(a.sameSite){var c=typeof a.sameSite=="string"?a.sameSite.toLowerCase():a.sameSite;switch(c){case!0:i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"strict":i+="; SameSite=Strict";break;case"none":i+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return i}function bI(r){return r.indexOf("%")!==-1?decodeURIComponent(r):r}function xI(r){return dI.call(r)==="[object Date]"}function _I(r,e){try{return e(r)}catch{return r}}});var dp=M((YM,pp)=>{"use strict";pp.exports=wI;pp.exports.append=kb;var EI=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function kb(r,e){if(typeof r!="string")throw new TypeError("header argument is required");if(!e)throw new TypeError("field argument is required");for(var a=Array.isArray(e)?e:Tb(String(e)),t=0;t{"use strict";var bi=qo().Buffer,Ob=Bu(),SI=Da(),$t=Or()("express"),PI=Co(),RI=di(),TI=require("http"),kI=xa().isAbsolute,OI=Xn(),Cb=require("path"),Ko=zn(),Ib=mi(),CI=wb().sign,II=xa().normalizeType,AI=xa().normalizeTypes,jI=xa().setCharset,NI=Rb(),fp=zo(),DI=Cb.extname,Ab=fp.mime,$I=Cb.resolve,qI=dp(),nt=Object.create(TI.ServerResponse.prototype);Db.exports=nt;var MI=/;\s*charset\s*=/;nt.status=function(e){return(typeof e=="string"||Math.floor(e)!==e)&&e>99&&e<1e3&&$t("res.status("+JSON.stringify(e)+"): use res.status("+Math.floor(e)+") instead"),this.statusCode=e,this};nt.links=function(r){var e=this.get("Link")||"";return e&&(e+=", "),this.set("Link",e+Object.keys(r).map(function(a){return"<"+r[a]+'>; rel="'+a+'"'}).join(", "))};nt.send=function(e){var a=e,t,s=this.req,i,n=this.app;switch(arguments.length===2&&(typeof arguments[0]!="number"&&typeof arguments[1]=="number"?($t("res.send(body, status): Use res.status(status).send(body) instead"),this.statusCode=arguments[1]):($t("res.send(status, body): Use res.status(status).send(body) instead"),this.statusCode=arguments[0],a=arguments[1])),typeof a=="number"&&arguments.length===1&&(this.get("Content-Type")||this.type("txt"),$t("res.send(status): Use res.sendStatus(status) instead"),this.statusCode=a,a=Ko.message[a]),typeof a){case"string":this.get("Content-Type")||this.type("html");break;case"boolean":case"number":case"object":if(a===null)a="";else if(bi.isBuffer(a))this.get("Content-Type")||this.type("bin");else return this.json(a);break}typeof a=="string"&&(t="utf8",i=this.get("Content-Type"),typeof i=="string"&&this.set("Content-Type",jI(i,"utf-8")));var o=n.get("etag fn"),l=!this.get("ETag")&&typeof o=="function",c;a!==void 0&&(bi.isBuffer(a)?c=a.length:!l&&a.length<1e3?c=bi.byteLength(a,t):(a=bi.from(a,t),t=void 0,c=a.length),this.set("Content-Length",c));var u;return l&&c!==void 0&&(u=o(a,t))&&this.set("ETag",u),s.fresh&&(this.statusCode=304),(this.statusCode===204||this.statusCode===304)&&(this.removeHeader("Content-Type"),this.removeHeader("Content-Length"),this.removeHeader("Transfer-Encoding"),a=""),this.statusCode===205&&(this.set("Content-Length","0"),this.removeHeader("Transfer-Encoding"),a=""),s.method==="HEAD"?this.end():this.end(a,t),this};nt.json=function(e){var a=e;arguments.length===2&&(typeof arguments[1]=="number"?($t("res.json(obj, status): Use res.status(status).json(obj) instead"),this.statusCode=arguments[1]):($t("res.json(status, obj): Use res.status(status).json(obj) instead"),this.statusCode=arguments[0],a=arguments[1]));var t=this.app,s=t.get("json escape"),i=t.get("json replacer"),n=t.get("json spaces"),o=Nb(a,i,n,s);return this.get("Content-Type")||this.set("Content-Type","application/json"),this.send(o)};nt.jsonp=function(e){var a=e;arguments.length===2&&(typeof arguments[1]=="number"?($t("res.jsonp(obj, status): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[1]):($t("res.jsonp(status, obj): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[0],a=arguments[1]));var t=this.app,s=t.get("json escape"),i=t.get("json replacer"),n=t.get("json spaces"),o=Nb(a,i,n,s),l=this.req.query[t.get("jsonp callback name")];return this.get("Content-Type")||(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","application/json")),Array.isArray(l)&&(l=l[0]),typeof l=="string"&&l.length!==0&&(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","text/javascript"),l=l.replace(/[^\[\]\w$.]/g,""),o===void 0?o="":typeof o=="string"&&(o=o.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")),o="/**/ typeof "+l+" === 'function' && "+l+"("+o+");"),this.send(o)};nt.sendStatus=function(e){var a=Ko.message[e]||String(e);return this.statusCode=e,this.type("txt"),this.send(a)};nt.sendFile=function(e,a,t){var s=t,i=this.req,n=this,o=i.next,l=a||{};if(!e)throw new TypeError("path argument is required to res.sendFile");if(typeof e!="string")throw new TypeError("path must be a string to res.sendFile");if(typeof a=="function"&&(s=a,l={}),!l.root&&!kI(e))throw new TypeError("path must be absolute or specify root to res.sendFile");var c=encodeURI(e),u=fp(i,c,l);jb(n,u,l,function(p){if(s)return s(p);if(p&&p.code==="EISDIR")return o();p&&p.code!=="ECONNABORTED"&&p.syscall!=="write"&&o(p)})};nt.sendfile=function(r,e,a){var t=a,s=this.req,i=this,n=s.next,o=e||{};typeof e=="function"&&(t=e,o={});var l=fp(s,r,o);jb(i,l,o,function(c){if(t)return t(c);if(c&&c.code==="EISDIR")return n();c&&c.code!=="ECONNABORTED"&&c.syscall!=="write"&&n(c)})};nt.sendfile=$t.function(nt.sendfile,"res.sendfile: Use res.sendFile instead");nt.download=function(e,a,t,s){var i=s,n=a,o=t||null;typeof a=="function"?(i=a,n=null,o=null):typeof t=="function"&&(i=t,o=null),typeof a=="object"&&(typeof t=="function"||t===void 0)&&(n=null,o=a);var l={"Content-Disposition":Ob(n||e)};if(o&&o.headers)for(var c=Object.keys(o.headers),u=0;u0?e.accepts(t):!1;return this.vary("Accept"),s?(this.set("Content-Type",II(s).value),r[s](e,this,a)):r.default?r.default(e,this,a):a(SI(406,{types:AI(t).map(function(i){return i.value})})),this};nt.attachment=function(e){return e&&this.type(DI(e)),this.set("Content-Disposition",Ob(e)),this};nt.append=function(e,a){var t=this.get(e),s=a;return t&&(s=Array.isArray(t)?t.concat(a):Array.isArray(a)?[t].concat(a):[t,a]),this.set(e,s)};nt.set=nt.header=function(e,a){if(arguments.length===2){var t=Array.isArray(a)?a.map(String):String(a);if(e.toLowerCase()==="content-type"){if(Array.isArray(t))throw new TypeError("Content-Type cannot be set to an Array");if(!MI.test(t)){var s=Ab.charsets.lookup(t.split(";")[0]);s&&(t+="; charset="+s.toLowerCase())}}this.setHeader(e,t)}else for(var i in e)this.set(i,e[i]);return this};nt.get=function(r){return this.getHeader(r)};nt.clearCookie=function(e,a){a&&(a.maxAge&&$t('res.clearCookie: Passing "options.maxAge" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'),a.expires&&$t('res.clearCookie: Passing "options.expires" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'));var t=Ib({expires:new Date(1),path:"/"},a);return this.cookie(e,"",t)};nt.cookie=function(r,e,a){var t=Ib({},a),s=this.req.secret,i=t.signed;if(i&&!s)throw new Error('cookieParser("secret") required for signed cookies');var n=typeof e=="object"?"j:"+JSON.stringify(e):String(e);if(i&&(n="s:"+CI(n,s)),t.maxAge!=null){var o=t.maxAge-0;isNaN(o)||(t.expires=new Date(Date.now()+o),t.maxAge=Math.floor(o/1e3))}return t.path==null&&(t.path="/"),this.append("Set-Cookie",NI.serialize(r,String(n),t)),this};nt.location=function(e){var a;return e==="back"?($t('res.location("back"): use res.location(req.get("Referrer") || "/") and refer to https://dub.sh/security-redirect for best practices'),a=this.req.get("Referrer")||"/"):a=String(e),this.set("Location",PI(a))};nt.redirect=function(e){var a=e,t,s=302;arguments.length===2&&(typeof arguments[0]=="number"?(s=arguments[0],a=arguments[1]):($t("res.redirect(url, status): Use res.redirect(status, url) instead"),s=arguments[1])),a=this.location(a).get("Location"),this.format({text:function(){t=Ko.message[s]+". Redirecting to "+a},html:function(){var i=RI(a);t="

"+Ko.message[s]+". Redirecting to "+i+"

"},default:function(){t=""}}),this.statusCode=s,this.set("Content-Length",bi.byteLength(t)),this.req.method==="HEAD"?this.end():this.end(t)};nt.vary=function(r){return!r||Array.isArray(r)&&!r.length?($t("res.vary(): Provide a field name"),this):(qI(this,r),this)};nt.render=function(e,a,t){var s=this.req.app,i=t,n=a||{},o=this.req,l=this;typeof a=="function"&&(i=a,n={}),n._locals=l.locals,i=i||function(c,u){if(c)return o.next(c);l.send(u)},s.render(e,n,i)};function jb(r,e,a,t){var s=!1,i;function n(){if(!s){s=!0;var f=new Error("Request aborted");f.code="ECONNABORTED",t(f)}}function o(){if(!s){s=!0;var f=new Error("EISDIR, read");f.code="EISDIR",t(f)}}function l(f){s||(s=!0,t(f))}function c(){s||(s=!0,t())}function u(){i=!1}function p(f){if(f&&f.code==="ECONNRESET")return n();if(f)return l(f);s||setImmediate(function(){if(i!==!1&&!s){n();return}s||(s=!0,t())})}function m(){i=!0}e.on("directory",o),e.on("end",c),e.on("error",l),e.on("file",u),e.on("stream",m),OI(r,p),a.headers&&e.on("headers",function(h){for(var d=a.headers,v=Object.keys(d),x=0;x&]/g,function(i){switch(i.charCodeAt(0)){case 60:return"\\u003c";case 62:return"\\u003e";case 38:return"\\u0026";default:return i}})),s}});var Mb=M((tF,hp)=>{"use strict";var FI=Co(),LI=di(),mp=Ys(),UI=require("path").resolve,qb=zo(),zI=require("url");hp.exports=HI;hp.exports.mime=qb.mime;function HI(r,e){if(!r)throw new TypeError("root path required");if(typeof r!="string")throw new TypeError("root path must be a string");var a=Object.create(e||null),t=a.fallthrough!==!1,s=a.redirect!==!1,i=a.setHeaders;if(i&&typeof i!="function")throw new TypeError("option setHeaders must be function");a.maxage=a.maxage||a.maxAge||0,a.root=UI(r);var n=s?ZI():GI();return function(l,c,u){if(l.method!=="GET"&&l.method!=="HEAD"){if(t)return u();c.statusCode=405,c.setHeader("Allow","GET, HEAD"),c.setHeader("Content-Length","0"),c.end();return}var p=!t,m=mp.original(l),f=mp(l).pathname;f==="/"&&m.pathname.substr(-1)!=="/"&&(f="");var h=qb(l,f,a);h.on("directory",n),i&&h.on("headers",i),t&&h.on("file",function(){p=!0}),h.on("error",function(v){if(p||!(v.statusCode<500)){u(v);return}u()}),h.pipe(c)}}function BI(r){for(var e=0;e1?"/"+r.substr(e):r}function VI(r,e){return` @@ -49,11 +49,11 @@ Please see the 3.x to 4.x migration guide for details on how to update your app.
`+e+`
-`}function GI(){return function(){this.error(404)}}function ZI(){return function(e){if(this.hasTrailingSlash()){this.error(404);return}var a=mp.original(this.req);a.path=null,a.pathname=BI(a.pathname+"/");var t=FI(zI.format(a)),s=VI("Redirecting","Redirecting to "+LI(t));e.statusCode=301,e.setHeader("Content-Type","text/html; charset=UTF-8"),e.setHeader("Content-Length",Buffer.byteLength(s)),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Location",t),e.end(s)}}});var Bb=M((qt,Hb)=>{"use strict";var Qo=dg(),WI=require("events").EventEmitter,Fb=mg(),Lb=Wy(),KI=Mu(),QI=Lu(),Ub=xb(),zb=$b();qt=Hb.exports=XI;function XI(){var r=function(e,a,t){r.handle(e,a,t)};return Fb(r,WI.prototype,!1),Fb(r,Lb,!1),r.request=Object.create(Ub,{app:{configurable:!0,enumerable:!0,writable:!0,value:r}}),r.response=Object.create(zb,{app:{configurable:!0,enumerable:!0,writable:!0,value:r}}),r.init(),r}qt.application=Lb;qt.request=Ub;qt.response=zb;qt.Route=KI;qt.Router=QI;qt.json=Qo.json;qt.query=Uu();qt.raw=Qo.raw;qt.static=Mb();qt.text=Qo.text;qt.urlencoded=Qo.urlencoded;var JI=["bodyParser","compress","cookieSession","session","logger","cookieParser","favicon","responseTime","errorHandler","timeout","methodOverride","vhost","csrf","directory","limit","multipart","staticCache"];JI.forEach(function(r){Object.defineProperty(qt,r,{get:function(){throw new Error("Most middleware (like "+r+") is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.")},configurable:!0})})});var Gb=M((rF,Vb)=>{"use strict";Vb.exports=Bb()});var Kb=M((aF,Wb)=>{"use strict";var Zb=Object.getOwnPropertySymbols,YI=Object.prototype.hasOwnProperty,eA=Object.prototype.propertyIsEnumerable;function tA(r){if(r==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(r)}function rA(){try{if(!Object.assign)return!1;var r=new String("abc");if(r[5]="de",Object.getOwnPropertyNames(r)[0]==="5")return!1;for(var e={},a=0;a<10;a++)e["_"+String.fromCharCode(a)]=a;var t=Object.getOwnPropertyNames(e).map(function(i){return e[i]});if(t.join("")!=="0123456789")return!1;var s={};return"abcdefghijklmnopqrst".split("").forEach(function(i){s[i]=i}),Object.keys(Object.assign({},s)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}Wb.exports=rA()?Object.assign:function(r,e){for(var a,t=tA(r),s,i=1;i{(function(){"use strict";var r=Kb(),e=dp(),a={origin:"*",methods:"GET,HEAD,PUT,PATCH,POST,DELETE",preflightContinue:!1,optionsSuccessStatus:204};function t(h){return typeof h=="string"||h instanceof String}function s(h,d){if(Array.isArray(d)){for(var v=0;v{(function(r,e){typeof hc=="object"&&typeof Ix<"u"?e(hc):typeof define=="function"&&define.amd?define(["exports"],e):e(r.URI=r.URI||{})})(hc,(function(r){"use strict";function e(){for(var N=arguments.length,T=Array(N),x=0;x1){T[0]=T[0].slice(0,-1);for(var y=T.length-1,S=1;S= 0x80 (not a basic code point)","invalid-input":"Invalid input"},A=f-h,F=Math.floor,q=String.fromCharCode;function C(N){throw new RangeError($[N])}function R(N,T){for(var x=[],y=N.length;y--;)x[y]=T(N[y]);return x}function j(N,T){var x=N.split("@"),y="";x.length>1&&(y=x[0]+"@",N=x[1]),N=N.replace(I,".");var S=N.split("."),D=R(S,T).join(".");return y+D}function z(N){for(var T=[],x=0,y=N.length;x=55296&&S<=56319&&x>1,T+=F(T/x);T>A*d>>1;S+=f)T=F(T/A);return F(S+(A+1)*T/(T+v))},V=function(T){var x=[],y=T.length,S=0,D=E,L=b,K=T.lastIndexOf(k);K<0&&(K=0);for(var ne=0;ne=128&&C("not-basic"),x.push(T.charCodeAt(ne));for(var ge=K>0?K+1:0;ge=y&&C("invalid-input");var Re=G(T.charCodeAt(ge++));(Re>=f||Re>F((m-S)/Ae))&&C("overflow"),S+=Re*Ae;var ye=ve<=L?h:ve>=L+d?d:ve-L;if(ReF(m/Te)&&C("overflow"),Ae*=Te}var de=x.length+1;L=X(S-pe,de,pe==0),F(S/de)>m-D&&C("overflow"),D+=F(S/de),S%=de,x.splice(S++,0,D)}return String.fromCodePoint.apply(String,x)},re=function(T){var x=[];T=z(T);var y=T.length,S=E,D=0,L=b,K=!0,ne=!1,ge=void 0;try{for(var pe=T[Symbol.iterator](),Ae;!(K=(Ae=pe.next()).done);K=!0){var ve=Ae.value;ve<128&&x.push(q(ve))}}catch(At){ne=!0,ge=At}finally{try{!K&&pe.return&&pe.return()}finally{if(ne)throw ge}}var Re=x.length,ye=Re;for(Re&&x.push(k);ye=S&&stF((m-D)/Fe)&&C("overflow"),D+=(Te-S)*Fe,S=Te;var it=!0,dt=!1,ft=void 0;try{for(var Ht=T[Symbol.iterator](),It;!(it=(It=Ht.next()).done);it=!0){var Tr=It.value;if(Trm&&C("overflow"),Tr==S){for(var vr=D,gr=f;;gr+=f){var St=gr<=L?h:gr>=L+d?d:gr-L;if(vr>6|192).toString(16).toUpperCase()+"%"+(T&63|128).toString(16).toUpperCase():x="%"+(T>>12|224).toString(16).toUpperCase()+"%"+(T>>6&63|128).toString(16).toUpperCase()+"%"+(T&63|128).toString(16).toUpperCase(),x}function Oe(N){for(var T="",x=0,y=N.length;x=194&&S<224){if(y-x>=6){var D=parseInt(N.substr(x+4,2),16);T+=String.fromCharCode((S&31)<<6|D&63)}else T+=N.substr(x,6);x+=6}else if(S>=224){if(y-x>=9){var L=parseInt(N.substr(x+4,2),16),K=parseInt(N.substr(x+7,2),16);T+=String.fromCharCode((S&15)<<12|(L&63)<<6|K&63)}else T+=N.substr(x,9);x+=9}else T+=N.substr(x,3),x+=3}return T}function U(N,T){function x(y){var S=Oe(y);return S.match(T.UNRESERVED)?S:y}return N.scheme&&(N.scheme=String(N.scheme).replace(T.PCT_ENCODED,x).toLowerCase().replace(T.NOT_SCHEME,"")),N.userinfo!==void 0&&(N.userinfo=String(N.userinfo).replace(T.PCT_ENCODED,x).replace(T.NOT_USERINFO,xe).replace(T.PCT_ENCODED,s)),N.host!==void 0&&(N.host=String(N.host).replace(T.PCT_ENCODED,x).toLowerCase().replace(T.NOT_HOST,xe).replace(T.PCT_ENCODED,s)),N.path!==void 0&&(N.path=String(N.path).replace(T.PCT_ENCODED,x).replace(N.scheme?T.NOT_PATH:T.NOT_PATH_NOSCHEME,xe).replace(T.PCT_ENCODED,s)),N.query!==void 0&&(N.query=String(N.query).replace(T.PCT_ENCODED,x).replace(T.NOT_QUERY,xe).replace(T.PCT_ENCODED,s)),N.fragment!==void 0&&(N.fragment=String(N.fragment).replace(T.PCT_ENCODED,x).replace(T.NOT_FRAGMENT,xe).replace(T.PCT_ENCODED,s)),N}function Z(N){return N.replace(/^0*(.*)/,"$1")||"0"}function ee(N,T){var x=N.match(T.IPV4ADDRESS)||[],y=u(x,2),S=y[1];return S?S.split(".").map(Z).join("."):N}function ue(N,T){var x=N.match(T.IPV6ADDRESS)||[],y=u(x,3),S=y[1],D=y[2];if(S){for(var L=S.toLowerCase().split("::").reverse(),K=u(L,2),ne=K[0],ge=K[1],pe=ge?ge.split(":").map(Z):[],Ae=ne.split(":").map(Z),ve=T.IPV4ADDRESS.test(Ae[Ae.length-1]),Re=ve?7:8,ye=Ae.length-Re,Te=Array(Re),de=0;de1){var Me=Te.slice(0,Ne.index),st=Te.slice(Ne.index+Ne.length);pt=Me.join(":")+"::"+st.join(":")}else pt=Te.join(":");return D&&(pt+="%"+D),pt}else return N}var W=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,Q="".match(/(){0}/)[1]===void 0;function ie(N){var T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},x={},y=T.iri!==!1?c:l;T.reference==="suffix"&&(N=(T.scheme?T.scheme+":":"")+"//"+N);var S=N.match(W);if(S){Q?(x.scheme=S[1],x.userinfo=S[3],x.host=S[4],x.port=parseInt(S[5],10),x.path=S[6]||"",x.query=S[7],x.fragment=S[8],isNaN(x.port)&&(x.port=S[5])):(x.scheme=S[1]||void 0,x.userinfo=N.indexOf("@")!==-1?S[3]:void 0,x.host=N.indexOf("//")!==-1?S[4]:void 0,x.port=parseInt(S[5],10),x.path=S[6]||"",x.query=N.indexOf("?")!==-1?S[7]:void 0,x.fragment=N.indexOf("#")!==-1?S[8]:void 0,isNaN(x.port)&&(x.port=N.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?S[4]:void 0)),x.host&&(x.host=ue(ee(x.host,y),y)),x.scheme===void 0&&x.userinfo===void 0&&x.host===void 0&&x.port===void 0&&!x.path&&x.query===void 0?x.reference="same-document":x.scheme===void 0?x.reference="relative":x.fragment===void 0?x.reference="absolute":x.reference="uri",T.reference&&T.reference!=="suffix"&&T.reference!==x.reference&&(x.error=x.error||"URI is not a "+T.reference+" reference.");var D=qe[(T.scheme||x.scheme||"").toLowerCase()];if(!T.unicodeSupport&&(!D||!D.unicodeSupport)){if(x.host&&(T.domainHost||D&&D.domainHost))try{x.host=be.toASCII(x.host.replace(y.PCT_ENCODED,Oe).toLowerCase())}catch(L){x.error=x.error||"Host's domain name can not be converted to ASCII via punycode: "+L}U(x,l)}else U(x,y);D&&D.parse&&D.parse(x,T)}else x.error=x.error||"URI can not be parsed.";return x}function Ie(N,T){var x=T.iri!==!1?c:l,y=[];return N.userinfo!==void 0&&(y.push(N.userinfo),y.push("@")),N.host!==void 0&&y.push(ue(ee(String(N.host),x),x).replace(x.IPV6ADDRESS,function(S,D,L){return"["+D+(L?"%25"+L:"")+"]"})),(typeof N.port=="number"||typeof N.port=="string")&&(y.push(":"),y.push(String(N.port))),y.length?y.join(""):void 0}var he=/^\.\.?\//,Ze=/^\/\.(\/|$)/,We=/^\/\.\.(\/|$)/,Ee=/^\/?(?:.|\n)*?(?=\/|$)/;function Ye(N){for(var T=[];N.length;)if(N.match(he))N=N.replace(he,"");else if(N.match(Ze))N=N.replace(Ze,"/");else if(N.match(We))N=N.replace(We,"/"),T.pop();else if(N==="."||N==="..")N="";else{var x=N.match(Ee);if(x){var y=x[0];N=N.slice(y.length),T.push(y)}else throw new Error("Unexpected dot segment condition")}return T.join("")}function Ue(N){var T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},x=T.iri?c:l,y=[],S=qe[(T.scheme||N.scheme||"").toLowerCase()];if(S&&S.serialize&&S.serialize(N,T),N.host&&!x.IPV6ADDRESS.test(N.host)){if(T.domainHost||S&&S.domainHost)try{N.host=T.iri?be.toUnicode(N.host):be.toASCII(N.host.replace(x.PCT_ENCODED,Oe).toLowerCase())}catch(K){N.error=N.error||"Host's domain name can not be converted to "+(T.iri?"Unicode":"ASCII")+" via punycode: "+K}}U(N,x),T.reference!=="suffix"&&N.scheme&&(y.push(N.scheme),y.push(":"));var D=Ie(N,T);if(D!==void 0&&(T.reference!=="suffix"&&y.push("//"),y.push(D),N.path&&N.path.charAt(0)!=="/"&&y.push("/")),N.path!==void 0){var L=N.path;!T.absolutePath&&(!S||!S.absolutePath)&&(L=Ye(L)),D===void 0&&(L=L.replace(/^\/\//,"/%2F")),y.push(L)}return N.query!==void 0&&(y.push("?"),y.push(N.query)),N.fragment!==void 0&&(y.push("#"),y.push(N.fragment)),y.join("")}function Qe(N,T){var x=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},y=arguments[3],S={};return y||(N=ie(Ue(N,x),x),T=ie(Ue(T,x),x)),x=x||{},!x.tolerant&&T.scheme?(S.scheme=T.scheme,S.userinfo=T.userinfo,S.host=T.host,S.port=T.port,S.path=Ye(T.path||""),S.query=T.query):(T.userinfo!==void 0||T.host!==void 0||T.port!==void 0?(S.userinfo=T.userinfo,S.host=T.host,S.port=T.port,S.path=Ye(T.path||""),S.query=T.query):(T.path?(T.path.charAt(0)==="/"?S.path=Ye(T.path):((N.userinfo!==void 0||N.host!==void 0||N.port!==void 0)&&!N.path?S.path="/"+T.path:N.path?S.path=N.path.slice(0,N.path.lastIndexOf("/")+1)+T.path:S.path=T.path,S.path=Ye(S.path)),S.query=T.query):(S.path=N.path,T.query!==void 0?S.query=T.query:S.query=N.query),S.userinfo=N.userinfo,S.host=N.host,S.port=N.port),S.scheme=N.scheme),S.fragment=T.fragment,S}function Ve(N,T,x){var y=n({scheme:"null"},x);return Ue(Qe(ie(N,y),ie(T,y),y,!0),y)}function Ke(N,T){return typeof N=="string"?N=Ue(ie(N,T),T):t(N)==="object"&&(N=ie(Ue(N,T),T)),N}function bt(N,T,x){return typeof N=="string"?N=Ue(ie(N,x),x):t(N)==="object"&&(N=Ue(N,x)),typeof T=="string"?T=Ue(ie(T,x),x):t(T)==="object"&&(T=Ue(T,x)),N===T}function xt(N,T){return N&&N.toString().replace(!T||!T.iri?l.ESCAPE:c.ESCAPE,xe)}function wt(N,T){return N&&N.toString().replace(!T||!T.iri?l.PCT_ENCODED:c.PCT_ENCODED,Oe)}var Br={scheme:"http",domainHost:!0,parse:function(T,x){return T.host||(T.error=T.error||"HTTP URIs must have a host."),T},serialize:function(T,x){var y=String(T.scheme).toLowerCase()==="https";return(T.port===(y?443:80)||T.port==="")&&(T.port=void 0),T.path||(T.path="/"),T}},Ct={scheme:"https",domainHost:Br.domainHost,parse:Br.parse,serialize:Br.serialize};function ia(N){return typeof N.secure=="boolean"?N.secure:String(N.scheme).toLowerCase()==="wss"}var oa={scheme:"ws",domainHost:!0,parse:function(T,x){var y=T;return y.secure=ia(y),y.resourceName=(y.path||"/")+(y.query?"?"+y.query:""),y.path=void 0,y.query=void 0,y},serialize:function(T,x){if((T.port===(ia(T)?443:80)||T.port==="")&&(T.port=void 0),typeof T.secure=="boolean"&&(T.scheme=T.secure?"wss":"ws",T.secure=void 0),T.resourceName){var y=T.resourceName.split("?"),S=u(y,2),D=S[0],L=S[1];T.path=D&&D!=="/"?D:void 0,T.query=L,T.resourceName=void 0}return T.fragment=void 0,T}},Nn={scheme:"wss",domainHost:oa.domainHost,parse:oa.parse,serialize:oa.serialize},Ia={},qi=!0,Mi="[A-Za-z0-9\\-\\.\\_\\~"+(qi?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",Jt="[0-9A-Fa-f]",Fi=a(a("%[EFef]"+Jt+"%"+Jt+Jt+"%"+Jt+Jt)+"|"+a("%[89A-Fa-f]"+Jt+"%"+Jt+Jt)+"|"+a("%"+Jt+Jt)),Yt="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",ol="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",cl=e(ol,'[\\"\\\\]'),ll="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",ul=new RegExp(Mi,"g"),ca=new RegExp(Fi,"g"),pl=new RegExp(e("[^]",Yt,"[\\.]",'[\\"]',cl),"g"),Vr=new RegExp(e("[^]",Mi,ll),"g"),dl=Vr;function js(N){var T=Oe(N);return T.match(ul)?T:N}var Li={scheme:"mailto",parse:function(T,x){var y=T,S=y.to=y.path?y.path.split(","):[];if(y.path=void 0,y.query){for(var D=!1,L={},K=y.query.split("&"),ne=0,ge=K.length;ne{"use strict";jx.exports=function r(e,a){if(e===a)return!0;if(e&&a&&typeof e=="object"&&typeof a=="object"){if(e.constructor!==a.constructor)return!1;var t,s,i;if(Array.isArray(e)){if(t=e.length,t!=a.length)return!1;for(s=t;s--!==0;)if(!r(e[s],a[s]))return!1;return!0}if(e.constructor===RegExp)return e.source===a.source&&e.flags===a.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===a.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===a.toString();if(i=Object.keys(e),t=i.length,t!==Object.keys(a).length)return!1;for(s=t;s--!==0;)if(!Object.prototype.hasOwnProperty.call(a,i[s]))return!1;for(s=t;s--!==0;){var n=i[s];if(!r(e[n],a[n]))return!1}return!0}return e!==e&&a!==a}});var Dx=M((aL,Nx)=>{"use strict";Nx.exports=function(e){for(var a=0,t=e.length,s=0,i;s=55296&&i<=56319&&s{"use strict";Mx.exports={copy:d8,checkDataType:Mp,checkDataTypes:f8,coerceToTypes:m8,toHash:Lp,getProperty:Up,escapeQuotes:zp,equal:vc(),ucs2length:Dx(),varOccurences:g8,varReplace:y8,schemaHasRules:b8,schemaHasRulesExcept:x8,schemaUnknownRules:_8,toQuotedString:Fp,getPathExpr:E8,getPath:w8,getData:R8,unescapeFragment:T8,unescapeJsonPointer:Bp,escapeFragment:k8,escapeJsonPointer:Hp};function d8(r,e){e=e||{};for(var a in r)e[a]=r[a];return e}function Mp(r,e,a,t){var s=t?" !== ":" === ",i=t?" || ":" && ",n=t?"!":"",o=t?"":"!";switch(r){case"null":return e+s+"null";case"array":return n+"Array.isArray("+e+")";case"object":return"("+n+e+i+"typeof "+e+s+'"object"'+i+o+"Array.isArray("+e+"))";case"integer":return"(typeof "+e+s+'"number"'+i+o+"("+e+" % 1)"+i+e+s+e+(a?i+n+"isFinite("+e+")":"")+")";case"number":return"(typeof "+e+s+'"'+r+'"'+(a?i+n+"isFinite("+e+")":"")+")";default:return"typeof "+e+s+'"'+r+'"'}}function f8(r,e,a){switch(r.length){case 1:return Mp(r[0],e,a,!0);default:var t="",s=Lp(r);s.array&&s.object&&(t=s.null?"(":"(!"+e+" || ",t+="typeof "+e+' !== "object")',delete s.null,delete s.array,delete s.object),s.number&&delete s.integer;for(var i in s)t+=(t?" && ":"")+Mp(i,e,a,!0);return t}}var $x=Lp(["string","number","integer","boolean","null"]);function m8(r,e){if(Array.isArray(e)){for(var a=[],t=0;t=e)throw new Error("Cannot access property/index "+t+" levels up, current level is "+e);return a[e-t]}if(t>e)throw new Error("Cannot access data "+t+" levels up, current level is "+e);if(i="data"+(e-t||""),!s)return i}for(var o=i,l=s.split("/"),c=0;c{"use strict";var O8=fs();Fx.exports=C8;function C8(r){O8.copy(r,this)}});var Ux=M((iL,Lx)=>{"use strict";var Pa=Lx.exports=function(r,e,a){typeof e=="function"&&(a=e,e={}),a=e.cb||a;var t=typeof a=="function"?a:a.pre||function(){},s=a.post||function(){};gc(e,t,s,r,"",r)};Pa.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0};Pa.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Pa.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Pa.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function gc(r,e,a,t,s,i,n,o,l,c){if(t&&typeof t=="object"&&!Array.isArray(t)){e(t,s,i,n,o,l,c);for(var u in t){var p=t[u];if(Array.isArray(p)){if(u in Pa.arrayKeywords)for(var m=0;m{"use strict";var Ri=Ax(),zx=vc(),_c=fs(),yc=Vp(),A8=Ux();Vx.exports=Ta;Ta.normalizeId=Ra;Ta.fullPath=bc;Ta.url=xc;Ta.ids=q8;Ta.inlineRef=Gp;Ta.schema=Ec;function Ta(r,e,a){var t=this._refs[a];if(typeof t=="string")if(this._refs[t])t=this._refs[t];else return Ta.call(this,r,e,t);if(t=t||this._schemas[a],t instanceof yc)return Gp(t.schema,this._opts.inlineRefs)?t.schema:t.validate||this._compile(t);var s=Ec.call(this,e,a),i,n,o;return s&&(i=s.schema,e=s.root,o=s.baseId),i instanceof yc?n=i.validate||r.call(this,i.schema,e,void 0,o):i!==void 0&&(n=Gp(i,this._opts.inlineRefs)?i:r.call(this,i,e,void 0,o)),n}function Ec(r,e){var a=Ri.parse(e),t=Bx(a),s=bc(this._getId(r.schema));if(Object.keys(r.schema).length===0||t!==s){var i=Ra(t),n=this._refs[i];if(typeof n=="string")return j8.call(this,r,n,a);if(n instanceof yc)n.validate||this._compile(n),r=n;else if(n=this._schemas[i],n instanceof yc){if(n.validate||this._compile(n),i==Ra(e))return{schema:n,root:r,baseId:s};r=n}else return;if(!r.schema)return;s=bc(this._getId(r.schema))}return Hx.call(this,a,s,r.schema,r)}function j8(r,e,a){var t=Ec.call(this,r,e);if(t){var s=t.schema,i=t.baseId;r=t.root;var n=this._getId(s);return n&&(i=xc(i,n)),Hx.call(this,a,i,s,r)}}var N8=_c.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function Hx(r,e,a,t){if(r.fragment=r.fragment||"",r.fragment.slice(0,1)=="/"){for(var s=r.fragment.split("/"),i=1;i{"use strict";var Kp=wc();Zx.exports={Validation:Gx(M8),MissingRef:Gx(Qp)};function M8(r){this.message="validation failed",this.errors=r,this.ajv=this.validation=!0}Qp.message=function(r,e){return"can't resolve reference "+e+" from id "+r};function Qp(r,e,a){this.message=a||Qp.message(r,e),this.missingRef=Kp.url(r,e),this.missingSchema=Kp.normalizeId(Kp.fullPath(this.missingRef))}function Gx(r){return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}});var Xp=M((lL,Wx)=>{"use strict";Wx.exports=function(r,e){e||(e={}),typeof e=="function"&&(e={cmp:e});var a=typeof e.cycles=="boolean"?e.cycles:!1,t=e.cmp&&(function(i){return function(n){return function(o,l){var c={key:o,value:n[o]},u={key:l,value:n[l]};return i(c,u)}}})(e.cmp),s=[];return(function i(n){if(n&&n.toJSON&&typeof n.toJSON=="function"&&(n=n.toJSON()),n!==void 0){if(typeof n=="number")return isFinite(n)?""+n:"null";if(typeof n!="object")return JSON.stringify(n);var o,l;if(Array.isArray(n)){for(l="[",o=0;o{"use strict";Kx.exports=function(e,a,t){var s="",i=e.schema.$async===!0,n=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"),o=e.self._getId(e.schema);if(e.opts.strictKeywords){var l=e.util.schemaUnknownRules(e.schema,e.RULES.keywords);if(l){var c="unknown keyword: "+l;if(e.opts.strictKeywords==="log")e.logger.warn(c);else throw new Error(c)}}if(e.isTop&&(s+=" var validate = ",i&&(e.async=!0,s+="async "),s+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",o&&(e.opts.sourceCode||e.opts.processCode)&&(s+=" "+("/*# sourceURL="+o+" */")+" ")),typeof e.schema=="boolean"||!(n||e.schema.$ref)){var a="false schema",u=e.level,p=e.dataLevel,m=e.schema[a],f=e.schemaPath+e.util.getProperty(a),h=e.errSchemaPath+"/"+a,O=!e.opts.allErrors,$,d="data"+(p||""),k="valid"+u;if(e.schema===!1){e.isTop?O=!0:s+=" var "+k+" = false; ";var v=v||[];v.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+($||"false schema")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'boolean schema is false' "),e.opts.verbose&&(s+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),s+=" } "):s+=" {} ";var g=s;s=v.pop(),!e.compositeRule&&O?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else e.isTop?i?s+=" return data; ":s+=" validate.errors = null; return true; ":s+=" var "+k+" = true; ";return e.isTop&&(s+=" }; return validate; "),s}if(e.isTop){var b=e.isTop,u=e.level=0,p=e.dataLevel=0,d="data";if(e.rootId=e.resolve.fullPath(e.self._getId(e.root.schema)),e.baseId=e.baseId||e.rootId,delete e.isTop,e.dataPathArr=[""],e.schema.default!==void 0&&e.opts.useDefaults&&e.opts.strictDefaults){var E="default is ignored in the schema root";if(e.opts.strictDefaults==="log")e.logger.warn(E);else throw new Error(E)}s+=" var vErrors = null; ",s+=" var errors = 0; ",s+=" if (rootData === undefined) rootData = data; "}else{var u=e.level,p=e.dataLevel,d="data"+(p||"");if(o&&(e.baseId=e.resolve.url(e.baseId,o)),i&&!e.async)throw new Error("async schema in sync schema");s+=" var errs_"+u+" = errors;"}var k="valid"+u,O=!e.opts.allErrors,P="",I="",$,A=e.schema.type,F=Array.isArray(A);if(A&&e.opts.nullable&&e.schema.nullable===!0&&(F?A.indexOf("null")==-1&&(A=A.concat("null")):A!="null"&&(A=[A,"null"],F=!0)),F&&A.length==1&&(A=A[0],F=!1),e.schema.$ref&&n){if(e.opts.extendRefs=="fail")throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'" (see option extendRefs)');e.opts.extendRefs!==!0&&(n=!1,e.logger.warn('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"'))}if(e.schema.$comment&&e.opts.$comment&&(s+=" "+e.RULES.all.$comment.code(e,"$comment")),A){if(e.opts.coerceTypes)var q=e.util.coerceToTypes(e.opts.coerceTypes,A);var C=e.RULES.types[A];if(q||F||C===!0||C&&!Ee(C)){var f=e.schemaPath+".type",h=e.errSchemaPath+"/type",f=e.schemaPath+".type",h=e.errSchemaPath+"/type",R=F?"checkDataTypes":"checkDataType";if(s+=" if ("+e.util[R](A,d,e.opts.strictNumbers,!0)+") { ",q){var j="dataType"+u,z="coerced"+u;s+=" var "+j+" = typeof "+d+"; var "+z+" = undefined; ",e.opts.coerceTypes=="array"&&(s+=" if ("+j+" == 'object' && Array.isArray("+d+") && "+d+".length == 1) { "+d+" = "+d+"[0]; "+j+" = typeof "+d+"; if ("+e.util.checkDataType(e.schema.type,d,e.opts.strictNumbers)+") "+z+" = "+d+"; } "),s+=" if ("+z+" !== undefined) ; ";var B=q;if(B)for(var G,te=-1,X=B.length-1;te{"use strict";var Pc=wc(),Tc=fs(),Xx=Sc(),F8=Xp(),Qx=Jp(),L8=Tc.ucs2length,U8=vc(),z8=Xx.Validation;Yx.exports=Yp;function Yp(r,e,a,t){var s=this,i=this._opts,n=[void 0],o={},l=[],c={},u=[],p={},m=[];e=e||{schema:r,refVal:n,refs:o};var f=H8.call(this,r,e,t),h=this._compilations[f.index];if(f.compiling)return h.callValidate=E;var d=this._formats,v=this.RULES;try{var g=k(r,e,a,t);h.validate=g;var b=h.callValidate;return b&&(b.schema=g.schema,b.errors=null,b.refs=g.refs,b.refVal=g.refVal,b.root=g.root,b.$async=g.$async,i.sourceCode&&(b.source=g.source)),g}finally{B8.call(this,r,e,t)}function E(){var R=h.validate,j=R.apply(this,arguments);return E.errors=R.errors,j}function k(R,j,z,B){var G=!j||j&&j.schema==R;if(j.schema!=e.schema)return Yp.call(s,R,j,z,B);var te=R.$async===!0,X=Qx({isTop:!0,schema:R,isRoot:G,baseId:B,root:j,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:Xx.MissingRef,RULES:v,validate:Qx,util:Tc,resolve:Pc,resolveRef:O,usePattern:F,useDefault:q,useCustomRule:C,opts:i,formats:d,logger:s.logger,self:s});X=Rc(n,Z8)+Rc(l,V8)+Rc(u,G8)+Rc(m,W8)+X,i.processCode&&(X=i.processCode(X,R));var V;try{var re=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",X);V=re(s,v,d,e,n,u,m,U8,L8,z8),n[0]=V}catch(ce){throw s.logger.error("Error compiling schema, function code:",X),ce}return V.schema=R,V.errors=null,V.refs=o,V.refVal=n,V.root=G?V:j,te&&(V.$async=!0),i.sourceCode===!0&&(V.source={code:X,patterns:l,defaults:u}),V}function O(R,j,z){j=Pc.url(R,j);var B=o[j],G,te;if(B!==void 0)return G=n[B],te="refVal["+B+"]",A(G,te);if(!z&&e.refs){var X=e.refs[j];if(X!==void 0)return G=e.refVal[X],te=P(j,G),A(G,te)}te=P(j);var V=Pc.call(s,k,e,j);if(V===void 0){var re=a&&a[j];re&&(V=Pc.inlineRef(re,i.inlineRefs)?re:Yp.call(s,re,e,a,R))}if(V===void 0)I(j);else return $(j,V),A(V,te)}function P(R,j){var z=n.length;return n[z]=j,o[R]=z,"refVal"+z}function I(R){delete o[R]}function $(R,j){var z=o[R];n[z]=j}function A(R,j){return typeof R=="object"||typeof R=="boolean"?{code:j,schema:R,inline:!0}:{code:j,$async:R&&!!R.$async}}function F(R){var j=c[R];return j===void 0&&(j=c[R]=l.length,l[j]=R),"pattern"+j}function q(R){switch(typeof R){case"boolean":case"number":return""+R;case"string":return Tc.toQuotedString(R);case"object":if(R===null)return"null";var j=F8(R),z=p[j];return z===void 0&&(z=p[j]=u.length,u[z]=R),"default"+z}}function C(R,j,z,B){if(s._opts.validateSchema!==!1){var G=R.definition.dependencies;if(G&&!G.every(function(xe){return Object.prototype.hasOwnProperty.call(z,xe)}))throw new Error("parent schema must have all required keywords: "+G.join(","));var te=R.definition.validateSchema;if(te){var X=te(j);if(!X){var V="keyword schema is invalid: "+s.errorsText(te.errors);if(s._opts.validateSchema=="log")s.logger.error(V);else throw new Error(V)}}}var re=R.definition.compile,ce=R.definition.inline,Be=R.definition.macro,be;if(re)be=re.call(s,j,z,B);else if(Be)be=Be.call(s,j,z,B),i.validateSchema!==!1&&s.validateSchema(be,!0);else if(ce)be=ce.call(s,B,R.keyword,j,z);else if(be=R.definition.validate,!be)return;if(be===void 0)throw new Error('custom keyword "'+R.keyword+'"failed to compile');var qe=m.length;return m[qe]=be,{code:"customRule"+qe,validate:be}}}function H8(r,e,a){var t=Jx.call(this,r,e,a);return t>=0?{index:t,compiling:!0}:(t=this._compilations.length,this._compilations[t]={schema:r,root:e,baseId:a},{index:t,compiling:!1})}function B8(r,e,a){var t=Jx.call(this,r,e,a);t>=0&&this._compilations.splice(t,1)}function Jx(r,e,a){for(var t=0;t{"use strict";var kc=t0.exports=function(){this._cache={}};kc.prototype.put=function(e,a){this._cache[e]=a};kc.prototype.get=function(e){return this._cache[e]};kc.prototype.del=function(e){delete this._cache[e]};kc.prototype.clear=function(){this._cache={}}});var m0=M((fL,f0)=>{"use strict";var K8=fs(),Q8=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,X8=[0,31,28,31,30,31,30,31,31,30,31,30,31],J8=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,a0=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,Y8=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,e9=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,s0=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,n0=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,i0=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,o0=/^(?:\/(?:[^~/]|~0|~1)*)*$/,c0=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,l0=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;f0.exports=Oc;function Oc(r){return r=r=="full"?"full":"fast",K8.copy(Oc[r])}Oc.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":s0,url:n0,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:a0,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:d0,uuid:i0,"json-pointer":o0,"json-pointer-uri-fragment":c0,"relative-json-pointer":l0};Oc.full={date:u0,time:p0,"date-time":a9,uri:n9,"uri-reference":e9,"uri-template":s0,url:n0,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:a0,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:d0,uuid:i0,"json-pointer":o0,"json-pointer-uri-fragment":c0,"relative-json-pointer":l0};function t9(r){return r%4===0&&(r%100!==0||r%400===0)}function u0(r){var e=r.match(Q8);if(!e)return!1;var a=+e[1],t=+e[2],s=+e[3];return t>=1&&t<=12&&s>=1&&s<=(t==2&&t9(a)?29:X8[t])}function p0(r,e){var a=r.match(J8);if(!a)return!1;var t=a[1],s=a[2],i=a[3],n=a[5];return(t<=23&&s<=59&&i<=59||t==23&&s==59&&i==60)&&(!e||n)}var r9=/t|\s/i;function a9(r){var e=r.split(r9);return e.length==2&&u0(e[0])&&p0(e[1],!0)}var s9=/\/|:/;function n9(r){return s9.test(r)&&Y8.test(r)}var i9=/[^\\]\\Z/;function d0(r){if(i9.test(r))return!1;try{return new RegExp(r),!0}catch{return!1}}});var v0=M((mL,h0)=>{"use strict";h0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.errSchemaPath+"/"+a,c=!e.opts.allErrors,u="data"+(n||""),p="valid"+i,m,f;if(o=="#"||o=="#/")e.isRoot?(m=e.async,f="validate"):(m=e.root.schema.$async===!0,f="root.refVal[0]");else{var h=e.resolveRef(e.baseId,o,e.isRoot);if(h===void 0){var d=e.MissingRefError.message(e.baseId,o);if(e.opts.missingRefs=="fail"){e.logger.error(d);var v=v||[];v.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { ref: '"+e.util.escapeQuotes(o)+"' } ",e.opts.messages!==!1&&(s+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(o)+"' "),e.opts.verbose&&(s+=" , schema: "+e.util.toQuotedString(o)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var g=s;s=v.pop(),!e.compositeRule&&c?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(s+=" if (false) { ")}else if(e.opts.missingRefs=="ignore")e.logger.warn(d),c&&(s+=" if (true) { ");else throw new e.MissingRefError(e.baseId,o,d)}else if(h.inline){var b=e.util.copy(e);b.level++;var E="valid"+b.level;b.schema=h.schema,b.schemaPath="",b.errSchemaPath=o;var k=e.validate(b).replace(/validate\.schema/g,h.code);s+=" "+k+" ",c&&(s+=" if ("+E+") { ")}else m=h.$async===!0||e.async&&h.$async!==!1,f=h.code}if(f){var v=v||[];v.push(s),s="",e.opts.passContext?s+=" "+f+".call(this, ":s+=" "+f+"( ",s+=" "+u+", (dataPath || '')",e.errorPath!='""'&&(s+=" + "+e.errorPath);var O=n?"data"+(n-1||""):"parentData",P=n?e.dataPathArr[n]:"parentDataProperty";s+=" , "+O+" , "+P+", rootData) ";var I=s;if(s=v.pop(),m){if(!e.async)throw new Error("async schema referenced by sync schema");c&&(s+=" var "+p+"; "),s+=" try { await "+I+"; ",c&&(s+=" "+p+" = true; "),s+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",c&&(s+=" "+p+" = false; "),s+=" } ",c&&(s+=" if ("+p+") { ")}else s+=" if (!"+I+") { if (vErrors === null) vErrors = "+f+".errors; else vErrors = vErrors.concat("+f+".errors); errors = vErrors.length; } ",c&&(s+=" else { ")}return s}});var y0=M((hL,g0)=>{"use strict";g0.exports=function(e,a,t){var s=" ",i=e.schema[a],n=e.schemaPath+e.util.getProperty(a),o=e.errSchemaPath+"/"+a,l=!e.opts.allErrors,c=e.util.copy(e),u="";c.level++;var p="valid"+c.level,m=c.baseId,f=!0,h=i;if(h)for(var d,v=-1,g=h.length-1;v0||d===!1:e.util.schemaHasRules(d,e.RULES.all))&&(f=!1,c.schema=d,c.schemaPath=n+"["+v+"]",c.errSchemaPath=o+"/"+v,s+=" "+e.validate(c)+" ",c.baseId=m,l&&(s+=" if ("+p+") { ",u+="}"));return l&&(f?s+=" if (true) { ":s+=" "+u.slice(0,-1)+" "),s}});var x0=M((vL,b0)=>{"use strict";b0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f="errs__"+i,h=e.util.copy(e),d="";h.level++;var v="valid"+h.level,g=o.every(function($){return e.opts.strictKeywords?typeof $=="object"&&Object.keys($).length>0||$===!1:e.util.schemaHasRules($,e.RULES.all)});if(g){var b=h.baseId;s+=" var "+f+" = errors; var "+m+" = false; ";var E=e.compositeRule;e.compositeRule=h.compositeRule=!0;var k=o;if(k)for(var O,P=-1,I=k.length-1;P{"use strict";_0.exports=function(e,a,t){var s=" ",i=e.schema[a],n=e.errSchemaPath+"/"+a,o=!e.opts.allErrors,l=e.util.toQuotedString(i);return e.opts.$comment===!0?s+=" console.log("+l+");":typeof e.opts.$comment=="function"&&(s+=" self._opts.$comment("+l+", "+e.util.toQuotedString(n)+", validate.root.schema);"),s}});var S0=M((yL,w0)=>{"use strict";w0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f=e.opts.$data&&o&&o.$data,h;f?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",h="schema"+i):h=o,f||(s+=" var schema"+i+" = validate.schema"+l+";"),s+="var "+m+" = equal("+p+", schema"+i+"); if (!"+m+") { ";var d=d||[];d.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { allowedValue: schema"+i+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be equal to constant' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var v=s;return s=d.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+v+"]); ":s+=" validate.errors = ["+v+"]; return false; ":s+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }",u&&(s+=" else { "),s}});var R0=M((bL,P0)=>{"use strict";P0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f="errs__"+i,h=e.util.copy(e),d="";h.level++;var v="valid"+h.level,g="i"+i,b=h.dataLevel=e.dataLevel+1,E="data"+b,k=e.baseId,O=e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all);if(s+="var "+f+" = errors;var "+m+";",O){var P=e.compositeRule;e.compositeRule=h.compositeRule=!0,h.schema=o,h.schemaPath=l,h.errSchemaPath=c,s+=" var "+v+" = false; for (var "+g+" = 0; "+g+" < "+p+".length; "+g+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var I=p+"["+g+"]";h.dataPathArr[b]=g;var $=e.validate(h);h.baseId=k,e.util.varOccurences($,E)<2?s+=" "+e.util.varReplace($,E,I)+" ":s+=" var "+E+" = "+I+"; "+$+" ",s+=" if ("+v+") break; } ",e.compositeRule=h.compositeRule=P,s+=" "+d+" if (!"+v+") {"}else s+=" if ("+p+".length == 0) {";var A=A||[];A.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'should contain a valid item' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var F=s;return s=A.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+F+"]); ":s+=" validate.errors = ["+F+"]; return false; ":s+=" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { ",O&&(s+=" errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } "),e.opts.allErrors&&(s+=" } "),s}});var k0=M((xL,T0)=>{"use strict";T0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,f=e.util.copy(e),h="";f.level++;var d="valid"+f.level,v={},g={},b=e.opts.ownProperties;for(P in o)if(P!="__proto__"){var E=o[P],k=Array.isArray(E)?g:v;k[P]=E}s+="var "+m+" = errors;";var O=e.errorPath;s+="var missing"+i+";";for(var P in g)if(k=g[P],k.length){if(s+=" if ( "+p+e.util.getProperty(P)+" !== undefined ",b&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(P)+"') "),u){s+=" && ( ";var I=k;if(I)for(var $,A=-1,F=I.length-1;A0||E===!1:e.util.schemaHasRules(E,e.RULES.all))&&(s+=" "+d+" = true; if ( "+p+e.util.getProperty(P)+" !== undefined ",b&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(P)+"') "),s+=") { ",f.schema=E,f.schemaPath=l+e.util.getProperty(P),f.errSchemaPath=c+"/"+e.util.escapeFragment(P),s+=" "+e.validate(f)+" ",f.baseId=V,s+=" } ",u&&(s+=" if ("+d+") { ",h+="}"))}return u&&(s+=" "+h+" if ("+m+" == errors) {"),s}});var C0=M((_L,O0)=>{"use strict";O0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f=e.opts.$data&&o&&o.$data,h;f?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",h="schema"+i):h=o;var d="i"+i,v="schema"+i;f||(s+=" var "+v+" = validate.schema"+l+";"),s+="var "+m+";",f&&(s+=" if (schema"+i+" === undefined) "+m+" = true; else if (!Array.isArray(schema"+i+")) "+m+" = false; else {"),s+=""+m+" = false;for (var "+d+"=0; "+d+"<"+v+".length; "+d+"++) if (equal("+p+", "+v+"["+d+"])) { "+m+" = true; break; }",f&&(s+=" } "),s+=" if (!"+m+") { ";var g=g||[];g.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { allowedValues: schema"+i+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var b=s;return s=g.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+b+"]); ":s+=" validate.errors = ["+b+"]; return false; ":s+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }",u&&(s+=" else { "),s}});var A0=M((EL,I0)=>{"use strict";I0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||"");if(e.opts.format===!1)return u&&(s+=" if (true) { "),s;var m=e.opts.$data&&o&&o.$data,f;m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o;var h=e.opts.unknownFormats,d=Array.isArray(h);if(m){var v="format"+i,g="isObject"+i,b="formatType"+i;s+=" var "+v+" = formats["+f+"]; var "+g+" = typeof "+v+" == 'object' && !("+v+" instanceof RegExp) && "+v+".validate; var "+b+" = "+g+" && "+v+".type || 'string'; if ("+g+") { ",e.async&&(s+=" var async"+i+" = "+v+".async; "),s+=" "+v+" = "+v+".validate; } if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'string') || "),s+=" (",h!="ignore"&&(s+=" ("+f+" && !"+v+" ",d&&(s+=" && self._opts.unknownFormats.indexOf("+f+") == -1 "),s+=") || "),s+=" ("+v+" && "+b+" == '"+t+"' && !(typeof "+v+" == 'function' ? ",e.async?s+=" (async"+i+" ? await "+v+"("+p+") : "+v+"("+p+")) ":s+=" "+v+"("+p+") ",s+=" : "+v+".test("+p+"))))) {"}else{var v=e.formats[o];if(!v){if(h=="ignore")return e.logger.warn('unknown format "'+o+'" ignored in schema at path "'+e.errSchemaPath+'"'),u&&(s+=" if (true) { "),s;if(d&&h.indexOf(o)>=0)return u&&(s+=" if (true) { "),s;throw new Error('unknown format "'+o+'" is used in schema at path "'+e.errSchemaPath+'"')}var g=typeof v=="object"&&!(v instanceof RegExp)&&v.validate,b=g&&v.type||"string";if(g){var E=v.async===!0;v=v.validate}if(b!=t)return u&&(s+=" if (true) { "),s;if(E){if(!e.async)throw new Error("async format in sync schema");var k="formats"+e.util.getProperty(o)+".validate";s+=" if (!(await "+k+"("+p+"))) { "}else{s+=" if (! ";var k="formats"+e.util.getProperty(o);g&&(k+=".validate"),typeof v=="function"?s+=" "+k+"("+p+") ":s+=" "+k+".test("+p+") ",s+=") { "}}var O=O||[];O.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { format: ",m?s+=""+f:s+=""+e.util.toQuotedString(o),s+=" } ",e.opts.messages!==!1&&(s+=` , message: 'should match format "`,m?s+="' + "+f+" + '":s+=""+e.util.escapeQuotes(o),s+=`"' `),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+e.util.toQuotedString(o),s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var P=s;return s=O.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+P+"]); ":s+=" validate.errors = ["+P+"]; return false; ":s+=" var err = "+P+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { "),s}});var N0=M((wL,j0)=>{"use strict";j0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f="errs__"+i,h=e.util.copy(e);h.level++;var d="valid"+h.level,v=e.schema.then,g=e.schema.else,b=v!==void 0&&(e.opts.strictKeywords?typeof v=="object"&&Object.keys(v).length>0||v===!1:e.util.schemaHasRules(v,e.RULES.all)),E=g!==void 0&&(e.opts.strictKeywords?typeof g=="object"&&Object.keys(g).length>0||g===!1:e.util.schemaHasRules(g,e.RULES.all)),k=h.baseId;if(b||E){var O;h.createErrors=!1,h.schema=o,h.schemaPath=l,h.errSchemaPath=c,s+=" var "+f+" = errors; var "+m+" = true; ";var P=e.compositeRule;e.compositeRule=h.compositeRule=!0,s+=" "+e.validate(h)+" ",h.baseId=k,h.createErrors=!0,s+=" errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } ",e.compositeRule=h.compositeRule=P,b?(s+=" if ("+d+") { ",h.schema=e.schema.then,h.schemaPath=e.schemaPath+".then",h.errSchemaPath=e.errSchemaPath+"/then",s+=" "+e.validate(h)+" ",h.baseId=k,s+=" "+m+" = "+d+"; ",b&&E?(O="ifClause"+i,s+=" var "+O+" = 'then'; "):O="'then'",s+=" } ",E&&(s+=" else { ")):s+=" if (!"+d+") { ",E&&(h.schema=e.schema.else,h.schemaPath=e.schemaPath+".else",h.errSchemaPath=e.errSchemaPath+"/else",s+=" "+e.validate(h)+" ",h.baseId=k,s+=" "+m+" = "+d+"; ",b&&E?(O="ifClause"+i,s+=" var "+O+" = 'else'; "):O="'else'",s+=" } "),s+=" if (!"+m+") { var err = ",e.createErrors!==!1?(s+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { failingKeyword: "+O+" } ",e.opts.messages!==!1&&(s+=` , message: 'should match "' + `+O+` + '" schema' `),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&u&&(e.async?s+=" throw new ValidationError(vErrors); ":s+=" validate.errors = vErrors; return false; "),s+=" } ",u&&(s+=" else { ")}else u&&(s+=" if (true) { ");return s}});var $0=M((SL,D0)=>{"use strict";D0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f="errs__"+i,h=e.util.copy(e),d="";h.level++;var v="valid"+h.level,g="i"+i,b=h.dataLevel=e.dataLevel+1,E="data"+b,k=e.baseId;if(s+="var "+f+" = errors;var "+m+";",Array.isArray(o)){var O=e.schema.additionalItems;if(O===!1){s+=" "+m+" = "+p+".length <= "+o.length+"; ";var P=c;c=e.errSchemaPath+"/additionalItems",s+=" if (!"+m+") { ";var I=I||[];I.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+o.length+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have more than "+o.length+" items' "),e.opts.verbose&&(s+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var $=s;s=I.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+$+"]); ":s+=" validate.errors = ["+$+"]; return false; ":s+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",c=P,u&&(d+="}",s+=" else { ")}var A=o;if(A){for(var F,q=-1,C=A.length-1;q0||F===!1:e.util.schemaHasRules(F,e.RULES.all)){s+=" "+v+" = true; if ("+p+".length > "+q+") { ";var R=p+"["+q+"]";h.schema=F,h.schemaPath=l+"["+q+"]",h.errSchemaPath=c+"/"+q,h.errorPath=e.util.getPathExpr(e.errorPath,q,e.opts.jsonPointers,!0),h.dataPathArr[b]=q;var j=e.validate(h);h.baseId=k,e.util.varOccurences(j,E)<2?s+=" "+e.util.varReplace(j,E,R)+" ":s+=" var "+E+" = "+R+"; "+j+" ",s+=" } ",u&&(s+=" if ("+v+") { ",d+="}")}}if(typeof O=="object"&&(e.opts.strictKeywords?typeof O=="object"&&Object.keys(O).length>0||O===!1:e.util.schemaHasRules(O,e.RULES.all))){h.schema=O,h.schemaPath=e.schemaPath+".additionalItems",h.errSchemaPath=e.errSchemaPath+"/additionalItems",s+=" "+v+" = true; if ("+p+".length > "+o.length+") { for (var "+g+" = "+o.length+"; "+g+" < "+p+".length; "+g+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var R=p+"["+g+"]";h.dataPathArr[b]=g;var j=e.validate(h);h.baseId=k,e.util.varOccurences(j,E)<2?s+=" "+e.util.varReplace(j,E,R)+" ":s+=" var "+E+" = "+R+"; "+j+" ",u&&(s+=" if (!"+v+") break; "),s+=" } } ",u&&(s+=" if ("+v+") { ",d+="}")}}else if(e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){h.schema=o,h.schemaPath=l,h.errSchemaPath=c,s+=" for (var "+g+" = 0; "+g+" < "+p+".length; "+g+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,!0);var R=p+"["+g+"]";h.dataPathArr[b]=g;var j=e.validate(h);h.baseId=k,e.util.varOccurences(j,E)<2?s+=" "+e.util.varReplace(j,E,R)+" ":s+=" var "+E+" = "+R+"; "+j+" ",u&&(s+=" if (!"+v+") break; "),s+=" }"}return u&&(s+=" "+d+" if ("+f+" == errors) {"),s}});var ed=M((PL,q0)=>{"use strict";q0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,k,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,f;m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o;var h=a=="maximum",d=h?"exclusiveMaximum":"exclusiveMinimum",v=e.schema[d],g=e.opts.$data&&v&&v.$data,b=h?"<":">",E=h?">":"<",k=void 0;if(!(m||typeof o=="number"||o===void 0))throw new Error(a+" must be number");if(!(g||v===void 0||typeof v=="number"||typeof v=="boolean"))throw new Error(d+" must be number or boolean");if(g){var O=e.util.getData(v.$data,n,e.dataPathArr),P="exclusive"+i,I="exclType"+i,$="exclIsNumber"+i,A="op"+i,F="' + "+A+" + '";s+=" var schemaExcl"+i+" = "+O+"; ",O="schemaExcl"+i,s+=" var "+P+"; var "+I+" = typeof "+O+"; if ("+I+" != 'boolean' && "+I+" != 'undefined' && "+I+" != 'number') { ";var k=d,q=q||[];q.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(k||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: '"+d+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var C=s;s=q.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+C+"]); ":s+=" validate.errors = ["+C+"]; return false; ":s+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),s+=" "+I+" == 'number' ? ( ("+P+" = "+f+" === undefined || "+O+" "+b+"= "+f+") ? "+p+" "+E+"= "+O+" : "+p+" "+E+" "+f+" ) : ( ("+P+" = "+O+" === true) ? "+p+" "+E+"= "+f+" : "+p+" "+E+" "+f+" ) || "+p+" !== "+p+") { var op"+i+" = "+P+" ? '"+b+"' : '"+b+"='; ",o===void 0&&(k=d,c=e.errSchemaPath+"/"+d,f=O,m=g)}else{var $=typeof v=="number",F=b;if($&&m){var A="'"+F+"'";s+=" if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),s+=" ( "+f+" === undefined || "+v+" "+b+"= "+f+" ? "+p+" "+E+"= "+v+" : "+p+" "+E+" "+f+" ) || "+p+" !== "+p+") { "}else{$&&o===void 0?(P=!0,k=d,c=e.errSchemaPath+"/"+d,f=v,E+="="):($&&(f=Math[h?"min":"max"](v,o)),v===($?f:!0)?(P=!0,k=d,c=e.errSchemaPath+"/"+d,E+="="):(P=!1,F+="="));var A="'"+F+"'";s+=" if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),s+=" "+p+" "+E+" "+f+" || "+p+" !== "+p+") { "}}k=k||a;var q=q||[];q.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(k||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { comparison: "+A+", limit: "+f+", exclusive: "+P+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be "+F+" ",m?s+="' + "+f:s+=""+f+"'"),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var C=s;return s=q.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+C+"]); ":s+=" validate.errors = ["+C+"]; return false; ":s+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { "),s}});var td=M((RL,M0)=>{"use strict";M0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,d,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,f;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o,!(m||typeof o=="number"))throw new Error(a+" must be number");var h=a=="maxItems"?">":"<";s+="if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),s+=" "+p+".length "+h+" "+f+") { ";var d=a,v=v||[];v.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(d||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+f+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have ",a=="maxItems"?s+="more":s+="fewer",s+=" than ",m?s+="' + "+f+" + '":s+=""+o,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var g=s;return s=v.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var rd=M((TL,F0)=>{"use strict";F0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,d,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,f;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o,!(m||typeof o=="number"))throw new Error(a+" must be number");var h=a=="maxLength"?">":"<";s+="if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),e.opts.unicode===!1?s+=" "+p+".length ":s+=" ucs2length("+p+") ",s+=" "+h+" "+f+") { ";var d=a,v=v||[];v.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(d||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+f+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT be ",a=="maxLength"?s+="longer":s+="shorter",s+=" than ",m?s+="' + "+f+" + '":s+=""+o,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var g=s;return s=v.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var ad=M((kL,L0)=>{"use strict";L0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,d,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,f;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o,!(m||typeof o=="number"))throw new Error(a+" must be number");var h=a=="maxProperties"?">":"<";s+="if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),s+=" Object.keys("+p+").length "+h+" "+f+") { ";var d=a,v=v||[];v.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(d||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+f+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have ",a=="maxProperties"?s+="more":s+="fewer",s+=" than ",m?s+="' + "+f+" + '":s+=""+o,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var g=s;return s=v.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var z0=M((OL,U0)=>{"use strict";U0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,f;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o,!(m||typeof o=="number"))throw new Error(a+" must be number");s+="var division"+i+";if (",m&&(s+=" "+f+" !== undefined && ( typeof "+f+" != 'number' || "),s+=" (division"+i+" = "+p+" / "+f+", ",e.opts.multipleOfPrecision?s+=" Math.abs(Math.round(division"+i+") - division"+i+") > 1e-"+e.opts.multipleOfPrecision+" ":s+=" division"+i+" !== parseInt(division"+i+") ",s+=" ) ",m&&(s+=" ) "),s+=" ) { ";var h=h||[];h.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+f+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be multiple of ",m?s+="' + "+f:s+=""+f+"'"),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var d=s;return s=h.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+d+"]); ":s+=" validate.errors = ["+d+"]; return false; ":s+=" var err = "+d+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var B0=M((CL,H0)=>{"use strict";H0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,f=e.util.copy(e);f.level++;var h="valid"+f.level;if(e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){f.schema=o,f.schemaPath=l,f.errSchemaPath=c,s+=" var "+m+" = errors; ";var d=e.compositeRule;e.compositeRule=f.compositeRule=!0,f.createErrors=!1;var v;f.opts.allErrors&&(v=f.opts.allErrors,f.opts.allErrors=!1),s+=" "+e.validate(f)+" ",f.createErrors=!0,v&&(f.opts.allErrors=v),e.compositeRule=f.compositeRule=d,s+=" if ("+h+") { ";var g=g||[];g.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'should NOT be valid' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var b=s;s=g.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+b+"]); ":s+=" validate.errors = ["+b+"]; return false; ":s+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { errors = "+m+"; if (vErrors !== null) { if ("+m+") vErrors.length = "+m+"; else vErrors = null; } ",e.opts.allErrors&&(s+=" } ")}else s+=" var err = ",e.createErrors!==!1?(s+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'should NOT be valid' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(s+=" if (false) { ");return s}});var G0=M((IL,V0)=>{"use strict";V0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f="errs__"+i,h=e.util.copy(e),d="";h.level++;var v="valid"+h.level,g=h.baseId,b="prevValid"+i,E="passingSchemas"+i;s+="var "+f+" = errors , "+b+" = false , "+m+" = false , "+E+" = null; ";var k=e.compositeRule;e.compositeRule=h.compositeRule=!0;var O=o;if(O)for(var P,I=-1,$=O.length-1;I<$;)P=O[I+=1],(e.opts.strictKeywords?typeof P=="object"&&Object.keys(P).length>0||P===!1:e.util.schemaHasRules(P,e.RULES.all))?(h.schema=P,h.schemaPath=l+"["+I+"]",h.errSchemaPath=c+"/"+I,s+=" "+e.validate(h)+" ",h.baseId=g):s+=" var "+v+" = true; ",I&&(s+=" if ("+v+" && "+b+") { "+m+" = false; "+E+" = ["+E+", "+I+"]; } else { ",d+="}"),s+=" if ("+v+") { "+m+" = "+b+" = true; "+E+" = "+I+"; }";return e.compositeRule=h.compositeRule=k,s+=""+d+"if (!"+m+") { var err = ",e.createErrors!==!1?(s+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { passingSchemas: "+E+" } ",e.opts.messages!==!1&&(s+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&u&&(e.async?s+=" throw new ValidationError(vErrors); ":s+=" validate.errors = vErrors; return false; "),s+="} else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; }",e.opts.allErrors&&(s+=" } "),s}});var W0=M((AL,Z0)=>{"use strict";Z0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,f;m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o;var h=m?"(new RegExp("+f+"))":e.usePattern(o);s+="if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'string') || "),s+=" !"+h+".test("+p+") ) { ";var d=d||[];d.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { pattern: ",m?s+=""+f:s+=""+e.util.toQuotedString(o),s+=" } ",e.opts.messages!==!1&&(s+=` , message: 'should match pattern "`,m?s+="' + "+f+" + '":s+=""+e.util.escapeQuotes(o),s+=`"' `),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+e.util.toQuotedString(o),s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var v=s;return s=d.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+v+"]); ":s+=" validate.errors = ["+v+"]; return false; ":s+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var Q0=M((jL,K0)=>{"use strict";K0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,f=e.util.copy(e),h="";f.level++;var d="valid"+f.level,v="key"+i,g="idx"+i,b=f.dataLevel=e.dataLevel+1,E="data"+b,k="dataProperties"+i,O=Object.keys(o||{}).filter(te),P=e.schema.patternProperties||{},I=Object.keys(P).filter(te),$=e.schema.additionalProperties,A=O.length||I.length,F=$===!1,q=typeof $=="object"&&Object.keys($).length,C=e.opts.removeAdditional,R=F||q||C,j=e.opts.ownProperties,z=e.baseId,B=e.schema.required;if(B&&!(e.opts.$data&&B.$data)&&B.length8)s+=" || validate.schema"+l+".hasOwnProperty("+v+") ";else{var X=O;if(X)for(var V,re=-1,ce=X.length-1;re0||Ee===!1:e.util.schemaHasRules(Ee,e.RULES.all)){var Ye=e.util.getProperty(V),Q=p+Ye,Ue=Ie&&Ee.default!==void 0;f.schema=Ee,f.schemaPath=l+Ye,f.errSchemaPath=c+"/"+e.util.escapeFragment(V),f.errorPath=e.util.getPath(e.errorPath,V,e.opts.jsonPointers),f.dataPathArr[b]=e.util.toQuotedString(V);var ie=e.validate(f);if(f.baseId=z,e.util.varOccurences(ie,E)<2){ie=e.util.varReplace(ie,E,Q);var Qe=Q}else{var Qe=E;s+=" var "+E+" = "+Q+"; "}if(Ue)s+=" "+ie+" ";else{if(G&&G[V]){s+=" if ( "+Qe+" === undefined ",j&&(s+=" || ! Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(V)+"') "),s+=") { "+d+" = false; ";var Oe=e.errorPath,Z=c,Ve=e.util.escapeQuotes(V);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(Oe,V,e.opts.jsonPointers)),c=e.errSchemaPath+"/required";var ee=ee||[];ee.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+Ve+"' } ",e.opts.messages!==!1&&(s+=" , message: '",e.opts._errorDataPathProperty?s+="is a required property":s+="should have required property \\'"+Ve+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var ue=s;s=ee.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+ue+"]); ":s+=" validate.errors = ["+ue+"]; return false; ":s+=" var err = "+ue+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c=Z,e.errorPath=Oe,s+=" } else { "}else u?(s+=" if ( "+Qe+" === undefined ",j&&(s+=" || ! Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(V)+"') "),s+=") { "+d+" = true; } else { "):(s+=" if ("+Qe+" !== undefined ",j&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(V)+"') "),s+=" ) { ");s+=" "+ie+" } "}}u&&(s+=" if ("+d+") { ",h+="}")}}if(I.length){var Ke=I;if(Ke)for(var be,bt=-1,xt=Ke.length-1;bt0||Ee===!1:e.util.schemaHasRules(Ee,e.RULES.all)){f.schema=Ee,f.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(be),f.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(be),j?s+=" "+k+" = "+k+" || Object.keys("+p+"); for (var "+g+"=0; "+g+"<"+k+".length; "+g+"++) { var "+v+" = "+k+"["+g+"]; ":s+=" for (var "+v+" in "+p+") { ",s+=" if ("+e.usePattern(be)+".test("+v+")) { ",f.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);var Q=p+"["+v+"]";f.dataPathArr[b]=v;var ie=e.validate(f);f.baseId=z,e.util.varOccurences(ie,E)<2?s+=" "+e.util.varReplace(ie,E,Q)+" ":s+=" var "+E+" = "+Q+"; "+ie+" ",u&&(s+=" if (!"+d+") break; "),s+=" } ",u&&(s+=" else "+d+" = true; "),s+=" } ",u&&(s+=" if ("+d+") { ",h+="}")}}}return u&&(s+=" "+h+" if ("+m+" == errors) {"),s}});var J0=M((NL,X0)=>{"use strict";X0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,f=e.util.copy(e),h="";f.level++;var d="valid"+f.level;if(s+="var "+m+" = errors;",e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){f.schema=o,f.schemaPath=l,f.errSchemaPath=c;var v="key"+i,g="idx"+i,b="i"+i,E="' + "+v+" + '",k=f.dataLevel=e.dataLevel+1,O="data"+k,P="dataProperties"+i,I=e.opts.ownProperties,$=e.baseId;I&&(s+=" var "+P+" = undefined; "),I?s+=" "+P+" = "+P+" || Object.keys("+p+"); for (var "+g+"=0; "+g+"<"+P+".length; "+g+"++) { var "+v+" = "+P+"["+g+"]; ":s+=" for (var "+v+" in "+p+") { ",s+=" var startErrs"+i+" = errors; ";var A=v,F=e.compositeRule;e.compositeRule=f.compositeRule=!0;var q=e.validate(f);f.baseId=$,e.util.varOccurences(q,O)<2?s+=" "+e.util.varReplace(q,O,A)+" ":s+=" var "+O+" = "+A+"; "+q+" ",e.compositeRule=f.compositeRule=F,s+=" if (!"+d+") { for (var "+b+"=startErrs"+i+"; "+b+"{"use strict";Y0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f=e.opts.$data&&o&&o.$data,h;f?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",h="schema"+i):h=o;var d="schema"+i;if(!f)if(o.length0||O===!1:e.util.schemaHasRules(O,e.RULES.all))||(v[v.length]=b)}}else var v=o;if(f||v.length){var P=e.errorPath,I=f||v.length>=e.opts.loopRequired,$=e.opts.ownProperties;if(u)if(s+=" var missing"+i+"; ",I){f||(s+=" var "+d+" = validate.schema"+l+"; ");var A="i"+i,F="schema"+i+"["+A+"]",q="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(P,F,e.opts.jsonPointers)),s+=" var "+m+" = true; ",f&&(s+=" if (schema"+i+" === undefined) "+m+" = true; else if (!Array.isArray(schema"+i+")) "+m+" = false; else {"),s+=" for (var "+A+" = 0; "+A+" < "+d+".length; "+A+"++) { "+m+" = "+p+"["+d+"["+A+"]] !== undefined ",$&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", "+d+"["+A+"]) "),s+="; if (!"+m+") break; } ",f&&(s+=" } "),s+=" if (!"+m+") { ";var C=C||[];C.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+q+"' } ",e.opts.messages!==!1&&(s+=" , message: '",e.opts._errorDataPathProperty?s+="is a required property":s+="should have required property \\'"+q+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var R=s;s=C.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+R+"]); ":s+=" validate.errors = ["+R+"]; return false; ":s+=" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { "}else{s+=" if ( ";var j=v;if(j)for(var z,A=-1,B=j.length-1;A{"use strict";t_.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f=e.opts.$data&&o&&o.$data,h;if(f?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",h="schema"+i):h=o,(o||f)&&e.opts.uniqueItems!==!1){f&&(s+=" var "+m+"; if ("+h+" === false || "+h+" === undefined) "+m+" = true; else if (typeof "+h+" != 'boolean') "+m+" = false; else { "),s+=" var i = "+p+".length , "+m+" = true , j; if (i > 1) { ";var d=e.schema.items&&e.schema.items.type,v=Array.isArray(d);if(!d||d=="object"||d=="array"||v&&(d.indexOf("object")>=0||d.indexOf("array")>=0))s+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+p+"[i], "+p+"[j])) { "+m+" = false; break outer; } } } ";else{s+=" var itemIndices = {}, item; for (;i--;) { var item = "+p+"[i]; ";var g="checkDataType"+(v?"s":"");s+=" if ("+e.util[g](d,"item",e.opts.strictNumbers,!0)+") continue; ",v&&(s+=` if (typeof item == 'string') item = '"' + item; `),s+=" if (typeof itemIndices[item] == 'number') { "+m+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}s+=" } ",f&&(s+=" } "),s+=" if (!"+m+") { ";var b=b||[];b.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(s+=" , schema: ",f?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var E=s;s=b.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+E+"]); ":s+=" validate.errors = ["+E+"]; return false; ":s+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { ")}else u&&(s+=" if (true) { ");return s}});var s_=M((qL,a_)=>{"use strict";a_.exports={$ref:v0(),allOf:y0(),anyOf:x0(),$comment:E0(),const:S0(),contains:R0(),dependencies:k0(),enum:C0(),format:A0(),if:N0(),items:$0(),maximum:ed(),minimum:ed(),maxItems:td(),minItems:td(),maxLength:rd(),minLength:rd(),maxProperties:ad(),minProperties:ad(),multipleOf:z0(),not:B0(),oneOf:G0(),pattern:W0(),properties:Q0(),propertyNames:J0(),required:e_(),uniqueItems:r_(),validate:Jp()}});var o_=M((ML,i_)=>{"use strict";var n_=s_(),sd=fs().toHash;i_.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],a=["type","$comment"],t=["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"],s=["number","integer","string","array","object","boolean","null"];return e.all=sd(a),e.types=sd(s),e.forEach(function(i){i.rules=i.rules.map(function(n){var o;if(typeof n=="object"){var l=Object.keys(n)[0];o=n[l],n=l,o.forEach(function(u){a.push(u),e.all[u]=!0})}a.push(n);var c=e.all[n]={keyword:n,code:n_[n],implements:o};return c}),e.all.$comment={keyword:"$comment",code:n_.$comment},i.type&&(e.types[i.type]=i)}),e.keywords=sd(a.concat(t)),e.custom={},e}});var u_=M((FL,l_)=>{"use strict";var c_=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];l_.exports=function(r,e){for(var a=0;a{"use strict";var o9=Sc().MissingRef;d_.exports=p_;function p_(r,e,a){var t=this;if(typeof this._opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");typeof e=="function"&&(a=e,e=void 0);var s=i(r).then(function(){var o=t._addSchema(r,void 0,e);return o.validate||n(o)});return a&&s.then(function(o){a(null,o)},a),s;function i(o){var l=o.$schema;return l&&!t.getSchema(l)?p_.call(t,{$ref:l},!0):Promise.resolve()}function n(o){try{return t._compile(o)}catch(c){if(c instanceof o9)return l(c);throw c}function l(c){var u=c.missingSchema;if(f(u))throw new Error("Schema "+u+" is loaded but "+c.missingRef+" cannot be resolved");var p=t._loadingSchemas[u];return p||(p=t._loadingSchemas[u]=t._opts.loadSchema(u),p.then(m,m)),p.then(function(h){if(!f(u))return i(h).then(function(){f(u)||t.addSchema(h,u,void 0,e)})}).then(function(){return n(o)});function m(){delete t._loadingSchemas[u]}function f(h){return t._refs[h]||t._schemas[h]}}}}});var h_=M((UL,m_)=>{"use strict";m_.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p,m="data"+(n||""),f="valid"+i,h="errs__"+i,d=e.opts.$data&&o&&o.$data,v;d?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",v="schema"+i):v=o;var g=this,b="definition"+i,E=g.definition,k="",O,P,I,$,A;if(d&&E.$data){A="keywordValidate"+i;var F=E.validateSchema;s+=" var "+b+" = RULES.custom['"+a+"'].definition; var "+A+" = "+b+".validate;"}else{if($=e.useCustomRule(g,o,e.schema,e),!$)return;v="validate.schema"+l,A=$.code,O=E.compile,P=E.inline,I=E.macro}var q=A+".errors",C="i"+i,R="ruleErr"+i,j=E.async;if(j&&!e.async)throw new Error("async keyword in sync schema");if(P||I||(s+=""+q+" = null;"),s+="var "+h+" = errors;var "+f+";",d&&E.$data&&(k+="}",s+=" if ("+v+" === undefined) { "+f+" = true; } else { ",F&&(k+="}",s+=" "+f+" = "+b+".validateSchema("+v+"); if ("+f+") { ")),P)E.statements?s+=" "+$.validate+" ":s+=" "+f+" = "+$.validate+"; ";else if(I){var z=e.util.copy(e),k="";z.level++;var B="valid"+z.level;z.schema=$.validate,z.schemaPath="";var G=e.compositeRule;e.compositeRule=z.compositeRule=!0;var te=e.validate(z).replace(/validate\.schema/g,A);e.compositeRule=z.compositeRule=G,s+=" "+te}else{var X=X||[];X.push(s),s="",s+=" "+A+".call( ",e.opts.passContext?s+="this":s+="self",O||E.schema===!1?s+=" , "+m+" ":s+=" , "+v+" , "+m+" , validate.schema"+e.schemaPath+" ",s+=" , (dataPath || '')",e.errorPath!='""'&&(s+=" + "+e.errorPath);var V=n?"data"+(n-1||""):"parentData",re=n?e.dataPathArr[n]:"parentDataProperty";s+=" , "+V+" , "+re+" , rootData ) ";var ce=s;s=X.pop(),E.errors===!1?(s+=" "+f+" = ",j&&(s+="await "),s+=""+ce+"; "):j?(q="customErrors"+i,s+=" var "+q+" = null; try { "+f+" = await "+ce+"; } catch (e) { "+f+" = false; if (e instanceof ValidationError) "+q+" = e.errors; else throw e; } "):s+=" "+q+" = null; "+f+" = "+ce+"; "}if(E.modifying&&(s+=" if ("+V+") "+m+" = "+V+"["+re+"];"),s+=""+k,E.valid)u&&(s+=" if (true) { ");else{s+=" if ( ",E.valid===void 0?(s+=" !",I?s+=""+B:s+=""+f):s+=" "+!E.valid+" ",s+=") { ",p=g.keyword;var X=X||[];X.push(s),s="";var X=X||[];X.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(p||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+g.keyword+"' } ",e.opts.messages!==!1&&(s+=` , message: 'should pass "`+g.keyword+`" keyword validation' `),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),s+=" } "):s+=" {} ";var Be=s;s=X.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+Be+"]); ":s+=" validate.errors = ["+Be+"]; return false; ":s+=" var err = "+Be+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var be=s;s=X.pop(),P?E.errors?E.errors!="full"&&(s+=" for (var "+C+"="+h+"; "+C+"{c9.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var y_=M((HL,g_)=>{"use strict";var v_=nd();g_.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:v_.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:v_.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}});var x_=M((BL,b_)=>{"use strict";var l9=/^[a-z_$][a-z0-9_$-]*$/i,u9=h_(),p9=y_();b_.exports={add:d9,get:f9,remove:m9,validate:id};function d9(r,e){var a=this.RULES;if(a.keywords[r])throw new Error("Keyword "+r+" is already defined");if(!l9.test(r))throw new Error("Keyword "+r+" is not a valid identifier");if(e){this.validateKeyword(e,!0);var t=e.type;if(Array.isArray(t))for(var s=0;s{h9.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var I_=M((GL,C_)=>{"use strict";var w_=e0(),ms=wc(),v9=r0(),S_=Vp(),g9=Xp(),y9=m0(),b9=o_(),P_=u_(),R_=fs();C_.exports=ut;ut.prototype.validate=_9;ut.prototype.compile=E9;ut.prototype.addSchema=w9;ut.prototype.addMetaSchema=S9;ut.prototype.validateSchema=P9;ut.prototype.getSchema=T9;ut.prototype.removeSchema=O9;ut.prototype.addFormat=q9;ut.prototype.errorsText=$9;ut.prototype._addSchema=C9;ut.prototype._compile=I9;ut.prototype.compileAsync=f_();var Ac=x_();ut.prototype.addKeyword=Ac.add;ut.prototype.getKeyword=Ac.get;ut.prototype.removeKeyword=Ac.remove;ut.prototype.validateKeyword=Ac.validate;var T_=Sc();ut.ValidationError=T_.Validation;ut.MissingRefError=T_.MissingRef;ut.$dataMetaSchema=P_;var Ic="http://json-schema.org/draft-07/schema",E_=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],x9=["/properties"];function ut(r){if(!(this instanceof ut))return new ut(r);r=this._opts=R_.copy(r)||{},H9(this),this._schemas={},this._refs={},this._fragments={},this._formats=y9(r.format),this._cache=r.cache||new v9,this._loadingSchemas={},this._compilations=[],this.RULES=b9(),this._getId=A9(r),r.loopRequired=r.loopRequired||1/0,r.errorDataPath=="property"&&(r._errorDataPathProperty=!0),r.serialize===void 0&&(r.serialize=g9),this._metaOpts=z9(this),r.formats&&L9(this),r.keywords&&U9(this),M9(this),typeof r.meta=="object"&&this.addMetaSchema(r.meta),r.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),F9(this)}function _9(r,e){var a;if(typeof r=="string"){if(a=this.getSchema(r),!a)throw new Error('no schema with key or ref "'+r+'"')}else{var t=this._addSchema(r);a=t.validate||this._compile(t)}var s=a(e);return a.$async!==!0&&(this.errors=a.errors),s}function E9(r,e){var a=this._addSchema(r,void 0,e);return a.validate||this._compile(a)}function w9(r,e,a,t){if(Array.isArray(r)){for(var s=0;s{$_.exports=D_;D_.sync=V9;var j_=require("fs");function B9(r,e){var a=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!a||(a=a.split(";"),a.indexOf("")!==-1))return!0;for(var t=0;t{U_.exports=F_;F_.sync=G9;var M_=require("fs");function F_(r,e,a){M_.stat(r,function(t,s){a(t,t?!1:L_(s,e))})}function G9(r,e){return L_(M_.statSync(r),e)}function L_(r,e){return r.isFile()&&Z9(r,e)}function Z9(r,e){var a=r.mode,t=r.uid,s=r.gid,i=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),n=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),o=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=o|l,p=a&c||a&l&&s===n||a&o&&t===i||a&u&&i===0;return p}});var B_=M((YL,H_)=>{var JL=require("fs"),jc;process.platform==="win32"||global.TESTING_WINDOWS?jc=q_():jc=z_();H_.exports=cd;cd.sync=W9;function cd(r,e,a){if(typeof e=="function"&&(a=e,e={}),!a){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(t,s){cd(r,e||{},function(i,n){i?s(i):t(n)})})}jc(r,e||{},function(t,s){t&&(t.code==="EACCES"||e&&e.ignoreErrors)&&(t=null,s=!1),a(t,s)})}function W9(r,e){try{return jc.sync(r,e||{})}catch(a){if(e&&e.ignoreErrors||a.code==="EACCES")return!1;throw a}}});var X_=M((e3,Q_)=>{var yn=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",V_=require("path"),K9=yn?";":":",G_=B_(),Z_=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),W_=(r,e)=>{let a=e.colon||K9,t=r.match(/\//)||yn&&r.match(/\\/)?[""]:[...yn?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(a)],s=yn?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=yn?s.split(a):[""];return yn&&r.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:t,pathExt:i,pathExtExe:s}},K_=(r,e,a)=>{typeof e=="function"&&(a=e,e={}),e||(e={});let{pathEnv:t,pathExt:s,pathExtExe:i}=W_(r,e),n=[],o=c=>new Promise((u,p)=>{if(c===t.length)return e.all&&n.length?u(n):p(Z_(r));let m=t[c],f=/^".*"$/.test(m)?m.slice(1,-1):m,h=V_.join(f,r),d=!f&&/^\.[\\\/]/.test(r)?r.slice(0,2)+h:h;u(l(d,c,0))}),l=(c,u,p)=>new Promise((m,f)=>{if(p===s.length)return m(o(u+1));let h=s[p];G_(c+h,{pathExt:i},(d,v)=>{if(!d&&v)if(e.all)n.push(c+h);else return m(c+h);return m(l(c,u,p+1))})});return a?o(0).then(c=>a(null,c),a):o(0)},Q9=(r,e)=>{e=e||{};let{pathEnv:a,pathExt:t,pathExtExe:s}=W_(r,e),i=[];for(let n=0;n{"use strict";var J_=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(t=>t.toUpperCase()==="PATH")||"Path"};ld.exports=J_;ld.exports.default=J_});var a1=M((r3,r1)=>{"use strict";var e1=require("path"),X9=X_(),J9=Y_();function t1(r,e){let a=r.options.env||process.env,t=process.cwd(),s=r.options.cwd!=null,i=s&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(r.options.cwd)}catch{}let n;try{n=X9.sync(r.command,{path:a[J9({env:a})],pathExt:e?e1.delimiter:void 0})}catch{}finally{i&&process.chdir(t)}return n&&(n=e1.resolve(s?r.options.cwd:"",n)),n}function Y9(r){return t1(r)||t1(r,!0)}r1.exports=Y9});var s1=M((a3,pd)=>{"use strict";var ud=/([()\][%!^"`<>&|;, *?])/g;function ej(r){return r=r.replace(ud,"^$1"),r}function tj(r,e){return r=`${r}`,r=r.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),r=r.replace(/(?=(\\+?)?)\1$/,"$1$1"),r=`"${r}"`,r=r.replace(ud,"^$1"),e&&(r=r.replace(ud,"^$1")),r}pd.exports.command=ej;pd.exports.argument=tj});var i1=M((s3,n1)=>{"use strict";n1.exports=/^#!(.*)/});var c1=M((n3,o1)=>{"use strict";var rj=i1();o1.exports=(r="")=>{let e=r.match(rj);if(!e)return null;let[a,t]=e[0].replace(/#! ?/,"").split(" "),s=a.split("/").pop();return s==="env"?t:t?`${s} ${t}`:s}});var u1=M((i3,l1)=>{"use strict";var dd=require("fs"),aj=c1();function sj(r){let a=Buffer.alloc(150),t;try{t=dd.openSync(r,"r"),dd.readSync(t,a,0,150,0),dd.closeSync(t)}catch{}return aj(a.toString())}l1.exports=sj});var m1=M((o3,f1)=>{"use strict";var nj=require("path"),p1=a1(),d1=s1(),ij=u1(),oj=process.platform==="win32",cj=/\.(?:com|exe)$/i,lj=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function uj(r){r.file=p1(r);let e=r.file&&ij(r.file);return e?(r.args.unshift(r.file),r.command=e,p1(r)):r.file}function pj(r){if(!oj)return r;let e=uj(r),a=!cj.test(e);if(r.options.forceShell||a){let t=lj.test(e);r.command=nj.normalize(r.command),r.command=d1.command(r.command),r.args=r.args.map(i=>d1.argument(i,t));let s=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${s}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function dj(r,e,a){e&&!Array.isArray(e)&&(a=e,e=null),e=e?e.slice(0):[],a=Object.assign({},a);let t={command:r,args:e,options:a,file:void 0,original:{command:r,args:e}};return a.shell?t:pj(t)}f1.exports=dj});var g1=M((c3,v1)=>{"use strict";var fd=process.platform==="win32";function md(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function fj(r,e){if(!fd)return;let a=r.emit;r.emit=function(t,s){if(t==="exit"){let i=h1(s,e);if(i)return a.call(r,"error",i)}return a.apply(r,arguments)}}function h1(r,e){return fd&&r===1&&!e.file?md(e.original,"spawn"):null}function mj(r,e){return fd&&r===1&&!e.file?md(e.original,"spawnSync"):null}v1.exports={hookChildProcess:fj,verifyENOENT:h1,verifyENOENTSync:mj,notFoundError:md}});var x1=M((l3,bn)=>{"use strict";var y1=require("child_process"),hd=m1(),vd=g1();function b1(r,e,a){let t=hd(r,e,a),s=y1.spawn(t.command,t.args,t.options);return vd.hookChildProcess(s,t),s}function hj(r,e,a){let t=hd(r,e,a),s=y1.spawnSync(t.command,t.args,t.options);return s.error=s.error||vd.verifyENOENTSync(s.status,t),s}bn.exports=b1;bn.exports.spawn=b1;bn.exports.sync=hj;bn.exports._parse=hd;bn.exports._enoent=vd});var T$={};Hd(T$,{WorkerService:()=>$i,default:()=>R$});module.exports=tw(T$);var nl=jt(Gb(),1),BE=jt(Xb(),1),Rr=jt(require("path"),1),vt=require("fs"),il=require("os");var _t=require("path"),vp=require("os"),gp=require("fs");var Jb=require("url"),nA={};function aA(){return typeof __dirname<"u"?__dirname:(0,_t.dirname)((0,Jb.fileURLToPath)(nA.url))}var sA=aA(),wr=process.env.CLAUDE_MEM_DATA_DIR||(0,_t.join)((0,vp.homedir)(),".claude-mem"),yp=process.env.CLAUDE_CONFIG_DIR||(0,_t.join)((0,vp.homedir)(),".claude"),iF=(0,_t.join)(wr,"archives"),oF=(0,_t.join)(wr,"logs"),cF=(0,_t.join)(wr,"trash"),lF=(0,_t.join)(wr,"backups"),uF=(0,_t.join)(wr,"settings.json"),Xo=(0,_t.join)(wr,"claude-mem.db"),pF=(0,_t.join)(wr,"vector-db"),dF=(0,_t.join)(yp,"settings.json"),fF=(0,_t.join)(yp,"commands"),mF=(0,_t.join)(yp,"CLAUDE.md");function Jo(r){(0,gp.mkdirSync)(r,{recursive:!0})}function Ka(){return(0,_t.join)(sA,"..","..")}var Yb=jt(require("path"),1),ex=require("os"),Yo=require("fs");function ec(){try{let r=Yb.default.join((0,ex.homedir)(),".claude-mem","settings.json");if((0,Yo.existsSync)(r)){let e=JSON.parse((0,Yo.readFileSync)(r,"utf-8")),a=parseInt(e.env?.CLAUDE_MEM_WORKER_PORT,10);if(!isNaN(a))return a}}catch{}return parseInt(process.env.CLAUDE_MEM_WORKER_PORT||"37777",10)}var bp=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(bp||{}),xp=class{level;useColor;constructor(){let e=process.env.CLAUDE_MEM_LOG_LEVEL?.toUpperCase()||"INFO";this.level=bp[e]??1,this.useColor=process.stdout.isTTY??!1}correlationId(e,a){return`obs-${e}-${a}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.level===0?`${e.message} +`}function GI(){return function(){this.error(404)}}function ZI(){return function(e){if(this.hasTrailingSlash()){this.error(404);return}var a=mp.original(this.req);a.path=null,a.pathname=BI(a.pathname+"/");var t=FI(zI.format(a)),s=VI("Redirecting","Redirecting to "+LI(t));e.statusCode=301,e.setHeader("Content-Type","text/html; charset=UTF-8"),e.setHeader("Content-Length",Buffer.byteLength(s)),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Location",t),e.end(s)}}});var Bb=M((qt,Hb)=>{"use strict";var Qo=dg(),WI=require("events").EventEmitter,Fb=mg(),Lb=Wy(),KI=Mu(),QI=Lu(),Ub=xb(),zb=$b();qt=Hb.exports=XI;function XI(){var r=function(e,a,t){r.handle(e,a,t)};return Fb(r,WI.prototype,!1),Fb(r,Lb,!1),r.request=Object.create(Ub,{app:{configurable:!0,enumerable:!0,writable:!0,value:r}}),r.response=Object.create(zb,{app:{configurable:!0,enumerable:!0,writable:!0,value:r}}),r.init(),r}qt.application=Lb;qt.request=Ub;qt.response=zb;qt.Route=KI;qt.Router=QI;qt.json=Qo.json;qt.query=Uu();qt.raw=Qo.raw;qt.static=Mb();qt.text=Qo.text;qt.urlencoded=Qo.urlencoded;var JI=["bodyParser","compress","cookieSession","session","logger","cookieParser","favicon","responseTime","errorHandler","timeout","methodOverride","vhost","csrf","directory","limit","multipart","staticCache"];JI.forEach(function(r){Object.defineProperty(qt,r,{get:function(){throw new Error("Most middleware (like "+r+") is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.")},configurable:!0})})});var Gb=M((rF,Vb)=>{"use strict";Vb.exports=Bb()});var Kb=M((aF,Wb)=>{"use strict";var Zb=Object.getOwnPropertySymbols,YI=Object.prototype.hasOwnProperty,eA=Object.prototype.propertyIsEnumerable;function tA(r){if(r==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(r)}function rA(){try{if(!Object.assign)return!1;var r=new String("abc");if(r[5]="de",Object.getOwnPropertyNames(r)[0]==="5")return!1;for(var e={},a=0;a<10;a++)e["_"+String.fromCharCode(a)]=a;var t=Object.getOwnPropertyNames(e).map(function(i){return e[i]});if(t.join("")!=="0123456789")return!1;var s={};return"abcdefghijklmnopqrst".split("").forEach(function(i){s[i]=i}),Object.keys(Object.assign({},s)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}Wb.exports=rA()?Object.assign:function(r,e){for(var a,t=tA(r),s,i=1;i{(function(){"use strict";var r=Kb(),e=dp(),a={origin:"*",methods:"GET,HEAD,PUT,PATCH,POST,DELETE",preflightContinue:!1,optionsSuccessStatus:204};function t(h){return typeof h=="string"||h instanceof String}function s(h,d){if(Array.isArray(d)){for(var v=0;v{(function(r,e){typeof hc=="object"&&typeof Ix<"u"?e(hc):typeof define=="function"&&define.amd?define(["exports"],e):e(r.URI=r.URI||{})})(hc,(function(r){"use strict";function e(){for(var N=arguments.length,T=Array(N),y=0;y1){T[0]=T[0].slice(0,-1);for(var g=T.length-1,S=1;S= 0x80 (not a basic code point)","invalid-input":"Invalid input"},A=f-h,F=Math.floor,q=String.fromCharCode;function C(N){throw new RangeError($[N])}function R(N,T){for(var y=[],g=N.length;g--;)y[g]=T(N[g]);return y}function j(N,T){var y=N.split("@"),g="";y.length>1&&(g=y[0]+"@",N=y[1]),N=N.replace(I,".");var S=N.split("."),D=R(S,T).join(".");return g+D}function z(N){for(var T=[],y=0,g=N.length;y=55296&&S<=56319&&y>1,T+=F(T/y);T>A*d>>1;S+=f)T=F(T/A);return F(S+(A+1)*T/(T+v))},V=function(T){var y=[],g=T.length,S=0,D=E,L=b,K=T.lastIndexOf(k);K<0&&(K=0);for(var ne=0;ne=128&&C("not-basic"),y.push(T.charCodeAt(ne));for(var ge=K>0?K+1:0;ge=g&&C("invalid-input");var Re=G(T.charCodeAt(ge++));(Re>=f||Re>F((m-S)/Ae))&&C("overflow"),S+=Re*Ae;var ye=ve<=L?h:ve>=L+d?d:ve-L;if(ReF(m/Te)&&C("overflow"),Ae*=Te}var de=y.length+1;L=X(S-pe,de,pe==0),F(S/de)>m-D&&C("overflow"),D+=F(S/de),S%=de,y.splice(S++,0,D)}return String.fromCodePoint.apply(String,y)},re=function(T){var y=[];T=z(T);var g=T.length,S=E,D=0,L=b,K=!0,ne=!1,ge=void 0;try{for(var pe=T[Symbol.iterator](),Ae;!(K=(Ae=pe.next()).done);K=!0){var ve=Ae.value;ve<128&&y.push(q(ve))}}catch(At){ne=!0,ge=At}finally{try{!K&&pe.return&&pe.return()}finally{if(ne)throw ge}}var Re=y.length,ye=Re;for(Re&&y.push(k);ye=S&&stF((m-D)/Fe)&&C("overflow"),D+=(Te-S)*Fe,S=Te;var it=!0,dt=!1,ft=void 0;try{for(var Ht=T[Symbol.iterator](),It;!(it=(It=Ht.next()).done);it=!0){var Tr=It.value;if(Trm&&C("overflow"),Tr==S){for(var vr=D,gr=f;;gr+=f){var St=gr<=L?h:gr>=L+d?d:gr-L;if(vr>6|192).toString(16).toUpperCase()+"%"+(T&63|128).toString(16).toUpperCase():y="%"+(T>>12|224).toString(16).toUpperCase()+"%"+(T>>6&63|128).toString(16).toUpperCase()+"%"+(T&63|128).toString(16).toUpperCase(),y}function Oe(N){for(var T="",y=0,g=N.length;y=194&&S<224){if(g-y>=6){var D=parseInt(N.substr(y+4,2),16);T+=String.fromCharCode((S&31)<<6|D&63)}else T+=N.substr(y,6);y+=6}else if(S>=224){if(g-y>=9){var L=parseInt(N.substr(y+4,2),16),K=parseInt(N.substr(y+7,2),16);T+=String.fromCharCode((S&15)<<12|(L&63)<<6|K&63)}else T+=N.substr(y,9);y+=9}else T+=N.substr(y,3),y+=3}return T}function U(N,T){function y(g){var S=Oe(g);return S.match(T.UNRESERVED)?S:g}return N.scheme&&(N.scheme=String(N.scheme).replace(T.PCT_ENCODED,y).toLowerCase().replace(T.NOT_SCHEME,"")),N.userinfo!==void 0&&(N.userinfo=String(N.userinfo).replace(T.PCT_ENCODED,y).replace(T.NOT_USERINFO,xe).replace(T.PCT_ENCODED,s)),N.host!==void 0&&(N.host=String(N.host).replace(T.PCT_ENCODED,y).toLowerCase().replace(T.NOT_HOST,xe).replace(T.PCT_ENCODED,s)),N.path!==void 0&&(N.path=String(N.path).replace(T.PCT_ENCODED,y).replace(N.scheme?T.NOT_PATH:T.NOT_PATH_NOSCHEME,xe).replace(T.PCT_ENCODED,s)),N.query!==void 0&&(N.query=String(N.query).replace(T.PCT_ENCODED,y).replace(T.NOT_QUERY,xe).replace(T.PCT_ENCODED,s)),N.fragment!==void 0&&(N.fragment=String(N.fragment).replace(T.PCT_ENCODED,y).replace(T.NOT_FRAGMENT,xe).replace(T.PCT_ENCODED,s)),N}function Z(N){return N.replace(/^0*(.*)/,"$1")||"0"}function ee(N,T){var y=N.match(T.IPV4ADDRESS)||[],g=u(y,2),S=g[1];return S?S.split(".").map(Z).join("."):N}function ue(N,T){var y=N.match(T.IPV6ADDRESS)||[],g=u(y,3),S=g[1],D=g[2];if(S){for(var L=S.toLowerCase().split("::").reverse(),K=u(L,2),ne=K[0],ge=K[1],pe=ge?ge.split(":").map(Z):[],Ae=ne.split(":").map(Z),ve=T.IPV4ADDRESS.test(Ae[Ae.length-1]),Re=ve?7:8,ye=Ae.length-Re,Te=Array(Re),de=0;de1){var Me=Te.slice(0,Ne.index),st=Te.slice(Ne.index+Ne.length);pt=Me.join(":")+"::"+st.join(":")}else pt=Te.join(":");return D&&(pt+="%"+D),pt}else return N}var W=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,Q="".match(/(){0}/)[1]===void 0;function ie(N){var T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},y={},g=T.iri!==!1?c:l;T.reference==="suffix"&&(N=(T.scheme?T.scheme+":":"")+"//"+N);var S=N.match(W);if(S){Q?(y.scheme=S[1],y.userinfo=S[3],y.host=S[4],y.port=parseInt(S[5],10),y.path=S[6]||"",y.query=S[7],y.fragment=S[8],isNaN(y.port)&&(y.port=S[5])):(y.scheme=S[1]||void 0,y.userinfo=N.indexOf("@")!==-1?S[3]:void 0,y.host=N.indexOf("//")!==-1?S[4]:void 0,y.port=parseInt(S[5],10),y.path=S[6]||"",y.query=N.indexOf("?")!==-1?S[7]:void 0,y.fragment=N.indexOf("#")!==-1?S[8]:void 0,isNaN(y.port)&&(y.port=N.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?S[4]:void 0)),y.host&&(y.host=ue(ee(y.host,g),g)),y.scheme===void 0&&y.userinfo===void 0&&y.host===void 0&&y.port===void 0&&!y.path&&y.query===void 0?y.reference="same-document":y.scheme===void 0?y.reference="relative":y.fragment===void 0?y.reference="absolute":y.reference="uri",T.reference&&T.reference!=="suffix"&&T.reference!==y.reference&&(y.error=y.error||"URI is not a "+T.reference+" reference.");var D=qe[(T.scheme||y.scheme||"").toLowerCase()];if(!T.unicodeSupport&&(!D||!D.unicodeSupport)){if(y.host&&(T.domainHost||D&&D.domainHost))try{y.host=be.toASCII(y.host.replace(g.PCT_ENCODED,Oe).toLowerCase())}catch(L){y.error=y.error||"Host's domain name can not be converted to ASCII via punycode: "+L}U(y,l)}else U(y,g);D&&D.parse&&D.parse(y,T)}else y.error=y.error||"URI can not be parsed.";return y}function Ie(N,T){var y=T.iri!==!1?c:l,g=[];return N.userinfo!==void 0&&(g.push(N.userinfo),g.push("@")),N.host!==void 0&&g.push(ue(ee(String(N.host),y),y).replace(y.IPV6ADDRESS,function(S,D,L){return"["+D+(L?"%25"+L:"")+"]"})),(typeof N.port=="number"||typeof N.port=="string")&&(g.push(":"),g.push(String(N.port))),g.length?g.join(""):void 0}var he=/^\.\.?\//,Ze=/^\/\.(\/|$)/,We=/^\/\.\.(\/|$)/,Ee=/^\/?(?:.|\n)*?(?=\/|$)/;function Ye(N){for(var T=[];N.length;)if(N.match(he))N=N.replace(he,"");else if(N.match(Ze))N=N.replace(Ze,"/");else if(N.match(We))N=N.replace(We,"/"),T.pop();else if(N==="."||N==="..")N="";else{var y=N.match(Ee);if(y){var g=y[0];N=N.slice(g.length),T.push(g)}else throw new Error("Unexpected dot segment condition")}return T.join("")}function Ue(N){var T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},y=T.iri?c:l,g=[],S=qe[(T.scheme||N.scheme||"").toLowerCase()];if(S&&S.serialize&&S.serialize(N,T),N.host&&!y.IPV6ADDRESS.test(N.host)){if(T.domainHost||S&&S.domainHost)try{N.host=T.iri?be.toUnicode(N.host):be.toASCII(N.host.replace(y.PCT_ENCODED,Oe).toLowerCase())}catch(K){N.error=N.error||"Host's domain name can not be converted to "+(T.iri?"Unicode":"ASCII")+" via punycode: "+K}}U(N,y),T.reference!=="suffix"&&N.scheme&&(g.push(N.scheme),g.push(":"));var D=Ie(N,T);if(D!==void 0&&(T.reference!=="suffix"&&g.push("//"),g.push(D),N.path&&N.path.charAt(0)!=="/"&&g.push("/")),N.path!==void 0){var L=N.path;!T.absolutePath&&(!S||!S.absolutePath)&&(L=Ye(L)),D===void 0&&(L=L.replace(/^\/\//,"/%2F")),g.push(L)}return N.query!==void 0&&(g.push("?"),g.push(N.query)),N.fragment!==void 0&&(g.push("#"),g.push(N.fragment)),g.join("")}function Qe(N,T){var y=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},g=arguments[3],S={};return g||(N=ie(Ue(N,y),y),T=ie(Ue(T,y),y)),y=y||{},!y.tolerant&&T.scheme?(S.scheme=T.scheme,S.userinfo=T.userinfo,S.host=T.host,S.port=T.port,S.path=Ye(T.path||""),S.query=T.query):(T.userinfo!==void 0||T.host!==void 0||T.port!==void 0?(S.userinfo=T.userinfo,S.host=T.host,S.port=T.port,S.path=Ye(T.path||""),S.query=T.query):(T.path?(T.path.charAt(0)==="/"?S.path=Ye(T.path):((N.userinfo!==void 0||N.host!==void 0||N.port!==void 0)&&!N.path?S.path="/"+T.path:N.path?S.path=N.path.slice(0,N.path.lastIndexOf("/")+1)+T.path:S.path=T.path,S.path=Ye(S.path)),S.query=T.query):(S.path=N.path,T.query!==void 0?S.query=T.query:S.query=N.query),S.userinfo=N.userinfo,S.host=N.host,S.port=N.port),S.scheme=N.scheme),S.fragment=T.fragment,S}function Ve(N,T,y){var g=n({scheme:"null"},y);return Ue(Qe(ie(N,g),ie(T,g),g,!0),g)}function Ke(N,T){return typeof N=="string"?N=Ue(ie(N,T),T):t(N)==="object"&&(N=ie(Ue(N,T),T)),N}function bt(N,T,y){return typeof N=="string"?N=Ue(ie(N,y),y):t(N)==="object"&&(N=Ue(N,y)),typeof T=="string"?T=Ue(ie(T,y),y):t(T)==="object"&&(T=Ue(T,y)),N===T}function xt(N,T){return N&&N.toString().replace(!T||!T.iri?l.ESCAPE:c.ESCAPE,xe)}function wt(N,T){return N&&N.toString().replace(!T||!T.iri?l.PCT_ENCODED:c.PCT_ENCODED,Oe)}var Br={scheme:"http",domainHost:!0,parse:function(T,y){return T.host||(T.error=T.error||"HTTP URIs must have a host."),T},serialize:function(T,y){var g=String(T.scheme).toLowerCase()==="https";return(T.port===(g?443:80)||T.port==="")&&(T.port=void 0),T.path||(T.path="/"),T}},Ct={scheme:"https",domainHost:Br.domainHost,parse:Br.parse,serialize:Br.serialize};function ia(N){return typeof N.secure=="boolean"?N.secure:String(N.scheme).toLowerCase()==="wss"}var oa={scheme:"ws",domainHost:!0,parse:function(T,y){var g=T;return g.secure=ia(g),g.resourceName=(g.path||"/")+(g.query?"?"+g.query:""),g.path=void 0,g.query=void 0,g},serialize:function(T,y){if((T.port===(ia(T)?443:80)||T.port==="")&&(T.port=void 0),typeof T.secure=="boolean"&&(T.scheme=T.secure?"wss":"ws",T.secure=void 0),T.resourceName){var g=T.resourceName.split("?"),S=u(g,2),D=S[0],L=S[1];T.path=D&&D!=="/"?D:void 0,T.query=L,T.resourceName=void 0}return T.fragment=void 0,T}},Nn={scheme:"wss",domainHost:oa.domainHost,parse:oa.parse,serialize:oa.serialize},Ia={},qi=!0,Mi="[A-Za-z0-9\\-\\.\\_\\~"+(qi?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",Jt="[0-9A-Fa-f]",Fi=a(a("%[EFef]"+Jt+"%"+Jt+Jt+"%"+Jt+Jt)+"|"+a("%[89A-Fa-f]"+Jt+"%"+Jt+Jt)+"|"+a("%"+Jt+Jt)),Yt="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",ol="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",cl=e(ol,'[\\"\\\\]'),ll="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",ul=new RegExp(Mi,"g"),ca=new RegExp(Fi,"g"),pl=new RegExp(e("[^]",Yt,"[\\.]",'[\\"]',cl),"g"),Vr=new RegExp(e("[^]",Mi,ll),"g"),dl=Vr;function js(N){var T=Oe(N);return T.match(ul)?T:N}var Li={scheme:"mailto",parse:function(T,y){var g=T,S=g.to=g.path?g.path.split(","):[];if(g.path=void 0,g.query){for(var D=!1,L={},K=g.query.split("&"),ne=0,ge=K.length;ne{"use strict";jx.exports=function r(e,a){if(e===a)return!0;if(e&&a&&typeof e=="object"&&typeof a=="object"){if(e.constructor!==a.constructor)return!1;var t,s,i;if(Array.isArray(e)){if(t=e.length,t!=a.length)return!1;for(s=t;s--!==0;)if(!r(e[s],a[s]))return!1;return!0}if(e.constructor===RegExp)return e.source===a.source&&e.flags===a.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===a.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===a.toString();if(i=Object.keys(e),t=i.length,t!==Object.keys(a).length)return!1;for(s=t;s--!==0;)if(!Object.prototype.hasOwnProperty.call(a,i[s]))return!1;for(s=t;s--!==0;){var n=i[s];if(!r(e[n],a[n]))return!1}return!0}return e!==e&&a!==a}});var Dx=M((aL,Nx)=>{"use strict";Nx.exports=function(e){for(var a=0,t=e.length,s=0,i;s=55296&&i<=56319&&s{"use strict";Mx.exports={copy:d8,checkDataType:Mp,checkDataTypes:f8,coerceToTypes:m8,toHash:Lp,getProperty:Up,escapeQuotes:zp,equal:vc(),ucs2length:Dx(),varOccurences:g8,varReplace:y8,schemaHasRules:b8,schemaHasRulesExcept:x8,schemaUnknownRules:_8,toQuotedString:Fp,getPathExpr:E8,getPath:w8,getData:R8,unescapeFragment:T8,unescapeJsonPointer:Bp,escapeFragment:k8,escapeJsonPointer:Hp};function d8(r,e){e=e||{};for(var a in r)e[a]=r[a];return e}function Mp(r,e,a,t){var s=t?" !== ":" === ",i=t?" || ":" && ",n=t?"!":"",o=t?"":"!";switch(r){case"null":return e+s+"null";case"array":return n+"Array.isArray("+e+")";case"object":return"("+n+e+i+"typeof "+e+s+'"object"'+i+o+"Array.isArray("+e+"))";case"integer":return"(typeof "+e+s+'"number"'+i+o+"("+e+" % 1)"+i+e+s+e+(a?i+n+"isFinite("+e+")":"")+")";case"number":return"(typeof "+e+s+'"'+r+'"'+(a?i+n+"isFinite("+e+")":"")+")";default:return"typeof "+e+s+'"'+r+'"'}}function f8(r,e,a){switch(r.length){case 1:return Mp(r[0],e,a,!0);default:var t="",s=Lp(r);s.array&&s.object&&(t=s.null?"(":"(!"+e+" || ",t+="typeof "+e+' !== "object")',delete s.null,delete s.array,delete s.object),s.number&&delete s.integer;for(var i in s)t+=(t?" && ":"")+Mp(i,e,a,!0);return t}}var $x=Lp(["string","number","integer","boolean","null"]);function m8(r,e){if(Array.isArray(e)){for(var a=[],t=0;t=e)throw new Error("Cannot access property/index "+t+" levels up, current level is "+e);return a[e-t]}if(t>e)throw new Error("Cannot access data "+t+" levels up, current level is "+e);if(i="data"+(e-t||""),!s)return i}for(var o=i,l=s.split("/"),c=0;c{"use strict";var O8=fs();Fx.exports=C8;function C8(r){O8.copy(r,this)}});var Ux=M((iL,Lx)=>{"use strict";var Pa=Lx.exports=function(r,e,a){typeof e=="function"&&(a=e,e={}),a=e.cb||a;var t=typeof a=="function"?a:a.pre||function(){},s=a.post||function(){};gc(e,t,s,r,"",r)};Pa.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0};Pa.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Pa.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Pa.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function gc(r,e,a,t,s,i,n,o,l,c){if(t&&typeof t=="object"&&!Array.isArray(t)){e(t,s,i,n,o,l,c);for(var u in t){var p=t[u];if(Array.isArray(p)){if(u in Pa.arrayKeywords)for(var m=0;m{"use strict";var Ri=Ax(),zx=vc(),_c=fs(),yc=Vp(),A8=Ux();Vx.exports=Ta;Ta.normalizeId=Ra;Ta.fullPath=bc;Ta.url=xc;Ta.ids=q8;Ta.inlineRef=Gp;Ta.schema=Ec;function Ta(r,e,a){var t=this._refs[a];if(typeof t=="string")if(this._refs[t])t=this._refs[t];else return Ta.call(this,r,e,t);if(t=t||this._schemas[a],t instanceof yc)return Gp(t.schema,this._opts.inlineRefs)?t.schema:t.validate||this._compile(t);var s=Ec.call(this,e,a),i,n,o;return s&&(i=s.schema,e=s.root,o=s.baseId),i instanceof yc?n=i.validate||r.call(this,i.schema,e,void 0,o):i!==void 0&&(n=Gp(i,this._opts.inlineRefs)?i:r.call(this,i,e,void 0,o)),n}function Ec(r,e){var a=Ri.parse(e),t=Bx(a),s=bc(this._getId(r.schema));if(Object.keys(r.schema).length===0||t!==s){var i=Ra(t),n=this._refs[i];if(typeof n=="string")return j8.call(this,r,n,a);if(n instanceof yc)n.validate||this._compile(n),r=n;else if(n=this._schemas[i],n instanceof yc){if(n.validate||this._compile(n),i==Ra(e))return{schema:n,root:r,baseId:s};r=n}else return;if(!r.schema)return;s=bc(this._getId(r.schema))}return Hx.call(this,a,s,r.schema,r)}function j8(r,e,a){var t=Ec.call(this,r,e);if(t){var s=t.schema,i=t.baseId;r=t.root;var n=this._getId(s);return n&&(i=xc(i,n)),Hx.call(this,a,i,s,r)}}var N8=_c.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function Hx(r,e,a,t){if(r.fragment=r.fragment||"",r.fragment.slice(0,1)=="/"){for(var s=r.fragment.split("/"),i=1;i{"use strict";var Kp=wc();Zx.exports={Validation:Gx(M8),MissingRef:Gx(Qp)};function M8(r){this.message="validation failed",this.errors=r,this.ajv=this.validation=!0}Qp.message=function(r,e){return"can't resolve reference "+e+" from id "+r};function Qp(r,e,a){this.message=a||Qp.message(r,e),this.missingRef=Kp.url(r,e),this.missingSchema=Kp.normalizeId(Kp.fullPath(this.missingRef))}function Gx(r){return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}});var Xp=M((lL,Wx)=>{"use strict";Wx.exports=function(r,e){e||(e={}),typeof e=="function"&&(e={cmp:e});var a=typeof e.cycles=="boolean"?e.cycles:!1,t=e.cmp&&(function(i){return function(n){return function(o,l){var c={key:o,value:n[o]},u={key:l,value:n[l]};return i(c,u)}}})(e.cmp),s=[];return(function i(n){if(n&&n.toJSON&&typeof n.toJSON=="function"&&(n=n.toJSON()),n!==void 0){if(typeof n=="number")return isFinite(n)?""+n:"null";if(typeof n!="object")return JSON.stringify(n);var o,l;if(Array.isArray(n)){for(l="[",o=0;o{"use strict";Kx.exports=function(e,a,t){var s="",i=e.schema.$async===!0,n=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"),o=e.self._getId(e.schema);if(e.opts.strictKeywords){var l=e.util.schemaUnknownRules(e.schema,e.RULES.keywords);if(l){var c="unknown keyword: "+l;if(e.opts.strictKeywords==="log")e.logger.warn(c);else throw new Error(c)}}if(e.isTop&&(s+=" var validate = ",i&&(e.async=!0,s+="async "),s+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",o&&(e.opts.sourceCode||e.opts.processCode)&&(s+=" "+("/*# sourceURL="+o+" */")+" ")),typeof e.schema=="boolean"||!(n||e.schema.$ref)){var a="false schema",u=e.level,p=e.dataLevel,m=e.schema[a],f=e.schemaPath+e.util.getProperty(a),h=e.errSchemaPath+"/"+a,O=!e.opts.allErrors,$,d="data"+(p||""),k="valid"+u;if(e.schema===!1){e.isTop?O=!0:s+=" var "+k+" = false; ";var v=v||[];v.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+($||"false schema")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'boolean schema is false' "),e.opts.verbose&&(s+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),s+=" } "):s+=" {} ";var x=s;s=v.pop(),!e.compositeRule&&O?e.async?s+=" throw new ValidationError(["+x+"]); ":s+=" validate.errors = ["+x+"]; return false; ":s+=" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else e.isTop?i?s+=" return data; ":s+=" validate.errors = null; return true; ":s+=" var "+k+" = true; ";return e.isTop&&(s+=" }; return validate; "),s}if(e.isTop){var b=e.isTop,u=e.level=0,p=e.dataLevel=0,d="data";if(e.rootId=e.resolve.fullPath(e.self._getId(e.root.schema)),e.baseId=e.baseId||e.rootId,delete e.isTop,e.dataPathArr=[""],e.schema.default!==void 0&&e.opts.useDefaults&&e.opts.strictDefaults){var E="default is ignored in the schema root";if(e.opts.strictDefaults==="log")e.logger.warn(E);else throw new Error(E)}s+=" var vErrors = null; ",s+=" var errors = 0; ",s+=" if (rootData === undefined) rootData = data; "}else{var u=e.level,p=e.dataLevel,d="data"+(p||"");if(o&&(e.baseId=e.resolve.url(e.baseId,o)),i&&!e.async)throw new Error("async schema in sync schema");s+=" var errs_"+u+" = errors;"}var k="valid"+u,O=!e.opts.allErrors,P="",I="",$,A=e.schema.type,F=Array.isArray(A);if(A&&e.opts.nullable&&e.schema.nullable===!0&&(F?A.indexOf("null")==-1&&(A=A.concat("null")):A!="null"&&(A=[A,"null"],F=!0)),F&&A.length==1&&(A=A[0],F=!1),e.schema.$ref&&n){if(e.opts.extendRefs=="fail")throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'" (see option extendRefs)');e.opts.extendRefs!==!0&&(n=!1,e.logger.warn('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"'))}if(e.schema.$comment&&e.opts.$comment&&(s+=" "+e.RULES.all.$comment.code(e,"$comment")),A){if(e.opts.coerceTypes)var q=e.util.coerceToTypes(e.opts.coerceTypes,A);var C=e.RULES.types[A];if(q||F||C===!0||C&&!Ee(C)){var f=e.schemaPath+".type",h=e.errSchemaPath+"/type",f=e.schemaPath+".type",h=e.errSchemaPath+"/type",R=F?"checkDataTypes":"checkDataType";if(s+=" if ("+e.util[R](A,d,e.opts.strictNumbers,!0)+") { ",q){var j="dataType"+u,z="coerced"+u;s+=" var "+j+" = typeof "+d+"; var "+z+" = undefined; ",e.opts.coerceTypes=="array"&&(s+=" if ("+j+" == 'object' && Array.isArray("+d+") && "+d+".length == 1) { "+d+" = "+d+"[0]; "+j+" = typeof "+d+"; if ("+e.util.checkDataType(e.schema.type,d,e.opts.strictNumbers)+") "+z+" = "+d+"; } "),s+=" if ("+z+" !== undefined) ; ";var B=q;if(B)for(var G,te=-1,X=B.length-1;te{"use strict";var Pc=wc(),Tc=fs(),Xx=Sc(),F8=Xp(),Qx=Jp(),L8=Tc.ucs2length,U8=vc(),z8=Xx.Validation;Yx.exports=Yp;function Yp(r,e,a,t){var s=this,i=this._opts,n=[void 0],o={},l=[],c={},u=[],p={},m=[];e=e||{schema:r,refVal:n,refs:o};var f=H8.call(this,r,e,t),h=this._compilations[f.index];if(f.compiling)return h.callValidate=E;var d=this._formats,v=this.RULES;try{var x=k(r,e,a,t);h.validate=x;var b=h.callValidate;return b&&(b.schema=x.schema,b.errors=null,b.refs=x.refs,b.refVal=x.refVal,b.root=x.root,b.$async=x.$async,i.sourceCode&&(b.source=x.source)),x}finally{B8.call(this,r,e,t)}function E(){var R=h.validate,j=R.apply(this,arguments);return E.errors=R.errors,j}function k(R,j,z,B){var G=!j||j&&j.schema==R;if(j.schema!=e.schema)return Yp.call(s,R,j,z,B);var te=R.$async===!0,X=Qx({isTop:!0,schema:R,isRoot:G,baseId:B,root:j,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:Xx.MissingRef,RULES:v,validate:Qx,util:Tc,resolve:Pc,resolveRef:O,usePattern:F,useDefault:q,useCustomRule:C,opts:i,formats:d,logger:s.logger,self:s});X=Rc(n,Z8)+Rc(l,V8)+Rc(u,G8)+Rc(m,W8)+X,i.processCode&&(X=i.processCode(X,R));var V;try{var re=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",X);V=re(s,v,d,e,n,u,m,U8,L8,z8),n[0]=V}catch(ce){throw s.logger.error("Error compiling schema, function code:",X),ce}return V.schema=R,V.errors=null,V.refs=o,V.refVal=n,V.root=G?V:j,te&&(V.$async=!0),i.sourceCode===!0&&(V.source={code:X,patterns:l,defaults:u}),V}function O(R,j,z){j=Pc.url(R,j);var B=o[j],G,te;if(B!==void 0)return G=n[B],te="refVal["+B+"]",A(G,te);if(!z&&e.refs){var X=e.refs[j];if(X!==void 0)return G=e.refVal[X],te=P(j,G),A(G,te)}te=P(j);var V=Pc.call(s,k,e,j);if(V===void 0){var re=a&&a[j];re&&(V=Pc.inlineRef(re,i.inlineRefs)?re:Yp.call(s,re,e,a,R))}if(V===void 0)I(j);else return $(j,V),A(V,te)}function P(R,j){var z=n.length;return n[z]=j,o[R]=z,"refVal"+z}function I(R){delete o[R]}function $(R,j){var z=o[R];n[z]=j}function A(R,j){return typeof R=="object"||typeof R=="boolean"?{code:j,schema:R,inline:!0}:{code:j,$async:R&&!!R.$async}}function F(R){var j=c[R];return j===void 0&&(j=c[R]=l.length,l[j]=R),"pattern"+j}function q(R){switch(typeof R){case"boolean":case"number":return""+R;case"string":return Tc.toQuotedString(R);case"object":if(R===null)return"null";var j=F8(R),z=p[j];return z===void 0&&(z=p[j]=u.length,u[z]=R),"default"+z}}function C(R,j,z,B){if(s._opts.validateSchema!==!1){var G=R.definition.dependencies;if(G&&!G.every(function(xe){return Object.prototype.hasOwnProperty.call(z,xe)}))throw new Error("parent schema must have all required keywords: "+G.join(","));var te=R.definition.validateSchema;if(te){var X=te(j);if(!X){var V="keyword schema is invalid: "+s.errorsText(te.errors);if(s._opts.validateSchema=="log")s.logger.error(V);else throw new Error(V)}}}var re=R.definition.compile,ce=R.definition.inline,Be=R.definition.macro,be;if(re)be=re.call(s,j,z,B);else if(Be)be=Be.call(s,j,z,B),i.validateSchema!==!1&&s.validateSchema(be,!0);else if(ce)be=ce.call(s,B,R.keyword,j,z);else if(be=R.definition.validate,!be)return;if(be===void 0)throw new Error('custom keyword "'+R.keyword+'"failed to compile');var qe=m.length;return m[qe]=be,{code:"customRule"+qe,validate:be}}}function H8(r,e,a){var t=Jx.call(this,r,e,a);return t>=0?{index:t,compiling:!0}:(t=this._compilations.length,this._compilations[t]={schema:r,root:e,baseId:a},{index:t,compiling:!1})}function B8(r,e,a){var t=Jx.call(this,r,e,a);t>=0&&this._compilations.splice(t,1)}function Jx(r,e,a){for(var t=0;t{"use strict";var kc=t0.exports=function(){this._cache={}};kc.prototype.put=function(e,a){this._cache[e]=a};kc.prototype.get=function(e){return this._cache[e]};kc.prototype.del=function(e){delete this._cache[e]};kc.prototype.clear=function(){this._cache={}}});var m0=M((fL,f0)=>{"use strict";var K8=fs(),Q8=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,X8=[0,31,28,31,30,31,30,31,31,30,31,30,31],J8=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,a0=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,Y8=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,e9=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,s0=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,n0=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,i0=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,o0=/^(?:\/(?:[^~/]|~0|~1)*)*$/,c0=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,l0=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;f0.exports=Oc;function Oc(r){return r=r=="full"?"full":"fast",K8.copy(Oc[r])}Oc.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":s0,url:n0,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:a0,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:d0,uuid:i0,"json-pointer":o0,"json-pointer-uri-fragment":c0,"relative-json-pointer":l0};Oc.full={date:u0,time:p0,"date-time":a9,uri:n9,"uri-reference":e9,"uri-template":s0,url:n0,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:a0,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:d0,uuid:i0,"json-pointer":o0,"json-pointer-uri-fragment":c0,"relative-json-pointer":l0};function t9(r){return r%4===0&&(r%100!==0||r%400===0)}function u0(r){var e=r.match(Q8);if(!e)return!1;var a=+e[1],t=+e[2],s=+e[3];return t>=1&&t<=12&&s>=1&&s<=(t==2&&t9(a)?29:X8[t])}function p0(r,e){var a=r.match(J8);if(!a)return!1;var t=a[1],s=a[2],i=a[3],n=a[5];return(t<=23&&s<=59&&i<=59||t==23&&s==59&&i==60)&&(!e||n)}var r9=/t|\s/i;function a9(r){var e=r.split(r9);return e.length==2&&u0(e[0])&&p0(e[1],!0)}var s9=/\/|:/;function n9(r){return s9.test(r)&&Y8.test(r)}var i9=/[^\\]\\Z/;function d0(r){if(i9.test(r))return!1;try{return new RegExp(r),!0}catch{return!1}}});var v0=M((mL,h0)=>{"use strict";h0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.errSchemaPath+"/"+a,c=!e.opts.allErrors,u="data"+(n||""),p="valid"+i,m,f;if(o=="#"||o=="#/")e.isRoot?(m=e.async,f="validate"):(m=e.root.schema.$async===!0,f="root.refVal[0]");else{var h=e.resolveRef(e.baseId,o,e.isRoot);if(h===void 0){var d=e.MissingRefError.message(e.baseId,o);if(e.opts.missingRefs=="fail"){e.logger.error(d);var v=v||[];v.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { ref: '"+e.util.escapeQuotes(o)+"' } ",e.opts.messages!==!1&&(s+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(o)+"' "),e.opts.verbose&&(s+=" , schema: "+e.util.toQuotedString(o)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var x=s;s=v.pop(),!e.compositeRule&&c?e.async?s+=" throw new ValidationError(["+x+"]); ":s+=" validate.errors = ["+x+"]; return false; ":s+=" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(s+=" if (false) { ")}else if(e.opts.missingRefs=="ignore")e.logger.warn(d),c&&(s+=" if (true) { ");else throw new e.MissingRefError(e.baseId,o,d)}else if(h.inline){var b=e.util.copy(e);b.level++;var E="valid"+b.level;b.schema=h.schema,b.schemaPath="",b.errSchemaPath=o;var k=e.validate(b).replace(/validate\.schema/g,h.code);s+=" "+k+" ",c&&(s+=" if ("+E+") { ")}else m=h.$async===!0||e.async&&h.$async!==!1,f=h.code}if(f){var v=v||[];v.push(s),s="",e.opts.passContext?s+=" "+f+".call(this, ":s+=" "+f+"( ",s+=" "+u+", (dataPath || '')",e.errorPath!='""'&&(s+=" + "+e.errorPath);var O=n?"data"+(n-1||""):"parentData",P=n?e.dataPathArr[n]:"parentDataProperty";s+=" , "+O+" , "+P+", rootData) ";var I=s;if(s=v.pop(),m){if(!e.async)throw new Error("async schema referenced by sync schema");c&&(s+=" var "+p+"; "),s+=" try { await "+I+"; ",c&&(s+=" "+p+" = true; "),s+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",c&&(s+=" "+p+" = false; "),s+=" } ",c&&(s+=" if ("+p+") { ")}else s+=" if (!"+I+") { if (vErrors === null) vErrors = "+f+".errors; else vErrors = vErrors.concat("+f+".errors); errors = vErrors.length; } ",c&&(s+=" else { ")}return s}});var y0=M((hL,g0)=>{"use strict";g0.exports=function(e,a,t){var s=" ",i=e.schema[a],n=e.schemaPath+e.util.getProperty(a),o=e.errSchemaPath+"/"+a,l=!e.opts.allErrors,c=e.util.copy(e),u="";c.level++;var p="valid"+c.level,m=c.baseId,f=!0,h=i;if(h)for(var d,v=-1,x=h.length-1;v0||d===!1:e.util.schemaHasRules(d,e.RULES.all))&&(f=!1,c.schema=d,c.schemaPath=n+"["+v+"]",c.errSchemaPath=o+"/"+v,s+=" "+e.validate(c)+" ",c.baseId=m,l&&(s+=" if ("+p+") { ",u+="}"));return l&&(f?s+=" if (true) { ":s+=" "+u.slice(0,-1)+" "),s}});var x0=M((vL,b0)=>{"use strict";b0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f="errs__"+i,h=e.util.copy(e),d="";h.level++;var v="valid"+h.level,x=o.every(function($){return e.opts.strictKeywords?typeof $=="object"&&Object.keys($).length>0||$===!1:e.util.schemaHasRules($,e.RULES.all)});if(x){var b=h.baseId;s+=" var "+f+" = errors; var "+m+" = false; ";var E=e.compositeRule;e.compositeRule=h.compositeRule=!0;var k=o;if(k)for(var O,P=-1,I=k.length-1;P{"use strict";_0.exports=function(e,a,t){var s=" ",i=e.schema[a],n=e.errSchemaPath+"/"+a,o=!e.opts.allErrors,l=e.util.toQuotedString(i);return e.opts.$comment===!0?s+=" console.log("+l+");":typeof e.opts.$comment=="function"&&(s+=" self._opts.$comment("+l+", "+e.util.toQuotedString(n)+", validate.root.schema);"),s}});var S0=M((yL,w0)=>{"use strict";w0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f=e.opts.$data&&o&&o.$data,h;f?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",h="schema"+i):h=o,f||(s+=" var schema"+i+" = validate.schema"+l+";"),s+="var "+m+" = equal("+p+", schema"+i+"); if (!"+m+") { ";var d=d||[];d.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { allowedValue: schema"+i+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be equal to constant' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var v=s;return s=d.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+v+"]); ":s+=" validate.errors = ["+v+"]; return false; ":s+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }",u&&(s+=" else { "),s}});var R0=M((bL,P0)=>{"use strict";P0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f="errs__"+i,h=e.util.copy(e),d="";h.level++;var v="valid"+h.level,x="i"+i,b=h.dataLevel=e.dataLevel+1,E="data"+b,k=e.baseId,O=e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all);if(s+="var "+f+" = errors;var "+m+";",O){var P=e.compositeRule;e.compositeRule=h.compositeRule=!0,h.schema=o,h.schemaPath=l,h.errSchemaPath=c,s+=" var "+v+" = false; for (var "+x+" = 0; "+x+" < "+p+".length; "+x+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0);var I=p+"["+x+"]";h.dataPathArr[b]=x;var $=e.validate(h);h.baseId=k,e.util.varOccurences($,E)<2?s+=" "+e.util.varReplace($,E,I)+" ":s+=" var "+E+" = "+I+"; "+$+" ",s+=" if ("+v+") break; } ",e.compositeRule=h.compositeRule=P,s+=" "+d+" if (!"+v+") {"}else s+=" if ("+p+".length == 0) {";var A=A||[];A.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'should contain a valid item' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var F=s;return s=A.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+F+"]); ":s+=" validate.errors = ["+F+"]; return false; ":s+=" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { ",O&&(s+=" errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } "),e.opts.allErrors&&(s+=" } "),s}});var k0=M((xL,T0)=>{"use strict";T0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,f=e.util.copy(e),h="";f.level++;var d="valid"+f.level,v={},x={},b=e.opts.ownProperties;for(P in o)if(P!="__proto__"){var E=o[P],k=Array.isArray(E)?x:v;k[P]=E}s+="var "+m+" = errors;";var O=e.errorPath;s+="var missing"+i+";";for(var P in x)if(k=x[P],k.length){if(s+=" if ( "+p+e.util.getProperty(P)+" !== undefined ",b&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(P)+"') "),u){s+=" && ( ";var I=k;if(I)for(var $,A=-1,F=I.length-1;A0||E===!1:e.util.schemaHasRules(E,e.RULES.all))&&(s+=" "+d+" = true; if ( "+p+e.util.getProperty(P)+" !== undefined ",b&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(P)+"') "),s+=") { ",f.schema=E,f.schemaPath=l+e.util.getProperty(P),f.errSchemaPath=c+"/"+e.util.escapeFragment(P),s+=" "+e.validate(f)+" ",f.baseId=V,s+=" } ",u&&(s+=" if ("+d+") { ",h+="}"))}return u&&(s+=" "+h+" if ("+m+" == errors) {"),s}});var C0=M((_L,O0)=>{"use strict";O0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f=e.opts.$data&&o&&o.$data,h;f?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",h="schema"+i):h=o;var d="i"+i,v="schema"+i;f||(s+=" var "+v+" = validate.schema"+l+";"),s+="var "+m+";",f&&(s+=" if (schema"+i+" === undefined) "+m+" = true; else if (!Array.isArray(schema"+i+")) "+m+" = false; else {"),s+=""+m+" = false;for (var "+d+"=0; "+d+"<"+v+".length; "+d+"++) if (equal("+p+", "+v+"["+d+"])) { "+m+" = true; break; }",f&&(s+=" } "),s+=" if (!"+m+") { ";var x=x||[];x.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { allowedValues: schema"+i+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var b=s;return s=x.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+b+"]); ":s+=" validate.errors = ["+b+"]; return false; ":s+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }",u&&(s+=" else { "),s}});var A0=M((EL,I0)=>{"use strict";I0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||"");if(e.opts.format===!1)return u&&(s+=" if (true) { "),s;var m=e.opts.$data&&o&&o.$data,f;m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o;var h=e.opts.unknownFormats,d=Array.isArray(h);if(m){var v="format"+i,x="isObject"+i,b="formatType"+i;s+=" var "+v+" = formats["+f+"]; var "+x+" = typeof "+v+" == 'object' && !("+v+" instanceof RegExp) && "+v+".validate; var "+b+" = "+x+" && "+v+".type || 'string'; if ("+x+") { ",e.async&&(s+=" var async"+i+" = "+v+".async; "),s+=" "+v+" = "+v+".validate; } if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'string') || "),s+=" (",h!="ignore"&&(s+=" ("+f+" && !"+v+" ",d&&(s+=" && self._opts.unknownFormats.indexOf("+f+") == -1 "),s+=") || "),s+=" ("+v+" && "+b+" == '"+t+"' && !(typeof "+v+" == 'function' ? ",e.async?s+=" (async"+i+" ? await "+v+"("+p+") : "+v+"("+p+")) ":s+=" "+v+"("+p+") ",s+=" : "+v+".test("+p+"))))) {"}else{var v=e.formats[o];if(!v){if(h=="ignore")return e.logger.warn('unknown format "'+o+'" ignored in schema at path "'+e.errSchemaPath+'"'),u&&(s+=" if (true) { "),s;if(d&&h.indexOf(o)>=0)return u&&(s+=" if (true) { "),s;throw new Error('unknown format "'+o+'" is used in schema at path "'+e.errSchemaPath+'"')}var x=typeof v=="object"&&!(v instanceof RegExp)&&v.validate,b=x&&v.type||"string";if(x){var E=v.async===!0;v=v.validate}if(b!=t)return u&&(s+=" if (true) { "),s;if(E){if(!e.async)throw new Error("async format in sync schema");var k="formats"+e.util.getProperty(o)+".validate";s+=" if (!(await "+k+"("+p+"))) { "}else{s+=" if (! ";var k="formats"+e.util.getProperty(o);x&&(k+=".validate"),typeof v=="function"?s+=" "+k+"("+p+") ":s+=" "+k+".test("+p+") ",s+=") { "}}var O=O||[];O.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { format: ",m?s+=""+f:s+=""+e.util.toQuotedString(o),s+=" } ",e.opts.messages!==!1&&(s+=` , message: 'should match format "`,m?s+="' + "+f+" + '":s+=""+e.util.escapeQuotes(o),s+=`"' `),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+e.util.toQuotedString(o),s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var P=s;return s=O.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+P+"]); ":s+=" validate.errors = ["+P+"]; return false; ":s+=" var err = "+P+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { "),s}});var N0=M((wL,j0)=>{"use strict";j0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f="errs__"+i,h=e.util.copy(e);h.level++;var d="valid"+h.level,v=e.schema.then,x=e.schema.else,b=v!==void 0&&(e.opts.strictKeywords?typeof v=="object"&&Object.keys(v).length>0||v===!1:e.util.schemaHasRules(v,e.RULES.all)),E=x!==void 0&&(e.opts.strictKeywords?typeof x=="object"&&Object.keys(x).length>0||x===!1:e.util.schemaHasRules(x,e.RULES.all)),k=h.baseId;if(b||E){var O;h.createErrors=!1,h.schema=o,h.schemaPath=l,h.errSchemaPath=c,s+=" var "+f+" = errors; var "+m+" = true; ";var P=e.compositeRule;e.compositeRule=h.compositeRule=!0,s+=" "+e.validate(h)+" ",h.baseId=k,h.createErrors=!0,s+=" errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } ",e.compositeRule=h.compositeRule=P,b?(s+=" if ("+d+") { ",h.schema=e.schema.then,h.schemaPath=e.schemaPath+".then",h.errSchemaPath=e.errSchemaPath+"/then",s+=" "+e.validate(h)+" ",h.baseId=k,s+=" "+m+" = "+d+"; ",b&&E?(O="ifClause"+i,s+=" var "+O+" = 'then'; "):O="'then'",s+=" } ",E&&(s+=" else { ")):s+=" if (!"+d+") { ",E&&(h.schema=e.schema.else,h.schemaPath=e.schemaPath+".else",h.errSchemaPath=e.errSchemaPath+"/else",s+=" "+e.validate(h)+" ",h.baseId=k,s+=" "+m+" = "+d+"; ",b&&E?(O="ifClause"+i,s+=" var "+O+" = 'else'; "):O="'else'",s+=" } "),s+=" if (!"+m+") { var err = ",e.createErrors!==!1?(s+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { failingKeyword: "+O+" } ",e.opts.messages!==!1&&(s+=` , message: 'should match "' + `+O+` + '" schema' `),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&u&&(e.async?s+=" throw new ValidationError(vErrors); ":s+=" validate.errors = vErrors; return false; "),s+=" } ",u&&(s+=" else { ")}else u&&(s+=" if (true) { ");return s}});var $0=M((SL,D0)=>{"use strict";D0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f="errs__"+i,h=e.util.copy(e),d="";h.level++;var v="valid"+h.level,x="i"+i,b=h.dataLevel=e.dataLevel+1,E="data"+b,k=e.baseId;if(s+="var "+f+" = errors;var "+m+";",Array.isArray(o)){var O=e.schema.additionalItems;if(O===!1){s+=" "+m+" = "+p+".length <= "+o.length+"; ";var P=c;c=e.errSchemaPath+"/additionalItems",s+=" if (!"+m+") { ";var I=I||[];I.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+o.length+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have more than "+o.length+" items' "),e.opts.verbose&&(s+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var $=s;s=I.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+$+"]); ":s+=" validate.errors = ["+$+"]; return false; ":s+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",c=P,u&&(d+="}",s+=" else { ")}var A=o;if(A){for(var F,q=-1,C=A.length-1;q0||F===!1:e.util.schemaHasRules(F,e.RULES.all)){s+=" "+v+" = true; if ("+p+".length > "+q+") { ";var R=p+"["+q+"]";h.schema=F,h.schemaPath=l+"["+q+"]",h.errSchemaPath=c+"/"+q,h.errorPath=e.util.getPathExpr(e.errorPath,q,e.opts.jsonPointers,!0),h.dataPathArr[b]=q;var j=e.validate(h);h.baseId=k,e.util.varOccurences(j,E)<2?s+=" "+e.util.varReplace(j,E,R)+" ":s+=" var "+E+" = "+R+"; "+j+" ",s+=" } ",u&&(s+=" if ("+v+") { ",d+="}")}}if(typeof O=="object"&&(e.opts.strictKeywords?typeof O=="object"&&Object.keys(O).length>0||O===!1:e.util.schemaHasRules(O,e.RULES.all))){h.schema=O,h.schemaPath=e.schemaPath+".additionalItems",h.errSchemaPath=e.errSchemaPath+"/additionalItems",s+=" "+v+" = true; if ("+p+".length > "+o.length+") { for (var "+x+" = "+o.length+"; "+x+" < "+p+".length; "+x+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0);var R=p+"["+x+"]";h.dataPathArr[b]=x;var j=e.validate(h);h.baseId=k,e.util.varOccurences(j,E)<2?s+=" "+e.util.varReplace(j,E,R)+" ":s+=" var "+E+" = "+R+"; "+j+" ",u&&(s+=" if (!"+v+") break; "),s+=" } } ",u&&(s+=" if ("+v+") { ",d+="}")}}else if(e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){h.schema=o,h.schemaPath=l,h.errSchemaPath=c,s+=" for (var "+x+" = 0; "+x+" < "+p+".length; "+x+"++) { ",h.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0);var R=p+"["+x+"]";h.dataPathArr[b]=x;var j=e.validate(h);h.baseId=k,e.util.varOccurences(j,E)<2?s+=" "+e.util.varReplace(j,E,R)+" ":s+=" var "+E+" = "+R+"; "+j+" ",u&&(s+=" if (!"+v+") break; "),s+=" }"}return u&&(s+=" "+d+" if ("+f+" == errors) {"),s}});var ed=M((PL,q0)=>{"use strict";q0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,k,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,f;m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o;var h=a=="maximum",d=h?"exclusiveMaximum":"exclusiveMinimum",v=e.schema[d],x=e.opts.$data&&v&&v.$data,b=h?"<":">",E=h?">":"<",k=void 0;if(!(m||typeof o=="number"||o===void 0))throw new Error(a+" must be number");if(!(x||v===void 0||typeof v=="number"||typeof v=="boolean"))throw new Error(d+" must be number or boolean");if(x){var O=e.util.getData(v.$data,n,e.dataPathArr),P="exclusive"+i,I="exclType"+i,$="exclIsNumber"+i,A="op"+i,F="' + "+A+" + '";s+=" var schemaExcl"+i+" = "+O+"; ",O="schemaExcl"+i,s+=" var "+P+"; var "+I+" = typeof "+O+"; if ("+I+" != 'boolean' && "+I+" != 'undefined' && "+I+" != 'number') { ";var k=d,q=q||[];q.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(k||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: '"+d+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var C=s;s=q.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+C+"]); ":s+=" validate.errors = ["+C+"]; return false; ":s+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),s+=" "+I+" == 'number' ? ( ("+P+" = "+f+" === undefined || "+O+" "+b+"= "+f+") ? "+p+" "+E+"= "+O+" : "+p+" "+E+" "+f+" ) : ( ("+P+" = "+O+" === true) ? "+p+" "+E+"= "+f+" : "+p+" "+E+" "+f+" ) || "+p+" !== "+p+") { var op"+i+" = "+P+" ? '"+b+"' : '"+b+"='; ",o===void 0&&(k=d,c=e.errSchemaPath+"/"+d,f=O,m=x)}else{var $=typeof v=="number",F=b;if($&&m){var A="'"+F+"'";s+=" if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),s+=" ( "+f+" === undefined || "+v+" "+b+"= "+f+" ? "+p+" "+E+"= "+v+" : "+p+" "+E+" "+f+" ) || "+p+" !== "+p+") { "}else{$&&o===void 0?(P=!0,k=d,c=e.errSchemaPath+"/"+d,f=v,E+="="):($&&(f=Math[h?"min":"max"](v,o)),v===($?f:!0)?(P=!0,k=d,c=e.errSchemaPath+"/"+d,E+="="):(P=!1,F+="="));var A="'"+F+"'";s+=" if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),s+=" "+p+" "+E+" "+f+" || "+p+" !== "+p+") { "}}k=k||a;var q=q||[];q.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(k||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { comparison: "+A+", limit: "+f+", exclusive: "+P+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be "+F+" ",m?s+="' + "+f:s+=""+f+"'"),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var C=s;return s=q.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+C+"]); ":s+=" validate.errors = ["+C+"]; return false; ":s+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { "),s}});var td=M((RL,M0)=>{"use strict";M0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,d,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,f;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o,!(m||typeof o=="number"))throw new Error(a+" must be number");var h=a=="maxItems"?">":"<";s+="if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),s+=" "+p+".length "+h+" "+f+") { ";var d=a,v=v||[];v.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(d||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+f+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have ",a=="maxItems"?s+="more":s+="fewer",s+=" than ",m?s+="' + "+f+" + '":s+=""+o,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var x=s;return s=v.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+x+"]); ":s+=" validate.errors = ["+x+"]; return false; ":s+=" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var rd=M((TL,F0)=>{"use strict";F0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,d,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,f;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o,!(m||typeof o=="number"))throw new Error(a+" must be number");var h=a=="maxLength"?">":"<";s+="if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),e.opts.unicode===!1?s+=" "+p+".length ":s+=" ucs2length("+p+") ",s+=" "+h+" "+f+") { ";var d=a,v=v||[];v.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(d||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+f+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT be ",a=="maxLength"?s+="longer":s+="shorter",s+=" than ",m?s+="' + "+f+" + '":s+=""+o,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var x=s;return s=v.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+x+"]); ":s+=" validate.errors = ["+x+"]; return false; ":s+=" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var ad=M((kL,L0)=>{"use strict";L0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,d,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,f;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o,!(m||typeof o=="number"))throw new Error(a+" must be number");var h=a=="maxProperties"?">":"<";s+="if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'number') || "),s+=" Object.keys("+p+").length "+h+" "+f+") { ";var d=a,v=v||[];v.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(d||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+f+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have ",a=="maxProperties"?s+="more":s+="fewer",s+=" than ",m?s+="' + "+f+" + '":s+=""+o,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var x=s;return s=v.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+x+"]); ":s+=" validate.errors = ["+x+"]; return false; ":s+=" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var z0=M((OL,U0)=>{"use strict";U0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,f;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o,!(m||typeof o=="number"))throw new Error(a+" must be number");s+="var division"+i+";if (",m&&(s+=" "+f+" !== undefined && ( typeof "+f+" != 'number' || "),s+=" (division"+i+" = "+p+" / "+f+", ",e.opts.multipleOfPrecision?s+=" Math.abs(Math.round(division"+i+") - division"+i+") > 1e-"+e.opts.multipleOfPrecision+" ":s+=" division"+i+" !== parseInt(division"+i+") ",s+=" ) ",m&&(s+=" ) "),s+=" ) { ";var h=h||[];h.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+f+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be multiple of ",m?s+="' + "+f:s+=""+f+"'"),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var d=s;return s=h.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+d+"]); ":s+=" validate.errors = ["+d+"]; return false; ":s+=" var err = "+d+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var B0=M((CL,H0)=>{"use strict";H0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,f=e.util.copy(e);f.level++;var h="valid"+f.level;if(e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){f.schema=o,f.schemaPath=l,f.errSchemaPath=c,s+=" var "+m+" = errors; ";var d=e.compositeRule;e.compositeRule=f.compositeRule=!0,f.createErrors=!1;var v;f.opts.allErrors&&(v=f.opts.allErrors,f.opts.allErrors=!1),s+=" "+e.validate(f)+" ",f.createErrors=!0,v&&(f.opts.allErrors=v),e.compositeRule=f.compositeRule=d,s+=" if ("+h+") { ";var x=x||[];x.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'should NOT be valid' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var b=s;s=x.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+b+"]); ":s+=" validate.errors = ["+b+"]; return false; ":s+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { errors = "+m+"; if (vErrors !== null) { if ("+m+") vErrors.length = "+m+"; else vErrors = null; } ",e.opts.allErrors&&(s+=" } ")}else s+=" var err = ",e.createErrors!==!1?(s+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'should NOT be valid' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(s+=" if (false) { ");return s}});var G0=M((IL,V0)=>{"use strict";V0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f="errs__"+i,h=e.util.copy(e),d="";h.level++;var v="valid"+h.level,x=h.baseId,b="prevValid"+i,E="passingSchemas"+i;s+="var "+f+" = errors , "+b+" = false , "+m+" = false , "+E+" = null; ";var k=e.compositeRule;e.compositeRule=h.compositeRule=!0;var O=o;if(O)for(var P,I=-1,$=O.length-1;I<$;)P=O[I+=1],(e.opts.strictKeywords?typeof P=="object"&&Object.keys(P).length>0||P===!1:e.util.schemaHasRules(P,e.RULES.all))?(h.schema=P,h.schemaPath=l+"["+I+"]",h.errSchemaPath=c+"/"+I,s+=" "+e.validate(h)+" ",h.baseId=x):s+=" var "+v+" = true; ",I&&(s+=" if ("+v+" && "+b+") { "+m+" = false; "+E+" = ["+E+", "+I+"]; } else { ",d+="}"),s+=" if ("+v+") { "+m+" = "+b+" = true; "+E+" = "+I+"; }";return e.compositeRule=h.compositeRule=k,s+=""+d+"if (!"+m+") { var err = ",e.createErrors!==!1?(s+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { passingSchemas: "+E+" } ",e.opts.messages!==!1&&(s+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&u&&(e.async?s+=" throw new ValidationError(vErrors); ":s+=" validate.errors = vErrors; return false; "),s+="} else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; }",e.opts.allErrors&&(s+=" } "),s}});var W0=M((AL,Z0)=>{"use strict";Z0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,f;m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o;var h=m?"(new RegExp("+f+"))":e.usePattern(o);s+="if ( ",m&&(s+=" ("+f+" !== undefined && typeof "+f+" != 'string') || "),s+=" !"+h+".test("+p+") ) { ";var d=d||[];d.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { pattern: ",m?s+=""+f:s+=""+e.util.toQuotedString(o),s+=" } ",e.opts.messages!==!1&&(s+=` , message: 'should match pattern "`,m?s+="' + "+f+" + '":s+=""+e.util.escapeQuotes(o),s+=`"' `),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+e.util.toQuotedString(o),s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var v=s;return s=d.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+v+"]); ":s+=" validate.errors = ["+v+"]; return false; ":s+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var Q0=M((jL,K0)=>{"use strict";K0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,f=e.util.copy(e),h="";f.level++;var d="valid"+f.level,v="key"+i,x="idx"+i,b=f.dataLevel=e.dataLevel+1,E="data"+b,k="dataProperties"+i,O=Object.keys(o||{}).filter(te),P=e.schema.patternProperties||{},I=Object.keys(P).filter(te),$=e.schema.additionalProperties,A=O.length||I.length,F=$===!1,q=typeof $=="object"&&Object.keys($).length,C=e.opts.removeAdditional,R=F||q||C,j=e.opts.ownProperties,z=e.baseId,B=e.schema.required;if(B&&!(e.opts.$data&&B.$data)&&B.length8)s+=" || validate.schema"+l+".hasOwnProperty("+v+") ";else{var X=O;if(X)for(var V,re=-1,ce=X.length-1;re0||Ee===!1:e.util.schemaHasRules(Ee,e.RULES.all)){var Ye=e.util.getProperty(V),Q=p+Ye,Ue=Ie&&Ee.default!==void 0;f.schema=Ee,f.schemaPath=l+Ye,f.errSchemaPath=c+"/"+e.util.escapeFragment(V),f.errorPath=e.util.getPath(e.errorPath,V,e.opts.jsonPointers),f.dataPathArr[b]=e.util.toQuotedString(V);var ie=e.validate(f);if(f.baseId=z,e.util.varOccurences(ie,E)<2){ie=e.util.varReplace(ie,E,Q);var Qe=Q}else{var Qe=E;s+=" var "+E+" = "+Q+"; "}if(Ue)s+=" "+ie+" ";else{if(G&&G[V]){s+=" if ( "+Qe+" === undefined ",j&&(s+=" || ! Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(V)+"') "),s+=") { "+d+" = false; ";var Oe=e.errorPath,Z=c,Ve=e.util.escapeQuotes(V);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(Oe,V,e.opts.jsonPointers)),c=e.errSchemaPath+"/required";var ee=ee||[];ee.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+Ve+"' } ",e.opts.messages!==!1&&(s+=" , message: '",e.opts._errorDataPathProperty?s+="is a required property":s+="should have required property \\'"+Ve+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var ue=s;s=ee.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+ue+"]); ":s+=" validate.errors = ["+ue+"]; return false; ":s+=" var err = "+ue+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c=Z,e.errorPath=Oe,s+=" } else { "}else u?(s+=" if ( "+Qe+" === undefined ",j&&(s+=" || ! Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(V)+"') "),s+=") { "+d+" = true; } else { "):(s+=" if ("+Qe+" !== undefined ",j&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(V)+"') "),s+=" ) { ");s+=" "+ie+" } "}}u&&(s+=" if ("+d+") { ",h+="}")}}if(I.length){var Ke=I;if(Ke)for(var be,bt=-1,xt=Ke.length-1;bt0||Ee===!1:e.util.schemaHasRules(Ee,e.RULES.all)){f.schema=Ee,f.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(be),f.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(be),j?s+=" "+k+" = "+k+" || Object.keys("+p+"); for (var "+x+"=0; "+x+"<"+k+".length; "+x+"++) { var "+v+" = "+k+"["+x+"]; ":s+=" for (var "+v+" in "+p+") { ",s+=" if ("+e.usePattern(be)+".test("+v+")) { ",f.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);var Q=p+"["+v+"]";f.dataPathArr[b]=v;var ie=e.validate(f);f.baseId=z,e.util.varOccurences(ie,E)<2?s+=" "+e.util.varReplace(ie,E,Q)+" ":s+=" var "+E+" = "+Q+"; "+ie+" ",u&&(s+=" if (!"+d+") break; "),s+=" } ",u&&(s+=" else "+d+" = true; "),s+=" } ",u&&(s+=" if ("+d+") { ",h+="}")}}}return u&&(s+=" "+h+" if ("+m+" == errors) {"),s}});var J0=M((NL,X0)=>{"use strict";X0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,f=e.util.copy(e),h="";f.level++;var d="valid"+f.level;if(s+="var "+m+" = errors;",e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){f.schema=o,f.schemaPath=l,f.errSchemaPath=c;var v="key"+i,x="idx"+i,b="i"+i,E="' + "+v+" + '",k=f.dataLevel=e.dataLevel+1,O="data"+k,P="dataProperties"+i,I=e.opts.ownProperties,$=e.baseId;I&&(s+=" var "+P+" = undefined; "),I?s+=" "+P+" = "+P+" || Object.keys("+p+"); for (var "+x+"=0; "+x+"<"+P+".length; "+x+"++) { var "+v+" = "+P+"["+x+"]; ":s+=" for (var "+v+" in "+p+") { ",s+=" var startErrs"+i+" = errors; ";var A=v,F=e.compositeRule;e.compositeRule=f.compositeRule=!0;var q=e.validate(f);f.baseId=$,e.util.varOccurences(q,O)<2?s+=" "+e.util.varReplace(q,O,A)+" ":s+=" var "+O+" = "+A+"; "+q+" ",e.compositeRule=f.compositeRule=F,s+=" if (!"+d+") { for (var "+b+"=startErrs"+i+"; "+b+"{"use strict";Y0.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f=e.opts.$data&&o&&o.$data,h;f?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",h="schema"+i):h=o;var d="schema"+i;if(!f)if(o.length0||O===!1:e.util.schemaHasRules(O,e.RULES.all))||(v[v.length]=b)}}else var v=o;if(f||v.length){var P=e.errorPath,I=f||v.length>=e.opts.loopRequired,$=e.opts.ownProperties;if(u)if(s+=" var missing"+i+"; ",I){f||(s+=" var "+d+" = validate.schema"+l+"; ");var A="i"+i,F="schema"+i+"["+A+"]",q="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(P,F,e.opts.jsonPointers)),s+=" var "+m+" = true; ",f&&(s+=" if (schema"+i+" === undefined) "+m+" = true; else if (!Array.isArray(schema"+i+")) "+m+" = false; else {"),s+=" for (var "+A+" = 0; "+A+" < "+d+".length; "+A+"++) { "+m+" = "+p+"["+d+"["+A+"]] !== undefined ",$&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", "+d+"["+A+"]) "),s+="; if (!"+m+") break; } ",f&&(s+=" } "),s+=" if (!"+m+") { ";var C=C||[];C.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+q+"' } ",e.opts.messages!==!1&&(s+=" , message: '",e.opts._errorDataPathProperty?s+="is a required property":s+="should have required property \\'"+q+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var R=s;s=C.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+R+"]); ":s+=" validate.errors = ["+R+"]; return false; ":s+=" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { "}else{s+=" if ( ";var j=v;if(j)for(var z,A=-1,B=j.length-1;A{"use strict";t_.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,f=e.opts.$data&&o&&o.$data,h;if(f?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",h="schema"+i):h=o,(o||f)&&e.opts.uniqueItems!==!1){f&&(s+=" var "+m+"; if ("+h+" === false || "+h+" === undefined) "+m+" = true; else if (typeof "+h+" != 'boolean') "+m+" = false; else { "),s+=" var i = "+p+".length , "+m+" = true , j; if (i > 1) { ";var d=e.schema.items&&e.schema.items.type,v=Array.isArray(d);if(!d||d=="object"||d=="array"||v&&(d.indexOf("object")>=0||d.indexOf("array")>=0))s+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+p+"[i], "+p+"[j])) { "+m+" = false; break outer; } } } ";else{s+=" var itemIndices = {}, item; for (;i--;) { var item = "+p+"[i]; ";var x="checkDataType"+(v?"s":"");s+=" if ("+e.util[x](d,"item",e.opts.strictNumbers,!0)+") continue; ",v&&(s+=` if (typeof item == 'string') item = '"' + item; `),s+=" if (typeof itemIndices[item] == 'number') { "+m+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}s+=" } ",f&&(s+=" } "),s+=" if (!"+m+") { ";var b=b||[];b.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(s+=" , schema: ",f?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var E=s;s=b.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+E+"]); ":s+=" validate.errors = ["+E+"]; return false; ":s+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { ")}else u&&(s+=" if (true) { ");return s}});var s_=M((qL,a_)=>{"use strict";a_.exports={$ref:v0(),allOf:y0(),anyOf:x0(),$comment:E0(),const:S0(),contains:R0(),dependencies:k0(),enum:C0(),format:A0(),if:N0(),items:$0(),maximum:ed(),minimum:ed(),maxItems:td(),minItems:td(),maxLength:rd(),minLength:rd(),maxProperties:ad(),minProperties:ad(),multipleOf:z0(),not:B0(),oneOf:G0(),pattern:W0(),properties:Q0(),propertyNames:J0(),required:e_(),uniqueItems:r_(),validate:Jp()}});var o_=M((ML,i_)=>{"use strict";var n_=s_(),sd=fs().toHash;i_.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],a=["type","$comment"],t=["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"],s=["number","integer","string","array","object","boolean","null"];return e.all=sd(a),e.types=sd(s),e.forEach(function(i){i.rules=i.rules.map(function(n){var o;if(typeof n=="object"){var l=Object.keys(n)[0];o=n[l],n=l,o.forEach(function(u){a.push(u),e.all[u]=!0})}a.push(n);var c=e.all[n]={keyword:n,code:n_[n],implements:o};return c}),e.all.$comment={keyword:"$comment",code:n_.$comment},i.type&&(e.types[i.type]=i)}),e.keywords=sd(a.concat(t)),e.custom={},e}});var u_=M((FL,l_)=>{"use strict";var c_=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];l_.exports=function(r,e){for(var a=0;a{"use strict";var o9=Sc().MissingRef;d_.exports=p_;function p_(r,e,a){var t=this;if(typeof this._opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");typeof e=="function"&&(a=e,e=void 0);var s=i(r).then(function(){var o=t._addSchema(r,void 0,e);return o.validate||n(o)});return a&&s.then(function(o){a(null,o)},a),s;function i(o){var l=o.$schema;return l&&!t.getSchema(l)?p_.call(t,{$ref:l},!0):Promise.resolve()}function n(o){try{return t._compile(o)}catch(c){if(c instanceof o9)return l(c);throw c}function l(c){var u=c.missingSchema;if(f(u))throw new Error("Schema "+u+" is loaded but "+c.missingRef+" cannot be resolved");var p=t._loadingSchemas[u];return p||(p=t._loadingSchemas[u]=t._opts.loadSchema(u),p.then(m,m)),p.then(function(h){if(!f(u))return i(h).then(function(){f(u)||t.addSchema(h,u,void 0,e)})}).then(function(){return n(o)});function m(){delete t._loadingSchemas[u]}function f(h){return t._refs[h]||t._schemas[h]}}}}});var h_=M((UL,m_)=>{"use strict";m_.exports=function(e,a,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[a],l=e.schemaPath+e.util.getProperty(a),c=e.errSchemaPath+"/"+a,u=!e.opts.allErrors,p,m="data"+(n||""),f="valid"+i,h="errs__"+i,d=e.opts.$data&&o&&o.$data,v;d?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",v="schema"+i):v=o;var x=this,b="definition"+i,E=x.definition,k="",O,P,I,$,A;if(d&&E.$data){A="keywordValidate"+i;var F=E.validateSchema;s+=" var "+b+" = RULES.custom['"+a+"'].definition; var "+A+" = "+b+".validate;"}else{if($=e.useCustomRule(x,o,e.schema,e),!$)return;v="validate.schema"+l,A=$.code,O=E.compile,P=E.inline,I=E.macro}var q=A+".errors",C="i"+i,R="ruleErr"+i,j=E.async;if(j&&!e.async)throw new Error("async keyword in sync schema");if(P||I||(s+=""+q+" = null;"),s+="var "+h+" = errors;var "+f+";",d&&E.$data&&(k+="}",s+=" if ("+v+" === undefined) { "+f+" = true; } else { ",F&&(k+="}",s+=" "+f+" = "+b+".validateSchema("+v+"); if ("+f+") { ")),P)E.statements?s+=" "+$.validate+" ":s+=" "+f+" = "+$.validate+"; ";else if(I){var z=e.util.copy(e),k="";z.level++;var B="valid"+z.level;z.schema=$.validate,z.schemaPath="";var G=e.compositeRule;e.compositeRule=z.compositeRule=!0;var te=e.validate(z).replace(/validate\.schema/g,A);e.compositeRule=z.compositeRule=G,s+=" "+te}else{var X=X||[];X.push(s),s="",s+=" "+A+".call( ",e.opts.passContext?s+="this":s+="self",O||E.schema===!1?s+=" , "+m+" ":s+=" , "+v+" , "+m+" , validate.schema"+e.schemaPath+" ",s+=" , (dataPath || '')",e.errorPath!='""'&&(s+=" + "+e.errorPath);var V=n?"data"+(n-1||""):"parentData",re=n?e.dataPathArr[n]:"parentDataProperty";s+=" , "+V+" , "+re+" , rootData ) ";var ce=s;s=X.pop(),E.errors===!1?(s+=" "+f+" = ",j&&(s+="await "),s+=""+ce+"; "):j?(q="customErrors"+i,s+=" var "+q+" = null; try { "+f+" = await "+ce+"; } catch (e) { "+f+" = false; if (e instanceof ValidationError) "+q+" = e.errors; else throw e; } "):s+=" "+q+" = null; "+f+" = "+ce+"; "}if(E.modifying&&(s+=" if ("+V+") "+m+" = "+V+"["+re+"];"),s+=""+k,E.valid)u&&(s+=" if (true) { ");else{s+=" if ( ",E.valid===void 0?(s+=" !",I?s+=""+B:s+=""+f):s+=" "+!E.valid+" ",s+=") { ",p=x.keyword;var X=X||[];X.push(s),s="";var X=X||[];X.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(p||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+x.keyword+"' } ",e.opts.messages!==!1&&(s+=` , message: 'should pass "`+x.keyword+`" keyword validation' `),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),s+=" } "):s+=" {} ";var Be=s;s=X.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+Be+"]); ":s+=" validate.errors = ["+Be+"]; return false; ":s+=" var err = "+Be+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var be=s;s=X.pop(),P?E.errors?E.errors!="full"&&(s+=" for (var "+C+"="+h+"; "+C+"{c9.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var y_=M((HL,g_)=>{"use strict";var v_=nd();g_.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:v_.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:v_.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}});var x_=M((BL,b_)=>{"use strict";var l9=/^[a-z_$][a-z0-9_$-]*$/i,u9=h_(),p9=y_();b_.exports={add:d9,get:f9,remove:m9,validate:id};function d9(r,e){var a=this.RULES;if(a.keywords[r])throw new Error("Keyword "+r+" is already defined");if(!l9.test(r))throw new Error("Keyword "+r+" is not a valid identifier");if(e){this.validateKeyword(e,!0);var t=e.type;if(Array.isArray(t))for(var s=0;s{h9.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var I_=M((GL,C_)=>{"use strict";var w_=e0(),ms=wc(),v9=r0(),S_=Vp(),g9=Xp(),y9=m0(),b9=o_(),P_=u_(),R_=fs();C_.exports=ut;ut.prototype.validate=_9;ut.prototype.compile=E9;ut.prototype.addSchema=w9;ut.prototype.addMetaSchema=S9;ut.prototype.validateSchema=P9;ut.prototype.getSchema=T9;ut.prototype.removeSchema=O9;ut.prototype.addFormat=q9;ut.prototype.errorsText=$9;ut.prototype._addSchema=C9;ut.prototype._compile=I9;ut.prototype.compileAsync=f_();var Ac=x_();ut.prototype.addKeyword=Ac.add;ut.prototype.getKeyword=Ac.get;ut.prototype.removeKeyword=Ac.remove;ut.prototype.validateKeyword=Ac.validate;var T_=Sc();ut.ValidationError=T_.Validation;ut.MissingRefError=T_.MissingRef;ut.$dataMetaSchema=P_;var Ic="http://json-schema.org/draft-07/schema",E_=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],x9=["/properties"];function ut(r){if(!(this instanceof ut))return new ut(r);r=this._opts=R_.copy(r)||{},H9(this),this._schemas={},this._refs={},this._fragments={},this._formats=y9(r.format),this._cache=r.cache||new v9,this._loadingSchemas={},this._compilations=[],this.RULES=b9(),this._getId=A9(r),r.loopRequired=r.loopRequired||1/0,r.errorDataPath=="property"&&(r._errorDataPathProperty=!0),r.serialize===void 0&&(r.serialize=g9),this._metaOpts=z9(this),r.formats&&L9(this),r.keywords&&U9(this),M9(this),typeof r.meta=="object"&&this.addMetaSchema(r.meta),r.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),F9(this)}function _9(r,e){var a;if(typeof r=="string"){if(a=this.getSchema(r),!a)throw new Error('no schema with key or ref "'+r+'"')}else{var t=this._addSchema(r);a=t.validate||this._compile(t)}var s=a(e);return a.$async!==!0&&(this.errors=a.errors),s}function E9(r,e){var a=this._addSchema(r,void 0,e);return a.validate||this._compile(a)}function w9(r,e,a,t){if(Array.isArray(r)){for(var s=0;s{$_.exports=D_;D_.sync=V9;var j_=require("fs");function B9(r,e){var a=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!a||(a=a.split(";"),a.indexOf("")!==-1))return!0;for(var t=0;t{U_.exports=F_;F_.sync=G9;var M_=require("fs");function F_(r,e,a){M_.stat(r,function(t,s){a(t,t?!1:L_(s,e))})}function G9(r,e){return L_(M_.statSync(r),e)}function L_(r,e){return r.isFile()&&Z9(r,e)}function Z9(r,e){var a=r.mode,t=r.uid,s=r.gid,i=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),n=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),o=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=o|l,p=a&c||a&l&&s===n||a&o&&t===i||a&u&&i===0;return p}});var B_=M((YL,H_)=>{var JL=require("fs"),jc;process.platform==="win32"||global.TESTING_WINDOWS?jc=q_():jc=z_();H_.exports=cd;cd.sync=W9;function cd(r,e,a){if(typeof e=="function"&&(a=e,e={}),!a){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(t,s){cd(r,e||{},function(i,n){i?s(i):t(n)})})}jc(r,e||{},function(t,s){t&&(t.code==="EACCES"||e&&e.ignoreErrors)&&(t=null,s=!1),a(t,s)})}function W9(r,e){try{return jc.sync(r,e||{})}catch(a){if(e&&e.ignoreErrors||a.code==="EACCES")return!1;throw a}}});var X_=M((e3,Q_)=>{var yn=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",V_=require("path"),K9=yn?";":":",G_=B_(),Z_=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),W_=(r,e)=>{let a=e.colon||K9,t=r.match(/\//)||yn&&r.match(/\\/)?[""]:[...yn?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(a)],s=yn?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=yn?s.split(a):[""];return yn&&r.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:t,pathExt:i,pathExtExe:s}},K_=(r,e,a)=>{typeof e=="function"&&(a=e,e={}),e||(e={});let{pathEnv:t,pathExt:s,pathExtExe:i}=W_(r,e),n=[],o=c=>new Promise((u,p)=>{if(c===t.length)return e.all&&n.length?u(n):p(Z_(r));let m=t[c],f=/^".*"$/.test(m)?m.slice(1,-1):m,h=V_.join(f,r),d=!f&&/^\.[\\\/]/.test(r)?r.slice(0,2)+h:h;u(l(d,c,0))}),l=(c,u,p)=>new Promise((m,f)=>{if(p===s.length)return m(o(u+1));let h=s[p];G_(c+h,{pathExt:i},(d,v)=>{if(!d&&v)if(e.all)n.push(c+h);else return m(c+h);return m(l(c,u,p+1))})});return a?o(0).then(c=>a(null,c),a):o(0)},Q9=(r,e)=>{e=e||{};let{pathEnv:a,pathExt:t,pathExtExe:s}=W_(r,e),i=[];for(let n=0;n{"use strict";var J_=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(t=>t.toUpperCase()==="PATH")||"Path"};ld.exports=J_;ld.exports.default=J_});var aE=M((r3,rE)=>{"use strict";var eE=require("path"),X9=X_(),J9=Y_();function tE(r,e){let a=r.options.env||process.env,t=process.cwd(),s=r.options.cwd!=null,i=s&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(r.options.cwd)}catch{}let n;try{n=X9.sync(r.command,{path:a[J9({env:a})],pathExt:e?eE.delimiter:void 0})}catch{}finally{i&&process.chdir(t)}return n&&(n=eE.resolve(s?r.options.cwd:"",n)),n}function Y9(r){return tE(r)||tE(r,!0)}rE.exports=Y9});var sE=M((a3,pd)=>{"use strict";var ud=/([()\][%!^"`<>&|;, *?])/g;function ej(r){return r=r.replace(ud,"^$1"),r}function tj(r,e){return r=`${r}`,r=r.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),r=r.replace(/(?=(\\+?)?)\1$/,"$1$1"),r=`"${r}"`,r=r.replace(ud,"^$1"),e&&(r=r.replace(ud,"^$1")),r}pd.exports.command=ej;pd.exports.argument=tj});var iE=M((s3,nE)=>{"use strict";nE.exports=/^#!(.*)/});var cE=M((n3,oE)=>{"use strict";var rj=iE();oE.exports=(r="")=>{let e=r.match(rj);if(!e)return null;let[a,t]=e[0].replace(/#! ?/,"").split(" "),s=a.split("/").pop();return s==="env"?t:t?`${s} ${t}`:s}});var uE=M((i3,lE)=>{"use strict";var dd=require("fs"),aj=cE();function sj(r){let a=Buffer.alloc(150),t;try{t=dd.openSync(r,"r"),dd.readSync(t,a,0,150,0),dd.closeSync(t)}catch{}return aj(a.toString())}lE.exports=sj});var mE=M((o3,fE)=>{"use strict";var nj=require("path"),pE=aE(),dE=sE(),ij=uE(),oj=process.platform==="win32",cj=/\.(?:com|exe)$/i,lj=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function uj(r){r.file=pE(r);let e=r.file&&ij(r.file);return e?(r.args.unshift(r.file),r.command=e,pE(r)):r.file}function pj(r){if(!oj)return r;let e=uj(r),a=!cj.test(e);if(r.options.forceShell||a){let t=lj.test(e);r.command=nj.normalize(r.command),r.command=dE.command(r.command),r.args=r.args.map(i=>dE.argument(i,t));let s=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${s}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function dj(r,e,a){e&&!Array.isArray(e)&&(a=e,e=null),e=e?e.slice(0):[],a=Object.assign({},a);let t={command:r,args:e,options:a,file:void 0,original:{command:r,args:e}};return a.shell?t:pj(t)}fE.exports=dj});var gE=M((c3,vE)=>{"use strict";var fd=process.platform==="win32";function md(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function fj(r,e){if(!fd)return;let a=r.emit;r.emit=function(t,s){if(t==="exit"){let i=hE(s,e);if(i)return a.call(r,"error",i)}return a.apply(r,arguments)}}function hE(r,e){return fd&&r===1&&!e.file?md(e.original,"spawn"):null}function mj(r,e){return fd&&r===1&&!e.file?md(e.original,"spawnSync"):null}vE.exports={hookChildProcess:fj,verifyENOENT:hE,verifyENOENTSync:mj,notFoundError:md}});var xE=M((l3,bn)=>{"use strict";var yE=require("child_process"),hd=mE(),vd=gE();function bE(r,e,a){let t=hd(r,e,a),s=yE.spawn(t.command,t.args,t.options);return vd.hookChildProcess(s,t),s}function hj(r,e,a){let t=hd(r,e,a),s=yE.spawnSync(t.command,t.args,t.options);return s.error=s.error||vd.verifyENOENTSync(s.status,t),s}bn.exports=bE;bn.exports.spawn=bE;bn.exports.sync=hj;bn.exports._parse=hd;bn.exports._enoent=vd});var T$={};Hd(T$,{WorkerService:()=>$i,default:()=>R$});module.exports=tw(T$);var nl=jt(Gb(),1),B1=jt(Xb(),1),Rr=jt(require("path"),1),vt=require("fs"),il=require("os");var _t=require("path"),vp=require("os"),gp=require("fs");var Jb=require("url"),nA={};function aA(){return typeof __dirname<"u"?__dirname:(0,_t.dirname)((0,Jb.fileURLToPath)(nA.url))}var sA=aA(),wr=process.env.CLAUDE_MEM_DATA_DIR||(0,_t.join)((0,vp.homedir)(),".claude-mem"),yp=process.env.CLAUDE_CONFIG_DIR||(0,_t.join)((0,vp.homedir)(),".claude"),iF=(0,_t.join)(wr,"archives"),oF=(0,_t.join)(wr,"logs"),cF=(0,_t.join)(wr,"trash"),lF=(0,_t.join)(wr,"backups"),uF=(0,_t.join)(wr,"settings.json"),Xo=(0,_t.join)(wr,"claude-mem.db"),pF=(0,_t.join)(wr,"vector-db"),dF=(0,_t.join)(yp,"settings.json"),fF=(0,_t.join)(yp,"commands"),mF=(0,_t.join)(yp,"CLAUDE.md");function Jo(r){(0,gp.mkdirSync)(r,{recursive:!0})}function Ka(){return(0,_t.join)(sA,"..","..")}var Yb=jt(require("path"),1),ex=require("os"),Yo=require("fs");function ec(){try{let r=Yb.default.join((0,ex.homedir)(),".claude-mem","settings.json");if((0,Yo.existsSync)(r)){let e=JSON.parse((0,Yo.readFileSync)(r,"utf-8")),a=parseInt(e.env?.CLAUDE_MEM_WORKER_PORT,10);if(!isNaN(a))return a}}catch{}return parseInt(process.env.CLAUDE_MEM_WORKER_PORT||"37777",10)}var bp=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(bp||{}),xp=class{level;useColor;constructor(){let e=process.env.CLAUDE_MEM_LOG_LEVEL?.toUpperCase()||"INFO";this.level=bp[e]??1,this.useColor=process.stdout.isTTY??!1}correlationId(e,a){return`obs-${e}-${a}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.level===0?`${e.message} ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let a=Object.keys(e);return a.length===0?"{}":a.length<=3?JSON.stringify(e):`{${a.length} keys: ${a.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,a){if(!a)return e;try{let t=typeof a=="string"?JSON.parse(a):a;if(e==="Bash"&&t.command){let s=t.command.length>50?t.command.substring(0,50)+"...":t.command;return`${e}(${s})`}if(e==="Read"&&t.file_path){let s=t.file_path.split("/").pop()||t.file_path;return`${e}(${s})`}if(e==="Edit"&&t.file_path){let s=t.file_path.split("/").pop()||t.file_path;return`${e}(${s})`}if(e==="Write"&&t.file_path){let s=t.file_path.split("/").pop()||t.file_path;return`${e}(${s})`}return e}catch{return e}}log(e,a,t,s,i){if(e0&&(p=` {${Object.entries(v).map(([b,E])=>`${b}=${E}`).join(", ")}}`)}let m=`[${n}] [${o}] [${l}] ${c}${t}${p}${u}`;e===3?console.error(m):console.log(m)}debug(e,a,t,s){this.log(0,e,a,t,s)}info(e,a,t,s){this.log(1,e,a,t,s)}warn(e,a,t,s){this.log(2,e,a,t,s)}error(e,a,t,s){this.log(3,e,a,t,s)}dataIn(e,a,t,s){this.info(e,`\u2192 ${a}`,t,s)}dataOut(e,a,t,s){this.info(e,`\u2190 ${a}`,t,s)}success(e,a,t,s){this.info(e,`\u2713 ${a}`,t,s)}failure(e,a,t,s){this.error(e,`\u2717 ${a}`,t,s)}timing(e,a,t,s){this.info(e,`\u23F1 ${a}`,s,{duration:`${t}ms`})}},H=new xp;var _={};Hd(_,{BRAND:()=>IA,DIRTY:()=>Qa,EMPTY_PATH:()=>lA,INVALID:()=>_e,NEVER:()=>h2,OK:()=>Pt,ParseStatus:()=>Et,Schema:()=>Le,ZodAny:()=>wa,ZodArray:()=>Yr,ZodBigInt:()=>Ja,ZodBoolean:()=>Ya,ZodBranded:()=>_i,ZodCatch:()=>us,ZodDate:()=>es,ZodDefault:()=>ls,ZodDiscriminatedUnion:()=>ac,ZodEffects:()=>or,ZodEnum:()=>os,ZodError:()=>Mt,ZodFirstPartyTypeKind:()=>Se,ZodFunction:()=>nc,ZodIntersection:()=>ss,ZodIssueCode:()=>J,ZodLazy:()=>ns,ZodLiteral:()=>is,ZodMap:()=>mn,ZodNaN:()=>vn,ZodNativeEnum:()=>cs,ZodNever:()=>Sr,ZodNull:()=>rs,ZodNullable:()=>Mr,ZodNumber:()=>Xa,ZodObject:()=>Ft,ZodOptional:()=>nr,ZodParsedType:()=>oe,ZodPipeline:()=>Ei,ZodPromise:()=>Sa,ZodReadonly:()=>ps,ZodRecord:()=>sc,ZodSchema:()=>Le,ZodSet:()=>hn,ZodString:()=>Ea,ZodSymbol:()=>dn,ZodTransformer:()=>or,ZodTuple:()=>qr,ZodType:()=>Le,ZodUndefined:()=>ts,ZodUnion:()=>as,ZodUnknown:()=>Jr,ZodVoid:()=>fn,addIssueToContext:()=>ae,any:()=>LA,array:()=>BA,bigint:()=>DA,boolean:()=>px,coerce:()=>m2,custom:()=>cx,date:()=>$A,datetimeRegex:()=>ix,defaultErrorMap:()=>Qr,discriminatedUnion:()=>WA,effect:()=>i2,enum:()=>a2,function:()=>e2,getErrorMap:()=>ln,getParsedType:()=>$r,instanceof:()=>jA,intersection:()=>KA,isAborted:()=>tc,isAsync:()=>un,isDirty:()=>rc,isValid:()=>_a,late:()=>AA,lazy:()=>t2,literal:()=>r2,makeIssue:()=>xi,map:()=>JA,nan:()=>NA,nativeEnum:()=>s2,never:()=>zA,null:()=>FA,nullable:()=>c2,number:()=>ux,object:()=>VA,objectUtil:()=>_p,oboolean:()=>f2,onumber:()=>d2,optional:()=>o2,ostring:()=>p2,pipeline:()=>u2,preprocess:()=>l2,promise:()=>n2,quotelessJson:()=>iA,record:()=>XA,set:()=>YA,setErrorMap:()=>cA,strictObject:()=>GA,string:()=>lx,symbol:()=>qA,transformer:()=>i2,tuple:()=>QA,undefined:()=>MA,union:()=>ZA,unknown:()=>UA,util:()=>He,void:()=>HA});var He;(function(r){r.assertEqual=s=>{};function e(s){}r.assertIs=e;function a(s){throw new Error}r.assertNever=a,r.arrayToEnum=s=>{let i={};for(let n of s)i[n]=n;return i},r.getValidEnumValues=s=>{let i=r.objectKeys(s).filter(o=>typeof s[s[o]]!="number"),n={};for(let o of i)n[o]=s[o];return r.objectValues(n)},r.objectValues=s=>r.objectKeys(s).map(function(i){return s[i]}),r.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let i=[];for(let n in s)Object.prototype.hasOwnProperty.call(s,n)&&i.push(n);return i},r.find=(s,i)=>{for(let n of s)if(i(n))return n},r.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function t(s,i=" | "){return s.map(n=>typeof n=="string"?`'${n}'`:n).join(i)}r.joinValues=t,r.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(He||(He={}));var _p;(function(r){r.mergeShapes=(e,a)=>({...e,...a})})(_p||(_p={}));var oe=He.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),$r=r=>{switch(typeof r){case"undefined":return oe.undefined;case"string":return oe.string;case"number":return Number.isNaN(r)?oe.nan:oe.number;case"boolean":return oe.boolean;case"function":return oe.function;case"bigint":return oe.bigint;case"symbol":return oe.symbol;case"object":return Array.isArray(r)?oe.array:r===null?oe.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?oe.promise:typeof Map<"u"&&r instanceof Map?oe.map:typeof Set<"u"&&r instanceof Set?oe.set:typeof Date<"u"&&r instanceof Date?oe.date:oe.object;default:return oe.unknown}};var J=He.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),iA=r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:"),Mt=class r extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=t=>{this.issues=[...this.issues,t]},this.addIssues=(t=[])=>{this.issues=[...this.issues,...t]};let a=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,a):this.__proto__=a,this.name="ZodError",this.issues=e}format(e){let a=e||function(i){return i.message},t={_errors:[]},s=i=>{for(let n of i.issues)if(n.code==="invalid_union")n.unionErrors.map(s);else if(n.code==="invalid_return_type")s(n.returnTypeError);else if(n.code==="invalid_arguments")s(n.argumentsError);else if(n.path.length===0)t._errors.push(a(n));else{let o=t,l=0;for(;la.message){let a={},t=[];for(let s of this.issues)if(s.path.length>0){let i=s.path[0];a[i]=a[i]||[],a[i].push(e(s))}else t.push(e(s));return{formErrors:t,fieldErrors:a}}get formErrors(){return this.flatten()}};Mt.create=r=>new Mt(r);var oA=(r,e)=>{let a;switch(r.code){case J.invalid_type:r.received===oe.undefined?a="Required":a=`Expected ${r.expected}, received ${r.received}`;break;case J.invalid_literal:a=`Invalid literal value, expected ${JSON.stringify(r.expected,He.jsonStringifyReplacer)}`;break;case J.unrecognized_keys:a=`Unrecognized key(s) in object: ${He.joinValues(r.keys,", ")}`;break;case J.invalid_union:a="Invalid input";break;case J.invalid_union_discriminator:a=`Invalid discriminator value. Expected ${He.joinValues(r.options)}`;break;case J.invalid_enum_value:a=`Invalid enum value. Expected ${He.joinValues(r.options)}, received '${r.received}'`;break;case J.invalid_arguments:a="Invalid function arguments";break;case J.invalid_return_type:a="Invalid function return type";break;case J.invalid_date:a="Invalid date";break;case J.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(a=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(a=`${a} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?a=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?a=`Invalid input: must end with "${r.validation.endsWith}"`:He.assertNever(r.validation):r.validation!=="regex"?a=`Invalid ${r.validation}`:a="Invalid";break;case J.too_small:r.type==="array"?a=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?a=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?a=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="bigint"?a=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?a=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:a="Invalid input";break;case J.too_big:r.type==="array"?a=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?a=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?a=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?a=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?a=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:a="Invalid input";break;case J.custom:a="Invalid input";break;case J.invalid_intersection_types:a="Intersection results could not be merged";break;case J.not_multiple_of:a=`Number must be a multiple of ${r.multipleOf}`;break;case J.not_finite:a="Number must be finite";break;default:a=e.defaultError,He.assertNever(r)}return{message:a}},Qr=oA;var tx=Qr;function cA(r){tx=r}function ln(){return tx}var xi=r=>{let{data:e,path:a,errorMaps:t,issueData:s}=r,i=[...a,...s.path||[]],n={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let o="",l=t.filter(c=>!!c).slice().reverse();for(let c of l)o=c(n,{data:e,defaultError:o}).message;return{...s,path:i,message:o}},lA=[];function ae(r,e){let a=ln(),t=xi({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,a,a===Qr?void 0:Qr].filter(s=>!!s)});r.common.issues.push(t)}var Et=class r{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,a){let t=[];for(let s of a){if(s.status==="aborted")return _e;s.status==="dirty"&&e.dirty(),t.push(s.value)}return{status:e.value,value:t}}static async mergeObjectAsync(e,a){let t=[];for(let s of a){let i=await s.key,n=await s.value;t.push({key:i,value:n})}return r.mergeObjectSync(e,t)}static mergeObjectSync(e,a){let t={};for(let s of a){let{key:i,value:n}=s;if(i.status==="aborted"||n.status==="aborted")return _e;i.status==="dirty"&&e.dirty(),n.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof n.value<"u"||s.alwaysSet)&&(t[i.value]=n.value)}return{status:e.value,value:t}}},_e=Object.freeze({status:"aborted"}),Qa=r=>({status:"dirty",value:r}),Pt=r=>({status:"valid",value:r}),tc=r=>r.status==="aborted",rc=r=>r.status==="dirty",_a=r=>r.status==="valid",un=r=>typeof Promise<"u"&&r instanceof Promise;var fe;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e?.message})(fe||(fe={}));var ir=class{constructor(e,a,t,s){this._cachedPath=[],this.parent=e,this.data=a,this._path=t,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},rx=(r,e)=>{if(_a(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let a=new Mt(r.common.issues);return this._error=a,this._error}}};function De(r){if(!r)return{};let{errorMap:e,invalid_type_error:a,required_error:t,description:s}=r;if(e&&(a||t))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(n,o)=>{let{message:l}=r;return n.code==="invalid_enum_value"?{message:l??o.defaultError}:typeof o.data>"u"?{message:l??t??o.defaultError}:n.code!=="invalid_type"?{message:o.defaultError}:{message:l??a??o.defaultError}},description:s}}var Le=class{get description(){return this._def.description}_getType(e){return $r(e.data)}_getOrReturnCtx(e,a){return a||{common:e.parent.common,data:e.data,parsedType:$r(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Et,ctx:{common:e.parent.common,data:e.data,parsedType:$r(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let a=this._parse(e);if(un(a))throw new Error("Synchronous parse encountered promise.");return a}_parseAsync(e){let a=this._parse(e);return Promise.resolve(a)}parse(e,a){let t=this.safeParse(e,a);if(t.success)return t.data;throw t.error}safeParse(e,a){let t={common:{issues:[],async:a?.async??!1,contextualErrorMap:a?.errorMap},path:a?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:$r(e)},s=this._parseSync({data:e,path:t.path,parent:t});return rx(t,s)}"~validate"(e){let a={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:$r(e)};if(!this["~standard"].async)try{let t=this._parseSync({data:e,path:[],parent:a});return _a(t)?{value:t.value}:{issues:a.common.issues}}catch(t){t?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),a.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:a}).then(t=>_a(t)?{value:t.value}:{issues:a.common.issues})}async parseAsync(e,a){let t=await this.safeParseAsync(e,a);if(t.success)return t.data;throw t.error}async safeParseAsync(e,a){let t={common:{issues:[],contextualErrorMap:a?.errorMap,async:!0},path:a?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:$r(e)},s=this._parse({data:e,path:t.path,parent:t}),i=await(un(s)?s:Promise.resolve(s));return rx(t,i)}refine(e,a){let t=s=>typeof a=="string"||typeof a>"u"?{message:a}:typeof a=="function"?a(s):a;return this._refinement((s,i)=>{let n=e(s),o=()=>i.addIssue({code:J.custom,...t(s)});return typeof Promise<"u"&&n instanceof Promise?n.then(l=>l?!0:(o(),!1)):n?!0:(o(),!1)})}refinement(e,a){return this._refinement((t,s)=>e(t)?!0:(s.addIssue(typeof a=="function"?a(t,s):a),!1))}_refinement(e){return new or({schema:this,typeName:Se.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:a=>this["~validate"](a)}}optional(){return nr.create(this,this._def)}nullable(){return Mr.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Yr.create(this)}promise(){return Sa.create(this,this._def)}or(e){return as.create([this,e],this._def)}and(e){return ss.create(this,e,this._def)}transform(e){return new or({...De(this._def),schema:this,typeName:Se.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let a=typeof e=="function"?e:()=>e;return new ls({...De(this._def),innerType:this,defaultValue:a,typeName:Se.ZodDefault})}brand(){return new _i({typeName:Se.ZodBranded,type:this,...De(this._def)})}catch(e){let a=typeof e=="function"?e:()=>e;return new us({...De(this._def),innerType:this,catchValue:a,typeName:Se.ZodCatch})}describe(e){let a=this.constructor;return new a({...this._def,description:e})}pipe(e){return Ei.create(this,e)}readonly(){return ps.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},uA=/^c[^\s-]{8,}$/i,pA=/^[0-9a-z]+$/,dA=/^[0-9A-HJKMNP-TV-Z]{26}$/i,fA=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,mA=/^[a-z0-9_-]{21}$/i,hA=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,vA=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,gA=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,yA="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ep,bA=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,xA=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,_A=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,EA=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,wA=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,SA=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,sx="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",PA=new RegExp(`^${sx}$`);function nx(r){let e="[0-5]\\d";r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`);let a=r.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${a}`}function RA(r){return new RegExp(`^${nx(r)}$`)}function ix(r){let e=`${sx}T${nx(r)}`,a=[];return a.push(r.local?"Z?":"Z"),r.offset&&a.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${a.join("|")})`,new RegExp(`^${e}$`)}function TA(r,e){return!!((e==="v4"||!e)&&bA.test(r)||(e==="v6"||!e)&&_A.test(r))}function kA(r,e){if(!hA.test(r))return!1;try{let[a]=r.split(".");if(!a)return!1;let t=a.replace(/-/g,"+").replace(/_/g,"/").padEnd(a.length+(4-a.length%4)%4,"="),s=JSON.parse(atob(t));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function OA(r,e){return!!((e==="v4"||!e)&&xA.test(r)||(e==="v6"||!e)&&EA.test(r))}var Ea=class r extends Le{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==oe.string){let i=this._getOrReturnCtx(e);return ae(i,{code:J.invalid_type,expected:oe.string,received:i.parsedType}),_e}let t=new Et,s;for(let i of this._def.checks)if(i.kind==="min")e.data.lengthi.value&&(s=this._getOrReturnCtx(e,s),ae(s,{code:J.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),t.dirty());else if(i.kind==="length"){let n=e.data.length>i.value,o=e.data.lengthe.test(s),{validation:a,code:J.invalid_string,...fe.errToObj(t)})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...fe.errToObj(e)})}url(e){return this._addCheck({kind:"url",...fe.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...fe.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...fe.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...fe.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...fe.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...fe.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...fe.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...fe.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...fe.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...fe.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...fe.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...fe.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...fe.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...fe.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...fe.errToObj(e)})}regex(e,a){return this._addCheck({kind:"regex",regex:e,...fe.errToObj(a)})}includes(e,a){return this._addCheck({kind:"includes",value:e,position:a?.position,...fe.errToObj(a?.message)})}startsWith(e,a){return this._addCheck({kind:"startsWith",value:e,...fe.errToObj(a)})}endsWith(e,a){return this._addCheck({kind:"endsWith",value:e,...fe.errToObj(a)})}min(e,a){return this._addCheck({kind:"min",value:e,...fe.errToObj(a)})}max(e,a){return this._addCheck({kind:"max",value:e,...fe.errToObj(a)})}length(e,a){return this._addCheck({kind:"length",value:e,...fe.errToObj(a)})}nonempty(e){return this.min(1,fe.errToObj(e))}trim(){return new r({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new r({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new r({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e}get maxLength(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuenew Ea({checks:[],typeName:Se.ZodString,coerce:r?.coerce??!1,...De(r)});function CA(r,e){let a=(r.toString().split(".")[1]||"").length,t=(e.toString().split(".")[1]||"").length,s=a>t?a:t,i=Number.parseInt(r.toFixed(s).replace(".","")),n=Number.parseInt(e.toFixed(s).replace(".",""));return i%n/10**s}var Xa=class r extends Le{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==oe.number){let i=this._getOrReturnCtx(e);return ae(i,{code:J.invalid_type,expected:oe.number,received:i.parsedType}),_e}let t,s=new Et;for(let i of this._def.checks)i.kind==="int"?He.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),ae(t,{code:J.invalid_type,expected:"integer",received:"float",message:i.message}),s.dirty()):i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(t=this._getOrReturnCtx(e,t),ae(t,{code:J.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="multipleOf"?CA(e.data,i.value)!==0&&(t=this._getOrReturnCtx(e,t),ae(t,{code:J.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),ae(t,{code:J.not_finite,message:i.message}),s.dirty()):He.assertNever(i);return{status:s.value,value:e.data}}gte(e,a){return this.setLimit("min",e,!0,fe.toString(a))}gt(e,a){return this.setLimit("min",e,!1,fe.toString(a))}lte(e,a){return this.setLimit("max",e,!0,fe.toString(a))}lt(e,a){return this.setLimit("max",e,!1,fe.toString(a))}setLimit(e,a,t,s){return new r({...this._def,checks:[...this._def.checks,{kind:e,value:a,inclusive:t,message:fe.toString(s)}]})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:fe.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:fe.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:fe.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:fe.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:fe.toString(e)})}multipleOf(e,a){return this._addCheck({kind:"multipleOf",value:e,message:fe.toString(a)})}finite(e){return this._addCheck({kind:"finite",message:fe.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:fe.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:fe.toString(e)})}get minValue(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e}get maxValue(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuee.kind==="int"||e.kind==="multipleOf"&&He.isInteger(e.value))}get isFinite(){let e=null,a=null;for(let t of this._def.checks){if(t.kind==="finite"||t.kind==="int"||t.kind==="multipleOf")return!0;t.kind==="min"?(a===null||t.value>a)&&(a=t.value):t.kind==="max"&&(e===null||t.valuenew Xa({checks:[],typeName:Se.ZodNumber,coerce:r?.coerce||!1,...De(r)});var Ja=class r extends Le{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==oe.bigint)return this._getInvalidInput(e);let t,s=new Et;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(t=this._getOrReturnCtx(e,t),ae(t,{code:J.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),ae(t,{code:J.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):He.assertNever(i);return{status:s.value,value:e.data}}_getInvalidInput(e){let a=this._getOrReturnCtx(e);return ae(a,{code:J.invalid_type,expected:oe.bigint,received:a.parsedType}),_e}gte(e,a){return this.setLimit("min",e,!0,fe.toString(a))}gt(e,a){return this.setLimit("min",e,!1,fe.toString(a))}lte(e,a){return this.setLimit("max",e,!0,fe.toString(a))}lt(e,a){return this.setLimit("max",e,!1,fe.toString(a))}setLimit(e,a,t,s){return new r({...this._def,checks:[...this._def.checks,{kind:e,value:a,inclusive:t,message:fe.toString(s)}]})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:fe.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:fe.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:fe.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:fe.toString(e)})}multipleOf(e,a){return this._addCheck({kind:"multipleOf",value:e,message:fe.toString(a)})}get minValue(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e}get maxValue(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuenew Ja({checks:[],typeName:Se.ZodBigInt,coerce:r?.coerce??!1,...De(r)});var Ya=class extends Le{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==oe.boolean){let t=this._getOrReturnCtx(e);return ae(t,{code:J.invalid_type,expected:oe.boolean,received:t.parsedType}),_e}return Pt(e.data)}};Ya.create=r=>new Ya({typeName:Se.ZodBoolean,coerce:r?.coerce||!1,...De(r)});var es=class r extends Le{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==oe.date){let i=this._getOrReturnCtx(e);return ae(i,{code:J.invalid_type,expected:oe.date,received:i.parsedType}),_e}if(Number.isNaN(e.data.getTime())){let i=this._getOrReturnCtx(e);return ae(i,{code:J.invalid_date}),_e}let t=new Et,s;for(let i of this._def.checks)i.kind==="min"?e.data.getTime()i.value&&(s=this._getOrReturnCtx(e,s),ae(s,{code:J.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),t.dirty()):He.assertNever(i);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}min(e,a){return this._addCheck({kind:"min",value:e.getTime(),message:fe.toString(a)})}max(e,a){return this._addCheck({kind:"max",value:e.getTime(),message:fe.toString(a)})}get minDate(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuenew es({checks:[],coerce:r?.coerce||!1,typeName:Se.ZodDate,...De(r)});var dn=class extends Le{_parse(e){if(this._getType(e)!==oe.symbol){let t=this._getOrReturnCtx(e);return ae(t,{code:J.invalid_type,expected:oe.symbol,received:t.parsedType}),_e}return Pt(e.data)}};dn.create=r=>new dn({typeName:Se.ZodSymbol,...De(r)});var ts=class extends Le{_parse(e){if(this._getType(e)!==oe.undefined){let t=this._getOrReturnCtx(e);return ae(t,{code:J.invalid_type,expected:oe.undefined,received:t.parsedType}),_e}return Pt(e.data)}};ts.create=r=>new ts({typeName:Se.ZodUndefined,...De(r)});var rs=class extends Le{_parse(e){if(this._getType(e)!==oe.null){let t=this._getOrReturnCtx(e);return ae(t,{code:J.invalid_type,expected:oe.null,received:t.parsedType}),_e}return Pt(e.data)}};rs.create=r=>new rs({typeName:Se.ZodNull,...De(r)});var wa=class extends Le{constructor(){super(...arguments),this._any=!0}_parse(e){return Pt(e.data)}};wa.create=r=>new wa({typeName:Se.ZodAny,...De(r)});var Jr=class extends Le{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Pt(e.data)}};Jr.create=r=>new Jr({typeName:Se.ZodUnknown,...De(r)});var Sr=class extends Le{_parse(e){let a=this._getOrReturnCtx(e);return ae(a,{code:J.invalid_type,expected:oe.never,received:a.parsedType}),_e}};Sr.create=r=>new Sr({typeName:Se.ZodNever,...De(r)});var fn=class extends Le{_parse(e){if(this._getType(e)!==oe.undefined){let t=this._getOrReturnCtx(e);return ae(t,{code:J.invalid_type,expected:oe.void,received:t.parsedType}),_e}return Pt(e.data)}};fn.create=r=>new fn({typeName:Se.ZodVoid,...De(r)});var Yr=class r extends Le{_parse(e){let{ctx:a,status:t}=this._processInputParams(e),s=this._def;if(a.parsedType!==oe.array)return ae(a,{code:J.invalid_type,expected:oe.array,received:a.parsedType}),_e;if(s.exactLength!==null){let n=a.data.length>s.exactLength.value,o=a.data.lengths.maxLength.value&&(ae(a,{code:J.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),t.dirty()),a.common.async)return Promise.all([...a.data].map((n,o)=>s.type._parseAsync(new ir(a,n,a.path,o)))).then(n=>Et.mergeArray(t,n));let i=[...a.data].map((n,o)=>s.type._parseSync(new ir(a,n,a.path,o)));return Et.mergeArray(t,i)}get element(){return this._def.type}min(e,a){return new r({...this._def,minLength:{value:e,message:fe.toString(a)}})}max(e,a){return new r({...this._def,maxLength:{value:e,message:fe.toString(a)}})}length(e,a){return new r({...this._def,exactLength:{value:e,message:fe.toString(a)}})}nonempty(e){return this.min(1,e)}};Yr.create=(r,e)=>new Yr({type:r,minLength:null,maxLength:null,exactLength:null,typeName:Se.ZodArray,...De(e)});function pn(r){if(r instanceof Ft){let e={};for(let a in r.shape){let t=r.shape[a];e[a]=nr.create(pn(t))}return new Ft({...r._def,shape:()=>e})}else return r instanceof Yr?new Yr({...r._def,type:pn(r.element)}):r instanceof nr?nr.create(pn(r.unwrap())):r instanceof Mr?Mr.create(pn(r.unwrap())):r instanceof qr?qr.create(r.items.map(e=>pn(e))):r}var Ft=class r extends Le{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),a=He.objectKeys(e);return this._cached={shape:e,keys:a},this._cached}_parse(e){if(this._getType(e)!==oe.object){let c=this._getOrReturnCtx(e);return ae(c,{code:J.invalid_type,expected:oe.object,received:c.parsedType}),_e}let{status:t,ctx:s}=this._processInputParams(e),{shape:i,keys:n}=this._getCached(),o=[];if(!(this._def.catchall instanceof Sr&&this._def.unknownKeys==="strip"))for(let c in s.data)n.includes(c)||o.push(c);let l=[];for(let c of n){let u=i[c],p=s.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new ir(s,p,s.path,c)),alwaysSet:c in s.data})}if(this._def.catchall instanceof Sr){let c=this._def.unknownKeys;if(c==="passthrough")for(let u of o)l.push({key:{status:"valid",value:u},value:{status:"valid",value:s.data[u]}});else if(c==="strict")o.length>0&&(ae(s,{code:J.unrecognized_keys,keys:o}),t.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let u of o){let p=s.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new ir(s,p,s.path,u)),alwaysSet:u in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let c=[];for(let u of l){let p=await u.key,m=await u.value;c.push({key:p,value:m,alwaysSet:u.alwaysSet})}return c}).then(c=>Et.mergeObjectSync(t,c)):Et.mergeObjectSync(t,l)}get shape(){return this._def.shape()}strict(e){return fe.errToObj,new r({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(a,t)=>{let s=this._def.errorMap?.(a,t).message??t.defaultError;return a.code==="unrecognized_keys"?{message:fe.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new r({...this._def,unknownKeys:"strip"})}passthrough(){return new r({...this._def,unknownKeys:"passthrough"})}extend(e){return new r({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new r({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Se.ZodObject})}setKey(e,a){return this.augment({[e]:a})}catchall(e){return new r({...this._def,catchall:e})}pick(e){let a={};for(let t of He.objectKeys(e))e[t]&&this.shape[t]&&(a[t]=this.shape[t]);return new r({...this._def,shape:()=>a})}omit(e){let a={};for(let t of He.objectKeys(this.shape))e[t]||(a[t]=this.shape[t]);return new r({...this._def,shape:()=>a})}deepPartial(){return pn(this)}partial(e){let a={};for(let t of He.objectKeys(this.shape)){let s=this.shape[t];e&&!e[t]?a[t]=s:a[t]=s.optional()}return new r({...this._def,shape:()=>a})}required(e){let a={};for(let t of He.objectKeys(this.shape))if(e&&!e[t])a[t]=this.shape[t];else{let i=this.shape[t];for(;i instanceof nr;)i=i._def.innerType;a[t]=i}return new r({...this._def,shape:()=>a})}keyof(){return ox(He.objectKeys(this.shape))}};Ft.create=(r,e)=>new Ft({shape:()=>r,unknownKeys:"strip",catchall:Sr.create(),typeName:Se.ZodObject,...De(e)});Ft.strictCreate=(r,e)=>new Ft({shape:()=>r,unknownKeys:"strict",catchall:Sr.create(),typeName:Se.ZodObject,...De(e)});Ft.lazycreate=(r,e)=>new Ft({shape:r,unknownKeys:"strip",catchall:Sr.create(),typeName:Se.ZodObject,...De(e)});var as=class extends Le{_parse(e){let{ctx:a}=this._processInputParams(e),t=this._def.options;function s(i){for(let o of i)if(o.result.status==="valid")return o.result;for(let o of i)if(o.result.status==="dirty")return a.common.issues.push(...o.ctx.common.issues),o.result;let n=i.map(o=>new Mt(o.ctx.common.issues));return ae(a,{code:J.invalid_union,unionErrors:n}),_e}if(a.common.async)return Promise.all(t.map(async i=>{let n={...a,common:{...a.common,issues:[]},parent:null};return{result:await i._parseAsync({data:a.data,path:a.path,parent:n}),ctx:n}})).then(s);{let i,n=[];for(let l of t){let c={...a,common:{...a.common,issues:[]},parent:null},u=l._parseSync({data:a.data,path:a.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!i&&(i={result:u,ctx:c}),c.common.issues.length&&n.push(c.common.issues)}if(i)return a.common.issues.push(...i.ctx.common.issues),i.result;let o=n.map(l=>new Mt(l));return ae(a,{code:J.invalid_union,unionErrors:o}),_e}}get options(){return this._def.options}};as.create=(r,e)=>new as({options:r,typeName:Se.ZodUnion,...De(e)});var Xr=r=>r instanceof ns?Xr(r.schema):r instanceof or?Xr(r.innerType()):r instanceof is?[r.value]:r instanceof os?r.options:r instanceof cs?He.objectValues(r.enum):r instanceof ls?Xr(r._def.innerType):r instanceof ts?[void 0]:r instanceof rs?[null]:r instanceof nr?[void 0,...Xr(r.unwrap())]:r instanceof Mr?[null,...Xr(r.unwrap())]:r instanceof _i||r instanceof ps?Xr(r.unwrap()):r instanceof us?Xr(r._def.innerType):[],ac=class r extends Le{_parse(e){let{ctx:a}=this._processInputParams(e);if(a.parsedType!==oe.object)return ae(a,{code:J.invalid_type,expected:oe.object,received:a.parsedType}),_e;let t=this.discriminator,s=a.data[t],i=this.optionsMap.get(s);return i?a.common.async?i._parseAsync({data:a.data,path:a.path,parent:a}):i._parseSync({data:a.data,path:a.path,parent:a}):(ae(a,{code:J.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[t]}),_e)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,a,t){let s=new Map;for(let i of a){let n=Xr(i.shape[e]);if(!n.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let o of n){if(s.has(o))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);s.set(o,i)}}return new r({typeName:Se.ZodDiscriminatedUnion,discriminator:e,options:a,optionsMap:s,...De(t)})}};function wp(r,e){let a=$r(r),t=$r(e);if(r===e)return{valid:!0,data:r};if(a===oe.object&&t===oe.object){let s=He.objectKeys(e),i=He.objectKeys(r).filter(o=>s.indexOf(o)!==-1),n={...r,...e};for(let o of i){let l=wp(r[o],e[o]);if(!l.valid)return{valid:!1};n[o]=l.data}return{valid:!0,data:n}}else if(a===oe.array&&t===oe.array){if(r.length!==e.length)return{valid:!1};let s=[];for(let i=0;i{if(tc(i)||tc(n))return _e;let o=wp(i.value,n.value);return o.valid?((rc(i)||rc(n))&&a.dirty(),{status:a.value,value:o.data}):(ae(t,{code:J.invalid_intersection_types}),_e)};return t.common.async?Promise.all([this._def.left._parseAsync({data:t.data,path:t.path,parent:t}),this._def.right._parseAsync({data:t.data,path:t.path,parent:t})]).then(([i,n])=>s(i,n)):s(this._def.left._parseSync({data:t.data,path:t.path,parent:t}),this._def.right._parseSync({data:t.data,path:t.path,parent:t}))}};ss.create=(r,e,a)=>new ss({left:r,right:e,typeName:Se.ZodIntersection,...De(a)});var qr=class r extends Le{_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==oe.array)return ae(t,{code:J.invalid_type,expected:oe.array,received:t.parsedType}),_e;if(t.data.lengththis._def.items.length&&(ae(t,{code:J.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),a.dirty());let i=[...t.data].map((n,o)=>{let l=this._def.items[o]||this._def.rest;return l?l._parse(new ir(t,n,t.path,o)):null}).filter(n=>!!n);return t.common.async?Promise.all(i).then(n=>Et.mergeArray(a,n)):Et.mergeArray(a,i)}get items(){return this._def.items}rest(e){return new r({...this._def,rest:e})}};qr.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new qr({items:r,typeName:Se.ZodTuple,rest:null,...De(e)})};var sc=class r extends Le{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==oe.object)return ae(t,{code:J.invalid_type,expected:oe.object,received:t.parsedType}),_e;let s=[],i=this._def.keyType,n=this._def.valueType;for(let o in t.data)s.push({key:i._parse(new ir(t,o,t.path,o)),value:n._parse(new ir(t,t.data[o],t.path,o)),alwaysSet:o in t.data});return t.common.async?Et.mergeObjectAsync(a,s):Et.mergeObjectSync(a,s)}get element(){return this._def.valueType}static create(e,a,t){return a instanceof Le?new r({keyType:e,valueType:a,typeName:Se.ZodRecord,...De(t)}):new r({keyType:Ea.create(),valueType:e,typeName:Se.ZodRecord,...De(a)})}},mn=class extends Le{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==oe.map)return ae(t,{code:J.invalid_type,expected:oe.map,received:t.parsedType}),_e;let s=this._def.keyType,i=this._def.valueType,n=[...t.data.entries()].map(([o,l],c)=>({key:s._parse(new ir(t,o,t.path,[c,"key"])),value:i._parse(new ir(t,l,t.path,[c,"value"]))}));if(t.common.async){let o=new Map;return Promise.resolve().then(async()=>{for(let l of n){let c=await l.key,u=await l.value;if(c.status==="aborted"||u.status==="aborted")return _e;(c.status==="dirty"||u.status==="dirty")&&a.dirty(),o.set(c.value,u.value)}return{status:a.value,value:o}})}else{let o=new Map;for(let l of n){let c=l.key,u=l.value;if(c.status==="aborted"||u.status==="aborted")return _e;(c.status==="dirty"||u.status==="dirty")&&a.dirty(),o.set(c.value,u.value)}return{status:a.value,value:o}}}};mn.create=(r,e,a)=>new mn({valueType:e,keyType:r,typeName:Se.ZodMap,...De(a)});var hn=class r extends Le{_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==oe.set)return ae(t,{code:J.invalid_type,expected:oe.set,received:t.parsedType}),_e;let s=this._def;s.minSize!==null&&t.data.sizes.maxSize.value&&(ae(t,{code:J.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),a.dirty());let i=this._def.valueType;function n(l){let c=new Set;for(let u of l){if(u.status==="aborted")return _e;u.status==="dirty"&&a.dirty(),c.add(u.value)}return{status:a.value,value:c}}let o=[...t.data.values()].map((l,c)=>i._parse(new ir(t,l,t.path,c)));return t.common.async?Promise.all(o).then(l=>n(l)):n(o)}min(e,a){return new r({...this._def,minSize:{value:e,message:fe.toString(a)}})}max(e,a){return new r({...this._def,maxSize:{value:e,message:fe.toString(a)}})}size(e,a){return this.min(e,a).max(e,a)}nonempty(e){return this.min(1,e)}};hn.create=(r,e)=>new hn({valueType:r,minSize:null,maxSize:null,typeName:Se.ZodSet,...De(e)});var nc=class r extends Le{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:a}=this._processInputParams(e);if(a.parsedType!==oe.function)return ae(a,{code:J.invalid_type,expected:oe.function,received:a.parsedType}),_e;function t(o,l){return xi({data:o,path:a.path,errorMaps:[a.common.contextualErrorMap,a.schemaErrorMap,ln(),Qr].filter(c=>!!c),issueData:{code:J.invalid_arguments,argumentsError:l}})}function s(o,l){return xi({data:o,path:a.path,errorMaps:[a.common.contextualErrorMap,a.schemaErrorMap,ln(),Qr].filter(c=>!!c),issueData:{code:J.invalid_return_type,returnTypeError:l}})}let i={errorMap:a.common.contextualErrorMap},n=a.data;if(this._def.returns instanceof Sa){let o=this;return Pt(async function(...l){let c=new Mt([]),u=await o._def.args.parseAsync(l,i).catch(f=>{throw c.addIssue(t(l,f)),c}),p=await Reflect.apply(n,this,u);return await o._def.returns._def.type.parseAsync(p,i).catch(f=>{throw c.addIssue(s(p,f)),c})})}else{let o=this;return Pt(function(...l){let c=o._def.args.safeParse(l,i);if(!c.success)throw new Mt([t(l,c.error)]);let u=Reflect.apply(n,this,c.data),p=o._def.returns.safeParse(u,i);if(!p.success)throw new Mt([s(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new r({...this._def,args:qr.create(e).rest(Jr.create())})}returns(e){return new r({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,a,t){return new r({args:e||qr.create([]).rest(Jr.create()),returns:a||Jr.create(),typeName:Se.ZodFunction,...De(t)})}},ns=class extends Le{get schema(){return this._def.getter()}_parse(e){let{ctx:a}=this._processInputParams(e);return this._def.getter()._parse({data:a.data,path:a.path,parent:a})}};ns.create=(r,e)=>new ns({getter:r,typeName:Se.ZodLazy,...De(e)});var is=class extends Le{_parse(e){if(e.data!==this._def.value){let a=this._getOrReturnCtx(e);return ae(a,{received:a.data,code:J.invalid_literal,expected:this._def.value}),_e}return{status:"valid",value:e.data}}get value(){return this._def.value}};is.create=(r,e)=>new is({value:r,typeName:Se.ZodLiteral,...De(e)});function ox(r,e){return new os({values:r,typeName:Se.ZodEnum,...De(e)})}var os=class r extends Le{_parse(e){if(typeof e.data!="string"){let a=this._getOrReturnCtx(e),t=this._def.values;return ae(a,{expected:He.joinValues(t),received:a.parsedType,code:J.invalid_type}),_e}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let a=this._getOrReturnCtx(e),t=this._def.values;return ae(a,{received:a.data,code:J.invalid_enum_value,options:t}),_e}return Pt(e.data)}get options(){return this._def.values}get enum(){let e={};for(let a of this._def.values)e[a]=a;return e}get Values(){let e={};for(let a of this._def.values)e[a]=a;return e}get Enum(){let e={};for(let a of this._def.values)e[a]=a;return e}extract(e,a=this._def){return r.create(e,{...this._def,...a})}exclude(e,a=this._def){return r.create(this.options.filter(t=>!e.includes(t)),{...this._def,...a})}};os.create=ox;var cs=class extends Le{_parse(e){let a=He.getValidEnumValues(this._def.values),t=this._getOrReturnCtx(e);if(t.parsedType!==oe.string&&t.parsedType!==oe.number){let s=He.objectValues(a);return ae(t,{expected:He.joinValues(s),received:t.parsedType,code:J.invalid_type}),_e}if(this._cache||(this._cache=new Set(He.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let s=He.objectValues(a);return ae(t,{received:t.data,code:J.invalid_enum_value,options:s}),_e}return Pt(e.data)}get enum(){return this._def.values}};cs.create=(r,e)=>new cs({values:r,typeName:Se.ZodNativeEnum,...De(e)});var Sa=class extends Le{unwrap(){return this._def.type}_parse(e){let{ctx:a}=this._processInputParams(e);if(a.parsedType!==oe.promise&&a.common.async===!1)return ae(a,{code:J.invalid_type,expected:oe.promise,received:a.parsedType}),_e;let t=a.parsedType===oe.promise?a.data:Promise.resolve(a.data);return Pt(t.then(s=>this._def.type.parseAsync(s,{path:a.path,errorMap:a.common.contextualErrorMap})))}};Sa.create=(r,e)=>new Sa({type:r,typeName:Se.ZodPromise,...De(e)});var or=class extends Le{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Se.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:a,ctx:t}=this._processInputParams(e),s=this._def.effect||null,i={addIssue:n=>{ae(t,n),n.fatal?a.abort():a.dirty()},get path(){return t.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){let n=s.transform(t.data,i);if(t.common.async)return Promise.resolve(n).then(async o=>{if(a.value==="aborted")return _e;let l=await this._def.schema._parseAsync({data:o,path:t.path,parent:t});return l.status==="aborted"?_e:l.status==="dirty"?Qa(l.value):a.value==="dirty"?Qa(l.value):l});{if(a.value==="aborted")return _e;let o=this._def.schema._parseSync({data:n,path:t.path,parent:t});return o.status==="aborted"?_e:o.status==="dirty"?Qa(o.value):a.value==="dirty"?Qa(o.value):o}}if(s.type==="refinement"){let n=o=>{let l=s.refinement(o,i);if(t.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(t.common.async===!1){let o=this._def.schema._parseSync({data:t.data,path:t.path,parent:t});return o.status==="aborted"?_e:(o.status==="dirty"&&a.dirty(),n(o.value),{status:a.value,value:o.value})}else return this._def.schema._parseAsync({data:t.data,path:t.path,parent:t}).then(o=>o.status==="aborted"?_e:(o.status==="dirty"&&a.dirty(),n(o.value).then(()=>({status:a.value,value:o.value}))))}if(s.type==="transform")if(t.common.async===!1){let n=this._def.schema._parseSync({data:t.data,path:t.path,parent:t});if(!_a(n))return _e;let o=s.transform(n.value,i);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:a.value,value:o}}else return this._def.schema._parseAsync({data:t.data,path:t.path,parent:t}).then(n=>_a(n)?Promise.resolve(s.transform(n.value,i)).then(o=>({status:a.value,value:o})):_e);He.assertNever(s)}};or.create=(r,e,a)=>new or({schema:r,typeName:Se.ZodEffects,effect:e,...De(a)});or.createWithPreprocess=(r,e,a)=>new or({schema:e,effect:{type:"preprocess",transform:r},typeName:Se.ZodEffects,...De(a)});var nr=class extends Le{_parse(e){return this._getType(e)===oe.undefined?Pt(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};nr.create=(r,e)=>new nr({innerType:r,typeName:Se.ZodOptional,...De(e)});var Mr=class extends Le{_parse(e){return this._getType(e)===oe.null?Pt(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Mr.create=(r,e)=>new Mr({innerType:r,typeName:Se.ZodNullable,...De(e)});var ls=class extends Le{_parse(e){let{ctx:a}=this._processInputParams(e),t=a.data;return a.parsedType===oe.undefined&&(t=this._def.defaultValue()),this._def.innerType._parse({data:t,path:a.path,parent:a})}removeDefault(){return this._def.innerType}};ls.create=(r,e)=>new ls({innerType:r,typeName:Se.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...De(e)});var us=class extends Le{_parse(e){let{ctx:a}=this._processInputParams(e),t={...a,common:{...a.common,issues:[]}},s=this._def.innerType._parse({data:t.data,path:t.path,parent:{...t}});return un(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Mt(t.common.issues)},input:t.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Mt(t.common.issues)},input:t.data})}}removeCatch(){return this._def.innerType}};us.create=(r,e)=>new us({innerType:r,typeName:Se.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...De(e)});var vn=class extends Le{_parse(e){if(this._getType(e)!==oe.nan){let t=this._getOrReturnCtx(e);return ae(t,{code:J.invalid_type,expected:oe.nan,received:t.parsedType}),_e}return{status:"valid",value:e.data}}};vn.create=r=>new vn({typeName:Se.ZodNaN,...De(r)});var IA=Symbol("zod_brand"),_i=class extends Le{_parse(e){let{ctx:a}=this._processInputParams(e),t=a.data;return this._def.type._parse({data:t,path:a.path,parent:a})}unwrap(){return this._def.type}},Ei=class r extends Le{_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:t.data,path:t.path,parent:t});return i.status==="aborted"?_e:i.status==="dirty"?(a.dirty(),Qa(i.value)):this._def.out._parseAsync({data:i.value,path:t.path,parent:t})})();{let s=this._def.in._parseSync({data:t.data,path:t.path,parent:t});return s.status==="aborted"?_e:s.status==="dirty"?(a.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:t.path,parent:t})}}static create(e,a){return new r({in:e,out:a,typeName:Se.ZodPipeline})}},ps=class extends Le{_parse(e){let a=this._def.innerType._parse(e),t=s=>(_a(s)&&(s.value=Object.freeze(s.value)),s);return un(a)?a.then(s=>t(s)):t(a)}unwrap(){return this._def.innerType}};ps.create=(r,e)=>new ps({innerType:r,typeName:Se.ZodReadonly,...De(e)});function ax(r,e){let a=typeof r=="function"?r(e):typeof r=="string"?{message:r}:r;return typeof a=="string"?{message:a}:a}function cx(r,e={},a){return r?wa.create().superRefine((t,s)=>{let i=r(t);if(i instanceof Promise)return i.then(n=>{if(!n){let o=ax(e,t),l=o.fatal??a??!0;s.addIssue({code:"custom",...o,fatal:l})}});if(!i){let n=ax(e,t),o=n.fatal??a??!0;s.addIssue({code:"custom",...n,fatal:o})}}):wa.create()}var AA={object:Ft.lazycreate},Se;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(Se||(Se={}));var jA=(r,e={message:`Input not instance of ${r.name}`})=>cx(a=>a instanceof r,e),lx=Ea.create,ux=Xa.create,NA=vn.create,DA=Ja.create,px=Ya.create,$A=es.create,qA=dn.create,MA=ts.create,FA=rs.create,LA=wa.create,UA=Jr.create,zA=Sr.create,HA=fn.create,BA=Yr.create,VA=Ft.create,GA=Ft.strictCreate,ZA=as.create,WA=ac.create,KA=ss.create,QA=qr.create,XA=sc.create,JA=mn.create,YA=hn.create,e2=nc.create,t2=ns.create,r2=is.create,a2=os.create,s2=cs.create,n2=Sa.create,i2=or.create,o2=nr.create,c2=Mr.create,l2=or.createWithPreprocess,u2=Ei.create,p2=()=>lx().optional(),d2=()=>ux().optional(),f2=()=>px().optional(),m2={string:(r=>Ea.create({...r,coerce:!0})),number:(r=>Xa.create({...r,coerce:!0})),boolean:(r=>Ya.create({...r,coerce:!0})),bigint:(r=>Ja.create({...r,coerce:!0})),date:(r=>es.create({...r,coerce:!0}))};var h2=_e;var Sp="2025-06-18";var dx=[Sp,"2025-03-26","2024-11-05","2024-10-07"],ic="2.0",fx=_.union([_.string(),_.number().int()]),mx=_.string(),v2=_.object({progressToken:_.optional(fx)}).passthrough(),ur=_.object({_meta:_.optional(v2)}).passthrough(),Lt=_.object({method:_.string(),params:_.optional(ur)}),wi=_.object({_meta:_.optional(_.object({}).passthrough())}).passthrough(),Fr=_.object({method:_.string(),params:_.optional(wi)}),pr=_.object({_meta:_.optional(_.object({}).passthrough())}).passthrough(),oc=_.union([_.string(),_.number().int()]),hx=_.object({jsonrpc:_.literal(ic),id:oc}).merge(Lt).strict(),vx=r=>hx.safeParse(r).success,gx=_.object({jsonrpc:_.literal(ic)}).merge(Fr).strict(),yx=r=>gx.safeParse(r).success,bx=_.object({jsonrpc:_.literal(ic),id:oc,result:pr}).strict(),Pp=r=>bx.safeParse(r).success,cr;(function(r){r[r.ConnectionClosed=-32e3]="ConnectionClosed",r[r.RequestTimeout=-32001]="RequestTimeout",r[r.ParseError=-32700]="ParseError",r[r.InvalidRequest=-32600]="InvalidRequest",r[r.MethodNotFound=-32601]="MethodNotFound",r[r.InvalidParams=-32602]="InvalidParams",r[r.InternalError=-32603]="InternalError"})(cr||(cr={}));var xx=_.object({jsonrpc:_.literal(ic),id:oc,error:_.object({code:_.number().int(),message:_.string(),data:_.optional(_.unknown())})}).strict(),_x=r=>xx.safeParse(r).success,Ex=_.union([hx,gx,bx,xx]),ds=pr.strict(),cc=Fr.extend({method:_.literal("notifications/cancelled"),params:wi.extend({requestId:oc,reason:_.string().optional()})}),g2=_.object({src:_.string(),mimeType:_.optional(_.string()),sizes:_.optional(_.array(_.string()))}).passthrough(),Si=_.object({icons:_.array(g2).optional()}).passthrough(),Pi=_.object({name:_.string(),title:_.optional(_.string())}).passthrough(),wx=Pi.extend({version:_.string(),websiteUrl:_.optional(_.string())}).merge(Si),y2=_.object({experimental:_.optional(_.object({}).passthrough()),sampling:_.optional(_.object({}).passthrough()),elicitation:_.optional(_.object({}).passthrough()),roots:_.optional(_.object({listChanged:_.optional(_.boolean())}).passthrough())}).passthrough(),b2=Lt.extend({method:_.literal("initialize"),params:ur.extend({protocolVersion:_.string(),capabilities:y2,clientInfo:wx})});var x2=_.object({experimental:_.optional(_.object({}).passthrough()),logging:_.optional(_.object({}).passthrough()),completions:_.optional(_.object({}).passthrough()),prompts:_.optional(_.object({listChanged:_.optional(_.boolean())}).passthrough()),resources:_.optional(_.object({subscribe:_.optional(_.boolean()),listChanged:_.optional(_.boolean())}).passthrough()),tools:_.optional(_.object({listChanged:_.optional(_.boolean())}).passthrough())}).passthrough(),Rp=pr.extend({protocolVersion:_.string(),capabilities:x2,serverInfo:wx,instructions:_.optional(_.string())}),_2=Fr.extend({method:_.literal("notifications/initialized")});var lc=Lt.extend({method:_.literal("ping")}),E2=_.object({progress:_.number(),total:_.optional(_.number()),message:_.optional(_.string())}).passthrough(),uc=Fr.extend({method:_.literal("notifications/progress"),params:wi.merge(E2).extend({progressToken:fx})}),pc=Lt.extend({params:ur.extend({cursor:_.optional(mx)}).optional()}),dc=pr.extend({nextCursor:_.optional(mx)}),Sx=_.object({uri:_.string(),mimeType:_.optional(_.string()),_meta:_.optional(_.object({}).passthrough())}).passthrough(),Px=Sx.extend({text:_.string()}),Tp=_.string().refine(r=>{try{return atob(r),!0}catch{return!1}},{message:"Invalid Base64 string"}),Rx=Sx.extend({blob:Tp}),Tx=Pi.extend({uri:_.string(),description:_.optional(_.string()),mimeType:_.optional(_.string()),_meta:_.optional(_.object({}).passthrough())}).merge(Si),w2=Pi.extend({uriTemplate:_.string(),description:_.optional(_.string()),mimeType:_.optional(_.string()),_meta:_.optional(_.object({}).passthrough())}).merge(Si),S2=pc.extend({method:_.literal("resources/list")}),kp=dc.extend({resources:_.array(Tx)}),P2=pc.extend({method:_.literal("resources/templates/list")}),Op=dc.extend({resourceTemplates:_.array(w2)}),R2=Lt.extend({method:_.literal("resources/read"),params:ur.extend({uri:_.string()})}),Cp=pr.extend({contents:_.array(_.union([Px,Rx]))}),T2=Fr.extend({method:_.literal("notifications/resources/list_changed")}),k2=Lt.extend({method:_.literal("resources/subscribe"),params:ur.extend({uri:_.string()})}),O2=Lt.extend({method:_.literal("resources/unsubscribe"),params:ur.extend({uri:_.string()})}),C2=Fr.extend({method:_.literal("notifications/resources/updated"),params:wi.extend({uri:_.string()})}),I2=_.object({name:_.string(),description:_.optional(_.string()),required:_.optional(_.boolean())}).passthrough(),A2=Pi.extend({description:_.optional(_.string()),arguments:_.optional(_.array(I2)),_meta:_.optional(_.object({}).passthrough())}).merge(Si),j2=pc.extend({method:_.literal("prompts/list")}),Ip=dc.extend({prompts:_.array(A2)}),N2=Lt.extend({method:_.literal("prompts/get"),params:ur.extend({name:_.string(),arguments:_.optional(_.record(_.string()))})}),Ap=_.object({type:_.literal("text"),text:_.string(),_meta:_.optional(_.object({}).passthrough())}).passthrough(),jp=_.object({type:_.literal("image"),data:Tp,mimeType:_.string(),_meta:_.optional(_.object({}).passthrough())}).passthrough(),Np=_.object({type:_.literal("audio"),data:Tp,mimeType:_.string(),_meta:_.optional(_.object({}).passthrough())}).passthrough(),D2=_.object({type:_.literal("resource"),resource:_.union([Px,Rx]),_meta:_.optional(_.object({}).passthrough())}).passthrough(),$2=Tx.extend({type:_.literal("resource_link")}),kx=_.union([Ap,jp,Np,$2,D2]),q2=_.object({role:_.enum(["user","assistant"]),content:kx}).passthrough(),Dp=pr.extend({description:_.optional(_.string()),messages:_.array(q2)}),M2=Fr.extend({method:_.literal("notifications/prompts/list_changed")}),F2=_.object({title:_.optional(_.string()),readOnlyHint:_.optional(_.boolean()),destructiveHint:_.optional(_.boolean()),idempotentHint:_.optional(_.boolean()),openWorldHint:_.optional(_.boolean())}).passthrough(),L2=Pi.extend({description:_.optional(_.string()),inputSchema:_.object({type:_.literal("object"),properties:_.optional(_.object({}).passthrough()),required:_.optional(_.array(_.string()))}).passthrough(),outputSchema:_.optional(_.object({type:_.literal("object"),properties:_.optional(_.object({}).passthrough()),required:_.optional(_.array(_.string()))}).passthrough()),annotations:_.optional(F2),_meta:_.optional(_.object({}).passthrough())}).merge(Si),U2=pc.extend({method:_.literal("tools/list")}),$p=dc.extend({tools:_.array(L2)}),fc=pr.extend({content:_.array(kx).default([]),structuredContent:_.object({}).passthrough().optional(),isError:_.optional(_.boolean())}),GF=fc.or(pr.extend({toolResult:_.unknown()})),z2=Lt.extend({method:_.literal("tools/call"),params:ur.extend({name:_.string(),arguments:_.optional(_.record(_.unknown()))})}),H2=Fr.extend({method:_.literal("notifications/tools/list_changed")}),Ox=_.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),B2=Lt.extend({method:_.literal("logging/setLevel"),params:ur.extend({level:Ox})}),V2=Fr.extend({method:_.literal("notifications/message"),params:wi.extend({level:Ox,logger:_.optional(_.string()),data:_.unknown()})}),G2=_.object({name:_.string().optional()}).passthrough(),Z2=_.object({hints:_.optional(_.array(G2)),costPriority:_.optional(_.number().min(0).max(1)),speedPriority:_.optional(_.number().min(0).max(1)),intelligencePriority:_.optional(_.number().min(0).max(1))}).passthrough(),W2=_.object({role:_.enum(["user","assistant"]),content:_.union([Ap,jp,Np])}).passthrough(),K2=Lt.extend({method:_.literal("sampling/createMessage"),params:ur.extend({messages:_.array(W2),systemPrompt:_.optional(_.string()),includeContext:_.optional(_.enum(["none","thisServer","allServers"])),temperature:_.optional(_.number()),maxTokens:_.number().int(),stopSequences:_.optional(_.array(_.string())),metadata:_.optional(_.object({}).passthrough()),modelPreferences:_.optional(Z2)})}),Q2=pr.extend({model:_.string(),stopReason:_.optional(_.enum(["endTurn","stopSequence","maxTokens"]).or(_.string())),role:_.enum(["user","assistant"]),content:_.discriminatedUnion("type",[Ap,jp,Np])}),X2=_.object({type:_.literal("boolean"),title:_.optional(_.string()),description:_.optional(_.string()),default:_.optional(_.boolean())}).passthrough(),J2=_.object({type:_.literal("string"),title:_.optional(_.string()),description:_.optional(_.string()),minLength:_.optional(_.number()),maxLength:_.optional(_.number()),format:_.optional(_.enum(["email","uri","date","date-time"]))}).passthrough(),Y2=_.object({type:_.enum(["number","integer"]),title:_.optional(_.string()),description:_.optional(_.string()),minimum:_.optional(_.number()),maximum:_.optional(_.number())}).passthrough(),e8=_.object({type:_.literal("string"),title:_.optional(_.string()),description:_.optional(_.string()),enum:_.array(_.string()),enumNames:_.optional(_.array(_.string()))}).passthrough(),t8=_.union([X2,J2,Y2,e8]),r8=Lt.extend({method:_.literal("elicitation/create"),params:ur.extend({message:_.string(),requestedSchema:_.object({type:_.literal("object"),properties:_.record(_.string(),t8),required:_.optional(_.array(_.string()))}).passthrough()})}),a8=pr.extend({action:_.enum(["accept","decline","cancel"]),content:_.optional(_.record(_.string(),_.unknown()))}),s8=_.object({type:_.literal("ref/resource"),uri:_.string()}).passthrough();var n8=_.object({type:_.literal("ref/prompt"),name:_.string()}).passthrough(),i8=Lt.extend({method:_.literal("completion/complete"),params:ur.extend({ref:_.union([n8,s8]),argument:_.object({name:_.string(),value:_.string()}).passthrough(),context:_.optional(_.object({arguments:_.optional(_.record(_.string(),_.string()))}))})}),qp=pr.extend({completion:_.object({values:_.array(_.string()).max(100),total:_.optional(_.number().int()),hasMore:_.optional(_.boolean())}).passthrough()}),o8=_.object({uri:_.string().startsWith("file://"),name:_.optional(_.string()),_meta:_.optional(_.object({}).passthrough())}).passthrough(),c8=Lt.extend({method:_.literal("roots/list")}),l8=pr.extend({roots:_.array(o8)}),u8=Fr.extend({method:_.literal("notifications/roots/list_changed")}),ZF=_.union([lc,b2,i8,B2,N2,j2,S2,P2,R2,k2,O2,z2,U2]),WF=_.union([cc,uc,_2,u8]),KF=_.union([ds,Q2,a8,l8]),QF=_.union([lc,K2,r8,c8]),XF=_.union([cc,uc,V2,C2,T2,H2,M2]),JF=_.union([ds,Rp,qp,Dp,Ip,kp,Op,Cp,fc,$p]),lr=class extends Error{constructor(e,a,t){super(`MCP error ${e}: ${a}`),this.code=e,this.data=t,this.name="McpError"}};var p8=6e4,mc=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this.setNotificationHandler(cc,a=>{let t=this._requestHandlerAbortControllers.get(a.params.requestId);t?.abort(a.params.reason)}),this.setNotificationHandler(uc,a=>{this._onprogress(a)}),this.setRequestHandler(lc,a=>({}))}_setupTimeout(e,a,t,s,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(s,a),startTime:Date.now(),timeout:a,maxTotalTimeout:t,resetTimeoutOnProgress:i,onTimeout:s})}_resetTimeout(e){let a=this._timeoutInfo.get(e);if(!a)return!1;let t=Date.now()-a.startTime;if(a.maxTotalTimeout&&t>=a.maxTotalTimeout)throw this._timeoutInfo.delete(e),new lr(cr.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:a.maxTotalTimeout,totalElapsed:t});return clearTimeout(a.timeoutId),a.timeoutId=setTimeout(a.onTimeout,a.timeout),!0}_cleanupTimeout(e){let a=this._timeoutInfo.get(e);a&&(clearTimeout(a.timeoutId),this._timeoutInfo.delete(e))}async connect(e){var a,t,s;this._transport=e;let i=(a=this.transport)===null||a===void 0?void 0:a.onclose;this._transport.onclose=()=>{i?.(),this._onclose()};let n=(t=this.transport)===null||t===void 0?void 0:t.onerror;this._transport.onerror=l=>{n?.(l),this._onerror(l)};let o=(s=this._transport)===null||s===void 0?void 0:s.onmessage;this._transport.onmessage=(l,c)=>{o?.(l,c),Pp(l)||_x(l)?this._onresponse(l):vx(l)?this._onrequest(l,c):yx(l)?this._onnotification(l):this._onerror(new Error(`Unknown message type: ${JSON.stringify(l)}`))},await this._transport.start()}_onclose(){var e;let a=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._pendingDebouncedNotifications.clear(),this._transport=void 0,(e=this.onclose)===null||e===void 0||e.call(this);let t=new lr(cr.ConnectionClosed,"Connection closed");for(let s of a.values())s(t)}_onerror(e){var a;(a=this.onerror)===null||a===void 0||a.call(this,e)}_onnotification(e){var a;let t=(a=this._notificationHandlers.get(e.method))!==null&&a!==void 0?a:this.fallbackNotificationHandler;t!==void 0&&Promise.resolve().then(()=>t(e)).catch(s=>this._onerror(new Error(`Uncaught error in notification handler: ${s}`)))}_onrequest(e,a){var t,s;let i=(t=this._requestHandlers.get(e.method))!==null&&t!==void 0?t:this.fallbackRequestHandler,n=this._transport;if(i===void 0){n?.send({jsonrpc:"2.0",id:e.id,error:{code:cr.MethodNotFound,message:"Method not found"}}).catch(c=>this._onerror(new Error(`Failed to send an error response: ${c}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(e.id,o);let l={signal:o.signal,sessionId:n?.sessionId,_meta:(s=e.params)===null||s===void 0?void 0:s._meta,sendNotification:c=>this.notification(c,{relatedRequestId:e.id}),sendRequest:(c,u,p)=>this.request(c,u,{...p,relatedRequestId:e.id}),authInfo:a?.authInfo,requestId:e.id,requestInfo:a?.requestInfo};Promise.resolve().then(()=>i(e,l)).then(c=>{if(!o.signal.aborted)return n?.send({result:c,jsonrpc:"2.0",id:e.id})},c=>{var u;if(!o.signal.aborted)return n?.send({jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(c.code)?c.code:cr.InternalError,message:(u=c.message)!==null&&u!==void 0?u:"Internal error"}})}).catch(c=>this._onerror(new Error(`Failed to send response: ${c}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:a,...t}=e.params,s=Number(a),i=this._progressHandlers.get(s);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let n=this._responseHandlers.get(s),o=this._timeoutInfo.get(s);if(o&&n&&o.resetTimeoutOnProgress)try{this._resetTimeout(s)}catch(l){n(l);return}i(t)}_onresponse(e){let a=Number(e.id),t=this._responseHandlers.get(a);if(t===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}if(this._responseHandlers.delete(a),this._progressHandlers.delete(a),this._cleanupTimeout(a),Pp(e))t(e);else{let s=new lr(e.error.code,e.error.message,e.error.data);t(s)}}get transport(){return this._transport}async close(){var e;await((e=this._transport)===null||e===void 0?void 0:e.close())}request(e,a,t){let{relatedRequestId:s,resumptionToken:i,onresumptiontoken:n}=t??{};return new Promise((o,l)=>{var c,u,p,m,f,h;if(!this._transport){l(new Error("Not connected"));return}((c=this._options)===null||c===void 0?void 0:c.enforceStrictCapabilities)===!0&&this.assertCapabilityForMethod(e.method),(u=t?.signal)===null||u===void 0||u.throwIfAborted();let d=this._requestMessageId++,v={...e,jsonrpc:"2.0",id:d};t?.onprogress&&(this._progressHandlers.set(d,t.onprogress),v.params={...e.params,_meta:{...((p=e.params)===null||p===void 0?void 0:p._meta)||{},progressToken:d}});let g=k=>{var O;this._responseHandlers.delete(d),this._progressHandlers.delete(d),this._cleanupTimeout(d),(O=this._transport)===null||O===void 0||O.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:d,reason:String(k)}},{relatedRequestId:s,resumptionToken:i,onresumptiontoken:n}).catch(P=>this._onerror(new Error(`Failed to send cancellation: ${P}`))),l(k)};this._responseHandlers.set(d,k=>{var O;if(!(!((O=t?.signal)===null||O===void 0)&&O.aborted)){if(k instanceof Error)return l(k);try{let P=a.parse(k.result);o(P)}catch(P){l(P)}}}),(m=t?.signal)===null||m===void 0||m.addEventListener("abort",()=>{var k;g((k=t?.signal)===null||k===void 0?void 0:k.reason)});let b=(f=t?.timeout)!==null&&f!==void 0?f:p8,E=()=>g(new lr(cr.RequestTimeout,"Request timed out",{timeout:b}));this._setupTimeout(d,b,t?.maxTotalTimeout,E,(h=t?.resetTimeoutOnProgress)!==null&&h!==void 0?h:!1),this._transport.send(v,{relatedRequestId:s,resumptionToken:i,onresumptiontoken:n}).catch(k=>{this._cleanupTimeout(d),l(k)})})}async notification(e,a){var t,s;if(!this._transport)throw new Error("Not connected");if(this.assertNotificationCapability(e.method),((s=(t=this._options)===null||t===void 0?void 0:t.debouncedNotificationMethods)!==null&&s!==void 0?s:[]).includes(e.method)&&!e.params&&!a?.relatedRequestId){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{var l;if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let c={...e,jsonrpc:"2.0"};(l=this._transport)===null||l===void 0||l.send(c,a).catch(u=>this._onerror(u))});return}let o={...e,jsonrpc:"2.0"};await this._transport.send(o,a)}setRequestHandler(e,a){let t=e.shape.method.value;this.assertRequestHandlerCapability(t),this._requestHandlers.set(t,(s,i)=>Promise.resolve(a(e.parse(s),i)))}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,a){this._notificationHandlers.set(e.shape.method.value,t=>Promise.resolve(a(e.parse(t))))}removeNotificationHandler(e){this._notificationHandlers.delete(e)}};function Cx(r,e){return Object.entries(e).reduce((a,[t,s])=>(s&&typeof s=="object"?a[t]=a[t]?{...a[t],...s}:s:a[t]=s,a),{...r})}var A_=jt(I_(),1),gn=class extends mc{constructor(e,a){var t;super(a),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._capabilities=(t=a?.capabilities)!==null&&t!==void 0?t:{},this._ajv=new A_.default}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Cx(this._capabilities,e)}assertCapability(e,a){var t;if(!(!((t=this._serverCapabilities)===null||t===void 0)&&t[e]))throw new Error(`Server does not support ${e} (required for ${a})`)}async connect(e,a){if(await super.connect(e),e.sessionId===void 0)try{let t=await this.request({method:"initialize",params:{protocolVersion:Sp,capabilities:this._capabilities,clientInfo:this._clientInfo}},Rp,a);if(t===void 0)throw new Error(`Server sent invalid initialize result: ${t}`);if(!dx.includes(t.protocolVersion))throw new Error(`Server's protocol version is not supported: ${t.protocolVersion}`);this._serverCapabilities=t.capabilities,this._serverVersion=t.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(t.protocolVersion),this._instructions=t.instructions,await this.notification({method:"notifications/initialized"})}catch(t){throw this.close(),t}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){var a,t,s,i,n;switch(e){case"logging/setLevel":if(!(!((a=this._serverCapabilities)===null||a===void 0)&&a.logging))throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!(!((t=this._serverCapabilities)===null||t===void 0)&&t.prompts))throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!(!((s=this._serverCapabilities)===null||s===void 0)&&s.resources))throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!(!((i=this._serverCapabilities)===null||i===void 0)&&i.tools))throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!(!((n=this._serverCapabilities)===null||n===void 0)&&n.completions))throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){var a;switch(e){case"notifications/roots/list_changed":if(!(!((a=this._capabilities.roots)===null||a===void 0)&&a.listChanged))throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"ping":break}}async ping(e){return this.request({method:"ping"},ds,e)}async complete(e,a){return this.request({method:"completion/complete",params:e},qp,a)}async setLoggingLevel(e,a){return this.request({method:"logging/setLevel",params:{level:e}},ds,a)}async getPrompt(e,a){return this.request({method:"prompts/get",params:e},Dp,a)}async listPrompts(e,a){return this.request({method:"prompts/list",params:e},Ip,a)}async listResources(e,a){return this.request({method:"resources/list",params:e},kp,a)}async listResourceTemplates(e,a){return this.request({method:"resources/templates/list",params:e},Op,a)}async readResource(e,a){return this.request({method:"resources/read",params:e},Cp,a)}async subscribeResource(e,a){return this.request({method:"resources/subscribe",params:e},ds,a)}async unsubscribeResource(e,a){return this.request({method:"resources/unsubscribe",params:e},ds,a)}async callTool(e,a=fc,t){let s=await this.request({method:"tools/call",params:e},a,t),i=this.getToolOutputValidator(e.name);if(i){if(!s.structuredContent&&!s.isError)throw new lr(cr.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(s.structuredContent)try{if(!i(s.structuredContent))throw new lr(cr.InvalidParams,`Structured content does not match the tool's output schema: ${this._ajv.errorsText(i.errors)}`)}catch(n){throw n instanceof lr?n:new lr(cr.InvalidParams,`Failed to validate structured content: ${n instanceof Error?n.message:String(n)}`)}}return s}cacheToolOutputSchemas(e){this._cachedToolOutputValidators.clear();for(let a of e)if(a.outputSchema)try{let t=this._ajv.compile(a.outputSchema);this._cachedToolOutputValidators.set(a.name,t)}catch{}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,a){let t=await this.request({method:"tools/list",params:e},$p,a);return this.cacheToolOutputSchemas(t.tools),t}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var E1=jt(x1(),1),Ti=jt(require("node:process"),1),w1=require("node:stream");var Nc=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(` -`);if(e===-1)return null;let a=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),vj(a)}clear(){this._buffer=void 0}};function vj(r){return Ex.parse(JSON.parse(r))}function _1(r){return JSON.stringify(r)+` -`}var gj=Ti.default.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function yj(){let r={};for(let e of gj){let a=Ti.default.env[e];a!==void 0&&(a.startsWith("()")||(r[e]=a))}return r}var xn=class{constructor(e){this._abortController=new AbortController,this._readBuffer=new Nc,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new w1.PassThrough)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,a)=>{var t,s,i,n,o;this._process=(0,E1.default)(this._serverParams.command,(t=this._serverParams.args)!==null&&t!==void 0?t:[],{env:{...yj(),...this._serverParams.env},stdio:["pipe","pipe",(s=this._serverParams.stderr)!==null&&s!==void 0?s:"inherit"],shell:!1,signal:this._abortController.signal,windowsHide:Ti.default.platform==="win32"&&bj(),cwd:this._serverParams.cwd}),this._process.on("error",l=>{var c,u;if(l.name==="AbortError"){(c=this.onclose)===null||c===void 0||c.call(this);return}a(l),(u=this.onerror)===null||u===void 0||u.call(this,l)}),this._process.on("spawn",()=>{e()}),this._process.on("close",l=>{var c;this._process=void 0,(c=this.onclose)===null||c===void 0||c.call(this)}),(i=this._process.stdin)===null||i===void 0||i.on("error",l=>{var c;(c=this.onerror)===null||c===void 0||c.call(this,l)}),(n=this._process.stdout)===null||n===void 0||n.on("data",l=>{this._readBuffer.append(l),this.processReadBuffer()}),(o=this._process.stdout)===null||o===void 0||o.on("error",l=>{var c;(c=this.onerror)===null||c===void 0||c.call(this,l)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){var e,a;return this._stderrStream?this._stderrStream:(a=(e=this._process)===null||e===void 0?void 0:e.stderr)!==null&&a!==void 0?a:null}get pid(){var e,a;return(a=(e=this._process)===null||e===void 0?void 0:e.pid)!==null&&a!==void 0?a:null}processReadBuffer(){for(var e,a;;)try{let t=this._readBuffer.readMessage();if(t===null)break;(e=this.onmessage)===null||e===void 0||e.call(this,t)}catch(t){(a=this.onerror)===null||a===void 0||a.call(this,t)}}async close(){this._abortController.abort(),this._process=void 0,this._readBuffer.clear()}send(e){return new Promise(a=>{var t;if(!(!((t=this._process)===null||t===void 0)&&t.stdin))throw new Error("Not connected");let s=_1(e);this._process.stdin.write(s)?a():this._process.stdin.once("drain",a)})}};function bj(){return"type"in Ti.default}var S1=jt(require("better-sqlite3"),1);var _n=class{db;constructor(){Jo(wr),this.db=new S1.default(Xo),this.db.pragma("journal_mode = WAL"),this.db.pragma("synchronous = NORMAL"),this.db.pragma("foreign_keys = ON"),this.initializeSchema(),this.ensureWorkerPortColumn(),this.ensurePromptTrackingColumns(),this.removeSessionSummariesUniqueConstraint(),this.addObservationHierarchicalFields(),this.makeObservationsTextNullable(),this.createUserPromptsTable(),this.ensureDiscoveryTokensColumn()}initializeSchema(){try{this.db.exec(` +`+JSON.stringify(i,null,2):u=" "+this.formatData(i));let p="";if(s){let{sessionId:f,sdkSessionId:h,correlationId:d,...v}=s;Object.keys(v).length>0&&(p=` {${Object.entries(v).map(([b,E])=>`${b}=${E}`).join(", ")}}`)}let m=`[${n}] [${o}] [${l}] ${c}${t}${p}${u}`;e===3?console.error(m):console.log(m)}debug(e,a,t,s){this.log(0,e,a,t,s)}info(e,a,t,s){this.log(1,e,a,t,s)}warn(e,a,t,s){this.log(2,e,a,t,s)}error(e,a,t,s){this.log(3,e,a,t,s)}dataIn(e,a,t,s){this.info(e,`\u2192 ${a}`,t,s)}dataOut(e,a,t,s){this.info(e,`\u2190 ${a}`,t,s)}success(e,a,t,s){this.info(e,`\u2713 ${a}`,t,s)}failure(e,a,t,s){this.error(e,`\u2717 ${a}`,t,s)}timing(e,a,t,s){this.info(e,`\u23F1 ${a}`,s,{duration:`${t}ms`})}},H=new xp;var _={};Hd(_,{BRAND:()=>IA,DIRTY:()=>Qa,EMPTY_PATH:()=>lA,INVALID:()=>_e,NEVER:()=>h2,OK:()=>Pt,ParseStatus:()=>Et,Schema:()=>Le,ZodAny:()=>wa,ZodArray:()=>Yr,ZodBigInt:()=>Ja,ZodBoolean:()=>Ya,ZodBranded:()=>_i,ZodCatch:()=>us,ZodDate:()=>es,ZodDefault:()=>ls,ZodDiscriminatedUnion:()=>ac,ZodEffects:()=>or,ZodEnum:()=>os,ZodError:()=>Mt,ZodFirstPartyTypeKind:()=>Se,ZodFunction:()=>nc,ZodIntersection:()=>ss,ZodIssueCode:()=>J,ZodLazy:()=>ns,ZodLiteral:()=>is,ZodMap:()=>mn,ZodNaN:()=>vn,ZodNativeEnum:()=>cs,ZodNever:()=>Sr,ZodNull:()=>rs,ZodNullable:()=>Mr,ZodNumber:()=>Xa,ZodObject:()=>Ft,ZodOptional:()=>nr,ZodParsedType:()=>oe,ZodPipeline:()=>Ei,ZodPromise:()=>Sa,ZodReadonly:()=>ps,ZodRecord:()=>sc,ZodSchema:()=>Le,ZodSet:()=>hn,ZodString:()=>Ea,ZodSymbol:()=>dn,ZodTransformer:()=>or,ZodTuple:()=>qr,ZodType:()=>Le,ZodUndefined:()=>ts,ZodUnion:()=>as,ZodUnknown:()=>Jr,ZodVoid:()=>fn,addIssueToContext:()=>ae,any:()=>LA,array:()=>BA,bigint:()=>DA,boolean:()=>px,coerce:()=>m2,custom:()=>cx,date:()=>$A,datetimeRegex:()=>ix,defaultErrorMap:()=>Qr,discriminatedUnion:()=>WA,effect:()=>i2,enum:()=>a2,function:()=>e2,getErrorMap:()=>ln,getParsedType:()=>$r,instanceof:()=>jA,intersection:()=>KA,isAborted:()=>tc,isAsync:()=>un,isDirty:()=>rc,isValid:()=>_a,late:()=>AA,lazy:()=>t2,literal:()=>r2,makeIssue:()=>xi,map:()=>JA,nan:()=>NA,nativeEnum:()=>s2,never:()=>zA,null:()=>FA,nullable:()=>c2,number:()=>ux,object:()=>VA,objectUtil:()=>_p,oboolean:()=>f2,onumber:()=>d2,optional:()=>o2,ostring:()=>p2,pipeline:()=>u2,preprocess:()=>l2,promise:()=>n2,quotelessJson:()=>iA,record:()=>XA,set:()=>YA,setErrorMap:()=>cA,strictObject:()=>GA,string:()=>lx,symbol:()=>qA,transformer:()=>i2,tuple:()=>QA,undefined:()=>MA,union:()=>ZA,unknown:()=>UA,util:()=>He,void:()=>HA});var He;(function(r){r.assertEqual=s=>{};function e(s){}r.assertIs=e;function a(s){throw new Error}r.assertNever=a,r.arrayToEnum=s=>{let i={};for(let n of s)i[n]=n;return i},r.getValidEnumValues=s=>{let i=r.objectKeys(s).filter(o=>typeof s[s[o]]!="number"),n={};for(let o of i)n[o]=s[o];return r.objectValues(n)},r.objectValues=s=>r.objectKeys(s).map(function(i){return s[i]}),r.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let i=[];for(let n in s)Object.prototype.hasOwnProperty.call(s,n)&&i.push(n);return i},r.find=(s,i)=>{for(let n of s)if(i(n))return n},r.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function t(s,i=" | "){return s.map(n=>typeof n=="string"?`'${n}'`:n).join(i)}r.joinValues=t,r.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(He||(He={}));var _p;(function(r){r.mergeShapes=(e,a)=>({...e,...a})})(_p||(_p={}));var oe=He.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),$r=r=>{switch(typeof r){case"undefined":return oe.undefined;case"string":return oe.string;case"number":return Number.isNaN(r)?oe.nan:oe.number;case"boolean":return oe.boolean;case"function":return oe.function;case"bigint":return oe.bigint;case"symbol":return oe.symbol;case"object":return Array.isArray(r)?oe.array:r===null?oe.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?oe.promise:typeof Map<"u"&&r instanceof Map?oe.map:typeof Set<"u"&&r instanceof Set?oe.set:typeof Date<"u"&&r instanceof Date?oe.date:oe.object;default:return oe.unknown}};var J=He.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),iA=r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:"),Mt=class r extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=t=>{this.issues=[...this.issues,t]},this.addIssues=(t=[])=>{this.issues=[...this.issues,...t]};let a=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,a):this.__proto__=a,this.name="ZodError",this.issues=e}format(e){let a=e||function(i){return i.message},t={_errors:[]},s=i=>{for(let n of i.issues)if(n.code==="invalid_union")n.unionErrors.map(s);else if(n.code==="invalid_return_type")s(n.returnTypeError);else if(n.code==="invalid_arguments")s(n.argumentsError);else if(n.path.length===0)t._errors.push(a(n));else{let o=t,l=0;for(;la.message){let a={},t=[];for(let s of this.issues)if(s.path.length>0){let i=s.path[0];a[i]=a[i]||[],a[i].push(e(s))}else t.push(e(s));return{formErrors:t,fieldErrors:a}}get formErrors(){return this.flatten()}};Mt.create=r=>new Mt(r);var oA=(r,e)=>{let a;switch(r.code){case J.invalid_type:r.received===oe.undefined?a="Required":a=`Expected ${r.expected}, received ${r.received}`;break;case J.invalid_literal:a=`Invalid literal value, expected ${JSON.stringify(r.expected,He.jsonStringifyReplacer)}`;break;case J.unrecognized_keys:a=`Unrecognized key(s) in object: ${He.joinValues(r.keys,", ")}`;break;case J.invalid_union:a="Invalid input";break;case J.invalid_union_discriminator:a=`Invalid discriminator value. Expected ${He.joinValues(r.options)}`;break;case J.invalid_enum_value:a=`Invalid enum value. Expected ${He.joinValues(r.options)}, received '${r.received}'`;break;case J.invalid_arguments:a="Invalid function arguments";break;case J.invalid_return_type:a="Invalid function return type";break;case J.invalid_date:a="Invalid date";break;case J.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(a=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(a=`${a} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?a=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?a=`Invalid input: must end with "${r.validation.endsWith}"`:He.assertNever(r.validation):r.validation!=="regex"?a=`Invalid ${r.validation}`:a="Invalid";break;case J.too_small:r.type==="array"?a=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?a=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?a=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="bigint"?a=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?a=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:a="Invalid input";break;case J.too_big:r.type==="array"?a=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?a=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?a=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?a=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?a=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:a="Invalid input";break;case J.custom:a="Invalid input";break;case J.invalid_intersection_types:a="Intersection results could not be merged";break;case J.not_multiple_of:a=`Number must be a multiple of ${r.multipleOf}`;break;case J.not_finite:a="Number must be finite";break;default:a=e.defaultError,He.assertNever(r)}return{message:a}},Qr=oA;var tx=Qr;function cA(r){tx=r}function ln(){return tx}var xi=r=>{let{data:e,path:a,errorMaps:t,issueData:s}=r,i=[...a,...s.path||[]],n={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let o="",l=t.filter(c=>!!c).slice().reverse();for(let c of l)o=c(n,{data:e,defaultError:o}).message;return{...s,path:i,message:o}},lA=[];function ae(r,e){let a=ln(),t=xi({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,a,a===Qr?void 0:Qr].filter(s=>!!s)});r.common.issues.push(t)}var Et=class r{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,a){let t=[];for(let s of a){if(s.status==="aborted")return _e;s.status==="dirty"&&e.dirty(),t.push(s.value)}return{status:e.value,value:t}}static async mergeObjectAsync(e,a){let t=[];for(let s of a){let i=await s.key,n=await s.value;t.push({key:i,value:n})}return r.mergeObjectSync(e,t)}static mergeObjectSync(e,a){let t={};for(let s of a){let{key:i,value:n}=s;if(i.status==="aborted"||n.status==="aborted")return _e;i.status==="dirty"&&e.dirty(),n.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof n.value<"u"||s.alwaysSet)&&(t[i.value]=n.value)}return{status:e.value,value:t}}},_e=Object.freeze({status:"aborted"}),Qa=r=>({status:"dirty",value:r}),Pt=r=>({status:"valid",value:r}),tc=r=>r.status==="aborted",rc=r=>r.status==="dirty",_a=r=>r.status==="valid",un=r=>typeof Promise<"u"&&r instanceof Promise;var fe;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e?.message})(fe||(fe={}));var ir=class{constructor(e,a,t,s){this._cachedPath=[],this.parent=e,this.data=a,this._path=t,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},rx=(r,e)=>{if(_a(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let a=new Mt(r.common.issues);return this._error=a,this._error}}};function De(r){if(!r)return{};let{errorMap:e,invalid_type_error:a,required_error:t,description:s}=r;if(e&&(a||t))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(n,o)=>{let{message:l}=r;return n.code==="invalid_enum_value"?{message:l??o.defaultError}:typeof o.data>"u"?{message:l??t??o.defaultError}:n.code!=="invalid_type"?{message:o.defaultError}:{message:l??a??o.defaultError}},description:s}}var Le=class{get description(){return this._def.description}_getType(e){return $r(e.data)}_getOrReturnCtx(e,a){return a||{common:e.parent.common,data:e.data,parsedType:$r(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Et,ctx:{common:e.parent.common,data:e.data,parsedType:$r(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let a=this._parse(e);if(un(a))throw new Error("Synchronous parse encountered promise.");return a}_parseAsync(e){let a=this._parse(e);return Promise.resolve(a)}parse(e,a){let t=this.safeParse(e,a);if(t.success)return t.data;throw t.error}safeParse(e,a){let t={common:{issues:[],async:a?.async??!1,contextualErrorMap:a?.errorMap},path:a?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:$r(e)},s=this._parseSync({data:e,path:t.path,parent:t});return rx(t,s)}"~validate"(e){let a={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:$r(e)};if(!this["~standard"].async)try{let t=this._parseSync({data:e,path:[],parent:a});return _a(t)?{value:t.value}:{issues:a.common.issues}}catch(t){t?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),a.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:a}).then(t=>_a(t)?{value:t.value}:{issues:a.common.issues})}async parseAsync(e,a){let t=await this.safeParseAsync(e,a);if(t.success)return t.data;throw t.error}async safeParseAsync(e,a){let t={common:{issues:[],contextualErrorMap:a?.errorMap,async:!0},path:a?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:$r(e)},s=this._parse({data:e,path:t.path,parent:t}),i=await(un(s)?s:Promise.resolve(s));return rx(t,i)}refine(e,a){let t=s=>typeof a=="string"||typeof a>"u"?{message:a}:typeof a=="function"?a(s):a;return this._refinement((s,i)=>{let n=e(s),o=()=>i.addIssue({code:J.custom,...t(s)});return typeof Promise<"u"&&n instanceof Promise?n.then(l=>l?!0:(o(),!1)):n?!0:(o(),!1)})}refinement(e,a){return this._refinement((t,s)=>e(t)?!0:(s.addIssue(typeof a=="function"?a(t,s):a),!1))}_refinement(e){return new or({schema:this,typeName:Se.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:a=>this["~validate"](a)}}optional(){return nr.create(this,this._def)}nullable(){return Mr.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Yr.create(this)}promise(){return Sa.create(this,this._def)}or(e){return as.create([this,e],this._def)}and(e){return ss.create(this,e,this._def)}transform(e){return new or({...De(this._def),schema:this,typeName:Se.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let a=typeof e=="function"?e:()=>e;return new ls({...De(this._def),innerType:this,defaultValue:a,typeName:Se.ZodDefault})}brand(){return new _i({typeName:Se.ZodBranded,type:this,...De(this._def)})}catch(e){let a=typeof e=="function"?e:()=>e;return new us({...De(this._def),innerType:this,catchValue:a,typeName:Se.ZodCatch})}describe(e){let a=this.constructor;return new a({...this._def,description:e})}pipe(e){return Ei.create(this,e)}readonly(){return ps.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},uA=/^c[^\s-]{8,}$/i,pA=/^[0-9a-z]+$/,dA=/^[0-9A-HJKMNP-TV-Z]{26}$/i,fA=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,mA=/^[a-z0-9_-]{21}$/i,hA=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,vA=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,gA=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,yA="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ep,bA=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,xA=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,_A=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,EA=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,wA=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,SA=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,sx="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",PA=new RegExp(`^${sx}$`);function nx(r){let e="[0-5]\\d";r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`);let a=r.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${a}`}function RA(r){return new RegExp(`^${nx(r)}$`)}function ix(r){let e=`${sx}T${nx(r)}`,a=[];return a.push(r.local?"Z?":"Z"),r.offset&&a.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${a.join("|")})`,new RegExp(`^${e}$`)}function TA(r,e){return!!((e==="v4"||!e)&&bA.test(r)||(e==="v6"||!e)&&_A.test(r))}function kA(r,e){if(!hA.test(r))return!1;try{let[a]=r.split(".");if(!a)return!1;let t=a.replace(/-/g,"+").replace(/_/g,"/").padEnd(a.length+(4-a.length%4)%4,"="),s=JSON.parse(atob(t));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function OA(r,e){return!!((e==="v4"||!e)&&xA.test(r)||(e==="v6"||!e)&&EA.test(r))}var Ea=class r extends Le{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==oe.string){let i=this._getOrReturnCtx(e);return ae(i,{code:J.invalid_type,expected:oe.string,received:i.parsedType}),_e}let t=new Et,s;for(let i of this._def.checks)if(i.kind==="min")e.data.lengthi.value&&(s=this._getOrReturnCtx(e,s),ae(s,{code:J.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),t.dirty());else if(i.kind==="length"){let n=e.data.length>i.value,o=e.data.lengthe.test(s),{validation:a,code:J.invalid_string,...fe.errToObj(t)})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...fe.errToObj(e)})}url(e){return this._addCheck({kind:"url",...fe.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...fe.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...fe.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...fe.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...fe.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...fe.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...fe.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...fe.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...fe.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...fe.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...fe.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...fe.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...fe.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...fe.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...fe.errToObj(e)})}regex(e,a){return this._addCheck({kind:"regex",regex:e,...fe.errToObj(a)})}includes(e,a){return this._addCheck({kind:"includes",value:e,position:a?.position,...fe.errToObj(a?.message)})}startsWith(e,a){return this._addCheck({kind:"startsWith",value:e,...fe.errToObj(a)})}endsWith(e,a){return this._addCheck({kind:"endsWith",value:e,...fe.errToObj(a)})}min(e,a){return this._addCheck({kind:"min",value:e,...fe.errToObj(a)})}max(e,a){return this._addCheck({kind:"max",value:e,...fe.errToObj(a)})}length(e,a){return this._addCheck({kind:"length",value:e,...fe.errToObj(a)})}nonempty(e){return this.min(1,fe.errToObj(e))}trim(){return new r({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new r({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new r({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e}get maxLength(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuenew Ea({checks:[],typeName:Se.ZodString,coerce:r?.coerce??!1,...De(r)});function CA(r,e){let a=(r.toString().split(".")[1]||"").length,t=(e.toString().split(".")[1]||"").length,s=a>t?a:t,i=Number.parseInt(r.toFixed(s).replace(".","")),n=Number.parseInt(e.toFixed(s).replace(".",""));return i%n/10**s}var Xa=class r extends Le{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==oe.number){let i=this._getOrReturnCtx(e);return ae(i,{code:J.invalid_type,expected:oe.number,received:i.parsedType}),_e}let t,s=new Et;for(let i of this._def.checks)i.kind==="int"?He.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),ae(t,{code:J.invalid_type,expected:"integer",received:"float",message:i.message}),s.dirty()):i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(t=this._getOrReturnCtx(e,t),ae(t,{code:J.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="multipleOf"?CA(e.data,i.value)!==0&&(t=this._getOrReturnCtx(e,t),ae(t,{code:J.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),ae(t,{code:J.not_finite,message:i.message}),s.dirty()):He.assertNever(i);return{status:s.value,value:e.data}}gte(e,a){return this.setLimit("min",e,!0,fe.toString(a))}gt(e,a){return this.setLimit("min",e,!1,fe.toString(a))}lte(e,a){return this.setLimit("max",e,!0,fe.toString(a))}lt(e,a){return this.setLimit("max",e,!1,fe.toString(a))}setLimit(e,a,t,s){return new r({...this._def,checks:[...this._def.checks,{kind:e,value:a,inclusive:t,message:fe.toString(s)}]})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:fe.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:fe.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:fe.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:fe.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:fe.toString(e)})}multipleOf(e,a){return this._addCheck({kind:"multipleOf",value:e,message:fe.toString(a)})}finite(e){return this._addCheck({kind:"finite",message:fe.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:fe.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:fe.toString(e)})}get minValue(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e}get maxValue(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuee.kind==="int"||e.kind==="multipleOf"&&He.isInteger(e.value))}get isFinite(){let e=null,a=null;for(let t of this._def.checks){if(t.kind==="finite"||t.kind==="int"||t.kind==="multipleOf")return!0;t.kind==="min"?(a===null||t.value>a)&&(a=t.value):t.kind==="max"&&(e===null||t.valuenew Xa({checks:[],typeName:Se.ZodNumber,coerce:r?.coerce||!1,...De(r)});var Ja=class r extends Le{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==oe.bigint)return this._getInvalidInput(e);let t,s=new Et;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(t=this._getOrReturnCtx(e,t),ae(t,{code:J.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),ae(t,{code:J.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):He.assertNever(i);return{status:s.value,value:e.data}}_getInvalidInput(e){let a=this._getOrReturnCtx(e);return ae(a,{code:J.invalid_type,expected:oe.bigint,received:a.parsedType}),_e}gte(e,a){return this.setLimit("min",e,!0,fe.toString(a))}gt(e,a){return this.setLimit("min",e,!1,fe.toString(a))}lte(e,a){return this.setLimit("max",e,!0,fe.toString(a))}lt(e,a){return this.setLimit("max",e,!1,fe.toString(a))}setLimit(e,a,t,s){return new r({...this._def,checks:[...this._def.checks,{kind:e,value:a,inclusive:t,message:fe.toString(s)}]})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:fe.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:fe.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:fe.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:fe.toString(e)})}multipleOf(e,a){return this._addCheck({kind:"multipleOf",value:e,message:fe.toString(a)})}get minValue(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e}get maxValue(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuenew Ja({checks:[],typeName:Se.ZodBigInt,coerce:r?.coerce??!1,...De(r)});var Ya=class extends Le{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==oe.boolean){let t=this._getOrReturnCtx(e);return ae(t,{code:J.invalid_type,expected:oe.boolean,received:t.parsedType}),_e}return Pt(e.data)}};Ya.create=r=>new Ya({typeName:Se.ZodBoolean,coerce:r?.coerce||!1,...De(r)});var es=class r extends Le{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==oe.date){let i=this._getOrReturnCtx(e);return ae(i,{code:J.invalid_type,expected:oe.date,received:i.parsedType}),_e}if(Number.isNaN(e.data.getTime())){let i=this._getOrReturnCtx(e);return ae(i,{code:J.invalid_date}),_e}let t=new Et,s;for(let i of this._def.checks)i.kind==="min"?e.data.getTime()i.value&&(s=this._getOrReturnCtx(e,s),ae(s,{code:J.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),t.dirty()):He.assertNever(i);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}min(e,a){return this._addCheck({kind:"min",value:e.getTime(),message:fe.toString(a)})}max(e,a){return this._addCheck({kind:"max",value:e.getTime(),message:fe.toString(a)})}get minDate(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuenew es({checks:[],coerce:r?.coerce||!1,typeName:Se.ZodDate,...De(r)});var dn=class extends Le{_parse(e){if(this._getType(e)!==oe.symbol){let t=this._getOrReturnCtx(e);return ae(t,{code:J.invalid_type,expected:oe.symbol,received:t.parsedType}),_e}return Pt(e.data)}};dn.create=r=>new dn({typeName:Se.ZodSymbol,...De(r)});var ts=class extends Le{_parse(e){if(this._getType(e)!==oe.undefined){let t=this._getOrReturnCtx(e);return ae(t,{code:J.invalid_type,expected:oe.undefined,received:t.parsedType}),_e}return Pt(e.data)}};ts.create=r=>new ts({typeName:Se.ZodUndefined,...De(r)});var rs=class extends Le{_parse(e){if(this._getType(e)!==oe.null){let t=this._getOrReturnCtx(e);return ae(t,{code:J.invalid_type,expected:oe.null,received:t.parsedType}),_e}return Pt(e.data)}};rs.create=r=>new rs({typeName:Se.ZodNull,...De(r)});var wa=class extends Le{constructor(){super(...arguments),this._any=!0}_parse(e){return Pt(e.data)}};wa.create=r=>new wa({typeName:Se.ZodAny,...De(r)});var Jr=class extends Le{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Pt(e.data)}};Jr.create=r=>new Jr({typeName:Se.ZodUnknown,...De(r)});var Sr=class extends Le{_parse(e){let a=this._getOrReturnCtx(e);return ae(a,{code:J.invalid_type,expected:oe.never,received:a.parsedType}),_e}};Sr.create=r=>new Sr({typeName:Se.ZodNever,...De(r)});var fn=class extends Le{_parse(e){if(this._getType(e)!==oe.undefined){let t=this._getOrReturnCtx(e);return ae(t,{code:J.invalid_type,expected:oe.void,received:t.parsedType}),_e}return Pt(e.data)}};fn.create=r=>new fn({typeName:Se.ZodVoid,...De(r)});var Yr=class r extends Le{_parse(e){let{ctx:a,status:t}=this._processInputParams(e),s=this._def;if(a.parsedType!==oe.array)return ae(a,{code:J.invalid_type,expected:oe.array,received:a.parsedType}),_e;if(s.exactLength!==null){let n=a.data.length>s.exactLength.value,o=a.data.lengths.maxLength.value&&(ae(a,{code:J.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),t.dirty()),a.common.async)return Promise.all([...a.data].map((n,o)=>s.type._parseAsync(new ir(a,n,a.path,o)))).then(n=>Et.mergeArray(t,n));let i=[...a.data].map((n,o)=>s.type._parseSync(new ir(a,n,a.path,o)));return Et.mergeArray(t,i)}get element(){return this._def.type}min(e,a){return new r({...this._def,minLength:{value:e,message:fe.toString(a)}})}max(e,a){return new r({...this._def,maxLength:{value:e,message:fe.toString(a)}})}length(e,a){return new r({...this._def,exactLength:{value:e,message:fe.toString(a)}})}nonempty(e){return this.min(1,e)}};Yr.create=(r,e)=>new Yr({type:r,minLength:null,maxLength:null,exactLength:null,typeName:Se.ZodArray,...De(e)});function pn(r){if(r instanceof Ft){let e={};for(let a in r.shape){let t=r.shape[a];e[a]=nr.create(pn(t))}return new Ft({...r._def,shape:()=>e})}else return r instanceof Yr?new Yr({...r._def,type:pn(r.element)}):r instanceof nr?nr.create(pn(r.unwrap())):r instanceof Mr?Mr.create(pn(r.unwrap())):r instanceof qr?qr.create(r.items.map(e=>pn(e))):r}var Ft=class r extends Le{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),a=He.objectKeys(e);return this._cached={shape:e,keys:a},this._cached}_parse(e){if(this._getType(e)!==oe.object){let c=this._getOrReturnCtx(e);return ae(c,{code:J.invalid_type,expected:oe.object,received:c.parsedType}),_e}let{status:t,ctx:s}=this._processInputParams(e),{shape:i,keys:n}=this._getCached(),o=[];if(!(this._def.catchall instanceof Sr&&this._def.unknownKeys==="strip"))for(let c in s.data)n.includes(c)||o.push(c);let l=[];for(let c of n){let u=i[c],p=s.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new ir(s,p,s.path,c)),alwaysSet:c in s.data})}if(this._def.catchall instanceof Sr){let c=this._def.unknownKeys;if(c==="passthrough")for(let u of o)l.push({key:{status:"valid",value:u},value:{status:"valid",value:s.data[u]}});else if(c==="strict")o.length>0&&(ae(s,{code:J.unrecognized_keys,keys:o}),t.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let u of o){let p=s.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new ir(s,p,s.path,u)),alwaysSet:u in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let c=[];for(let u of l){let p=await u.key,m=await u.value;c.push({key:p,value:m,alwaysSet:u.alwaysSet})}return c}).then(c=>Et.mergeObjectSync(t,c)):Et.mergeObjectSync(t,l)}get shape(){return this._def.shape()}strict(e){return fe.errToObj,new r({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(a,t)=>{let s=this._def.errorMap?.(a,t).message??t.defaultError;return a.code==="unrecognized_keys"?{message:fe.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new r({...this._def,unknownKeys:"strip"})}passthrough(){return new r({...this._def,unknownKeys:"passthrough"})}extend(e){return new r({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new r({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Se.ZodObject})}setKey(e,a){return this.augment({[e]:a})}catchall(e){return new r({...this._def,catchall:e})}pick(e){let a={};for(let t of He.objectKeys(e))e[t]&&this.shape[t]&&(a[t]=this.shape[t]);return new r({...this._def,shape:()=>a})}omit(e){let a={};for(let t of He.objectKeys(this.shape))e[t]||(a[t]=this.shape[t]);return new r({...this._def,shape:()=>a})}deepPartial(){return pn(this)}partial(e){let a={};for(let t of He.objectKeys(this.shape)){let s=this.shape[t];e&&!e[t]?a[t]=s:a[t]=s.optional()}return new r({...this._def,shape:()=>a})}required(e){let a={};for(let t of He.objectKeys(this.shape))if(e&&!e[t])a[t]=this.shape[t];else{let i=this.shape[t];for(;i instanceof nr;)i=i._def.innerType;a[t]=i}return new r({...this._def,shape:()=>a})}keyof(){return ox(He.objectKeys(this.shape))}};Ft.create=(r,e)=>new Ft({shape:()=>r,unknownKeys:"strip",catchall:Sr.create(),typeName:Se.ZodObject,...De(e)});Ft.strictCreate=(r,e)=>new Ft({shape:()=>r,unknownKeys:"strict",catchall:Sr.create(),typeName:Se.ZodObject,...De(e)});Ft.lazycreate=(r,e)=>new Ft({shape:r,unknownKeys:"strip",catchall:Sr.create(),typeName:Se.ZodObject,...De(e)});var as=class extends Le{_parse(e){let{ctx:a}=this._processInputParams(e),t=this._def.options;function s(i){for(let o of i)if(o.result.status==="valid")return o.result;for(let o of i)if(o.result.status==="dirty")return a.common.issues.push(...o.ctx.common.issues),o.result;let n=i.map(o=>new Mt(o.ctx.common.issues));return ae(a,{code:J.invalid_union,unionErrors:n}),_e}if(a.common.async)return Promise.all(t.map(async i=>{let n={...a,common:{...a.common,issues:[]},parent:null};return{result:await i._parseAsync({data:a.data,path:a.path,parent:n}),ctx:n}})).then(s);{let i,n=[];for(let l of t){let c={...a,common:{...a.common,issues:[]},parent:null},u=l._parseSync({data:a.data,path:a.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!i&&(i={result:u,ctx:c}),c.common.issues.length&&n.push(c.common.issues)}if(i)return a.common.issues.push(...i.ctx.common.issues),i.result;let o=n.map(l=>new Mt(l));return ae(a,{code:J.invalid_union,unionErrors:o}),_e}}get options(){return this._def.options}};as.create=(r,e)=>new as({options:r,typeName:Se.ZodUnion,...De(e)});var Xr=r=>r instanceof ns?Xr(r.schema):r instanceof or?Xr(r.innerType()):r instanceof is?[r.value]:r instanceof os?r.options:r instanceof cs?He.objectValues(r.enum):r instanceof ls?Xr(r._def.innerType):r instanceof ts?[void 0]:r instanceof rs?[null]:r instanceof nr?[void 0,...Xr(r.unwrap())]:r instanceof Mr?[null,...Xr(r.unwrap())]:r instanceof _i||r instanceof ps?Xr(r.unwrap()):r instanceof us?Xr(r._def.innerType):[],ac=class r extends Le{_parse(e){let{ctx:a}=this._processInputParams(e);if(a.parsedType!==oe.object)return ae(a,{code:J.invalid_type,expected:oe.object,received:a.parsedType}),_e;let t=this.discriminator,s=a.data[t],i=this.optionsMap.get(s);return i?a.common.async?i._parseAsync({data:a.data,path:a.path,parent:a}):i._parseSync({data:a.data,path:a.path,parent:a}):(ae(a,{code:J.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[t]}),_e)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,a,t){let s=new Map;for(let i of a){let n=Xr(i.shape[e]);if(!n.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let o of n){if(s.has(o))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);s.set(o,i)}}return new r({typeName:Se.ZodDiscriminatedUnion,discriminator:e,options:a,optionsMap:s,...De(t)})}};function wp(r,e){let a=$r(r),t=$r(e);if(r===e)return{valid:!0,data:r};if(a===oe.object&&t===oe.object){let s=He.objectKeys(e),i=He.objectKeys(r).filter(o=>s.indexOf(o)!==-1),n={...r,...e};for(let o of i){let l=wp(r[o],e[o]);if(!l.valid)return{valid:!1};n[o]=l.data}return{valid:!0,data:n}}else if(a===oe.array&&t===oe.array){if(r.length!==e.length)return{valid:!1};let s=[];for(let i=0;i{if(tc(i)||tc(n))return _e;let o=wp(i.value,n.value);return o.valid?((rc(i)||rc(n))&&a.dirty(),{status:a.value,value:o.data}):(ae(t,{code:J.invalid_intersection_types}),_e)};return t.common.async?Promise.all([this._def.left._parseAsync({data:t.data,path:t.path,parent:t}),this._def.right._parseAsync({data:t.data,path:t.path,parent:t})]).then(([i,n])=>s(i,n)):s(this._def.left._parseSync({data:t.data,path:t.path,parent:t}),this._def.right._parseSync({data:t.data,path:t.path,parent:t}))}};ss.create=(r,e,a)=>new ss({left:r,right:e,typeName:Se.ZodIntersection,...De(a)});var qr=class r extends Le{_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==oe.array)return ae(t,{code:J.invalid_type,expected:oe.array,received:t.parsedType}),_e;if(t.data.lengththis._def.items.length&&(ae(t,{code:J.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),a.dirty());let i=[...t.data].map((n,o)=>{let l=this._def.items[o]||this._def.rest;return l?l._parse(new ir(t,n,t.path,o)):null}).filter(n=>!!n);return t.common.async?Promise.all(i).then(n=>Et.mergeArray(a,n)):Et.mergeArray(a,i)}get items(){return this._def.items}rest(e){return new r({...this._def,rest:e})}};qr.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new qr({items:r,typeName:Se.ZodTuple,rest:null,...De(e)})};var sc=class r extends Le{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==oe.object)return ae(t,{code:J.invalid_type,expected:oe.object,received:t.parsedType}),_e;let s=[],i=this._def.keyType,n=this._def.valueType;for(let o in t.data)s.push({key:i._parse(new ir(t,o,t.path,o)),value:n._parse(new ir(t,t.data[o],t.path,o)),alwaysSet:o in t.data});return t.common.async?Et.mergeObjectAsync(a,s):Et.mergeObjectSync(a,s)}get element(){return this._def.valueType}static create(e,a,t){return a instanceof Le?new r({keyType:e,valueType:a,typeName:Se.ZodRecord,...De(t)}):new r({keyType:Ea.create(),valueType:e,typeName:Se.ZodRecord,...De(a)})}},mn=class extends Le{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==oe.map)return ae(t,{code:J.invalid_type,expected:oe.map,received:t.parsedType}),_e;let s=this._def.keyType,i=this._def.valueType,n=[...t.data.entries()].map(([o,l],c)=>({key:s._parse(new ir(t,o,t.path,[c,"key"])),value:i._parse(new ir(t,l,t.path,[c,"value"]))}));if(t.common.async){let o=new Map;return Promise.resolve().then(async()=>{for(let l of n){let c=await l.key,u=await l.value;if(c.status==="aborted"||u.status==="aborted")return _e;(c.status==="dirty"||u.status==="dirty")&&a.dirty(),o.set(c.value,u.value)}return{status:a.value,value:o}})}else{let o=new Map;for(let l of n){let c=l.key,u=l.value;if(c.status==="aborted"||u.status==="aborted")return _e;(c.status==="dirty"||u.status==="dirty")&&a.dirty(),o.set(c.value,u.value)}return{status:a.value,value:o}}}};mn.create=(r,e,a)=>new mn({valueType:e,keyType:r,typeName:Se.ZodMap,...De(a)});var hn=class r extends Le{_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==oe.set)return ae(t,{code:J.invalid_type,expected:oe.set,received:t.parsedType}),_e;let s=this._def;s.minSize!==null&&t.data.sizes.maxSize.value&&(ae(t,{code:J.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),a.dirty());let i=this._def.valueType;function n(l){let c=new Set;for(let u of l){if(u.status==="aborted")return _e;u.status==="dirty"&&a.dirty(),c.add(u.value)}return{status:a.value,value:c}}let o=[...t.data.values()].map((l,c)=>i._parse(new ir(t,l,t.path,c)));return t.common.async?Promise.all(o).then(l=>n(l)):n(o)}min(e,a){return new r({...this._def,minSize:{value:e,message:fe.toString(a)}})}max(e,a){return new r({...this._def,maxSize:{value:e,message:fe.toString(a)}})}size(e,a){return this.min(e,a).max(e,a)}nonempty(e){return this.min(1,e)}};hn.create=(r,e)=>new hn({valueType:r,minSize:null,maxSize:null,typeName:Se.ZodSet,...De(e)});var nc=class r extends Le{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:a}=this._processInputParams(e);if(a.parsedType!==oe.function)return ae(a,{code:J.invalid_type,expected:oe.function,received:a.parsedType}),_e;function t(o,l){return xi({data:o,path:a.path,errorMaps:[a.common.contextualErrorMap,a.schemaErrorMap,ln(),Qr].filter(c=>!!c),issueData:{code:J.invalid_arguments,argumentsError:l}})}function s(o,l){return xi({data:o,path:a.path,errorMaps:[a.common.contextualErrorMap,a.schemaErrorMap,ln(),Qr].filter(c=>!!c),issueData:{code:J.invalid_return_type,returnTypeError:l}})}let i={errorMap:a.common.contextualErrorMap},n=a.data;if(this._def.returns instanceof Sa){let o=this;return Pt(async function(...l){let c=new Mt([]),u=await o._def.args.parseAsync(l,i).catch(f=>{throw c.addIssue(t(l,f)),c}),p=await Reflect.apply(n,this,u);return await o._def.returns._def.type.parseAsync(p,i).catch(f=>{throw c.addIssue(s(p,f)),c})})}else{let o=this;return Pt(function(...l){let c=o._def.args.safeParse(l,i);if(!c.success)throw new Mt([t(l,c.error)]);let u=Reflect.apply(n,this,c.data),p=o._def.returns.safeParse(u,i);if(!p.success)throw new Mt([s(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new r({...this._def,args:qr.create(e).rest(Jr.create())})}returns(e){return new r({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,a,t){return new r({args:e||qr.create([]).rest(Jr.create()),returns:a||Jr.create(),typeName:Se.ZodFunction,...De(t)})}},ns=class extends Le{get schema(){return this._def.getter()}_parse(e){let{ctx:a}=this._processInputParams(e);return this._def.getter()._parse({data:a.data,path:a.path,parent:a})}};ns.create=(r,e)=>new ns({getter:r,typeName:Se.ZodLazy,...De(e)});var is=class extends Le{_parse(e){if(e.data!==this._def.value){let a=this._getOrReturnCtx(e);return ae(a,{received:a.data,code:J.invalid_literal,expected:this._def.value}),_e}return{status:"valid",value:e.data}}get value(){return this._def.value}};is.create=(r,e)=>new is({value:r,typeName:Se.ZodLiteral,...De(e)});function ox(r,e){return new os({values:r,typeName:Se.ZodEnum,...De(e)})}var os=class r extends Le{_parse(e){if(typeof e.data!="string"){let a=this._getOrReturnCtx(e),t=this._def.values;return ae(a,{expected:He.joinValues(t),received:a.parsedType,code:J.invalid_type}),_e}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let a=this._getOrReturnCtx(e),t=this._def.values;return ae(a,{received:a.data,code:J.invalid_enum_value,options:t}),_e}return Pt(e.data)}get options(){return this._def.values}get enum(){let e={};for(let a of this._def.values)e[a]=a;return e}get Values(){let e={};for(let a of this._def.values)e[a]=a;return e}get Enum(){let e={};for(let a of this._def.values)e[a]=a;return e}extract(e,a=this._def){return r.create(e,{...this._def,...a})}exclude(e,a=this._def){return r.create(this.options.filter(t=>!e.includes(t)),{...this._def,...a})}};os.create=ox;var cs=class extends Le{_parse(e){let a=He.getValidEnumValues(this._def.values),t=this._getOrReturnCtx(e);if(t.parsedType!==oe.string&&t.parsedType!==oe.number){let s=He.objectValues(a);return ae(t,{expected:He.joinValues(s),received:t.parsedType,code:J.invalid_type}),_e}if(this._cache||(this._cache=new Set(He.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let s=He.objectValues(a);return ae(t,{received:t.data,code:J.invalid_enum_value,options:s}),_e}return Pt(e.data)}get enum(){return this._def.values}};cs.create=(r,e)=>new cs({values:r,typeName:Se.ZodNativeEnum,...De(e)});var Sa=class extends Le{unwrap(){return this._def.type}_parse(e){let{ctx:a}=this._processInputParams(e);if(a.parsedType!==oe.promise&&a.common.async===!1)return ae(a,{code:J.invalid_type,expected:oe.promise,received:a.parsedType}),_e;let t=a.parsedType===oe.promise?a.data:Promise.resolve(a.data);return Pt(t.then(s=>this._def.type.parseAsync(s,{path:a.path,errorMap:a.common.contextualErrorMap})))}};Sa.create=(r,e)=>new Sa({type:r,typeName:Se.ZodPromise,...De(e)});var or=class extends Le{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Se.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:a,ctx:t}=this._processInputParams(e),s=this._def.effect||null,i={addIssue:n=>{ae(t,n),n.fatal?a.abort():a.dirty()},get path(){return t.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){let n=s.transform(t.data,i);if(t.common.async)return Promise.resolve(n).then(async o=>{if(a.value==="aborted")return _e;let l=await this._def.schema._parseAsync({data:o,path:t.path,parent:t});return l.status==="aborted"?_e:l.status==="dirty"?Qa(l.value):a.value==="dirty"?Qa(l.value):l});{if(a.value==="aborted")return _e;let o=this._def.schema._parseSync({data:n,path:t.path,parent:t});return o.status==="aborted"?_e:o.status==="dirty"?Qa(o.value):a.value==="dirty"?Qa(o.value):o}}if(s.type==="refinement"){let n=o=>{let l=s.refinement(o,i);if(t.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(t.common.async===!1){let o=this._def.schema._parseSync({data:t.data,path:t.path,parent:t});return o.status==="aborted"?_e:(o.status==="dirty"&&a.dirty(),n(o.value),{status:a.value,value:o.value})}else return this._def.schema._parseAsync({data:t.data,path:t.path,parent:t}).then(o=>o.status==="aborted"?_e:(o.status==="dirty"&&a.dirty(),n(o.value).then(()=>({status:a.value,value:o.value}))))}if(s.type==="transform")if(t.common.async===!1){let n=this._def.schema._parseSync({data:t.data,path:t.path,parent:t});if(!_a(n))return _e;let o=s.transform(n.value,i);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:a.value,value:o}}else return this._def.schema._parseAsync({data:t.data,path:t.path,parent:t}).then(n=>_a(n)?Promise.resolve(s.transform(n.value,i)).then(o=>({status:a.value,value:o})):_e);He.assertNever(s)}};or.create=(r,e,a)=>new or({schema:r,typeName:Se.ZodEffects,effect:e,...De(a)});or.createWithPreprocess=(r,e,a)=>new or({schema:e,effect:{type:"preprocess",transform:r},typeName:Se.ZodEffects,...De(a)});var nr=class extends Le{_parse(e){return this._getType(e)===oe.undefined?Pt(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};nr.create=(r,e)=>new nr({innerType:r,typeName:Se.ZodOptional,...De(e)});var Mr=class extends Le{_parse(e){return this._getType(e)===oe.null?Pt(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Mr.create=(r,e)=>new Mr({innerType:r,typeName:Se.ZodNullable,...De(e)});var ls=class extends Le{_parse(e){let{ctx:a}=this._processInputParams(e),t=a.data;return a.parsedType===oe.undefined&&(t=this._def.defaultValue()),this._def.innerType._parse({data:t,path:a.path,parent:a})}removeDefault(){return this._def.innerType}};ls.create=(r,e)=>new ls({innerType:r,typeName:Se.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...De(e)});var us=class extends Le{_parse(e){let{ctx:a}=this._processInputParams(e),t={...a,common:{...a.common,issues:[]}},s=this._def.innerType._parse({data:t.data,path:t.path,parent:{...t}});return un(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Mt(t.common.issues)},input:t.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Mt(t.common.issues)},input:t.data})}}removeCatch(){return this._def.innerType}};us.create=(r,e)=>new us({innerType:r,typeName:Se.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...De(e)});var vn=class extends Le{_parse(e){if(this._getType(e)!==oe.nan){let t=this._getOrReturnCtx(e);return ae(t,{code:J.invalid_type,expected:oe.nan,received:t.parsedType}),_e}return{status:"valid",value:e.data}}};vn.create=r=>new vn({typeName:Se.ZodNaN,...De(r)});var IA=Symbol("zod_brand"),_i=class extends Le{_parse(e){let{ctx:a}=this._processInputParams(e),t=a.data;return this._def.type._parse({data:t,path:a.path,parent:a})}unwrap(){return this._def.type}},Ei=class r extends Le{_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:t.data,path:t.path,parent:t});return i.status==="aborted"?_e:i.status==="dirty"?(a.dirty(),Qa(i.value)):this._def.out._parseAsync({data:i.value,path:t.path,parent:t})})();{let s=this._def.in._parseSync({data:t.data,path:t.path,parent:t});return s.status==="aborted"?_e:s.status==="dirty"?(a.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:t.path,parent:t})}}static create(e,a){return new r({in:e,out:a,typeName:Se.ZodPipeline})}},ps=class extends Le{_parse(e){let a=this._def.innerType._parse(e),t=s=>(_a(s)&&(s.value=Object.freeze(s.value)),s);return un(a)?a.then(s=>t(s)):t(a)}unwrap(){return this._def.innerType}};ps.create=(r,e)=>new ps({innerType:r,typeName:Se.ZodReadonly,...De(e)});function ax(r,e){let a=typeof r=="function"?r(e):typeof r=="string"?{message:r}:r;return typeof a=="string"?{message:a}:a}function cx(r,e={},a){return r?wa.create().superRefine((t,s)=>{let i=r(t);if(i instanceof Promise)return i.then(n=>{if(!n){let o=ax(e,t),l=o.fatal??a??!0;s.addIssue({code:"custom",...o,fatal:l})}});if(!i){let n=ax(e,t),o=n.fatal??a??!0;s.addIssue({code:"custom",...n,fatal:o})}}):wa.create()}var AA={object:Ft.lazycreate},Se;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(Se||(Se={}));var jA=(r,e={message:`Input not instance of ${r.name}`})=>cx(a=>a instanceof r,e),lx=Ea.create,ux=Xa.create,NA=vn.create,DA=Ja.create,px=Ya.create,$A=es.create,qA=dn.create,MA=ts.create,FA=rs.create,LA=wa.create,UA=Jr.create,zA=Sr.create,HA=fn.create,BA=Yr.create,VA=Ft.create,GA=Ft.strictCreate,ZA=as.create,WA=ac.create,KA=ss.create,QA=qr.create,XA=sc.create,JA=mn.create,YA=hn.create,e2=nc.create,t2=ns.create,r2=is.create,a2=os.create,s2=cs.create,n2=Sa.create,i2=or.create,o2=nr.create,c2=Mr.create,l2=or.createWithPreprocess,u2=Ei.create,p2=()=>lx().optional(),d2=()=>ux().optional(),f2=()=>px().optional(),m2={string:(r=>Ea.create({...r,coerce:!0})),number:(r=>Xa.create({...r,coerce:!0})),boolean:(r=>Ya.create({...r,coerce:!0})),bigint:(r=>Ja.create({...r,coerce:!0})),date:(r=>es.create({...r,coerce:!0}))};var h2=_e;var Sp="2025-06-18";var dx=[Sp,"2025-03-26","2024-11-05","2024-10-07"],ic="2.0",fx=_.union([_.string(),_.number().int()]),mx=_.string(),v2=_.object({progressToken:_.optional(fx)}).passthrough(),ur=_.object({_meta:_.optional(v2)}).passthrough(),Lt=_.object({method:_.string(),params:_.optional(ur)}),wi=_.object({_meta:_.optional(_.object({}).passthrough())}).passthrough(),Fr=_.object({method:_.string(),params:_.optional(wi)}),pr=_.object({_meta:_.optional(_.object({}).passthrough())}).passthrough(),oc=_.union([_.string(),_.number().int()]),hx=_.object({jsonrpc:_.literal(ic),id:oc}).merge(Lt).strict(),vx=r=>hx.safeParse(r).success,gx=_.object({jsonrpc:_.literal(ic)}).merge(Fr).strict(),yx=r=>gx.safeParse(r).success,bx=_.object({jsonrpc:_.literal(ic),id:oc,result:pr}).strict(),Pp=r=>bx.safeParse(r).success,cr;(function(r){r[r.ConnectionClosed=-32e3]="ConnectionClosed",r[r.RequestTimeout=-32001]="RequestTimeout",r[r.ParseError=-32700]="ParseError",r[r.InvalidRequest=-32600]="InvalidRequest",r[r.MethodNotFound=-32601]="MethodNotFound",r[r.InvalidParams=-32602]="InvalidParams",r[r.InternalError=-32603]="InternalError"})(cr||(cr={}));var xx=_.object({jsonrpc:_.literal(ic),id:oc,error:_.object({code:_.number().int(),message:_.string(),data:_.optional(_.unknown())})}).strict(),_x=r=>xx.safeParse(r).success,Ex=_.union([hx,gx,bx,xx]),ds=pr.strict(),cc=Fr.extend({method:_.literal("notifications/cancelled"),params:wi.extend({requestId:oc,reason:_.string().optional()})}),g2=_.object({src:_.string(),mimeType:_.optional(_.string()),sizes:_.optional(_.array(_.string()))}).passthrough(),Si=_.object({icons:_.array(g2).optional()}).passthrough(),Pi=_.object({name:_.string(),title:_.optional(_.string())}).passthrough(),wx=Pi.extend({version:_.string(),websiteUrl:_.optional(_.string())}).merge(Si),y2=_.object({experimental:_.optional(_.object({}).passthrough()),sampling:_.optional(_.object({}).passthrough()),elicitation:_.optional(_.object({}).passthrough()),roots:_.optional(_.object({listChanged:_.optional(_.boolean())}).passthrough())}).passthrough(),b2=Lt.extend({method:_.literal("initialize"),params:ur.extend({protocolVersion:_.string(),capabilities:y2,clientInfo:wx})});var x2=_.object({experimental:_.optional(_.object({}).passthrough()),logging:_.optional(_.object({}).passthrough()),completions:_.optional(_.object({}).passthrough()),prompts:_.optional(_.object({listChanged:_.optional(_.boolean())}).passthrough()),resources:_.optional(_.object({subscribe:_.optional(_.boolean()),listChanged:_.optional(_.boolean())}).passthrough()),tools:_.optional(_.object({listChanged:_.optional(_.boolean())}).passthrough())}).passthrough(),Rp=pr.extend({protocolVersion:_.string(),capabilities:x2,serverInfo:wx,instructions:_.optional(_.string())}),_2=Fr.extend({method:_.literal("notifications/initialized")});var lc=Lt.extend({method:_.literal("ping")}),E2=_.object({progress:_.number(),total:_.optional(_.number()),message:_.optional(_.string())}).passthrough(),uc=Fr.extend({method:_.literal("notifications/progress"),params:wi.merge(E2).extend({progressToken:fx})}),pc=Lt.extend({params:ur.extend({cursor:_.optional(mx)}).optional()}),dc=pr.extend({nextCursor:_.optional(mx)}),Sx=_.object({uri:_.string(),mimeType:_.optional(_.string()),_meta:_.optional(_.object({}).passthrough())}).passthrough(),Px=Sx.extend({text:_.string()}),Tp=_.string().refine(r=>{try{return atob(r),!0}catch{return!1}},{message:"Invalid Base64 string"}),Rx=Sx.extend({blob:Tp}),Tx=Pi.extend({uri:_.string(),description:_.optional(_.string()),mimeType:_.optional(_.string()),_meta:_.optional(_.object({}).passthrough())}).merge(Si),w2=Pi.extend({uriTemplate:_.string(),description:_.optional(_.string()),mimeType:_.optional(_.string()),_meta:_.optional(_.object({}).passthrough())}).merge(Si),S2=pc.extend({method:_.literal("resources/list")}),kp=dc.extend({resources:_.array(Tx)}),P2=pc.extend({method:_.literal("resources/templates/list")}),Op=dc.extend({resourceTemplates:_.array(w2)}),R2=Lt.extend({method:_.literal("resources/read"),params:ur.extend({uri:_.string()})}),Cp=pr.extend({contents:_.array(_.union([Px,Rx]))}),T2=Fr.extend({method:_.literal("notifications/resources/list_changed")}),k2=Lt.extend({method:_.literal("resources/subscribe"),params:ur.extend({uri:_.string()})}),O2=Lt.extend({method:_.literal("resources/unsubscribe"),params:ur.extend({uri:_.string()})}),C2=Fr.extend({method:_.literal("notifications/resources/updated"),params:wi.extend({uri:_.string()})}),I2=_.object({name:_.string(),description:_.optional(_.string()),required:_.optional(_.boolean())}).passthrough(),A2=Pi.extend({description:_.optional(_.string()),arguments:_.optional(_.array(I2)),_meta:_.optional(_.object({}).passthrough())}).merge(Si),j2=pc.extend({method:_.literal("prompts/list")}),Ip=dc.extend({prompts:_.array(A2)}),N2=Lt.extend({method:_.literal("prompts/get"),params:ur.extend({name:_.string(),arguments:_.optional(_.record(_.string()))})}),Ap=_.object({type:_.literal("text"),text:_.string(),_meta:_.optional(_.object({}).passthrough())}).passthrough(),jp=_.object({type:_.literal("image"),data:Tp,mimeType:_.string(),_meta:_.optional(_.object({}).passthrough())}).passthrough(),Np=_.object({type:_.literal("audio"),data:Tp,mimeType:_.string(),_meta:_.optional(_.object({}).passthrough())}).passthrough(),D2=_.object({type:_.literal("resource"),resource:_.union([Px,Rx]),_meta:_.optional(_.object({}).passthrough())}).passthrough(),$2=Tx.extend({type:_.literal("resource_link")}),kx=_.union([Ap,jp,Np,$2,D2]),q2=_.object({role:_.enum(["user","assistant"]),content:kx}).passthrough(),Dp=pr.extend({description:_.optional(_.string()),messages:_.array(q2)}),M2=Fr.extend({method:_.literal("notifications/prompts/list_changed")}),F2=_.object({title:_.optional(_.string()),readOnlyHint:_.optional(_.boolean()),destructiveHint:_.optional(_.boolean()),idempotentHint:_.optional(_.boolean()),openWorldHint:_.optional(_.boolean())}).passthrough(),L2=Pi.extend({description:_.optional(_.string()),inputSchema:_.object({type:_.literal("object"),properties:_.optional(_.object({}).passthrough()),required:_.optional(_.array(_.string()))}).passthrough(),outputSchema:_.optional(_.object({type:_.literal("object"),properties:_.optional(_.object({}).passthrough()),required:_.optional(_.array(_.string()))}).passthrough()),annotations:_.optional(F2),_meta:_.optional(_.object({}).passthrough())}).merge(Si),U2=pc.extend({method:_.literal("tools/list")}),$p=dc.extend({tools:_.array(L2)}),fc=pr.extend({content:_.array(kx).default([]),structuredContent:_.object({}).passthrough().optional(),isError:_.optional(_.boolean())}),GF=fc.or(pr.extend({toolResult:_.unknown()})),z2=Lt.extend({method:_.literal("tools/call"),params:ur.extend({name:_.string(),arguments:_.optional(_.record(_.unknown()))})}),H2=Fr.extend({method:_.literal("notifications/tools/list_changed")}),Ox=_.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),B2=Lt.extend({method:_.literal("logging/setLevel"),params:ur.extend({level:Ox})}),V2=Fr.extend({method:_.literal("notifications/message"),params:wi.extend({level:Ox,logger:_.optional(_.string()),data:_.unknown()})}),G2=_.object({name:_.string().optional()}).passthrough(),Z2=_.object({hints:_.optional(_.array(G2)),costPriority:_.optional(_.number().min(0).max(1)),speedPriority:_.optional(_.number().min(0).max(1)),intelligencePriority:_.optional(_.number().min(0).max(1))}).passthrough(),W2=_.object({role:_.enum(["user","assistant"]),content:_.union([Ap,jp,Np])}).passthrough(),K2=Lt.extend({method:_.literal("sampling/createMessage"),params:ur.extend({messages:_.array(W2),systemPrompt:_.optional(_.string()),includeContext:_.optional(_.enum(["none","thisServer","allServers"])),temperature:_.optional(_.number()),maxTokens:_.number().int(),stopSequences:_.optional(_.array(_.string())),metadata:_.optional(_.object({}).passthrough()),modelPreferences:_.optional(Z2)})}),Q2=pr.extend({model:_.string(),stopReason:_.optional(_.enum(["endTurn","stopSequence","maxTokens"]).or(_.string())),role:_.enum(["user","assistant"]),content:_.discriminatedUnion("type",[Ap,jp,Np])}),X2=_.object({type:_.literal("boolean"),title:_.optional(_.string()),description:_.optional(_.string()),default:_.optional(_.boolean())}).passthrough(),J2=_.object({type:_.literal("string"),title:_.optional(_.string()),description:_.optional(_.string()),minLength:_.optional(_.number()),maxLength:_.optional(_.number()),format:_.optional(_.enum(["email","uri","date","date-time"]))}).passthrough(),Y2=_.object({type:_.enum(["number","integer"]),title:_.optional(_.string()),description:_.optional(_.string()),minimum:_.optional(_.number()),maximum:_.optional(_.number())}).passthrough(),e8=_.object({type:_.literal("string"),title:_.optional(_.string()),description:_.optional(_.string()),enum:_.array(_.string()),enumNames:_.optional(_.array(_.string()))}).passthrough(),t8=_.union([X2,J2,Y2,e8]),r8=Lt.extend({method:_.literal("elicitation/create"),params:ur.extend({message:_.string(),requestedSchema:_.object({type:_.literal("object"),properties:_.record(_.string(),t8),required:_.optional(_.array(_.string()))}).passthrough()})}),a8=pr.extend({action:_.enum(["accept","decline","cancel"]),content:_.optional(_.record(_.string(),_.unknown()))}),s8=_.object({type:_.literal("ref/resource"),uri:_.string()}).passthrough();var n8=_.object({type:_.literal("ref/prompt"),name:_.string()}).passthrough(),i8=Lt.extend({method:_.literal("completion/complete"),params:ur.extend({ref:_.union([n8,s8]),argument:_.object({name:_.string(),value:_.string()}).passthrough(),context:_.optional(_.object({arguments:_.optional(_.record(_.string(),_.string()))}))})}),qp=pr.extend({completion:_.object({values:_.array(_.string()).max(100),total:_.optional(_.number().int()),hasMore:_.optional(_.boolean())}).passthrough()}),o8=_.object({uri:_.string().startsWith("file://"),name:_.optional(_.string()),_meta:_.optional(_.object({}).passthrough())}).passthrough(),c8=Lt.extend({method:_.literal("roots/list")}),l8=pr.extend({roots:_.array(o8)}),u8=Fr.extend({method:_.literal("notifications/roots/list_changed")}),ZF=_.union([lc,b2,i8,B2,N2,j2,S2,P2,R2,k2,O2,z2,U2]),WF=_.union([cc,uc,_2,u8]),KF=_.union([ds,Q2,a8,l8]),QF=_.union([lc,K2,r8,c8]),XF=_.union([cc,uc,V2,C2,T2,H2,M2]),JF=_.union([ds,Rp,qp,Dp,Ip,kp,Op,Cp,fc,$p]),lr=class extends Error{constructor(e,a,t){super(`MCP error ${e}: ${a}`),this.code=e,this.data=t,this.name="McpError"}};var p8=6e4,mc=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this.setNotificationHandler(cc,a=>{let t=this._requestHandlerAbortControllers.get(a.params.requestId);t?.abort(a.params.reason)}),this.setNotificationHandler(uc,a=>{this._onprogress(a)}),this.setRequestHandler(lc,a=>({}))}_setupTimeout(e,a,t,s,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(s,a),startTime:Date.now(),timeout:a,maxTotalTimeout:t,resetTimeoutOnProgress:i,onTimeout:s})}_resetTimeout(e){let a=this._timeoutInfo.get(e);if(!a)return!1;let t=Date.now()-a.startTime;if(a.maxTotalTimeout&&t>=a.maxTotalTimeout)throw this._timeoutInfo.delete(e),new lr(cr.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:a.maxTotalTimeout,totalElapsed:t});return clearTimeout(a.timeoutId),a.timeoutId=setTimeout(a.onTimeout,a.timeout),!0}_cleanupTimeout(e){let a=this._timeoutInfo.get(e);a&&(clearTimeout(a.timeoutId),this._timeoutInfo.delete(e))}async connect(e){var a,t,s;this._transport=e;let i=(a=this.transport)===null||a===void 0?void 0:a.onclose;this._transport.onclose=()=>{i?.(),this._onclose()};let n=(t=this.transport)===null||t===void 0?void 0:t.onerror;this._transport.onerror=l=>{n?.(l),this._onerror(l)};let o=(s=this._transport)===null||s===void 0?void 0:s.onmessage;this._transport.onmessage=(l,c)=>{o?.(l,c),Pp(l)||_x(l)?this._onresponse(l):vx(l)?this._onrequest(l,c):yx(l)?this._onnotification(l):this._onerror(new Error(`Unknown message type: ${JSON.stringify(l)}`))},await this._transport.start()}_onclose(){var e;let a=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._pendingDebouncedNotifications.clear(),this._transport=void 0,(e=this.onclose)===null||e===void 0||e.call(this);let t=new lr(cr.ConnectionClosed,"Connection closed");for(let s of a.values())s(t)}_onerror(e){var a;(a=this.onerror)===null||a===void 0||a.call(this,e)}_onnotification(e){var a;let t=(a=this._notificationHandlers.get(e.method))!==null&&a!==void 0?a:this.fallbackNotificationHandler;t!==void 0&&Promise.resolve().then(()=>t(e)).catch(s=>this._onerror(new Error(`Uncaught error in notification handler: ${s}`)))}_onrequest(e,a){var t,s;let i=(t=this._requestHandlers.get(e.method))!==null&&t!==void 0?t:this.fallbackRequestHandler,n=this._transport;if(i===void 0){n?.send({jsonrpc:"2.0",id:e.id,error:{code:cr.MethodNotFound,message:"Method not found"}}).catch(c=>this._onerror(new Error(`Failed to send an error response: ${c}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(e.id,o);let l={signal:o.signal,sessionId:n?.sessionId,_meta:(s=e.params)===null||s===void 0?void 0:s._meta,sendNotification:c=>this.notification(c,{relatedRequestId:e.id}),sendRequest:(c,u,p)=>this.request(c,u,{...p,relatedRequestId:e.id}),authInfo:a?.authInfo,requestId:e.id,requestInfo:a?.requestInfo};Promise.resolve().then(()=>i(e,l)).then(c=>{if(!o.signal.aborted)return n?.send({result:c,jsonrpc:"2.0",id:e.id})},c=>{var u;if(!o.signal.aborted)return n?.send({jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(c.code)?c.code:cr.InternalError,message:(u=c.message)!==null&&u!==void 0?u:"Internal error"}})}).catch(c=>this._onerror(new Error(`Failed to send response: ${c}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:a,...t}=e.params,s=Number(a),i=this._progressHandlers.get(s);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let n=this._responseHandlers.get(s),o=this._timeoutInfo.get(s);if(o&&n&&o.resetTimeoutOnProgress)try{this._resetTimeout(s)}catch(l){n(l);return}i(t)}_onresponse(e){let a=Number(e.id),t=this._responseHandlers.get(a);if(t===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}if(this._responseHandlers.delete(a),this._progressHandlers.delete(a),this._cleanupTimeout(a),Pp(e))t(e);else{let s=new lr(e.error.code,e.error.message,e.error.data);t(s)}}get transport(){return this._transport}async close(){var e;await((e=this._transport)===null||e===void 0?void 0:e.close())}request(e,a,t){let{relatedRequestId:s,resumptionToken:i,onresumptiontoken:n}=t??{};return new Promise((o,l)=>{var c,u,p,m,f,h;if(!this._transport){l(new Error("Not connected"));return}((c=this._options)===null||c===void 0?void 0:c.enforceStrictCapabilities)===!0&&this.assertCapabilityForMethod(e.method),(u=t?.signal)===null||u===void 0||u.throwIfAborted();let d=this._requestMessageId++,v={...e,jsonrpc:"2.0",id:d};t?.onprogress&&(this._progressHandlers.set(d,t.onprogress),v.params={...e.params,_meta:{...((p=e.params)===null||p===void 0?void 0:p._meta)||{},progressToken:d}});let x=k=>{var O;this._responseHandlers.delete(d),this._progressHandlers.delete(d),this._cleanupTimeout(d),(O=this._transport)===null||O===void 0||O.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:d,reason:String(k)}},{relatedRequestId:s,resumptionToken:i,onresumptiontoken:n}).catch(P=>this._onerror(new Error(`Failed to send cancellation: ${P}`))),l(k)};this._responseHandlers.set(d,k=>{var O;if(!(!((O=t?.signal)===null||O===void 0)&&O.aborted)){if(k instanceof Error)return l(k);try{let P=a.parse(k.result);o(P)}catch(P){l(P)}}}),(m=t?.signal)===null||m===void 0||m.addEventListener("abort",()=>{var k;x((k=t?.signal)===null||k===void 0?void 0:k.reason)});let b=(f=t?.timeout)!==null&&f!==void 0?f:p8,E=()=>x(new lr(cr.RequestTimeout,"Request timed out",{timeout:b}));this._setupTimeout(d,b,t?.maxTotalTimeout,E,(h=t?.resetTimeoutOnProgress)!==null&&h!==void 0?h:!1),this._transport.send(v,{relatedRequestId:s,resumptionToken:i,onresumptiontoken:n}).catch(k=>{this._cleanupTimeout(d),l(k)})})}async notification(e,a){var t,s;if(!this._transport)throw new Error("Not connected");if(this.assertNotificationCapability(e.method),((s=(t=this._options)===null||t===void 0?void 0:t.debouncedNotificationMethods)!==null&&s!==void 0?s:[]).includes(e.method)&&!e.params&&!a?.relatedRequestId){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{var l;if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let c={...e,jsonrpc:"2.0"};(l=this._transport)===null||l===void 0||l.send(c,a).catch(u=>this._onerror(u))});return}let o={...e,jsonrpc:"2.0"};await this._transport.send(o,a)}setRequestHandler(e,a){let t=e.shape.method.value;this.assertRequestHandlerCapability(t),this._requestHandlers.set(t,(s,i)=>Promise.resolve(a(e.parse(s),i)))}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,a){this._notificationHandlers.set(e.shape.method.value,t=>Promise.resolve(a(e.parse(t))))}removeNotificationHandler(e){this._notificationHandlers.delete(e)}};function Cx(r,e){return Object.entries(e).reduce((a,[t,s])=>(s&&typeof s=="object"?a[t]=a[t]?{...a[t],...s}:s:a[t]=s,a),{...r})}var A_=jt(I_(),1),gn=class extends mc{constructor(e,a){var t;super(a),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._capabilities=(t=a?.capabilities)!==null&&t!==void 0?t:{},this._ajv=new A_.default}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Cx(this._capabilities,e)}assertCapability(e,a){var t;if(!(!((t=this._serverCapabilities)===null||t===void 0)&&t[e]))throw new Error(`Server does not support ${e} (required for ${a})`)}async connect(e,a){if(await super.connect(e),e.sessionId===void 0)try{let t=await this.request({method:"initialize",params:{protocolVersion:Sp,capabilities:this._capabilities,clientInfo:this._clientInfo}},Rp,a);if(t===void 0)throw new Error(`Server sent invalid initialize result: ${t}`);if(!dx.includes(t.protocolVersion))throw new Error(`Server's protocol version is not supported: ${t.protocolVersion}`);this._serverCapabilities=t.capabilities,this._serverVersion=t.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(t.protocolVersion),this._instructions=t.instructions,await this.notification({method:"notifications/initialized"})}catch(t){throw this.close(),t}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){var a,t,s,i,n;switch(e){case"logging/setLevel":if(!(!((a=this._serverCapabilities)===null||a===void 0)&&a.logging))throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!(!((t=this._serverCapabilities)===null||t===void 0)&&t.prompts))throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!(!((s=this._serverCapabilities)===null||s===void 0)&&s.resources))throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!(!((i=this._serverCapabilities)===null||i===void 0)&&i.tools))throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!(!((n=this._serverCapabilities)===null||n===void 0)&&n.completions))throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){var a;switch(e){case"notifications/roots/list_changed":if(!(!((a=this._capabilities.roots)===null||a===void 0)&&a.listChanged))throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"ping":break}}async ping(e){return this.request({method:"ping"},ds,e)}async complete(e,a){return this.request({method:"completion/complete",params:e},qp,a)}async setLoggingLevel(e,a){return this.request({method:"logging/setLevel",params:{level:e}},ds,a)}async getPrompt(e,a){return this.request({method:"prompts/get",params:e},Dp,a)}async listPrompts(e,a){return this.request({method:"prompts/list",params:e},Ip,a)}async listResources(e,a){return this.request({method:"resources/list",params:e},kp,a)}async listResourceTemplates(e,a){return this.request({method:"resources/templates/list",params:e},Op,a)}async readResource(e,a){return this.request({method:"resources/read",params:e},Cp,a)}async subscribeResource(e,a){return this.request({method:"resources/subscribe",params:e},ds,a)}async unsubscribeResource(e,a){return this.request({method:"resources/unsubscribe",params:e},ds,a)}async callTool(e,a=fc,t){let s=await this.request({method:"tools/call",params:e},a,t),i=this.getToolOutputValidator(e.name);if(i){if(!s.structuredContent&&!s.isError)throw new lr(cr.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(s.structuredContent)try{if(!i(s.structuredContent))throw new lr(cr.InvalidParams,`Structured content does not match the tool's output schema: ${this._ajv.errorsText(i.errors)}`)}catch(n){throw n instanceof lr?n:new lr(cr.InvalidParams,`Failed to validate structured content: ${n instanceof Error?n.message:String(n)}`)}}return s}cacheToolOutputSchemas(e){this._cachedToolOutputValidators.clear();for(let a of e)if(a.outputSchema)try{let t=this._ajv.compile(a.outputSchema);this._cachedToolOutputValidators.set(a.name,t)}catch{}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,a){let t=await this.request({method:"tools/list",params:e},$p,a);return this.cacheToolOutputSchemas(t.tools),t}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var EE=jt(xE(),1),Ti=jt(require("node:process"),1),wE=require("node:stream");var Nc=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(` +`);if(e===-1)return null;let a=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),vj(a)}clear(){this._buffer=void 0}};function vj(r){return Ex.parse(JSON.parse(r))}function _E(r){return JSON.stringify(r)+` +`}var gj=Ti.default.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function yj(){let r={};for(let e of gj){let a=Ti.default.env[e];a!==void 0&&(a.startsWith("()")||(r[e]=a))}return r}var xn=class{constructor(e){this._abortController=new AbortController,this._readBuffer=new Nc,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new wE.PassThrough)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,a)=>{var t,s,i,n,o;this._process=(0,EE.default)(this._serverParams.command,(t=this._serverParams.args)!==null&&t!==void 0?t:[],{env:{...yj(),...this._serverParams.env},stdio:["pipe","pipe",(s=this._serverParams.stderr)!==null&&s!==void 0?s:"inherit"],shell:!1,signal:this._abortController.signal,windowsHide:Ti.default.platform==="win32"&&bj(),cwd:this._serverParams.cwd}),this._process.on("error",l=>{var c,u;if(l.name==="AbortError"){(c=this.onclose)===null||c===void 0||c.call(this);return}a(l),(u=this.onerror)===null||u===void 0||u.call(this,l)}),this._process.on("spawn",()=>{e()}),this._process.on("close",l=>{var c;this._process=void 0,(c=this.onclose)===null||c===void 0||c.call(this)}),(i=this._process.stdin)===null||i===void 0||i.on("error",l=>{var c;(c=this.onerror)===null||c===void 0||c.call(this,l)}),(n=this._process.stdout)===null||n===void 0||n.on("data",l=>{this._readBuffer.append(l),this.processReadBuffer()}),(o=this._process.stdout)===null||o===void 0||o.on("error",l=>{var c;(c=this.onerror)===null||c===void 0||c.call(this,l)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){var e,a;return this._stderrStream?this._stderrStream:(a=(e=this._process)===null||e===void 0?void 0:e.stderr)!==null&&a!==void 0?a:null}get pid(){var e,a;return(a=(e=this._process)===null||e===void 0?void 0:e.pid)!==null&&a!==void 0?a:null}processReadBuffer(){for(var e,a;;)try{let t=this._readBuffer.readMessage();if(t===null)break;(e=this.onmessage)===null||e===void 0||e.call(this,t)}catch(t){(a=this.onerror)===null||a===void 0||a.call(this,t)}}async close(){this._abortController.abort(),this._process=void 0,this._readBuffer.clear()}send(e){return new Promise(a=>{var t;if(!(!((t=this._process)===null||t===void 0)&&t.stdin))throw new Error("Not connected");let s=_E(e);this._process.stdin.write(s)?a():this._process.stdin.once("drain",a)})}};function bj(){return"type"in Ti.default}var SE=jt(require("better-sqlite3"),1);var _n=class{db;constructor(){Jo(wr),this.db=new SE.default(Xo),this.db.pragma("journal_mode = WAL"),this.db.pragma("synchronous = NORMAL"),this.db.pragma("foreign_keys = ON"),this.initializeSchema(),this.ensureWorkerPortColumn(),this.ensurePromptTrackingColumns(),this.removeSessionSummariesUniqueConstraint(),this.addObservationHierarchicalFields(),this.makeObservationsTextNullable(),this.createUserPromptsTable(),this.ensureDiscoveryTokensColumn()}initializeSchema(){try{this.db.exec(` CREATE TABLE IF NOT EXISTS schema_versions ( id INTEGER PRIMARY KEY, version INTEGER UNIQUE NOT NULL, @@ -449,7 +449,7 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let a=Obje JOIN sdk_sessions s ON up.claude_session_id = s.claude_session_id WHERE up.created_at_epoch >= ? AND up.created_at_epoch <= ? ${n.replace("project","s.project")} ORDER BY up.created_at_epoch ASC - `;try{let f=this.db.prepare(u).all(l,c,...o),h=this.db.prepare(p).all(l,c,...o),d=this.db.prepare(m).all(l,c,...o);return{observations:f,sessions:h.map(v=>({id:v.id,sdk_session_id:v.sdk_session_id,project:v.project,request:v.request,completed:v.completed,next_steps:v.next_steps,created_at:v.created_at,created_at_epoch:v.created_at_epoch})),prompts:d.map(v=>({id:v.id,claude_session_id:v.claude_session_id,project:v.project,prompt:v.prompt_text,created_at:v.created_at,created_at_epoch:v.created_at_epoch}))}}catch(f){return console.error("[SessionStore] Error querying timeline records:",f.message),{observations:[],sessions:[],prompts:[]}}}close(){this.db.close()}};var P1=jt(require("better-sqlite3"),1);var Dc=class{db;constructor(e){e||(Jo(wr),e=Xo),this.db=new P1.default(e),this.db.pragma("journal_mode = WAL"),this.ensureFTSTables()}ensureFTSTables(){try{if(this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%_fts'").all().some(t=>t.name==="observations_fts"||t.name==="session_summaries_fts"))return;console.error("[SessionSearch] Creating FTS5 tables..."),this.db.exec(` + `;try{let f=this.db.prepare(u).all(l,c,...o),h=this.db.prepare(p).all(l,c,...o),d=this.db.prepare(m).all(l,c,...o);return{observations:f,sessions:h.map(v=>({id:v.id,sdk_session_id:v.sdk_session_id,project:v.project,request:v.request,completed:v.completed,next_steps:v.next_steps,created_at:v.created_at,created_at_epoch:v.created_at_epoch})),prompts:d.map(v=>({id:v.id,claude_session_id:v.claude_session_id,project:v.project,prompt:v.prompt_text,created_at:v.created_at,created_at_epoch:v.created_at_epoch}))}}catch(f){return console.error("[SessionStore] Error querying timeline records:",f.message),{observations:[],sessions:[],prompts:[]}}}close(){this.db.close()}};var PE=jt(require("better-sqlite3"),1);var Dc=class{db;constructor(e){e||(Jo(wr),e=Xo),this.db=new PE.default(e),this.db.pragma("journal_mode = WAL"),this.ensureFTSTables()}ensureFTSTables(){try{if(this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%_fts'").all().some(t=>t.name==="observations_fts"||t.name==="session_summaries_fts"))return;console.error("[SessionSearch] Creating FTS5 tables..."),this.db.exec(` CREATE VIRTUAL TABLE IF NOT EXISTS observations_fts USING fts5( title, subtitle, @@ -513,32 +513,22 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let a=Obje INSERT INTO session_summaries_fts(rowid, request, investigated, learned, completed, next_steps, notes) VALUES (new.id, new.request, new.investigated, new.learned, new.completed, new.next_steps, new.notes); END; - `),console.error("[SessionSearch] FTS5 tables created successfully")}catch(e){console.error("[SessionSearch] FTS migration error:",e.message)}}escapeFTS5(e){return`"${e.replace(/"/g,'""')}"`}buildFilterClause(e,a,t="o"){let s=[];if(e.project&&(s.push(`${t}.project = ?`),a.push(e.project)),e.type)if(Array.isArray(e.type)){let i=e.type.map(()=>"?").join(",");s.push(`${t}.type IN (${i})`),a.push(...e.type)}else s.push(`${t}.type = ?`),a.push(e.type);if(e.dateRange){let{start:i,end:n}=e.dateRange;if(i){let o=typeof i=="number"?i:new Date(i).getTime();s.push(`${t}.created_at_epoch >= ?`),a.push(o)}if(n){let o=typeof n=="number"?n:new Date(n).getTime();s.push(`${t}.created_at_epoch <= ?`),a.push(o)}}if(e.concepts){let i=Array.isArray(e.concepts)?e.concepts:[e.concepts],n=i.map(()=>`EXISTS (SELECT 1 FROM json_each(${t}.concepts) WHERE value = ?)`);n.length>0&&(s.push(`(${n.join(" OR ")})`),a.push(...i))}if(e.files){let i=Array.isArray(e.files)?e.files:[e.files],n=i.map(()=>`( + `),console.error("[SessionSearch] FTS5 tables created successfully")}catch(e){console.error("[SessionSearch] FTS migration error:",e.message)}}buildFilterClause(e,a,t="o"){let s=[];if(e.project&&(s.push(`${t}.project = ?`),a.push(e.project)),e.type)if(Array.isArray(e.type)){let i=e.type.map(()=>"?").join(",");s.push(`${t}.type IN (${i})`),a.push(...e.type)}else s.push(`${t}.type = ?`),a.push(e.type);if(e.dateRange){let{start:i,end:n}=e.dateRange;if(i){let o=typeof i=="number"?i:new Date(i).getTime();s.push(`${t}.created_at_epoch >= ?`),a.push(o)}if(n){let o=typeof n=="number"?n:new Date(n).getTime();s.push(`${t}.created_at_epoch <= ?`),a.push(o)}}if(e.concepts){let i=Array.isArray(e.concepts)?e.concepts:[e.concepts],n=i.map(()=>`EXISTS (SELECT 1 FROM json_each(${t}.concepts) WHERE value = ?)`);n.length>0&&(s.push(`(${n.join(" OR ")})`),a.push(...i))}if(e.files){let i=Array.isArray(e.files)?e.files:[e.files],n=i.map(()=>`( EXISTS (SELECT 1 FROM json_each(${t}.files_read) WHERE value LIKE ?) OR EXISTS (SELECT 1 FROM json_each(${t}.files_modified) WHERE value LIKE ?) - )`);n.length>0&&(s.push(`(${n.join(" OR ")})`),i.forEach(o=>{a.push(`%${o}%`,`%${o}%`)}))}return s.length>0?s.join(" AND "):""}buildOrderClause(e="relevance",a=!0,t="observations_fts"){switch(e){case"relevance":return a?`ORDER BY ${t}.rank ASC`:"ORDER BY o.created_at_epoch DESC";case"date_desc":return"ORDER BY o.created_at_epoch DESC";case"date_asc":return"ORDER BY o.created_at_epoch ASC";default:return"ORDER BY o.created_at_epoch DESC"}}searchObservations(e,a={}){let t=[],{limit:s=50,offset:i=0,orderBy:n="relevance",...o}=a,l=this.escapeFTS5(e);t.push(l);let c=this.buildFilterClause(o,t,"o"),u=c?`AND ${c}`:"",p=this.buildOrderClause(n,!0),m=` - SELECT - o.*, - o.discovery_tokens, - observations_fts.rank as rank - FROM observations o - JOIN observations_fts ON o.id = observations_fts.rowid - WHERE observations_fts MATCH ? - ${u} - ${p} - LIMIT ? OFFSET ? - `;t.push(s,i);let f=this.db.prepare(m).all(...t);if(f.length>0){let h=Math.min(...f.map(g=>g.rank||0)),v=Math.max(...f.map(g=>g.rank||0))-h||1;f.forEach(g=>{g.rank!==void 0&&(g.score=1-(g.rank-h)/v)})}return f}searchSessions(e,a={}){let t=[],{limit:s=50,offset:i=0,orderBy:n="relevance",...o}=a,l=this.escapeFTS5(e);t.push(l);let c={...o};delete c.type;let u=this.buildFilterClause(c,t,"s"),h=` - SELECT - s.*, - s.discovery_tokens, - session_summaries_fts.rank as rank - FROM session_summaries s - JOIN session_summaries_fts ON s.id = session_summaries_fts.rowid - WHERE session_summaries_fts MATCH ? - ${(u?`AND ${u}`:"").replace(/files_read/g,"files_read").replace(/files_modified/g,"files_edited")} - ${n==="relevance"?"ORDER BY session_summaries_fts.rank ASC":n==="date_asc"?"ORDER BY s.created_at_epoch ASC":"ORDER BY s.created_at_epoch DESC"} - LIMIT ? OFFSET ? - `;t.push(s,i);let d=this.db.prepare(h).all(...t);if(d.length>0){let v=Math.min(...d.map(E=>E.rank||0)),b=Math.max(...d.map(E=>E.rank||0))-v||1;d.forEach(E=>{E.rank!==void 0&&(E.score=1-(E.rank-v)/b)})}return d}findByConcept(e,a={}){let t=[],{limit:s=50,offset:i=0,orderBy:n="date_desc",...o}=a,l={...o,concepts:e},c=this.buildFilterClause(l,t,"o"),u=this.buildOrderClause(n,!1),p=` + )`);n.length>0&&(s.push(`(${n.join(" OR ")})`),i.forEach(o=>{a.push(`%${o}%`,`%${o}%`)}))}return s.length>0?s.join(" AND "):""}buildOrderClause(e="relevance",a=!0,t="observations_fts"){switch(e){case"relevance":return a?`ORDER BY ${t}.rank ASC`:"ORDER BY o.created_at_epoch DESC";case"date_desc":return"ORDER BY o.created_at_epoch DESC";case"date_asc":return"ORDER BY o.created_at_epoch ASC";default:return"ORDER BY o.created_at_epoch DESC"}}searchObservations(e,a={}){let t=[],{limit:s=50,offset:i=0,orderBy:n="relevance",...o}=a;if(!e){let l=this.buildFilterClause(o,t,"o");if(!l)throw new Error("Either query or filters required for search");let c=this.buildOrderClause(n,!1),u=` + SELECT o.*, o.discovery_tokens + FROM observations o + WHERE ${l} + ${c} + LIMIT ? OFFSET ? + `;return t.push(s,i),this.db.prepare(u).all(...t)}return console.warn("[SessionSearch] Text search not supported - use ChromaDB for vector search"),[]}searchSessions(e,a={}){let t=[],{limit:s=50,offset:i=0,orderBy:n="relevance",...o}=a;if(!e){let l={...o};delete l.type;let c=this.buildFilterClause(l,t,"s");if(!c)throw new Error("Either query or filters required for search");let p=` + SELECT s.*, s.discovery_tokens + FROM session_summaries s + WHERE ${c} + ${n==="date_asc"?"ORDER BY s.created_at_epoch ASC":"ORDER BY s.created_at_epoch DESC"} + LIMIT ? OFFSET ? + `;return t.push(s,i),this.db.prepare(p).all(...t)}return console.warn("[SessionSearch] Text search not supported - use ChromaDB for vector search"),[]}findByConcept(e,a={}){let t=[],{limit:s=50,offset:i=0,orderBy:n="date_desc",...o}=a,l={...o,concepts:e},c=this.buildFilterClause(l,t,"o"),u=this.buildOrderClause(n,!1),p=` SELECT o.*, o.discovery_tokens FROM observations o WHERE ${c} @@ -559,24 +549,20 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let a=Obje WHERE ${d.join(" AND ")} ORDER BY s.created_at_epoch DESC LIMIT ? OFFSET ? - `;f.push(s,i);let g=this.db.prepare(v).all(...f);return{observations:m,sessions:g}}findByType(e,a={}){let t=[],{limit:s=50,offset:i=0,orderBy:n="date_desc",...o}=a,l={...o,type:e},c=this.buildFilterClause(l,t,"o"),u=this.buildOrderClause(n,!1),p=` + `;f.push(s,i);let x=this.db.prepare(v).all(...f);return{observations:m,sessions:x}}findByType(e,a={}){let t=[],{limit:s=50,offset:i=0,orderBy:n="date_desc",...o}=a,l={...o,type:e},c=this.buildFilterClause(l,t,"o"),u=this.buildOrderClause(n,!1),p=` SELECT o.*, o.discovery_tokens FROM observations o WHERE ${c} ${u} LIMIT ? OFFSET ? - `;return t.push(s,i),this.db.prepare(p).all(...t)}searchUserPrompts(e,a={}){let t=[],{limit:s=20,offset:i=0,orderBy:n="relevance",...o}=a,l=this.escapeFTS5(e);t.push(l);let c=[];if(o.project&&(c.push("s.project = ?"),t.push(o.project)),o.dateRange){let{start:h,end:d}=o.dateRange;if(h){let v=typeof h=="number"?h:new Date(h).getTime();c.push("up.created_at_epoch >= ?"),t.push(v)}if(d){let v=typeof d=="number"?d:new Date(d).getTime();c.push("up.created_at_epoch <= ?"),t.push(v)}}let m=` - SELECT - up.*, - user_prompts_fts.rank as rank - FROM user_prompts up - JOIN user_prompts_fts ON up.id = user_prompts_fts.rowid - JOIN sdk_sessions s ON up.claude_session_id = s.claude_session_id - WHERE user_prompts_fts MATCH ? - ${c.length>0?`AND ${c.join(" AND ")}`:""} - ${n==="relevance"?"ORDER BY user_prompts_fts.rank ASC":n==="date_asc"?"ORDER BY up.created_at_epoch ASC":"ORDER BY up.created_at_epoch DESC"} - LIMIT ? OFFSET ? - `;t.push(s,i);let f=this.db.prepare(m).all(...t);if(f.length>0){let h=Math.min(...f.map(g=>g.rank||0)),v=Math.max(...f.map(g=>g.rank||0))-h||1;f.forEach(g=>{g.rank!==void 0&&(g.score=1-(g.rank-h)/v)})}return f}getUserPromptsBySession(e){return this.db.prepare(` + `;return t.push(s,i),this.db.prepare(p).all(...t)}searchUserPrompts(e,a={}){let t=[],{limit:s=20,offset:i=0,orderBy:n="relevance",...o}=a,l=[];if(o.project&&(l.push("s.project = ?"),t.push(o.project)),o.dateRange){let{start:c,end:u}=o.dateRange;if(c){let p=typeof c=="number"?c:new Date(c).getTime();l.push("up.created_at_epoch >= ?"),t.push(p)}if(u){let p=typeof u=="number"?u:new Date(u).getTime();l.push("up.created_at_epoch <= ?"),t.push(p)}}if(!e){if(l.length===0)throw new Error("Either query or filters required for search");let p=` + SELECT up.* + FROM user_prompts up + JOIN sdk_sessions s ON up.claude_session_id = s.claude_session_id + ${`WHERE ${l.join(" AND ")}`} + ${n==="date_asc"?"ORDER BY up.created_at_epoch ASC":"ORDER BY up.created_at_epoch DESC"} + LIMIT ? OFFSET ? + `;return t.push(s,i),this.db.prepare(p).all(...t)}return console.warn("[SessionSearch] Text search not supported - use ChromaDB for vector search"),[]}getUserPromptsBySession(e){return this.db.prepare(` SELECT id, claude_session_id, @@ -587,7 +573,7 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let a=Obje FROM user_prompts WHERE claude_session_id = ? ORDER BY prompt_number ASC - `).all(e)}close(){this.db.close()}};var R1=jt(require("path"),1),T1=jt(require("os"),1),$c=class{client=null;connected=!1;project;collectionName;VECTOR_DB_DIR;BATCH_SIZE=100;constructor(e){this.project=e,this.collectionName=`cm__${e}`,this.VECTOR_DB_DIR=R1.default.join(T1.default.homedir(),".claude-mem","vector-db")}async ensureConnection(){if(!(this.connected&&this.client)){H.info("CHROMA_SYNC","Connecting to Chroma MCP server...",{project:this.project});try{let e=new xn({command:"uvx",args:["chroma-mcp","--client-type","persistent","--data-dir",this.VECTOR_DB_DIR],stderr:"ignore"});this.client=new gn({name:"claude-mem-chroma-sync",version:"1.0.0"},{capabilities:{}}),await this.client.connect(e),this.connected=!0,H.info("CHROMA_SYNC","Connected to Chroma MCP server",{project:this.project})}catch(e){throw H.error("CHROMA_SYNC","Failed to connect to Chroma MCP server",{project:this.project},e),new Error(`Chroma connection failed: ${e instanceof Error?e.message:String(e)}`)}}}async ensureCollection(){if(await this.ensureConnection(),!this.client)throw new Error("Chroma client not initialized");try{await this.client.callTool({name:"chroma_get_collection_info",arguments:{collection_name:this.collectionName}}),H.debug("CHROMA_SYNC","Collection exists",{collection:this.collectionName})}catch{H.info("CHROMA_SYNC","Creating collection",{collection:this.collectionName});try{await this.client.callTool({name:"chroma_create_collection",arguments:{collection_name:this.collectionName,embedding_function_name:"default"}}),H.info("CHROMA_SYNC","Collection created",{collection:this.collectionName})}catch(a){throw H.error("CHROMA_SYNC","Failed to create collection",{collection:this.collectionName},a),new Error(`Collection creation failed: ${a instanceof Error?a.message:String(a)}`)}}}formatObservationDocs(e){let a=[],t=e.facts?JSON.parse(e.facts):[],s=e.concepts?JSON.parse(e.concepts):[],i=e.files_read?JSON.parse(e.files_read):[],n=e.files_modified?JSON.parse(e.files_modified):[],o={sqlite_id:e.id,doc_type:"observation",sdk_session_id:e.sdk_session_id,project:e.project,created_at_epoch:e.created_at_epoch,type:e.type||"discovery",title:e.title||"Untitled"};return e.subtitle&&(o.subtitle=e.subtitle),s.length>0&&(o.concepts=s.join(",")),i.length>0&&(o.files_read=i.join(",")),n.length>0&&(o.files_modified=n.join(",")),e.narrative&&a.push({id:`obs_${e.id}_narrative`,document:e.narrative,metadata:{...o,field_type:"narrative"}}),e.text&&a.push({id:`obs_${e.id}_text`,document:e.text,metadata:{...o,field_type:"text"}}),t.forEach((l,c)=>{a.push({id:`obs_${e.id}_fact_${c}`,document:l,metadata:{...o,field_type:"fact",fact_index:c}})}),a}formatSummaryDocs(e){let a=[],t={sqlite_id:e.id,doc_type:"session_summary",sdk_session_id:e.sdk_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number||0};return e.request&&a.push({id:`summary_${e.id}_request`,document:e.request,metadata:{...t,field_type:"request"}}),e.investigated&&a.push({id:`summary_${e.id}_investigated`,document:e.investigated,metadata:{...t,field_type:"investigated"}}),e.learned&&a.push({id:`summary_${e.id}_learned`,document:e.learned,metadata:{...t,field_type:"learned"}}),e.completed&&a.push({id:`summary_${e.id}_completed`,document:e.completed,metadata:{...t,field_type:"completed"}}),e.next_steps&&a.push({id:`summary_${e.id}_next_steps`,document:e.next_steps,metadata:{...t,field_type:"next_steps"}}),e.notes&&a.push({id:`summary_${e.id}_notes`,document:e.notes,metadata:{...t,field_type:"notes"}}),a}async addDocuments(e){if(e.length!==0){if(await this.ensureCollection(),!this.client)throw new Error("Chroma client not initialized");try{await this.client.callTool({name:"chroma_add_documents",arguments:{collection_name:this.collectionName,documents:e.map(a=>a.document),ids:e.map(a=>a.id),metadatas:e.map(a=>a.metadata)}}),H.debug("CHROMA_SYNC","Documents added",{collection:this.collectionName,count:e.length})}catch(a){throw H.error("CHROMA_SYNC","Failed to add documents",{collection:this.collectionName,count:e.length},a),new Error(`Document add failed: ${a instanceof Error?a.message:String(a)}`)}}}async syncObservation(e,a,t,s,i,n,o=0){let l={id:e,sdk_session_id:a,project:t,text:null,type:s.type,title:s.title,subtitle:s.subtitle,facts:JSON.stringify(s.facts),narrative:s.narrative,concepts:JSON.stringify(s.concepts),files_read:JSON.stringify(s.files_read),files_modified:JSON.stringify(s.files_modified),prompt_number:i,discovery_tokens:o,created_at:new Date(n*1e3).toISOString(),created_at_epoch:n},c=this.formatObservationDocs(l);H.info("CHROMA_SYNC","Syncing observation",{observationId:e,documentCount:c.length,project:t}),await this.addDocuments(c)}async syncSummary(e,a,t,s,i,n,o=0){let l={id:e,sdk_session_id:a,project:t,request:s.request,investigated:s.investigated,learned:s.learned,completed:s.completed,next_steps:s.next_steps,notes:s.notes,prompt_number:i,discovery_tokens:o,created_at:new Date(n*1e3).toISOString(),created_at_epoch:n},c=this.formatSummaryDocs(l);H.info("CHROMA_SYNC","Syncing summary",{summaryId:e,documentCount:c.length,project:t}),await this.addDocuments(c)}formatUserPromptDoc(e){return{id:`prompt_${e.id}`,document:e.prompt_text,metadata:{sqlite_id:e.id,doc_type:"user_prompt",sdk_session_id:e.sdk_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number}}}async syncUserPrompt(e,a,t,s,i,n){let o={id:e,claude_session_id:"",prompt_number:i,prompt_text:s,created_at:new Date(n*1e3).toISOString(),created_at_epoch:n,sdk_session_id:a,project:t},l=this.formatUserPromptDoc(o);H.info("CHROMA_SYNC","Syncing user prompt",{promptId:e,project:t}),await this.addDocuments([l])}async getExistingChromaIds(){if(await this.ensureConnection(),!this.client)throw new Error("Chroma client not initialized");let e=new Set,a=new Set,t=new Set,s=0,i=1e3;for(H.info("CHROMA_SYNC","Fetching existing Chroma document IDs...",{project:this.project});;)try{let o=(await this.client.callTool({name:"chroma_get_documents",arguments:{collection_name:this.collectionName,limit:i,offset:s,where:{project:this.project},include:["metadatas"]}})).content[0];if(o.type!=="text")throw new Error("Unexpected response type from chroma_get_documents");let c=JSON.parse(o.text).metadatas||[];if(c.length===0)break;for(let u of c)u.sqlite_id&&(u.doc_type==="observation"?e.add(u.sqlite_id):u.doc_type==="session_summary"?a.add(u.sqlite_id):u.doc_type==="user_prompt"&&t.add(u.sqlite_id));s+=i,H.debug("CHROMA_SYNC","Fetched batch of existing IDs",{project:this.project,offset:s,batchSize:c.length})}catch(n){throw H.error("CHROMA_SYNC","Failed to fetch existing IDs",{project:this.project},n),n}return H.info("CHROMA_SYNC","Existing IDs fetched",{project:this.project,observations:e.size,summaries:a.size,prompts:t.size}),{observations:e,summaries:a,prompts:t}}async ensureBackfilled(){H.info("CHROMA_SYNC","Starting smart backfill",{project:this.project}),await this.ensureCollection();let e=await this.getExistingChromaIds(),a=new _n;try{let t=Array.from(e.observations),s=t.length>0?`AND id NOT IN (${t.join(",")})`:"",i=a.db.prepare(` + `).all(e)}close(){this.db.close()}};var RE=jt(require("path"),1),TE=jt(require("os"),1),$c=class{client=null;connected=!1;project;collectionName;VECTOR_DB_DIR;BATCH_SIZE=100;constructor(e){this.project=e,this.collectionName=`cm__${e}`,this.VECTOR_DB_DIR=RE.default.join(TE.default.homedir(),".claude-mem","vector-db")}async ensureConnection(){if(!(this.connected&&this.client)){H.info("CHROMA_SYNC","Connecting to Chroma MCP server...",{project:this.project});try{let e=new xn({command:"uvx",args:["chroma-mcp","--client-type","persistent","--data-dir",this.VECTOR_DB_DIR],stderr:"ignore"});this.client=new gn({name:"claude-mem-chroma-sync",version:"1.0.0"},{capabilities:{}}),await this.client.connect(e),this.connected=!0,H.info("CHROMA_SYNC","Connected to Chroma MCP server",{project:this.project})}catch(e){throw H.error("CHROMA_SYNC","Failed to connect to Chroma MCP server",{project:this.project},e),new Error(`Chroma connection failed: ${e instanceof Error?e.message:String(e)}`)}}}async ensureCollection(){if(await this.ensureConnection(),!this.client)throw new Error("Chroma client not initialized");try{await this.client.callTool({name:"chroma_get_collection_info",arguments:{collection_name:this.collectionName}}),H.debug("CHROMA_SYNC","Collection exists",{collection:this.collectionName})}catch{H.info("CHROMA_SYNC","Creating collection",{collection:this.collectionName});try{await this.client.callTool({name:"chroma_create_collection",arguments:{collection_name:this.collectionName,embedding_function_name:"default"}}),H.info("CHROMA_SYNC","Collection created",{collection:this.collectionName})}catch(a){throw H.error("CHROMA_SYNC","Failed to create collection",{collection:this.collectionName},a),new Error(`Collection creation failed: ${a instanceof Error?a.message:String(a)}`)}}}formatObservationDocs(e){let a=[],t=e.facts?JSON.parse(e.facts):[],s=e.concepts?JSON.parse(e.concepts):[],i=e.files_read?JSON.parse(e.files_read):[],n=e.files_modified?JSON.parse(e.files_modified):[],o={sqlite_id:e.id,doc_type:"observation",sdk_session_id:e.sdk_session_id,project:e.project,created_at_epoch:e.created_at_epoch,type:e.type||"discovery",title:e.title||"Untitled"};return e.subtitle&&(o.subtitle=e.subtitle),s.length>0&&(o.concepts=s.join(",")),i.length>0&&(o.files_read=i.join(",")),n.length>0&&(o.files_modified=n.join(",")),e.narrative&&a.push({id:`obs_${e.id}_narrative`,document:e.narrative,metadata:{...o,field_type:"narrative"}}),e.text&&a.push({id:`obs_${e.id}_text`,document:e.text,metadata:{...o,field_type:"text"}}),t.forEach((l,c)=>{a.push({id:`obs_${e.id}_fact_${c}`,document:l,metadata:{...o,field_type:"fact",fact_index:c}})}),a}formatSummaryDocs(e){let a=[],t={sqlite_id:e.id,doc_type:"session_summary",sdk_session_id:e.sdk_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number||0};return e.request&&a.push({id:`summary_${e.id}_request`,document:e.request,metadata:{...t,field_type:"request"}}),e.investigated&&a.push({id:`summary_${e.id}_investigated`,document:e.investigated,metadata:{...t,field_type:"investigated"}}),e.learned&&a.push({id:`summary_${e.id}_learned`,document:e.learned,metadata:{...t,field_type:"learned"}}),e.completed&&a.push({id:`summary_${e.id}_completed`,document:e.completed,metadata:{...t,field_type:"completed"}}),e.next_steps&&a.push({id:`summary_${e.id}_next_steps`,document:e.next_steps,metadata:{...t,field_type:"next_steps"}}),e.notes&&a.push({id:`summary_${e.id}_notes`,document:e.notes,metadata:{...t,field_type:"notes"}}),a}async addDocuments(e){if(e.length!==0){if(await this.ensureCollection(),!this.client)throw new Error("Chroma client not initialized");try{await this.client.callTool({name:"chroma_add_documents",arguments:{collection_name:this.collectionName,documents:e.map(a=>a.document),ids:e.map(a=>a.id),metadatas:e.map(a=>a.metadata)}}),H.debug("CHROMA_SYNC","Documents added",{collection:this.collectionName,count:e.length})}catch(a){throw H.error("CHROMA_SYNC","Failed to add documents",{collection:this.collectionName,count:e.length},a),new Error(`Document add failed: ${a instanceof Error?a.message:String(a)}`)}}}async syncObservation(e,a,t,s,i,n,o=0){let l={id:e,sdk_session_id:a,project:t,text:null,type:s.type,title:s.title,subtitle:s.subtitle,facts:JSON.stringify(s.facts),narrative:s.narrative,concepts:JSON.stringify(s.concepts),files_read:JSON.stringify(s.files_read),files_modified:JSON.stringify(s.files_modified),prompt_number:i,discovery_tokens:o,created_at:new Date(n*1e3).toISOString(),created_at_epoch:n},c=this.formatObservationDocs(l);H.info("CHROMA_SYNC","Syncing observation",{observationId:e,documentCount:c.length,project:t}),await this.addDocuments(c)}async syncSummary(e,a,t,s,i,n,o=0){let l={id:e,sdk_session_id:a,project:t,request:s.request,investigated:s.investigated,learned:s.learned,completed:s.completed,next_steps:s.next_steps,notes:s.notes,prompt_number:i,discovery_tokens:o,created_at:new Date(n*1e3).toISOString(),created_at_epoch:n},c=this.formatSummaryDocs(l);H.info("CHROMA_SYNC","Syncing summary",{summaryId:e,documentCount:c.length,project:t}),await this.addDocuments(c)}formatUserPromptDoc(e){return{id:`prompt_${e.id}`,document:e.prompt_text,metadata:{sqlite_id:e.id,doc_type:"user_prompt",sdk_session_id:e.sdk_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number}}}async syncUserPrompt(e,a,t,s,i,n){let o={id:e,claude_session_id:"",prompt_number:i,prompt_text:s,created_at:new Date(n*1e3).toISOString(),created_at_epoch:n,sdk_session_id:a,project:t},l=this.formatUserPromptDoc(o);H.info("CHROMA_SYNC","Syncing user prompt",{promptId:e,project:t}),await this.addDocuments([l])}async getExistingChromaIds(){if(await this.ensureConnection(),!this.client)throw new Error("Chroma client not initialized");let e=new Set,a=new Set,t=new Set,s=0,i=1e3;for(H.info("CHROMA_SYNC","Fetching existing Chroma document IDs...",{project:this.project});;)try{let o=(await this.client.callTool({name:"chroma_get_documents",arguments:{collection_name:this.collectionName,limit:i,offset:s,where:{project:this.project},include:["metadatas"]}})).content[0];if(o.type!=="text")throw new Error("Unexpected response type from chroma_get_documents");let c=JSON.parse(o.text).metadatas||[];if(c.length===0)break;for(let u of c)u.sqlite_id&&(u.doc_type==="observation"?e.add(u.sqlite_id):u.doc_type==="session_summary"?a.add(u.sqlite_id):u.doc_type==="user_prompt"&&t.add(u.sqlite_id));s+=i,H.debug("CHROMA_SYNC","Fetched batch of existing IDs",{project:this.project,offset:s,batchSize:c.length})}catch(n){throw H.error("CHROMA_SYNC","Failed to fetch existing IDs",{project:this.project},n),n}return H.info("CHROMA_SYNC","Existing IDs fetched",{project:this.project,observations:e.size,summaries:a.size,prompts:t.size}),{observations:e,summaries:a,prompts:t}}async ensureBackfilled(){H.info("CHROMA_SYNC","Starting smart backfill",{project:this.project}),await this.ensureCollection();let e=await this.getExistingChromaIds(),a=new _n;try{let t=Array.from(e.observations),s=t.length>0?`AND id NOT IN (${t.join(",")})`:"",i=a.db.prepare(` SELECT * FROM observations WHERE project = ? ${s} ORDER BY id ASC @@ -613,13 +599,13 @@ ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let a=Obje FROM user_prompts up JOIN sdk_sessions s ON up.claude_session_id = s.claude_session_id WHERE s.project = ? - `).get(this.project);H.info("CHROMA_SYNC","Backfilling user prompts",{project:this.project,missing:d.length,existing:e.prompts.size,total:v.count});let g=[];for(let b of d)g.push(this.formatUserPromptDoc(b));for(let b=0;b{H.error("DB","Chroma backfill failed (non-fatal)",{},e)}),H.info("DB","Database initialized")}async close(){if(this.chromaSync)try{await this.chromaSync.close(),this.chromaSync=null}catch(e){H.error("DB","Failed to close ChromaSync",{},e)}this.sessionStore&&(this.sessionStore.close(),this.sessionStore=null),this.sessionSearch&&(this.sessionSearch.close(),this.sessionSearch=null),H.info("DB","Database closed")}getSessionStore(){if(!this.sessionStore)throw new Error("Database not initialized");return this.sessionStore}getSessionSearch(){if(!this.sessionSearch)throw new Error("Database not initialized");return this.sessionSearch}getChromaSync(){if(!this.chromaSync)throw new Error("ChromaSync not initialized");return this.chromaSync}getSessionById(e){let a=this.getSessionStore().getSessionById(e);if(!a)throw new Error(`Session ${e} not found`);return a}markSessionComplete(e){this.getSessionStore().markSessionCompleted(e)}};var I1=require("events");var k1=require("fs"),O1=require("os"),C1=require("path"),xj=(0,C1.join)((0,O1.homedir)(),".claude-mem","silent.log");function Kt(r,e,a=""){let t=new Date().toISOString(),o=((new Error().stack||"").split(` + `).get(this.project);H.info("CHROMA_SYNC","Backfilling user prompts",{project:this.project,missing:d.length,existing:e.prompts.size,total:v.count});let x=[];for(let b of d)x.push(this.formatUserPromptDoc(b));for(let b=0;b{H.error("DB","Chroma backfill failed (non-fatal)",{},e)}),H.info("DB","Database initialized")}async close(){if(this.chromaSync)try{await this.chromaSync.close(),this.chromaSync=null}catch(e){H.error("DB","Failed to close ChromaSync",{},e)}this.sessionStore&&(this.sessionStore.close(),this.sessionStore=null),this.sessionSearch&&(this.sessionSearch.close(),this.sessionSearch=null),H.info("DB","Database closed")}getSessionStore(){if(!this.sessionStore)throw new Error("Database not initialized");return this.sessionStore}getSessionSearch(){if(!this.sessionSearch)throw new Error("Database not initialized");return this.sessionSearch}getChromaSync(){if(!this.chromaSync)throw new Error("ChromaSync not initialized");return this.chromaSync}getSessionById(e){let a=this.getSessionStore().getSessionById(e);if(!a)throw new Error(`Session ${e} not found`);return a}markSessionComplete(e){this.getSessionStore().markSessionCompleted(e)}};var IE=require("events");var kE=require("fs"),OE=require("os"),CE=require("path"),xj=(0,CE.join)((0,OE.homedir)(),".claude-mem","silent.log");function Kt(r,e,a=""){let t=new Date().toISOString(),o=((new Error().stack||"").split(` `)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),l=o?`${o[1].split("/").pop()}:${o[2]}`:"unknown",c=`[${t}] [${l}] ${r}`;if(e!==void 0)try{c+=` ${JSON.stringify(e)}`}catch(u){c+=` [stringify error: ${u}]`}c+=` -`;try{(0,k1.appendFileSync)(xj,c)}catch(u){console.error("[silent-debug] Failed to write to log:",u)}return a}var Mc=class{dbManager;sessions=new Map;sessionQueues=new Map;onSessionDeletedCallback;constructor(e){this.dbManager=e}setOnSessionDeleted(e){this.onSessionDeletedCallback=e}initializeSession(e,a,t){let s=this.sessions.get(e);if(s)return a?(Kt("[SessionManager] Updating userPrompt for continuation",{sessionDbId:e,promptNumber:t,oldPrompt:s.userPrompt.substring(0,80),newPrompt:a.substring(0,80)}),s.userPrompt=a,s.lastPromptNumber=t||s.lastPromptNumber):Kt("[SessionManager] No currentUserPrompt provided for existing session",{sessionDbId:e,promptNumber:t,usingCachedPrompt:s.userPrompt.substring(0,80)}),s;let i=this.dbManager.getSessionById(e),n=a||i.user_prompt;a?Kt("[SessionManager] Initializing session with fresh userPrompt",{sessionDbId:e,promptNumber:t,userPrompt:a.substring(0,80)}):Kt("[SessionManager] No currentUserPrompt provided for new session, using database",{sessionDbId:e,promptNumber:t,dbPrompt:i.user_prompt.substring(0,80)}),s={sessionDbId:e,claudeSessionId:i.claude_session_id,sdkSessionId:null,project:i.project,userPrompt:n,pendingMessages:[],abortController:new AbortController,generatorPromise:null,lastPromptNumber:t||this.dbManager.getSessionStore().getPromptCounter(e),startTime:Date.now(),cumulativeInputTokens:0,cumulativeOutputTokens:0},this.sessions.set(e,s);let o=new I1.EventEmitter;return this.sessionQueues.set(e,o),H.info("SESSION","Session initialized",{sessionId:e,project:s.project,claudeSessionId:s.claudeSessionId,queueDepth:0,hasGenerator:!1}),s}getSession(e){return this.sessions.get(e)}queueObservation(e,a){let t=this.sessions.get(e);t||(t=this.initializeSession(e));let s=t.pendingMessages.length;t.pendingMessages.push({type:"observation",tool_name:a.tool_name,tool_input:a.tool_input,tool_response:a.tool_response,prompt_number:a.prompt_number,cwd:a.cwd});let i=t.pendingMessages.length;this.sessionQueues.get(e)?.emit("message");let o=H.formatTool(a.tool_name,a.tool_input);H.info("SESSION",`Observation queued (${s}\u2192${i})`,{sessionId:e,tool:o,hasGenerator:!!t.generatorPromise})}queueSummarize(e,a,t){let s=this.sessions.get(e);s||(s=this.initializeSession(e));let i=s.pendingMessages.length;s.pendingMessages.push({type:"summarize",last_user_message:a,last_assistant_message:t});let n=s.pendingMessages.length;this.sessionQueues.get(e)?.emit("message"),H.info("SESSION",`Summarize queued (${i}\u2192${n})`,{sessionId:e,hasGenerator:!!s.generatorPromise})}async deleteSession(e){let a=this.sessions.get(e);if(!a)return;let t=Date.now()-a.startTime;a.abortController.abort(),a.generatorPromise&&await a.generatorPromise.catch(()=>{}),this.sessions.delete(e),this.sessionQueues.delete(e),H.info("SESSION","Session deleted",{sessionId:e,duration:`${(t/1e3).toFixed(1)}s`,project:a.project}),this.onSessionDeletedCallback&&this.onSessionDeletedCallback()}async shutdownAll(){let e=Array.from(this.sessions.keys());await Promise.all(e.map(a=>this.deleteSession(a)))}hasPendingMessages(){return Array.from(this.sessions.values()).some(e=>e.pendingMessages.length>0)}getActiveSessionCount(){return this.sessions.size}getTotalQueueDepth(){let e=0;for(let a of this.sessions.values())e+=a.pendingMessages.length;return e}getTotalActiveWork(){let e=0;for(let a of this.sessions.values())e+=a.pendingMessages.length,a.generatorPromise!==null&&(e+=1);return e}isAnySessionProcessing(){for(let e of this.sessions.values())if(e.pendingMessages.length>0||e.generatorPromise!==null)return!0;return!1}async*getMessageIterator(e){let a=this.sessions.get(e);a||(a=this.initializeSession(e));let t=this.sessionQueues.get(e);if(!t)throw new Error(`No emitter for session ${e}`);for(;!a.abortController.signal.aborted;)for(a.pendingMessages.length===0&&await new Promise(s=>{let i=()=>s();t.once("message",i),a.abortController.signal.addEventListener("abort",()=>{t.off("message",i),s()},{once:!0})});a.pendingMessages.length>0;){let s=a.pendingMessages.shift();if(yield s,s.type==="summarize"){H.info("SESSION","Summary yielded - ending generator",{sessionId:e});return}}}};var Fc=class{sseClients=new Set;addClient(e){this.sseClients.add(e),H.debug("WORKER","Client connected",{total:this.sseClients.size}),e.on("close",()=>{this.removeClient(e)}),this.sendToClient(e,{type:"connected",timestamp:Date.now()})}removeClient(e){this.sseClients.delete(e),H.debug("WORKER","Client disconnected",{total:this.sseClients.size})}broadcast(e){if(this.sseClients.size===0){H.debug("WORKER","SSE broadcast skipped (no clients)",{eventType:e.type});return}let a={...e,timestamp:Date.now()},t=`data: ${JSON.stringify(a)} +`;try{(0,kE.appendFileSync)(xj,c)}catch(u){console.error("[silent-debug] Failed to write to log:",u)}return a}var Mc=class{dbManager;sessions=new Map;sessionQueues=new Map;onSessionDeletedCallback;constructor(e){this.dbManager=e}setOnSessionDeleted(e){this.onSessionDeletedCallback=e}initializeSession(e,a,t){let s=this.sessions.get(e);if(s)return a?(Kt("[SessionManager] Updating userPrompt for continuation",{sessionDbId:e,promptNumber:t,oldPrompt:s.userPrompt.substring(0,80),newPrompt:a.substring(0,80)}),s.userPrompt=a,s.lastPromptNumber=t||s.lastPromptNumber):Kt("[SessionManager] No currentUserPrompt provided for existing session",{sessionDbId:e,promptNumber:t,usingCachedPrompt:s.userPrompt.substring(0,80)}),s;let i=this.dbManager.getSessionById(e),n=a||i.user_prompt;a?Kt("[SessionManager] Initializing session with fresh userPrompt",{sessionDbId:e,promptNumber:t,userPrompt:a.substring(0,80)}):Kt("[SessionManager] No currentUserPrompt provided for new session, using database",{sessionDbId:e,promptNumber:t,dbPrompt:i.user_prompt.substring(0,80)}),s={sessionDbId:e,claudeSessionId:i.claude_session_id,sdkSessionId:null,project:i.project,userPrompt:n,pendingMessages:[],abortController:new AbortController,generatorPromise:null,lastPromptNumber:t||this.dbManager.getSessionStore().getPromptCounter(e),startTime:Date.now(),cumulativeInputTokens:0,cumulativeOutputTokens:0},this.sessions.set(e,s);let o=new IE.EventEmitter;return this.sessionQueues.set(e,o),H.info("SESSION","Session initialized",{sessionId:e,project:s.project,claudeSessionId:s.claudeSessionId,queueDepth:0,hasGenerator:!1}),s}getSession(e){return this.sessions.get(e)}queueObservation(e,a){let t=this.sessions.get(e);t||(t=this.initializeSession(e));let s=t.pendingMessages.length;t.pendingMessages.push({type:"observation",tool_name:a.tool_name,tool_input:a.tool_input,tool_response:a.tool_response,prompt_number:a.prompt_number,cwd:a.cwd});let i=t.pendingMessages.length;this.sessionQueues.get(e)?.emit("message");let o=H.formatTool(a.tool_name,a.tool_input);H.info("SESSION",`Observation queued (${s}\u2192${i})`,{sessionId:e,tool:o,hasGenerator:!!t.generatorPromise})}queueSummarize(e,a,t){let s=this.sessions.get(e);s||(s=this.initializeSession(e));let i=s.pendingMessages.length;s.pendingMessages.push({type:"summarize",last_user_message:a,last_assistant_message:t});let n=s.pendingMessages.length;this.sessionQueues.get(e)?.emit("message"),H.info("SESSION",`Summarize queued (${i}\u2192${n})`,{sessionId:e,hasGenerator:!!s.generatorPromise})}async deleteSession(e){let a=this.sessions.get(e);if(!a)return;let t=Date.now()-a.startTime;a.abortController.abort(),a.generatorPromise&&await a.generatorPromise.catch(()=>{}),this.sessions.delete(e),this.sessionQueues.delete(e),H.info("SESSION","Session deleted",{sessionId:e,duration:`${(t/1e3).toFixed(1)}s`,project:a.project}),this.onSessionDeletedCallback&&this.onSessionDeletedCallback()}async shutdownAll(){let e=Array.from(this.sessions.keys());await Promise.all(e.map(a=>this.deleteSession(a)))}hasPendingMessages(){return Array.from(this.sessions.values()).some(e=>e.pendingMessages.length>0)}getActiveSessionCount(){return this.sessions.size}getTotalQueueDepth(){let e=0;for(let a of this.sessions.values())e+=a.pendingMessages.length;return e}getTotalActiveWork(){let e=0;for(let a of this.sessions.values())e+=a.pendingMessages.length,a.generatorPromise!==null&&(e+=1);return e}isAnySessionProcessing(){for(let e of this.sessions.values())if(e.pendingMessages.length>0||e.generatorPromise!==null)return!0;return!1}async*getMessageIterator(e){let a=this.sessions.get(e);a||(a=this.initializeSession(e));let t=this.sessionQueues.get(e);if(!t)throw new Error(`No emitter for session ${e}`);for(;!a.abortController.signal.aborted;)for(a.pendingMessages.length===0&&await new Promise(s=>{let i=()=>s();t.once("message",i),a.abortController.signal.addEventListener("abort",()=>{t.off("message",i),s()},{once:!0})});a.pendingMessages.length>0;){let s=a.pendingMessages.shift();if(yield s,s.type==="summarize"){H.info("SESSION","Summary yielded - ending generator",{sessionId:e});return}}}};var Fc=class{sseClients=new Set;addClient(e){this.sseClients.add(e),H.debug("WORKER","Client connected",{total:this.sseClients.size}),e.on("close",()=>{this.removeClient(e)}),this.sendToClient(e,{type:"connected",timestamp:Date.now()})}removeClient(e){this.sseClients.delete(e),H.debug("WORKER","Client disconnected",{total:this.sseClients.size})}broadcast(e){if(this.sseClients.size===0){H.debug("WORKER","SSE broadcast skipped (no clients)",{eventType:e.type});return}let a={...e,timestamp:Date.now()},t=`data: ${JSON.stringify(a)} `;H.debug("WORKER","SSE broadcast sent",{eventType:e.type,clients:this.sseClients.size});for(let s of this.sseClients)try{s.write(t)}catch{this.sseClients.delete(s),H.debug("WORKER","Client removed due to write error")}}getClientCount(){return this.sseClients.size}sendToClient(e,a){let t=`data: ${JSON.stringify(a)} -`;try{e.write(t)}catch{this.sseClients.delete(e)}}};var UE=require("child_process"),zE=require("os"),HE=jt(require("path"),1),rl=require("fs");function A1(r,e){let a=[],t=/([\s\S]*?)<\/observation>/g,s;for(;(s=t.exec(r))!==null;){let i=s[1],n=Lr(i,"type"),o=Lr(i,"title"),l=Lr(i,"subtitle"),c=Lr(i,"narrative"),u=Lc(i,"facts","fact"),p=Lc(i,"concepts","concept"),m=Lc(i,"files_read","file"),f=Lc(i,"files_modified","file"),h="change";n?["bugfix","feature","refactor","change","discovery","decision"].includes(n.trim())?h=n.trim():H.warn("PARSER",`Invalid observation type: ${n}, using "change"`,{correlationId:e}):H.warn("PARSER",'Observation missing type field, using "change"',{correlationId:e});let d=p.filter(v=>v!==h);d.length!==p.length&&H.warn("PARSER","Removed observation type from concepts array",{correlationId:e,type:h,originalConcepts:p,cleanedConcepts:d}),a.push({type:h,title:o,subtitle:l,facts:u,narrative:c,concepts:d,files_read:m,files_modified:f})}return a}function j1(r,e){let t=//.exec(r);if(t)return H.info("PARSER","Summary skipped",{sessionId:e,reason:t[1]}),null;let i=/([\s\S]*?)<\/summary>/.exec(r);if(!i)return null;let n=i[1],o=Lr(n,"request"),l=Lr(n,"investigated"),c=Lr(n,"learned"),u=Lr(n,"completed"),p=Lr(n,"next_steps"),m=Lr(n,"notes");return{request:o,investigated:l,learned:c,completed:u,next_steps:p,notes:m}}function Lr(r,e){let t=new RegExp(`<${e}>([^<]*)`).exec(r);if(!t)return null;let s=t[1].trim();return s===""?null:s}function Lc(r,e,a){let t=[],i=new RegExp(`<${e}>(.*?)`,"s").exec(r);if(!i)return t;let n=i[1],o=new RegExp(`<${a}>([^<]+)`,"g"),l;for(;(l=o.exec(n))!==null;)t.push(l[1].trim());return t}function N1(r,e,a){return`You are a Claude-Mem, a specialized observer tool for creating searchable memory FOR FUTURE SESSIONS. +`;try{e.write(t)}catch{this.sseClients.delete(e)}}};var U1=require("child_process"),z1=require("os"),H1=jt(require("path"),1),rl=require("fs");function AE(r,e){let a=[],t=/([\s\S]*?)<\/observation>/g,s;for(;(s=t.exec(r))!==null;){let i=s[1],n=Lr(i,"type"),o=Lr(i,"title"),l=Lr(i,"subtitle"),c=Lr(i,"narrative"),u=Lc(i,"facts","fact"),p=Lc(i,"concepts","concept"),m=Lc(i,"files_read","file"),f=Lc(i,"files_modified","file"),h="change";n?["bugfix","feature","refactor","change","discovery","decision"].includes(n.trim())?h=n.trim():H.warn("PARSER",`Invalid observation type: ${n}, using "change"`,{correlationId:e}):H.warn("PARSER",'Observation missing type field, using "change"',{correlationId:e});let d=p.filter(v=>v!==h);d.length!==p.length&&H.warn("PARSER","Removed observation type from concepts array",{correlationId:e,type:h,originalConcepts:p,cleanedConcepts:d}),a.push({type:h,title:o,subtitle:l,facts:u,narrative:c,concepts:d,files_read:m,files_modified:f})}return a}function jE(r,e){let t=//.exec(r);if(t)return H.info("PARSER","Summary skipped",{sessionId:e,reason:t[1]}),null;let i=/([\s\S]*?)<\/summary>/.exec(r);if(!i)return null;let n=i[1],o=Lr(n,"request"),l=Lr(n,"investigated"),c=Lr(n,"learned"),u=Lr(n,"completed"),p=Lr(n,"next_steps"),m=Lr(n,"notes");return{request:o,investigated:l,learned:c,completed:u,next_steps:p,notes:m}}function Lr(r,e){let t=new RegExp(`<${e}>([^<]*)`).exec(r);if(!t)return null;let s=t[1].trim();return s===""?null:s}function Lc(r,e,a){let t=[],i=new RegExp(`<${e}>(.*?)`,"s").exec(r);if(!i)return t;let n=i[1],o=new RegExp(`<${a}>([^<]+)`,"g"),l;for(;(l=o.exec(n))!==null;)t.push(l[1].trim());return t}function NE(r,e,a){return`You are a Claude-Mem, a specialized observer tool for creating searchable memory FOR FUTURE SESSIONS. CRITICAL: Record what was LEARNED/BUILT/FIXED/DEPLOYED/CONFIGURED, not what you (the observer) are doing. @@ -734,13 +720,13 @@ Never reference yourself or your own actions. Do not output anything other than Remember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your help! MEMORY PROCESSING START -=======================`}function D1(r){let e,a;try{e=typeof r.tool_input=="string"?JSON.parse(r.tool_input):r.tool_input}catch{e=r.tool_input}try{a=typeof r.tool_output=="string"?JSON.parse(r.tool_output):r.tool_output}catch{a=r.tool_output}return` +=======================`}function DE(r){let e,a;try{e=typeof r.tool_input=="string"?JSON.parse(r.tool_input):r.tool_input}catch{e=r.tool_input}try{a=typeof r.tool_output=="string"?JSON.parse(r.tool_output):r.tool_output}catch{a=r.tool_output}return` ${r.tool_name} ${new Date(r.created_at_epoch).toISOString()}${r.cwd?` ${r.cwd}`:""} ${JSON.stringify(e,null,2)} ${JSON.stringify(a,null,2)} -`}function $1(r){return`PROGRESS SUMMARY CHECKPOINT +`}function $E(r){return`PROGRESS SUMMARY CHECKPOINT =========================== Write progress notes of what was done, what was learned, and what's next. This is a checkpoint to capture progress so far. The session is ongoing - you may receive more requests and tool executions after this summary. Write "next_steps" as the current trajectory of work (what's actively being worked on or coming up next), not as post-session future work. Always write at least a minimal summary explaining current progress, even if work is still in early stages, so that users see a summary output tied to each request. @@ -761,7 +747,7 @@ IMPORTANT! DO NOT do any work right now other than generating this next PROGRESS Never reference yourself or your own actions. Do not output anything other than the summary content formatted in the XML structure above. All other output is ignored by the system, and the system has been designed to be smart about token usage. Please spend your tokens wisely on useful summary content. -Thank you, this summary will be very useful for keeping track of our progress!`}function q1(r,e,a){return` +Thank you, this summary will be very useful for keeping track of our progress!`}function qE(r,e,a){return` Hello memory agent, you are continuing to observe the primary Claude session. @@ -839,18 +825,18 @@ Never reference yourself or your own actions. Do not output anything other than Remember that we record these observations as a way of helping us stay on track with our progress, and to help us keep important decisions and changes at the forefront of our minds! :) Thank you so much for your continued help! MEMORY PROCESSING CONTINUED -===========================`}var xd=require("path"),rE=require("url"),aE=require("events"),nE=require("child_process"),iE=require("readline"),ke=jt(require("fs"),1),oE=require("fs/promises"),fE=require("path"),mE=require("os"),vs=require("path"),Sd=require("process"),hE=require("crypto"),P$={},_j=Object.create,Ej=Object.getPrototypeOf,bd=Object.defineProperty,wj=Object.getOwnPropertyNames,Sj=Object.prototype.hasOwnProperty,Pj=(r,e,a)=>{a=r!=null?_j(Ej(r)):{};let t=e||!r||!r.__esModule?bd(a,"default",{value:r,enumerable:!0}):a;for(let s of wj(r))Sj.call(t,s)||bd(t,s,{get:()=>r[s],enumerable:!0});return t},Ce=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Rj=(r,e)=>{for(var a in e)bd(r,a,{get:e[a],enumerable:!0,configurable:!0,set:t=>e[a]=()=>t})},Tj=Ce((r,e)=>{(function(a,t){typeof r=="object"&&typeof e<"u"?t(r):typeof define=="function"&&define.amd?define(["exports"],t):t(a.URI=a.URI||{})})(r,function(a){function t(){for(var x=arguments.length,y=Array(x),S=0;S1){y[0]=y[0].slice(0,-1);for(var D=y.length-1,L=1;L= 0x80 (not a basic code point)","invalid-input":"Invalid input"},q=d-v,C=Math.floor,R=String.fromCharCode;function j(x){throw new RangeError(F[x])}function z(x,y){for(var S=[],D=x.length;D--;)S[D]=y(x[D]);return S}function B(x,y){var S=x.split("@"),D="";S.length>1&&(D=S[0]+"@",x=S[1]),x=x.replace(A,".");var L=x.split("."),K=z(L,y).join(".");return D+K}function G(x){for(var y=[],S=0,D=x.length;S=55296&&L<=56319&&S>1,y+=C(y/S);y>q*g>>1;L+=d)y=C(y/q);return C(L+(q+1)*y/(y+b))},ce=function(y){var S=[],D=y.length,L=0,K=O,ne=k,ge=y.lastIndexOf(P);ge<0&&(ge=0);for(var pe=0;pe=128&&j("not-basic"),S.push(y.charCodeAt(pe));for(var Ae=ge>0?ge+1:0;Ae=D&&j("invalid-input");var Te=X(y.charCodeAt(Ae++));(Te>=d||Te>C((h-L)/Re))&&j("overflow"),L+=Te*Re;var de=ye<=ne?v:ye>=ne+g?g:ye-ne;if(TeC(h/Xe)&&j("overflow"),Re*=Xe}var Ne=S.length+1;ne=re(L-ve,Ne,ve==0),C(L/Ne)>h-K&&j("overflow"),K+=C(L/Ne),L%=Ne,S.splice(L++,0,K)}return String.fromCodePoint.apply(String,S)},Be=function(y){var S=[];y=G(y);var D=y.length,L=O,K=0,ne=k,ge=!0,pe=!1,Ae=void 0;try{for(var ve=y[Symbol.iterator](),Re;!(ge=(Re=ve.next()).done);ge=!0){var ye=Re.value;ye<128&&S.push(R(ye))}}catch(Gr){pe=!0,Ae=Gr}finally{try{!ge&&ve.return&&ve.return()}finally{if(pe)throw Ae}}var Te=S.length,de=Te;for(Te&&S.push(P);de=L&&itC((h-K)/dt)&&j("overflow"),K+=(Xe-L)*dt,L=Xe;var ft=!0,Ht=!1,It=void 0;try{for(var Tr=y[Symbol.iterator](),vr;!(ft=(vr=Tr.next()).done);ft=!0){var gr=vr.value;if(grh&&j("overflow"),gr==L){for(var St=K,Bt=d;;Bt+=d){var Vt=Bt<=ne?v:Bt>=ne+g?g:Bt-ne;if(St>6|192).toString(16).toUpperCase()+"%"+(y&63|128).toString(16).toUpperCase():S="%"+(y>>12|224).toString(16).toUpperCase()+"%"+(y>>6&63|128).toString(16).toUpperCase()+"%"+(y&63|128).toString(16).toUpperCase(),S}function Z(x){for(var y="",S=0,D=x.length;S=194&&L<224){if(D-S>=6){var K=parseInt(x.substr(S+4,2),16);y+=String.fromCharCode((L&31)<<6|K&63)}else y+=x.substr(S,6);S+=6}else if(L>=224){if(D-S>=9){var ne=parseInt(x.substr(S+4,2),16),ge=parseInt(x.substr(S+7,2),16);y+=String.fromCharCode((L&15)<<12|(ne&63)<<6|ge&63)}else y+=x.substr(S,9);S+=9}else y+=x.substr(S,3),S+=3}return y}function ee(x,y){function S(D){var L=Z(D);return L.match(y.UNRESERVED)?L:D}return x.scheme&&(x.scheme=String(x.scheme).replace(y.PCT_ENCODED,S).toLowerCase().replace(y.NOT_SCHEME,"")),x.userinfo!==void 0&&(x.userinfo=String(x.userinfo).replace(y.PCT_ENCODED,S).replace(y.NOT_USERINFO,U).replace(y.PCT_ENCODED,n)),x.host!==void 0&&(x.host=String(x.host).replace(y.PCT_ENCODED,S).toLowerCase().replace(y.NOT_HOST,U).replace(y.PCT_ENCODED,n)),x.path!==void 0&&(x.path=String(x.path).replace(y.PCT_ENCODED,S).replace(x.scheme?y.NOT_PATH:y.NOT_PATH_NOSCHEME,U).replace(y.PCT_ENCODED,n)),x.query!==void 0&&(x.query=String(x.query).replace(y.PCT_ENCODED,S).replace(y.NOT_QUERY,U).replace(y.PCT_ENCODED,n)),x.fragment!==void 0&&(x.fragment=String(x.fragment).replace(y.PCT_ENCODED,S).replace(y.NOT_FRAGMENT,U).replace(y.PCT_ENCODED,n)),x}function ue(x){return x.replace(/^0*(.*)/,"$1")||"0"}function W(x,y){var S=x.match(y.IPV4ADDRESS)||[],D=m(S,2),L=D[1];return L?L.split(".").map(ue).join("."):x}function Q(x,y){var S=x.match(y.IPV6ADDRESS)||[],D=m(S,3),L=D[1],K=D[2];if(L){for(var ne=L.toLowerCase().split("::").reverse(),ge=m(ne,2),pe=ge[0],Ae=ge[1],ve=Ae?Ae.split(":").map(ue):[],Re=pe.split(":").map(ue),ye=y.IPV4ADDRESS.test(Re[Re.length-1]),Te=ye?7:8,de=Re.length-Te,Xe=Array(Te),Ne=0;Ne1){var Fe=Xe.slice(0,Me.index),it=Xe.slice(Me.index+Me.length);st=Fe.join(":")+"::"+it.join(":")}else st=Xe.join(":");return K&&(st+="%"+K),st}else return x}var ie=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,Ie="".match(/(){0}/)[1]===void 0;function he(x){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},S={},D=y.iri!==!1?p:u;y.reference==="suffix"&&(x=(y.scheme?y.scheme+":":"")+"//"+x);var L=x.match(ie);if(L){Ie?(S.scheme=L[1],S.userinfo=L[3],S.host=L[4],S.port=parseInt(L[5],10),S.path=L[6]||"",S.query=L[7],S.fragment=L[8],isNaN(S.port)&&(S.port=L[5])):(S.scheme=L[1]||void 0,S.userinfo=x.indexOf("@")!==-1?L[3]:void 0,S.host=x.indexOf("//")!==-1?L[4]:void 0,S.port=parseInt(L[5],10),S.path=L[6]||"",S.query=x.indexOf("?")!==-1?L[7]:void 0,S.fragment=x.indexOf("#")!==-1?L[8]:void 0,isNaN(S.port)&&(S.port=x.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?L[4]:void 0)),S.host&&(S.host=Q(W(S.host,D),D)),S.scheme===void 0&&S.userinfo===void 0&&S.host===void 0&&S.port===void 0&&!S.path&&S.query===void 0?S.reference="same-document":S.scheme===void 0?S.reference="relative":S.fragment===void 0?S.reference="absolute":S.reference="uri",y.reference&&y.reference!=="suffix"&&y.reference!==S.reference&&(S.error=S.error||"URI is not a "+y.reference+" reference.");var K=Oe[(y.scheme||S.scheme||"").toLowerCase()];if(!y.unicodeSupport&&(!K||!K.unicodeSupport)){if(S.host&&(y.domainHost||K&&K.domainHost))try{S.host=xe.toASCII(S.host.replace(D.PCT_ENCODED,Z).toLowerCase())}catch(ne){S.error=S.error||"Host's domain name can not be converted to ASCII via punycode: "+ne}ee(S,u)}else ee(S,D);K&&K.parse&&K.parse(S,y)}else S.error=S.error||"URI can not be parsed.";return S}function Ze(x,y){var S=y.iri!==!1?p:u,D=[];return x.userinfo!==void 0&&(D.push(x.userinfo),D.push("@")),x.host!==void 0&&D.push(Q(W(String(x.host),S),S).replace(S.IPV6ADDRESS,function(L,K,ne){return"["+K+(ne?"%25"+ne:"")+"]"})),(typeof x.port=="number"||typeof x.port=="string")&&(D.push(":"),D.push(String(x.port))),D.length?D.join(""):void 0}var We=/^\.\.?\//,Ee=/^\/\.(\/|$)/,Ye=/^\/\.\.(\/|$)/,Ue=/^\/?(?:.|\n)*?(?=\/|$)/;function Qe(x){for(var y=[];x.length;)if(x.match(We))x=x.replace(We,"");else if(x.match(Ee))x=x.replace(Ee,"/");else if(x.match(Ye))x=x.replace(Ye,"/"),y.pop();else if(x==="."||x==="..")x="";else{var S=x.match(Ue);if(S){var D=S[0];x=x.slice(D.length),y.push(D)}else throw new Error("Unexpected dot segment condition")}return y.join("")}function Ve(x){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},S=y.iri?p:u,D=[],L=Oe[(y.scheme||x.scheme||"").toLowerCase()];if(L&&L.serialize&&L.serialize(x,y),x.host&&!S.IPV6ADDRESS.test(x.host)){if(y.domainHost||L&&L.domainHost)try{x.host=y.iri?xe.toUnicode(x.host):xe.toASCII(x.host.replace(S.PCT_ENCODED,Z).toLowerCase())}catch(ge){x.error=x.error||"Host's domain name can not be converted to "+(y.iri?"Unicode":"ASCII")+" via punycode: "+ge}}ee(x,S),y.reference!=="suffix"&&x.scheme&&(D.push(x.scheme),D.push(":"));var K=Ze(x,y);if(K!==void 0&&(y.reference!=="suffix"&&D.push("//"),D.push(K),x.path&&x.path.charAt(0)!=="/"&&D.push("/")),x.path!==void 0){var ne=x.path;!y.absolutePath&&(!L||!L.absolutePath)&&(ne=Qe(ne)),K===void 0&&(ne=ne.replace(/^\/\//,"/%2F")),D.push(ne)}return x.query!==void 0&&(D.push("?"),D.push(x.query)),x.fragment!==void 0&&(D.push("#"),D.push(x.fragment)),D.join("")}function Ke(x,y){var S=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},D=arguments[3],L={};return D||(x=he(Ve(x,S),S),y=he(Ve(y,S),S)),S=S||{},!S.tolerant&&y.scheme?(L.scheme=y.scheme,L.userinfo=y.userinfo,L.host=y.host,L.port=y.port,L.path=Qe(y.path||""),L.query=y.query):(y.userinfo!==void 0||y.host!==void 0||y.port!==void 0?(L.userinfo=y.userinfo,L.host=y.host,L.port=y.port,L.path=Qe(y.path||""),L.query=y.query):(y.path?(y.path.charAt(0)==="/"?L.path=Qe(y.path):((x.userinfo!==void 0||x.host!==void 0||x.port!==void 0)&&!x.path?L.path="/"+y.path:x.path?L.path=x.path.slice(0,x.path.lastIndexOf("/")+1)+y.path:L.path=y.path,L.path=Qe(L.path)),L.query=y.query):(L.path=x.path,y.query!==void 0?L.query=y.query:L.query=x.query),L.userinfo=x.userinfo,L.host=x.host,L.port=x.port),L.scheme=x.scheme),L.fragment=y.fragment,L}function bt(x,y,S){var D=l({scheme:"null"},S);return Ve(Ke(he(x,D),he(y,D),D,!0),D)}function xt(x,y){return typeof x=="string"?x=Ve(he(x,y),y):i(x)==="object"&&(x=he(Ve(x,y),y)),x}function wt(x,y,S){return typeof x=="string"?x=Ve(he(x,S),S):i(x)==="object"&&(x=Ve(x,S)),typeof y=="string"?y=Ve(he(y,S),S):i(y)==="object"&&(y=Ve(y,S)),x===y}function Br(x,y){return x&&x.toString().replace(!y||!y.iri?u.ESCAPE:p.ESCAPE,U)}function Ct(x,y){return x&&x.toString().replace(!y||!y.iri?u.PCT_ENCODED:p.PCT_ENCODED,Z)}var ia={scheme:"http",domainHost:!0,parse:function(y,S){return y.host||(y.error=y.error||"HTTP URIs must have a host."),y},serialize:function(y,S){var D=String(y.scheme).toLowerCase()==="https";return(y.port===(D?443:80)||y.port==="")&&(y.port=void 0),y.path||(y.path="/"),y}},oa={scheme:"https",domainHost:ia.domainHost,parse:ia.parse,serialize:ia.serialize};function Nn(x){return typeof x.secure=="boolean"?x.secure:String(x.scheme).toLowerCase()==="wss"}var Ia={scheme:"ws",domainHost:!0,parse:function(y,S){var D=y;return D.secure=Nn(D),D.resourceName=(D.path||"/")+(D.query?"?"+D.query:""),D.path=void 0,D.query=void 0,D},serialize:function(y,S){if((y.port===(Nn(y)?443:80)||y.port==="")&&(y.port=void 0),typeof y.secure=="boolean"&&(y.scheme=y.secure?"wss":"ws",y.secure=void 0),y.resourceName){var D=y.resourceName.split("?"),L=m(D,2),K=L[0],ne=L[1];y.path=K&&K!=="/"?K:void 0,y.query=ne,y.resourceName=void 0}return y.fragment=void 0,y}},qi={scheme:"wss",domainHost:Ia.domainHost,parse:Ia.parse,serialize:Ia.serialize},Mi={},Jt=!0,Fi="[A-Za-z0-9\\-\\.\\_\\~"+(Jt?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",Yt="[0-9A-Fa-f]",ol=s(s("%[EFef]"+Yt+"%"+Yt+Yt+"%"+Yt+Yt)+"|"+s("%[89A-Fa-f]"+Yt+"%"+Yt+Yt)+"|"+s("%"+Yt+Yt)),cl="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",ll="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",ul=t(ll,'[\\"\\\\]'),ca="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",pl=new RegExp(Fi,"g"),Vr=new RegExp(ol,"g"),dl=new RegExp(t("[^]",cl,"[\\.]",'[\\"]',ul),"g"),js=new RegExp(t("[^]",Fi,ca),"g"),Li=js;function Dn(x){var y=Z(x);return y.match(pl)?y:x}var $n={scheme:"mailto",parse:function(y,S){var D=y,L=D.to=D.path?D.path.split(","):[];if(D.path=void 0,D.query){for(var K=!1,ne={},ge=D.query.split("&"),pe=0,Ae=ge.length;pe{e.exports=function a(t,s){if(t===s)return!0;if(t&&s&&typeof t=="object"&&typeof s=="object"){if(t.constructor!==s.constructor)return!1;var i,n,o;if(Array.isArray(t)){if(i=t.length,i!=s.length)return!1;for(n=i;n--!==0;)if(!a(t[n],s[n]))return!1;return!0}if(t.constructor===RegExp)return t.source===s.source&&t.flags===s.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===s.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===s.toString();if(o=Object.keys(t),i=o.length,i!==Object.keys(s).length)return!1;for(n=i;n--!==0;)if(!Object.prototype.hasOwnProperty.call(s,o[n]))return!1;for(n=i;n--!==0;){var l=o[n];if(!a(t[l],s[l]))return!1}return!0}return t!==t&&s!==s}}),kj=Ce((r,e)=>{e.exports=function(t){for(var s=0,i=t.length,n=0,o;n=55296&&o<=56319&&n{e.exports={copy:a,checkDataType:t,checkDataTypes:s,coerceToTypes:n,toHash:o,getProperty:u,escapeQuotes:p,equal:Id(),ucs2length:kj(),varOccurences:m,varReplace:f,schemaHasRules:h,schemaHasRulesExcept:d,schemaUnknownRules:v,toQuotedString:g,getPathExpr:b,getPath:E,getData:P,unescapeFragment:$,unescapeJsonPointer:q,escapeFragment:A,escapeJsonPointer:F};function a(C,R){R=R||{};for(var j in C)R[j]=C[j];return R}function t(C,R,j,z){var B=z?" !== ":" === ",G=z?" || ":" && ",te=z?"!":"",X=z?"":"!";switch(C){case"null":return R+B+"null";case"array":return te+"Array.isArray("+R+")";case"object":return"("+te+R+G+"typeof "+R+B+'"object"'+G+X+"Array.isArray("+R+"))";case"integer":return"(typeof "+R+B+'"number"'+G+X+"("+R+" % 1)"+G+R+B+R+(j?G+te+"isFinite("+R+")":"")+")";case"number":return"(typeof "+R+B+'"'+C+'"'+(j?G+te+"isFinite("+R+")":"")+")";default:return"typeof "+R+B+'"'+C+'"'}}function s(C,R,j){switch(C.length){case 1:return t(C[0],R,j,!0);default:var z="",B=o(C);B.array&&B.object&&(z=B.null?"(":"(!"+R+" || ",z+="typeof "+R+' !== "object")',delete B.null,delete B.array,delete B.object),B.number&&delete B.integer;for(var G in B)z+=(z?" && ":"")+t(G,R,j,!0);return z}}var i=o(["string","number","integer","boolean","null"]);function n(C,R){if(Array.isArray(R)){for(var j=[],z=0;z=R)throw new Error("Cannot access property/index "+z+" levels up, current level is "+R);return j[R-z]}if(z>R)throw new Error("Cannot access data "+z+" levels up, current level is "+R);if(G="data"+(R-z||""),!B)return G}for(var X=G,V=B.split("/"),re=0;re{var a=Cn();e.exports=t;function t(s){a.copy(s,this)}}),Oj=Ce((r,e)=>{var a=e.exports=function(i,n,o){typeof n=="function"&&(o=n,n={}),o=n.cb||o;var l=typeof o=="function"?o:o.pre||function(){},c=o.post||function(){};t(n,l,c,i,"",i)};a.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},a.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},a.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},a.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function t(i,n,o,l,c,u,p,m,f,h){if(l&&typeof l=="object"&&!Array.isArray(l)){n(l,c,u,p,m,f,h);for(var d in l){var v=l[d];if(Array.isArray(v)){if(d in a.arrayKeywords)for(var g=0;g{var a=Tj(),t=Id(),s=Cn(),i=J1(),n=Oj();e.exports=o,o.normalizeId=E,o.fullPath=v,o.url=k,o.ids=O,o.inlineRef=f,o.schema=l;function o(P,I,$){var A=this._refs[$];if(typeof A=="string")if(this._refs[A])A=this._refs[A];else return o.call(this,P,I,A);if(A=A||this._schemas[$],A instanceof i)return f(A.schema,this._opts.inlineRefs)?A.schema:A.validate||this._compile(A);var F=l.call(this,I,$),q,C,R;return F&&(q=F.schema,I=F.root,R=F.baseId),q instanceof i?C=q.validate||P.call(this,q.schema,I,void 0,R):q!==void 0&&(C=f(q,this._opts.inlineRefs)?q:P.call(this,q,I,void 0,R)),C}function l(P,I){var $=a.parse(I),A=g($),F=v(this._getId(P.schema));if(Object.keys(P.schema).length===0||A!==F){var q=E(A),C=this._refs[q];if(typeof C=="string")return c.call(this,P,C,$);if(C instanceof i)C.validate||this._compile(C),P=C;else if(C=this._schemas[q],C instanceof i){if(C.validate||this._compile(C),q==E(I))return{schema:C,root:P,baseId:F};P=C}else return;if(!P.schema)return;F=v(this._getId(P.schema))}return p.call(this,$,F,P.schema,P)}function c(P,I,$){var A=l.call(this,P,I);if(A){var F=A.schema,q=A.baseId;P=A.root;var C=this._getId(F);return C&&(q=k(q,C)),p.call(this,$,q,F,P)}}var u=s.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function p(P,I,$,A){if(P.fragment=P.fragment||"",P.fragment.slice(0,1)=="/"){for(var F=P.fragment.split("/"),q=1;q{var a=Ad();e.exports={Validation:i(t),MissingRef:i(s)};function t(n){this.message="validation failed",this.errors=n,this.ajv=this.validation=!0}s.message=function(n,o){return"can't resolve reference "+o+" from id "+n};function s(n,o,l){this.message=l||s.message(n,o),this.missingRef=a.url(n,o),this.missingSchema=a.normalizeId(a.fullPath(this.missingRef))}function i(n){return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}}),Y1=Ce((r,e)=>{e.exports=function(a,t){t||(t={}),typeof t=="function"&&(t={cmp:t});var s=typeof t.cycles=="boolean"?t.cycles:!1,i=t.cmp&&(function(o){return function(l){return function(c,u){var p={key:c,value:l[c]},m={key:u,value:l[u]};return o(p,m)}}})(t.cmp),n=[];return(function o(l){if(l&&l.toJSON&&typeof l.toJSON=="function"&&(l=l.toJSON()),l!==void 0){if(typeof l=="number")return isFinite(l)?""+l:"null";if(typeof l!="object")return JSON.stringify(l);var c,u;if(Array.isArray(l)){for(u="[",c=0;c{e.exports=function(t,s,i){var n="",o=t.schema.$async===!0,l=t.util.schemaHasRulesExcept(t.schema,t.RULES.all,"$ref"),c=t.self._getId(t.schema);if(t.opts.strictKeywords){var u=t.util.schemaUnknownRules(t.schema,t.RULES.keywords);if(u){var p="unknown keyword: "+u;if(t.opts.strictKeywords==="log")t.logger.warn(p);else throw new Error(p)}}if(t.isTop&&(n+=" var validate = ",o&&(t.async=!0,n+="async "),n+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",c&&(t.opts.sourceCode||t.opts.processCode)&&(n+=" "+("/*# sourceURL="+c+" */")+" ")),typeof t.schema=="boolean"||!(l||t.schema.$ref)){var s="false schema",m=t.level,f=t.dataLevel,h=t.schema[s],d=t.schemaPath+t.util.getProperty(s),v=t.errSchemaPath+"/"+s,I=!t.opts.allErrors,F,g="data"+(f||""),P="valid"+m;if(t.schema===!1){t.isTop?I=!0:n+=" var "+P+" = false; ";var b=b||[];b.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '"+(F||"false schema")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(v)+" , params: {} ",t.opts.messages!==!1&&(n+=" , message: 'boolean schema is false' "),t.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+t.schemaPath+" , data: "+g+" "),n+=" } "):n+=" {} ";var E=n;n=b.pop(),!t.compositeRule&&I?t.async?n+=" throw new ValidationError(["+E+"]); ":n+=" validate.errors = ["+E+"]; return false; ":n+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else t.isTop?o?n+=" return data; ":n+=" validate.errors = null; return true; ":n+=" var "+P+" = true; ";return t.isTop&&(n+=" }; return validate; "),n}if(t.isTop){var k=t.isTop,m=t.level=0,f=t.dataLevel=0,g="data";if(t.rootId=t.resolve.fullPath(t.self._getId(t.root.schema)),t.baseId=t.baseId||t.rootId,delete t.isTop,t.dataPathArr=[""],t.schema.default!==void 0&&t.opts.useDefaults&&t.opts.strictDefaults){var O="default is ignored in the schema root";if(t.opts.strictDefaults==="log")t.logger.warn(O);else throw new Error(O)}n+=" var vErrors = null; ",n+=" var errors = 0; ",n+=" if (rootData === undefined) rootData = data; "}else{var{level:m,dataLevel:f}=t,g="data"+(f||"");if(c&&(t.baseId=t.resolve.url(t.baseId,c)),o&&!t.async)throw new Error("async schema in sync schema");n+=" var errs_"+m+" = errors;"}var P="valid"+m,I=!t.opts.allErrors,$="",A="",F,q=t.schema.type,C=Array.isArray(q);if(q&&t.opts.nullable&&t.schema.nullable===!0&&(C?q.indexOf("null")==-1&&(q=q.concat("null")):q!="null"&&(q=[q,"null"],C=!0)),C&&q.length==1&&(q=q[0],C=!1),t.schema.$ref&&l){if(t.opts.extendRefs=="fail")throw new Error('$ref: validation keywords used in schema at path "'+t.errSchemaPath+'" (see option extendRefs)');t.opts.extendRefs!==!0&&(l=!1,t.logger.warn('$ref: keywords ignored in schema at path "'+t.errSchemaPath+'"'))}if(t.schema.$comment&&t.opts.$comment&&(n+=" "+t.RULES.all.$comment.code(t,"$comment")),q){if(t.opts.coerceTypes)var R=t.util.coerceToTypes(t.opts.coerceTypes,q);var j=t.RULES.types[q];if(R||C||j===!0||j&&!Ue(j)){var d=t.schemaPath+".type",v=t.errSchemaPath+"/type",d=t.schemaPath+".type",v=t.errSchemaPath+"/type",z=C?"checkDataTypes":"checkDataType";if(n+=" if ("+t.util[z](q,g,t.opts.strictNumbers,!0)+") { ",R){var B="dataType"+m,G="coerced"+m;n+=" var "+B+" = typeof "+g+"; var "+G+" = undefined; ",t.opts.coerceTypes=="array"&&(n+=" if ("+B+" == 'object' && Array.isArray("+g+") && "+g+".length == 1) { "+g+" = "+g+"[0]; "+B+" = typeof "+g+"; if ("+t.util.checkDataType(t.schema.type,g,t.opts.strictNumbers)+") "+G+" = "+g+"; } "),n+=" if ("+G+" !== undefined) ; ";var te=R;if(te)for(var X,V=-1,re=te.length-1;V{var a=Ad(),t=Cn(),s=jd(),i=Y1(),n=eE(),o=t.ucs2length,l=Id(),c=s.Validation;e.exports=u;function u(E,k,O,P){var I=this,$=this._opts,A=[void 0],F={},q=[],C={},R=[],j={},z=[];k=k||{schema:E,refVal:A,refs:F};var B=p.call(this,E,k,P),G=this._compilations[B.index];if(B.compiling)return G.callValidate=ce;var te=this._formats,X=this.RULES;try{var V=Be(E,k,O,P);G.validate=V;var re=G.callValidate;return re&&(re.schema=V.schema,re.errors=null,re.refs=V.refs,re.refVal=V.refVal,re.root=V.root,re.$async=V.$async,$.sourceCode&&(re.source=V.source)),V}finally{m.call(this,E,k,P)}function ce(){var W=G.validate,Q=W.apply(this,arguments);return ce.errors=W.errors,Q}function Be(W,Q,ie,Ie){var he=!Q||Q&&Q.schema==W;if(Q.schema!=k.schema)return u.call(I,W,Q,ie,Ie);var Ze=W.$async===!0,We=n({isTop:!0,schema:W,isRoot:he,baseId:Ie,root:Q,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:s.MissingRef,RULES:X,validate:n,util:t,resolve:a,resolveRef:be,usePattern:Z,useDefault:ee,useCustomRule:ue,opts:$,formats:te,logger:I.logger,self:I});We=b(A,v)+b(q,h)+b(R,d)+b(z,g)+We,$.processCode&&(We=$.processCode(We,W));var Ee;try{var Ye=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",We);Ee=Ye(I,X,te,k,A,R,z,l,o,c),A[0]=Ee}catch(Ue){throw I.logger.error("Error compiling schema, function code:",We),Ue}return Ee.schema=W,Ee.errors=null,Ee.refs=F,Ee.refVal=A,Ee.root=he?Ee:Q,Ze&&(Ee.$async=!0),$.sourceCode===!0&&(Ee.source={code:We,patterns:q,defaults:R}),Ee}function be(W,Q,ie){Q=a.url(W,Q);var Ie=F[Q],he,Ze;if(Ie!==void 0)return he=A[Ie],Ze="refVal["+Ie+"]",U(he,Ze);if(!ie&&k.refs){var We=k.refs[Q];if(We!==void 0)return he=k.refVal[We],Ze=qe(Q,he),U(he,Ze)}Ze=qe(Q);var Ee=a.call(I,Be,k,Q);if(Ee===void 0){var Ye=O&&O[Q];Ye&&(Ee=a.inlineRef(Ye,$.inlineRefs)?Ye:u.call(I,Ye,k,O,W))}if(Ee===void 0)xe(Q);else return Oe(Q,Ee),U(Ee,Ze)}function qe(W,Q){var ie=A.length;return A[ie]=Q,F[W]=ie,"refVal"+ie}function xe(W){delete F[W]}function Oe(W,Q){var ie=F[W];A[ie]=Q}function U(W,Q){return typeof W=="object"||typeof W=="boolean"?{code:Q,schema:W,inline:!0}:{code:Q,$async:W&&!!W.$async}}function Z(W){var Q=C[W];return Q===void 0&&(Q=C[W]=q.length,q[Q]=W),"pattern"+Q}function ee(W){switch(typeof W){case"boolean":case"number":return""+W;case"string":return t.toQuotedString(W);case"object":if(W===null)return"null";var Q=i(W),ie=j[Q];return ie===void 0&&(ie=j[Q]=R.length,R[ie]=W),"default"+ie}}function ue(W,Q,ie,Ie){if(I._opts.validateSchema!==!1){var he=W.definition.dependencies;if(he&&!he.every(function(bt){return Object.prototype.hasOwnProperty.call(ie,bt)}))throw new Error("parent schema must have all required keywords: "+he.join(","));var Ze=W.definition.validateSchema;if(Ze){var We=Ze(Q);if(!We){var Ee="keyword schema is invalid: "+I.errorsText(Ze.errors);if(I._opts.validateSchema=="log")I.logger.error(Ee);else throw new Error(Ee)}}}var Ye=W.definition.compile,Ue=W.definition.inline,Qe=W.definition.macro,Ve;if(Ye)Ve=Ye.call(I,Q,ie,Ie);else if(Qe)Ve=Qe.call(I,Q,ie,Ie),$.validateSchema!==!1&&I.validateSchema(Ve,!0);else if(Ue)Ve=Ue.call(I,Ie,W.keyword,Q,ie);else if(Ve=W.definition.validate,!Ve)return;if(Ve===void 0)throw new Error('custom keyword "'+W.keyword+'"failed to compile');var Ke=z.length;return z[Ke]=Ve,{code:"customRule"+Ke,validate:Ve}}}function p(E,k,O){var P=f.call(this,E,k,O);return P>=0?{index:P,compiling:!0}:(P=this._compilations.length,this._compilations[P]={schema:E,root:k,baseId:O},{index:P,compiling:!1})}function m(E,k,O){var P=f.call(this,E,k,O);P>=0&&this._compilations.splice(P,1)}function f(E,k,O){for(var P=0;P{var a=e.exports=function(){this._cache={}};a.prototype.put=function(s,i){this._cache[s]=i},a.prototype.get=function(s){return this._cache[s]},a.prototype.del=function(s){delete this._cache[s]},a.prototype.clear=function(){this._cache={}}}),Aj=Ce((r,e)=>{var a=Cn(),t=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,s=[0,31,28,31,30,31,30,31,31,30,31,30,31],i=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,n=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,o=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,l=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,c=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,p=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,m=/^(?:\/(?:[^~/]|~0|~1)*)*$/,f=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,h=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;e.exports=d;function d(A){return A=A=="full"?"full":"fast",a.copy(d[A])}d.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:$,uuid:p,"json-pointer":m,"json-pointer-uri-fragment":f,"relative-json-pointer":h},d.full={date:g,time:b,"date-time":k,uri:P,"uri-reference":l,"uri-template":c,url:u,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:$,uuid:p,"json-pointer":m,"json-pointer-uri-fragment":f,"relative-json-pointer":h};function v(A){return A%4===0&&(A%100!==0||A%400===0)}function g(A){var F=A.match(t);if(!F)return!1;var q=+F[1],C=+F[2],R=+F[3];return C>=1&&C<=12&&R>=1&&R<=(C==2&&v(q)?29:s[C])}function b(A,F){var q=A.match(i);if(!q)return!1;var C=q[1],R=q[2],j=q[3],z=q[5];return(C<=23&&R<=59&&j<=59||C==23&&R==59&&j==60)&&(!F||z)}var E=/t|\s/i;function k(A){var F=A.split(E);return F.length==2&&g(F[0])&&b(F[1],!0)}var O=/\/|:/;function P(A){return O.test(A)&&o.test(A)}var I=/[^\\]\\Z/;function $(A){if(I.test(A))return!1;try{return new RegExp(A),!0}catch{return!1}}}),jj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.errSchemaPath+"/"+s,p=!t.opts.allErrors,m="data"+(l||""),f="valid"+o,h,d;if(c=="#"||c=="#/")t.isRoot?(h=t.async,d="validate"):(h=t.root.schema.$async===!0,d="root.refVal[0]");else{var v=t.resolveRef(t.baseId,c,t.isRoot);if(v===void 0){var g=t.MissingRefError.message(t.baseId,c);if(t.opts.missingRefs=="fail"){t.logger.error(g);var b=b||[];b.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(u)+" , params: { ref: '"+t.util.escapeQuotes(c)+"' } ",t.opts.messages!==!1&&(n+=" , message: 'can\\'t resolve reference "+t.util.escapeQuotes(c)+"' "),t.opts.verbose&&(n+=" , schema: "+t.util.toQuotedString(c)+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+m+" "),n+=" } "):n+=" {} ";var E=n;n=b.pop(),!t.compositeRule&&p?t.async?n+=" throw new ValidationError(["+E+"]); ":n+=" validate.errors = ["+E+"]; return false; ":n+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",p&&(n+=" if (false) { ")}else if(t.opts.missingRefs=="ignore")t.logger.warn(g),p&&(n+=" if (true) { ");else throw new t.MissingRefError(t.baseId,c,g)}else if(v.inline){var k=t.util.copy(t);k.level++;var O="valid"+k.level;k.schema=v.schema,k.schemaPath="",k.errSchemaPath=c;var P=t.validate(k).replace(/validate\.schema/g,v.code);n+=" "+P+" ",p&&(n+=" if ("+O+") { ")}else h=v.$async===!0||t.async&&v.$async!==!1,d=v.code}if(d){var b=b||[];b.push(n),n="",t.opts.passContext?n+=" "+d+".call(this, ":n+=" "+d+"( ",n+=" "+m+", (dataPath || '')",t.errorPath!='""'&&(n+=" + "+t.errorPath);var I=l?"data"+(l-1||""):"parentData",$=l?t.dataPathArr[l]:"parentDataProperty";n+=" , "+I+" , "+$+", rootData) ";var A=n;if(n=b.pop(),h){if(!t.async)throw new Error("async schema referenced by sync schema");p&&(n+=" var "+f+"; "),n+=" try { await "+A+"; ",p&&(n+=" "+f+" = true; "),n+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",p&&(n+=" "+f+" = false; "),n+=" } ",p&&(n+=" if ("+f+") { ")}else n+=" if (!"+A+") { if (vErrors === null) vErrors = "+d+".errors; else vErrors = vErrors.concat("+d+".errors); errors = vErrors.length; } ",p&&(n+=" else { ")}return n}}),Nj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.schema[s],l=t.schemaPath+t.util.getProperty(s),c=t.errSchemaPath+"/"+s,u=!t.opts.allErrors,p=t.util.copy(t),m="";p.level++;var f="valid"+p.level,h=p.baseId,d=!0,v=o;if(v)for(var g,b=-1,E=v.length-1;b0||g===!1:t.util.schemaHasRules(g,t.RULES.all))&&(d=!1,p.schema=g,p.schemaPath=l+"["+b+"]",p.errSchemaPath=c+"/"+b,n+=" "+t.validate(p)+" ",p.baseId=h,u&&(n+=" if ("+f+") { ",m+="}"));return u&&(d?n+=" if (true) { ":n+=" "+m.slice(0,-1)+" "),n}}),Dj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d="errs__"+o,v=t.util.copy(t),g="";v.level++;var b="valid"+v.level,E=c.every(function(F){return t.opts.strictKeywords?typeof F=="object"&&Object.keys(F).length>0||F===!1:t.util.schemaHasRules(F,t.RULES.all)});if(E){var k=v.baseId;n+=" var "+d+" = errors; var "+h+" = false; ";var O=t.compositeRule;t.compositeRule=v.compositeRule=!0;var P=c;if(P)for(var I,$=-1,A=P.length-1;${e.exports=function(t,s,i){var n=" ",o=t.schema[s],l=t.errSchemaPath+"/"+s,c=!t.opts.allErrors,u=t.util.toQuotedString(o);return t.opts.$comment===!0?n+=" console.log("+u+");":typeof t.opts.$comment=="function"&&(n+=" self._opts.$comment("+u+", "+t.util.toQuotedString(l)+", validate.root.schema);"),n}}),qj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d=t.opts.$data&&c&&c.$data,v;d?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",v="schema"+o):v=c,d||(n+=" var schema"+o+" = validate.schema"+u+";"),n+="var "+h+" = equal("+f+", schema"+o+"); if (!"+h+") { ";var g=g||[];g.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'const' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { allowedValue: schema"+o+" } ",t.opts.messages!==!1&&(n+=" , message: 'should be equal to constant' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var b=n;return n=g.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+b+"]); ":n+=" validate.errors = ["+b+"]; return false; ":n+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" }",m&&(n+=" else { "),n}}),Mj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d="errs__"+o,v=t.util.copy(t),g="";v.level++;var b="valid"+v.level,E="i"+o,k=v.dataLevel=t.dataLevel+1,O="data"+k,P=t.baseId,I=t.opts.strictKeywords?typeof c=="object"&&Object.keys(c).length>0||c===!1:t.util.schemaHasRules(c,t.RULES.all);if(n+="var "+d+" = errors;var "+h+";",I){var $=t.compositeRule;t.compositeRule=v.compositeRule=!0,v.schema=c,v.schemaPath=u,v.errSchemaPath=p,n+=" var "+b+" = false; for (var "+E+" = 0; "+E+" < "+f+".length; "+E+"++) { ",v.errorPath=t.util.getPathExpr(t.errorPath,E,t.opts.jsonPointers,!0);var A=f+"["+E+"]";v.dataPathArr[k]=E;var F=t.validate(v);v.baseId=P,t.util.varOccurences(F,O)<2?n+=" "+t.util.varReplace(F,O,A)+" ":n+=" var "+O+" = "+A+"; "+F+" ",n+=" if ("+b+") break; } ",t.compositeRule=v.compositeRule=$,n+=" "+g+" if (!"+b+") {"}else n+=" if ("+f+".length == 0) {";var q=q||[];q.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: {} ",t.opts.messages!==!1&&(n+=" , message: 'should contain a valid item' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var C=n;return n=q.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+C+"]); ":n+=" validate.errors = ["+C+"]; return false; ":n+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { ",I&&(n+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } "),t.opts.allErrors&&(n+=" } "),n}}),Fj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="errs__"+o,d=t.util.copy(t),v="";d.level++;var g="valid"+d.level,b={},E={},k=t.opts.ownProperties;for($ in c)if($!="__proto__"){var O=c[$],P=Array.isArray(O)?E:b;P[$]=O}n+="var "+h+" = errors;";var I=t.errorPath;n+="var missing"+o+";";for(var $ in E)if(P=E[$],P.length){if(n+=" if ( "+f+t.util.getProperty($)+" !== undefined ",k&&(n+=" && Object.prototype.hasOwnProperty.call("+f+", '"+t.util.escapeQuotes($)+"') "),m){n+=" && ( ";var A=P;if(A)for(var F,q=-1,C=A.length-1;q0||O===!1:t.util.schemaHasRules(O,t.RULES.all))&&(n+=" "+g+" = true; if ( "+f+t.util.getProperty($)+" !== undefined ",k&&(n+=" && Object.prototype.hasOwnProperty.call("+f+", '"+t.util.escapeQuotes($)+"') "),n+=") { ",d.schema=O,d.schemaPath=u+t.util.getProperty($),d.errSchemaPath=p+"/"+t.util.escapeFragment($),n+=" "+t.validate(d)+" ",d.baseId=ce,n+=" } ",m&&(n+=" if ("+g+") { ",v+="}"))}return m&&(n+=" "+v+" if ("+h+" == errors) {"),n}}),Lj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d=t.opts.$data&&c&&c.$data,v;d?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",v="schema"+o):v=c;var g="i"+o,b="schema"+o;d||(n+=" var "+b+" = validate.schema"+u+";"),n+="var "+h+";",d&&(n+=" if (schema"+o+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+o+")) "+h+" = false; else {"),n+=""+h+" = false;for (var "+g+"=0; "+g+"<"+b+".length; "+g+"++) if (equal("+f+", "+b+"["+g+"])) { "+h+" = true; break; }",d&&(n+=" } "),n+=" if (!"+h+") { ";var E=E||[];E.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { allowedValues: schema"+o+" } ",t.opts.messages!==!1&&(n+=" , message: 'should be equal to one of the allowed values' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var k=n;return n=E.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+k+"]); ":n+=" validate.errors = ["+k+"]; return false; ":n+=" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" }",m&&(n+=" else { "),n}}),Uj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||"");if(t.opts.format===!1)return m&&(n+=" if (true) { "),n;var h=t.opts.$data&&c&&c.$data,d;h?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",d="schema"+o):d=c;var v=t.opts.unknownFormats,g=Array.isArray(v);if(h){var b="format"+o,E="isObject"+o,k="formatType"+o;n+=" var "+b+" = formats["+d+"]; var "+E+" = typeof "+b+" == 'object' && !("+b+" instanceof RegExp) && "+b+".validate; var "+k+" = "+E+" && "+b+".type || 'string'; if ("+E+") { ",t.async&&(n+=" var async"+o+" = "+b+".async; "),n+=" "+b+" = "+b+".validate; } if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'string') || "),n+=" (",v!="ignore"&&(n+=" ("+d+" && !"+b+" ",g&&(n+=" && self._opts.unknownFormats.indexOf("+d+") == -1 "),n+=") || "),n+=" ("+b+" && "+k+" == '"+i+"' && !(typeof "+b+" == 'function' ? ",t.async?n+=" (async"+o+" ? await "+b+"("+f+") : "+b+"("+f+")) ":n+=" "+b+"("+f+") ",n+=" : "+b+".test("+f+"))))) {"}else{var b=t.formats[c];if(!b){if(v=="ignore")return t.logger.warn('unknown format "'+c+'" ignored in schema at path "'+t.errSchemaPath+'"'),m&&(n+=" if (true) { "),n;if(g&&v.indexOf(c)>=0)return m&&(n+=" if (true) { "),n;throw new Error('unknown format "'+c+'" is used in schema at path "'+t.errSchemaPath+'"')}var E=typeof b=="object"&&!(b instanceof RegExp)&&b.validate,k=E&&b.type||"string";if(E){var O=b.async===!0;b=b.validate}if(k!=i)return m&&(n+=" if (true) { "),n;if(O){if(!t.async)throw new Error("async format in sync schema");var P="formats"+t.util.getProperty(c)+".validate";n+=" if (!(await "+P+"("+f+"))) { "}else{n+=" if (! ";var P="formats"+t.util.getProperty(c);E&&(P+=".validate"),typeof b=="function"?n+=" "+P+"("+f+") ":n+=" "+P+".test("+f+") ",n+=") { "}}var I=I||[];I.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { format: ",h?n+=""+d:n+=""+t.util.toQuotedString(c),n+=" } ",t.opts.messages!==!1&&(n+=` , message: 'should match format "`,h?n+="' + "+d+" + '":n+=""+t.util.escapeQuotes(c),n+=`"' `),t.opts.verbose&&(n+=" , schema: ",h?n+="validate.schema"+u:n+=""+t.util.toQuotedString(c),n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var $=n;return n=I.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+$+"]); ":n+=" validate.errors = ["+$+"]; return false; ":n+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",m&&(n+=" else { "),n}}),zj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d="errs__"+o,v=t.util.copy(t);v.level++;var g="valid"+v.level,b=t.schema.then,E=t.schema.else,k=b!==void 0&&(t.opts.strictKeywords?typeof b=="object"&&Object.keys(b).length>0||b===!1:t.util.schemaHasRules(b,t.RULES.all)),O=E!==void 0&&(t.opts.strictKeywords?typeof E=="object"&&Object.keys(E).length>0||E===!1:t.util.schemaHasRules(E,t.RULES.all)),P=v.baseId;if(k||O){var I;v.createErrors=!1,v.schema=c,v.schemaPath=u,v.errSchemaPath=p,n+=" var "+d+" = errors; var "+h+" = true; ";var $=t.compositeRule;t.compositeRule=v.compositeRule=!0,n+=" "+t.validate(v)+" ",v.baseId=P,v.createErrors=!0,n+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",t.compositeRule=v.compositeRule=$,k?(n+=" if ("+g+") { ",v.schema=t.schema.then,v.schemaPath=t.schemaPath+".then",v.errSchemaPath=t.errSchemaPath+"/then",n+=" "+t.validate(v)+" ",v.baseId=P,n+=" "+h+" = "+g+"; ",k&&O?(I="ifClause"+o,n+=" var "+I+" = 'then'; "):I="'then'",n+=" } ",O&&(n+=" else { ")):n+=" if (!"+g+") { ",O&&(v.schema=t.schema.else,v.schemaPath=t.schemaPath+".else",v.errSchemaPath=t.errSchemaPath+"/else",n+=" "+t.validate(v)+" ",v.baseId=P,n+=" "+h+" = "+g+"; ",k&&O?(I="ifClause"+o,n+=" var "+I+" = 'else'; "):I="'else'",n+=" } "),n+=" if (!"+h+") { var err = ",t.createErrors!==!1?(n+=" { keyword: 'if' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { failingKeyword: "+I+" } ",t.opts.messages!==!1&&(n+=` , message: 'should match "' + `+I+` + '" schema' `),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!t.compositeRule&&m&&(t.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+=" } ",m&&(n+=" else { ")}else m&&(n+=" if (true) { ");return n}}),Hj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d="errs__"+o,v=t.util.copy(t),g="";v.level++;var b="valid"+v.level,E="i"+o,k=v.dataLevel=t.dataLevel+1,O="data"+k,P=t.baseId;if(n+="var "+d+" = errors;var "+h+";",Array.isArray(c)){var I=t.schema.additionalItems;if(I===!1){n+=" "+h+" = "+f+".length <= "+c.length+"; ";var $=p;p=t.errSchemaPath+"/additionalItems",n+=" if (!"+h+") { ";var A=A||[];A.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { limit: "+c.length+" } ",t.opts.messages!==!1&&(n+=" , message: 'should NOT have more than "+c.length+" items' "),t.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var F=n;n=A.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+F+"]); ":n+=" validate.errors = ["+F+"]; return false; ":n+=" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",p=$,m&&(g+="}",n+=" else { ")}var q=c;if(q){for(var C,R=-1,j=q.length-1;R0||C===!1:t.util.schemaHasRules(C,t.RULES.all)){n+=" "+b+" = true; if ("+f+".length > "+R+") { ";var z=f+"["+R+"]";v.schema=C,v.schemaPath=u+"["+R+"]",v.errSchemaPath=p+"/"+R,v.errorPath=t.util.getPathExpr(t.errorPath,R,t.opts.jsonPointers,!0),v.dataPathArr[k]=R;var B=t.validate(v);v.baseId=P,t.util.varOccurences(B,O)<2?n+=" "+t.util.varReplace(B,O,z)+" ":n+=" var "+O+" = "+z+"; "+B+" ",n+=" } ",m&&(n+=" if ("+b+") { ",g+="}")}}if(typeof I=="object"&&(t.opts.strictKeywords?typeof I=="object"&&Object.keys(I).length>0||I===!1:t.util.schemaHasRules(I,t.RULES.all))){v.schema=I,v.schemaPath=t.schemaPath+".additionalItems",v.errSchemaPath=t.errSchemaPath+"/additionalItems",n+=" "+b+" = true; if ("+f+".length > "+c.length+") { for (var "+E+" = "+c.length+"; "+E+" < "+f+".length; "+E+"++) { ",v.errorPath=t.util.getPathExpr(t.errorPath,E,t.opts.jsonPointers,!0);var z=f+"["+E+"]";v.dataPathArr[k]=E;var B=t.validate(v);v.baseId=P,t.util.varOccurences(B,O)<2?n+=" "+t.util.varReplace(B,O,z)+" ":n+=" var "+O+" = "+z+"; "+B+" ",m&&(n+=" if (!"+b+") break; "),n+=" } } ",m&&(n+=" if ("+b+") { ",g+="}")}}else if(t.opts.strictKeywords?typeof c=="object"&&Object.keys(c).length>0||c===!1:t.util.schemaHasRules(c,t.RULES.all)){v.schema=c,v.schemaPath=u,v.errSchemaPath=p,n+=" for (var "+E+" = 0; "+E+" < "+f+".length; "+E+"++) { ",v.errorPath=t.util.getPathExpr(t.errorPath,E,t.opts.jsonPointers,!0);var z=f+"["+E+"]";v.dataPathArr[k]=E;var B=t.validate(v);v.baseId=P,t.util.varOccurences(B,O)<2?n+=" "+t.util.varReplace(B,O,z)+" ":n+=" var "+O+" = "+z+"; "+B+" ",m&&(n+=" if (!"+b+") break; "),n+=" }"}return m&&(n+=" "+g+" if ("+d+" == errors) {"),n}}),M1=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,P,f="data"+(l||""),h=t.opts.$data&&c&&c.$data,d;h?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",d="schema"+o):d=c;var v=s=="maximum",g=v?"exclusiveMaximum":"exclusiveMinimum",b=t.schema[g],E=t.opts.$data&&b&&b.$data,k=v?"<":">",O=v?">":"<",P=void 0;if(!(h||typeof c=="number"||c===void 0))throw new Error(s+" must be number");if(!(E||b===void 0||typeof b=="number"||typeof b=="boolean"))throw new Error(g+" must be number or boolean");if(E){var I=t.util.getData(b.$data,l,t.dataPathArr),$="exclusive"+o,A="exclType"+o,F="exclIsNumber"+o,q="op"+o,C="' + "+q+" + '";n+=" var schemaExcl"+o+" = "+I+"; ",I="schemaExcl"+o,n+=" var "+$+"; var "+A+" = typeof "+I+"; if ("+A+" != 'boolean' && "+A+" != 'undefined' && "+A+" != 'number') { ";var P=g,R=R||[];R.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '"+(P||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: {} ",t.opts.messages!==!1&&(n+=" , message: '"+g+" should be boolean' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var j=n;n=R.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+j+"]); ":n+=" validate.errors = ["+j+"]; return false; ":n+=" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),n+=" "+A+" == 'number' ? ( ("+$+" = "+d+" === undefined || "+I+" "+k+"= "+d+") ? "+f+" "+O+"= "+I+" : "+f+" "+O+" "+d+" ) : ( ("+$+" = "+I+" === true) ? "+f+" "+O+"= "+d+" : "+f+" "+O+" "+d+" ) || "+f+" !== "+f+") { var op"+o+" = "+$+" ? '"+k+"' : '"+k+"='; ",c===void 0&&(P=g,p=t.errSchemaPath+"/"+g,d=I,h=E)}else{var F=typeof b=="number",C=k;if(F&&h){var q="'"+C+"'";n+=" if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),n+=" ( "+d+" === undefined || "+b+" "+k+"= "+d+" ? "+f+" "+O+"= "+b+" : "+f+" "+O+" "+d+" ) || "+f+" !== "+f+") { "}else{F&&c===void 0?($=!0,P=g,p=t.errSchemaPath+"/"+g,d=b,O+="="):(F&&(d=Math[v?"min":"max"](b,c)),b===(F?d:!0)?($=!0,P=g,p=t.errSchemaPath+"/"+g,O+="="):($=!1,C+="="));var q="'"+C+"'";n+=" if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),n+=" "+f+" "+O+" "+d+" || "+f+" !== "+f+") { "}}P=P||s;var R=R||[];R.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '"+(P||"_limit")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { comparison: "+q+", limit: "+d+", exclusive: "+$+" } ",t.opts.messages!==!1&&(n+=" , message: 'should be "+C+" ",h?n+="' + "+d:n+=""+d+"'"),t.opts.verbose&&(n+=" , schema: ",h?n+="validate.schema"+u:n+=""+c,n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var j=n;return n=R.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+j+"]); ":n+=" validate.errors = ["+j+"]; return false; ":n+=" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",m&&(n+=" else { "),n}}),F1=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,g,f="data"+(l||""),h=t.opts.$data&&c&&c.$data,d;if(h?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",d="schema"+o):d=c,!(h||typeof c=="number"))throw new Error(s+" must be number");var v=s=="maxItems"?">":"<";n+="if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),n+=" "+f+".length "+v+" "+d+") { ";var g=s,b=b||[];b.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '"+(g||"_limitItems")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { limit: "+d+" } ",t.opts.messages!==!1&&(n+=" , message: 'should NOT have ",s=="maxItems"?n+="more":n+="fewer",n+=" than ",h?n+="' + "+d+" + '":n+=""+c,n+=" items' "),t.opts.verbose&&(n+=" , schema: ",h?n+="validate.schema"+u:n+=""+c,n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var E=n;return n=b.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+E+"]); ":n+=" validate.errors = ["+E+"]; return false; ":n+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",m&&(n+=" else { "),n}}),L1=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,g,f="data"+(l||""),h=t.opts.$data&&c&&c.$data,d;if(h?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",d="schema"+o):d=c,!(h||typeof c=="number"))throw new Error(s+" must be number");var v=s=="maxLength"?">":"<";n+="if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),t.opts.unicode===!1?n+=" "+f+".length ":n+=" ucs2length("+f+") ",n+=" "+v+" "+d+") { ";var g=s,b=b||[];b.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '"+(g||"_limitLength")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { limit: "+d+" } ",t.opts.messages!==!1&&(n+=" , message: 'should NOT be ",s=="maxLength"?n+="longer":n+="shorter",n+=" than ",h?n+="' + "+d+" + '":n+=""+c,n+=" characters' "),t.opts.verbose&&(n+=" , schema: ",h?n+="validate.schema"+u:n+=""+c,n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var E=n;return n=b.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+E+"]); ":n+=" validate.errors = ["+E+"]; return false; ":n+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",m&&(n+=" else { "),n}}),U1=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,g,f="data"+(l||""),h=t.opts.$data&&c&&c.$data,d;if(h?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",d="schema"+o):d=c,!(h||typeof c=="number"))throw new Error(s+" must be number");var v=s=="maxProperties"?">":"<";n+="if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),n+=" Object.keys("+f+").length "+v+" "+d+") { ";var g=s,b=b||[];b.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '"+(g||"_limitProperties")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { limit: "+d+" } ",t.opts.messages!==!1&&(n+=" , message: 'should NOT have ",s=="maxProperties"?n+="more":n+="fewer",n+=" than ",h?n+="' + "+d+" + '":n+=""+c,n+=" properties' "),t.opts.verbose&&(n+=" , schema: ",h?n+="validate.schema"+u:n+=""+c,n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var E=n;return n=b.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+E+"]); ":n+=" validate.errors = ["+E+"]; return false; ":n+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",m&&(n+=" else { "),n}}),Bj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h=t.opts.$data&&c&&c.$data,d;if(h?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",d="schema"+o):d=c,!(h||typeof c=="number"))throw new Error(s+" must be number");n+="var division"+o+";if (",h&&(n+=" "+d+" !== undefined && ( typeof "+d+" != 'number' || "),n+=" (division"+o+" = "+f+" / "+d+", ",t.opts.multipleOfPrecision?n+=" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+t.opts.multipleOfPrecision+" ":n+=" division"+o+" !== parseInt(division"+o+") ",n+=" ) ",h&&(n+=" ) "),n+=" ) { ";var v=v||[];v.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { multipleOf: "+d+" } ",t.opts.messages!==!1&&(n+=" , message: 'should be multiple of ",h?n+="' + "+d:n+=""+d+"'"),t.opts.verbose&&(n+=" , schema: ",h?n+="validate.schema"+u:n+=""+c,n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var g=n;return n=v.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+g+"]); ":n+=" validate.errors = ["+g+"]; return false; ":n+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",m&&(n+=" else { "),n}}),Vj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="errs__"+o,d=t.util.copy(t);d.level++;var v="valid"+d.level;if(t.opts.strictKeywords?typeof c=="object"&&Object.keys(c).length>0||c===!1:t.util.schemaHasRules(c,t.RULES.all)){d.schema=c,d.schemaPath=u,d.errSchemaPath=p,n+=" var "+h+" = errors; ";var g=t.compositeRule;t.compositeRule=d.compositeRule=!0,d.createErrors=!1;var b;d.opts.allErrors&&(b=d.opts.allErrors,d.opts.allErrors=!1),n+=" "+t.validate(d)+" ",d.createErrors=!0,b&&(d.opts.allErrors=b),t.compositeRule=d.compositeRule=g,n+=" if ("+v+") { ";var E=E||[];E.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: {} ",t.opts.messages!==!1&&(n+=" , message: 'should NOT be valid' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var k=n;n=E.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+k+"]); ":n+=" validate.errors = ["+k+"]; return false; ":n+=" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ",t.opts.allErrors&&(n+=" } ")}else n+=" var err = ",t.createErrors!==!1?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: {} ",t.opts.messages!==!1&&(n+=" , message: 'should NOT be valid' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m&&(n+=" if (false) { ");return n}}),Gj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d="errs__"+o,v=t.util.copy(t),g="";v.level++;var b="valid"+v.level,E=v.baseId,k="prevValid"+o,O="passingSchemas"+o;n+="var "+d+" = errors , "+k+" = false , "+h+" = false , "+O+" = null; ";var P=t.compositeRule;t.compositeRule=v.compositeRule=!0;var I=c;if(I)for(var $,A=-1,F=I.length-1;A0||$===!1:t.util.schemaHasRules($,t.RULES.all))?(v.schema=$,v.schemaPath=u+"["+A+"]",v.errSchemaPath=p+"/"+A,n+=" "+t.validate(v)+" ",v.baseId=E):n+=" var "+b+" = true; ",A&&(n+=" if ("+b+" && "+k+") { "+h+" = false; "+O+" = ["+O+", "+A+"]; } else { ",g+="}"),n+=" if ("+b+") { "+h+" = "+k+" = true; "+O+" = "+A+"; }";return t.compositeRule=v.compositeRule=P,n+=""+g+"if (!"+h+") { var err = ",t.createErrors!==!1?(n+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { passingSchemas: "+O+" } ",t.opts.messages!==!1&&(n+=" , message: 'should match exactly one schema in oneOf' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!t.compositeRule&&m&&(t.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+="} else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; }",t.opts.allErrors&&(n+=" } "),n}}),Zj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h=t.opts.$data&&c&&c.$data,d;h?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",d="schema"+o):d=c;var v=h?"(new RegExp("+d+"))":t.usePattern(c);n+="if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'string') || "),n+=" !"+v+".test("+f+") ) { ";var g=g||[];g.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { pattern: ",h?n+=""+d:n+=""+t.util.toQuotedString(c),n+=" } ",t.opts.messages!==!1&&(n+=` , message: 'should match pattern "`,h?n+="' + "+d+" + '":n+=""+t.util.escapeQuotes(c),n+=`"' `),t.opts.verbose&&(n+=" , schema: ",h?n+="validate.schema"+u:n+=""+t.util.toQuotedString(c),n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var b=n;return n=g.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+b+"]); ":n+=" validate.errors = ["+b+"]; return false; ":n+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",m&&(n+=" else { "),n}}),Wj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="errs__"+o,d=t.util.copy(t),v="";d.level++;var g="valid"+d.level,b="key"+o,E="idx"+o,k=d.dataLevel=t.dataLevel+1,O="data"+k,P="dataProperties"+o,I=Object.keys(c||{}).filter(V),$=t.schema.patternProperties||{},A=Object.keys($).filter(V),F=t.schema.additionalProperties,q=I.length||A.length,C=F===!1,R=typeof F=="object"&&Object.keys(F).length,j=t.opts.removeAdditional,z=C||R||j,B=t.opts.ownProperties,G=t.baseId,te=t.schema.required;if(te&&!(t.opts.$data&&te.$data)&&te.length8)n+=" || validate.schema"+u+".hasOwnProperty("+b+") ";else{var re=I;if(re)for(var ce,Be=-1,be=re.length-1;Be0||Ue===!1:t.util.schemaHasRules(Ue,t.RULES.all)){var Qe=t.util.getProperty(ce),Ie=f+Qe,Ve=Ze&&Ue.default!==void 0;d.schema=Ue,d.schemaPath=u+Qe,d.errSchemaPath=p+"/"+t.util.escapeFragment(ce),d.errorPath=t.util.getPath(t.errorPath,ce,t.opts.jsonPointers),d.dataPathArr[k]=t.util.toQuotedString(ce);var he=t.validate(d);if(d.baseId=G,t.util.varOccurences(he,O)<2){he=t.util.varReplace(he,O,Ie);var Ke=Ie}else{var Ke=O;n+=" var "+O+" = "+Ie+"; "}if(Ve)n+=" "+he+" ";else{if(X&&X[ce]){n+=" if ( "+Ke+" === undefined ",B&&(n+=" || ! Object.prototype.hasOwnProperty.call("+f+", '"+t.util.escapeQuotes(ce)+"') "),n+=") { "+g+" = false; ";var Z=t.errorPath,ue=p,bt=t.util.escapeQuotes(ce);t.opts._errorDataPathProperty&&(t.errorPath=t.util.getPath(Z,ce,t.opts.jsonPointers)),p=t.errSchemaPath+"/required";var W=W||[];W.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { missingProperty: '"+bt+"' } ",t.opts.messages!==!1&&(n+=" , message: '",t.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+bt+"\\'",n+="' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var Q=n;n=W.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+Q+"]); ":n+=" validate.errors = ["+Q+"]; return false; ":n+=" var err = "+Q+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",p=ue,t.errorPath=Z,n+=" } else { "}else m?(n+=" if ( "+Ke+" === undefined ",B&&(n+=" || ! Object.prototype.hasOwnProperty.call("+f+", '"+t.util.escapeQuotes(ce)+"') "),n+=") { "+g+" = true; } else { "):(n+=" if ("+Ke+" !== undefined ",B&&(n+=" && Object.prototype.hasOwnProperty.call("+f+", '"+t.util.escapeQuotes(ce)+"') "),n+=" ) { ");n+=" "+he+" } "}}m&&(n+=" if ("+g+") { ",v+="}")}}if(A.length){var xt=A;if(xt)for(var xe,wt=-1,Br=xt.length-1;wt0||Ue===!1:t.util.schemaHasRules(Ue,t.RULES.all)){d.schema=Ue,d.schemaPath=t.schemaPath+".patternProperties"+t.util.getProperty(xe),d.errSchemaPath=t.errSchemaPath+"/patternProperties/"+t.util.escapeFragment(xe),B?n+=" "+P+" = "+P+" || Object.keys("+f+"); for (var "+E+"=0; "+E+"<"+P+".length; "+E+"++) { var "+b+" = "+P+"["+E+"]; ":n+=" for (var "+b+" in "+f+") { ",n+=" if ("+t.usePattern(xe)+".test("+b+")) { ",d.errorPath=t.util.getPathExpr(t.errorPath,b,t.opts.jsonPointers);var Ie=f+"["+b+"]";d.dataPathArr[k]=b;var he=t.validate(d);d.baseId=G,t.util.varOccurences(he,O)<2?n+=" "+t.util.varReplace(he,O,Ie)+" ":n+=" var "+O+" = "+Ie+"; "+he+" ",m&&(n+=" if (!"+g+") break; "),n+=" } ",m&&(n+=" else "+g+" = true; "),n+=" } ",m&&(n+=" if ("+g+") { ",v+="}")}}}return m&&(n+=" "+v+" if ("+h+" == errors) {"),n}}),Kj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="errs__"+o,d=t.util.copy(t),v="";d.level++;var g="valid"+d.level;if(n+="var "+h+" = errors;",t.opts.strictKeywords?typeof c=="object"&&Object.keys(c).length>0||c===!1:t.util.schemaHasRules(c,t.RULES.all)){d.schema=c,d.schemaPath=u,d.errSchemaPath=p;var b="key"+o,E="idx"+o,k="i"+o,O="' + "+b+" + '",P=d.dataLevel=t.dataLevel+1,I="data"+P,$="dataProperties"+o,A=t.opts.ownProperties,F=t.baseId;A&&(n+=" var "+$+" = undefined; "),A?n+=" "+$+" = "+$+" || Object.keys("+f+"); for (var "+E+"=0; "+E+"<"+$+".length; "+E+"++) { var "+b+" = "+$+"["+E+"]; ":n+=" for (var "+b+" in "+f+") { ",n+=" var startErrs"+o+" = errors; ";var q=b,C=t.compositeRule;t.compositeRule=d.compositeRule=!0;var R=t.validate(d);d.baseId=F,t.util.varOccurences(R,I)<2?n+=" "+t.util.varReplace(R,I,q)+" ":n+=" var "+I+" = "+q+"; "+R+" ",t.compositeRule=d.compositeRule=C,n+=" if (!"+g+") { for (var "+k+"=startErrs"+o+"; "+k+"{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d=t.opts.$data&&c&&c.$data,v;d?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",v="schema"+o):v=c;var g="schema"+o;if(!d)if(c.length0||I===!1:t.util.schemaHasRules(I,t.RULES.all))||(b[b.length]=k)}}else var b=c;if(d||b.length){var $=t.errorPath,A=d||b.length>=t.opts.loopRequired,F=t.opts.ownProperties;if(m)if(n+=" var missing"+o+"; ",A){d||(n+=" var "+g+" = validate.schema"+u+"; ");var q="i"+o,C="schema"+o+"["+q+"]",R="' + "+C+" + '";t.opts._errorDataPathProperty&&(t.errorPath=t.util.getPathExpr($,C,t.opts.jsonPointers)),n+=" var "+h+" = true; ",d&&(n+=" if (schema"+o+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+o+")) "+h+" = false; else {"),n+=" for (var "+q+" = 0; "+q+" < "+g+".length; "+q+"++) { "+h+" = "+f+"["+g+"["+q+"]] !== undefined ",F&&(n+=" && Object.prototype.hasOwnProperty.call("+f+", "+g+"["+q+"]) "),n+="; if (!"+h+") break; } ",d&&(n+=" } "),n+=" if (!"+h+") { ";var j=j||[];j.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { missingProperty: '"+R+"' } ",t.opts.messages!==!1&&(n+=" , message: '",t.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+R+"\\'",n+="' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var z=n;n=j.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+z+"]); ":n+=" validate.errors = ["+z+"]; return false; ":n+=" var err = "+z+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else{n+=" if ( ";var B=b;if(B)for(var G,q=-1,te=B.length-1;q{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d=t.opts.$data&&c&&c.$data,v;if(d?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",v="schema"+o):v=c,(c||d)&&t.opts.uniqueItems!==!1){d&&(n+=" var "+h+"; if ("+v+" === false || "+v+" === undefined) "+h+" = true; else if (typeof "+v+" != 'boolean') "+h+" = false; else { "),n+=" var i = "+f+".length , "+h+" = true , j; if (i > 1) { ";var g=t.schema.items&&t.schema.items.type,b=Array.isArray(g);if(!g||g=="object"||g=="array"||b&&(g.indexOf("object")>=0||g.indexOf("array")>=0))n+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+f+"[i], "+f+"[j])) { "+h+" = false; break outer; } } } ";else{n+=" var itemIndices = {}, item; for (;i--;) { var item = "+f+"[i]; ";var E="checkDataType"+(b?"s":"");n+=" if ("+t.util[E](g,"item",t.opts.strictNumbers,!0)+") continue; ",b&&(n+=` if (typeof item == 'string') item = '"' + item; `),n+=" if (typeof itemIndices[item] == 'number') { "+h+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}n+=" } ",d&&(n+=" } "),n+=" if (!"+h+") { ";var k=k||[];k.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { i: i, j: j } ",t.opts.messages!==!1&&(n+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),t.opts.verbose&&(n+=" , schema: ",d?n+="validate.schema"+u:n+=""+c,n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var O=n;n=k.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+O+"]); ":n+=" validate.errors = ["+O+"]; return false; ":n+=" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",m&&(n+=" else { ")}else m&&(n+=" if (true) { ");return n}}),Jj=Ce((r,e)=>{e.exports={$ref:jj(),allOf:Nj(),anyOf:Dj(),$comment:$j(),const:qj(),contains:Mj(),dependencies:Fj(),enum:Lj(),format:Uj(),if:zj(),items:Hj(),maximum:M1(),minimum:M1(),maxItems:F1(),minItems:F1(),maxLength:L1(),minLength:L1(),maxProperties:U1(),minProperties:U1(),multipleOf:Bj(),not:Vj(),oneOf:Gj(),pattern:Zj(),properties:Wj(),propertyNames:Kj(),required:Qj(),uniqueItems:Xj(),validate:eE()}}),Yj=Ce((r,e)=>{var a=Jj(),t=Cn().toHash;e.exports=function(){var i=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],n=["type","$comment"],o=["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"],l=["number","integer","string","array","object","boolean","null"];return i.all=t(n),i.types=t(l),i.forEach(function(c){c.rules=c.rules.map(function(u){var p;if(typeof u=="object"){var m=Object.keys(u)[0];p=u[m],u=m,p.forEach(function(h){n.push(h),i.all[h]=!0})}n.push(u);var f=i.all[u]={keyword:u,code:a[u],implements:p};return f}),i.all.$comment={keyword:"$comment",code:a.$comment},c.type&&(i.types[c.type]=c)}),i.keywords=t(n.concat(o)),i.custom={},i}}),eN=Ce((r,e)=>{var a=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(t,s){for(var i=0;i{var a=jd().MissingRef;e.exports=t;function t(s,i,n){var o=this;if(typeof this._opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");typeof i=="function"&&(n=i,i=void 0);var l=c(s).then(function(){var p=o._addSchema(s,void 0,i);return p.validate||u(p)});return n&&l.then(function(p){n(null,p)},n),l;function c(p){var m=p.$schema;return m&&!o.getSchema(m)?t.call(o,{$ref:m},!0):Promise.resolve()}function u(p){try{return o._compile(p)}catch(f){if(f instanceof a)return m(f);throw f}function m(f){var h=f.missingSchema;if(g(h))throw new Error("Schema "+h+" is loaded but "+f.missingRef+" cannot be resolved");var d=o._loadingSchemas[h];return d||(d=o._loadingSchemas[h]=o._opts.loadSchema(h),d.then(v,v)),d.then(function(b){if(!g(h))return c(b).then(function(){g(h)||o.addSchema(b,h,void 0,i)})}).then(function(){return u(p)});function v(){delete o._loadingSchemas[h]}function g(b){return o._refs[b]||o._schemas[b]}}}}}),rN=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f,h="data"+(l||""),d="valid"+o,v="errs__"+o,g=t.opts.$data&&c&&c.$data,b;g?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",b="schema"+o):b=c;var E=this,k="definition"+o,O=E.definition,P="",I,$,A,F,q;if(g&&O.$data){q="keywordValidate"+o;var C=O.validateSchema;n+=" var "+k+" = RULES.custom['"+s+"'].definition; var "+q+" = "+k+".validate;"}else{if(F=t.useCustomRule(E,c,t.schema,t),!F)return;b="validate.schema"+u,q=F.code,I=O.compile,$=O.inline,A=O.macro}var R=q+".errors",j="i"+o,z="ruleErr"+o,B=O.async;if(B&&!t.async)throw new Error("async keyword in sync schema");if($||A||(n+=""+R+" = null;"),n+="var "+v+" = errors;var "+d+";",g&&O.$data&&(P+="}",n+=" if ("+b+" === undefined) { "+d+" = true; } else { ",C&&(P+="}",n+=" "+d+" = "+k+".validateSchema("+b+"); if ("+d+") { ")),$)O.statements?n+=" "+F.validate+" ":n+=" "+d+" = "+F.validate+"; ";else if(A){var G=t.util.copy(t),P="";G.level++;var te="valid"+G.level;G.schema=F.validate,G.schemaPath="";var X=t.compositeRule;t.compositeRule=G.compositeRule=!0;var V=t.validate(G).replace(/validate\.schema/g,q);t.compositeRule=G.compositeRule=X,n+=" "+V}else{var re=re||[];re.push(n),n="",n+=" "+q+".call( ",t.opts.passContext?n+="this":n+="self",I||O.schema===!1?n+=" , "+h+" ":n+=" , "+b+" , "+h+" , validate.schema"+t.schemaPath+" ",n+=" , (dataPath || '')",t.errorPath!='""'&&(n+=" + "+t.errorPath);var ce=l?"data"+(l-1||""):"parentData",Be=l?t.dataPathArr[l]:"parentDataProperty";n+=" , "+ce+" , "+Be+" , rootData ) ";var be=n;n=re.pop(),O.errors===!1?(n+=" "+d+" = ",B&&(n+="await "),n+=""+be+"; "):B?(R="customErrors"+o,n+=" var "+R+" = null; try { "+d+" = await "+be+"; } catch (e) { "+d+" = false; if (e instanceof ValidationError) "+R+" = e.errors; else throw e; } "):n+=" "+R+" = null; "+d+" = "+be+"; "}if(O.modifying&&(n+=" if ("+ce+") "+h+" = "+ce+"["+Be+"];"),n+=""+P,O.valid)m&&(n+=" if (true) { ");else{n+=" if ( ",O.valid===void 0?(n+=" !",A?n+=""+te:n+=""+d):n+=" "+!O.valid+" ",n+=") { ",f=E.keyword;var re=re||[];re.push(n),n="";var re=re||[];re.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '"+(f||"custom")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { keyword: '"+E.keyword+"' } ",t.opts.messages!==!1&&(n+=` , message: 'should pass "`+E.keyword+`" keyword validation' `),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var qe=n;n=re.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+qe+"]); ":n+=" validate.errors = ["+qe+"]; return false; ":n+=" var err = "+qe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var xe=n;n=re.pop(),$?O.errors?O.errors!="full"&&(n+=" for (var "+j+"="+v+"; "+j+"{e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),aN=Ce((r,e)=>{var a=tE();e.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:a.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:a.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}}),sN=Ce((r,e)=>{var a=/^[a-z_$][a-z0-9_$-]*$/i,t=rN(),s=aN();e.exports={add:i,get:n,remove:o,validate:l};function i(c,u){var p=this.RULES;if(p.keywords[c])throw new Error("Keyword "+c+" is already defined");if(!a.test(c))throw new Error("Keyword "+c+" is not a valid identifier");if(u){this.validateKeyword(u,!0);var m=u.type;if(Array.isArray(m))for(var f=0;f{e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}}),iN=Ce((r,e)=>{var a=Cj(),t=Ad(),s=Ij(),i=J1(),n=Y1(),o=Aj(),l=Yj(),c=eN(),u=Cn();e.exports=v,v.prototype.validate=g,v.prototype.compile=b,v.prototype.addSchema=E,v.prototype.addMetaSchema=k,v.prototype.validateSchema=O,v.prototype.getSchema=I,v.prototype.removeSchema=F,v.prototype.addFormat=X,v.prototype.errorsText=te,v.prototype._addSchema=C,v.prototype._compile=R,v.prototype.compileAsync=tN();var p=sN();v.prototype.addKeyword=p.add,v.prototype.getKeyword=p.get,v.prototype.removeKeyword=p.remove,v.prototype.validateKeyword=p.validate;var m=jd();v.ValidationError=m.Validation,v.MissingRefError=m.MissingRef,v.$dataMetaSchema=c;var f="http://json-schema.org/draft-07/schema",h=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],d=["/properties"];function v(U){if(!(this instanceof v))return new v(U);U=this._opts=u.copy(U)||{},xe(this),this._schemas={},this._refs={},this._fragments={},this._formats=o(U.format),this._cache=U.cache||new s,this._loadingSchemas={},this._compilations=[],this.RULES=l(),this._getId=j(U),U.loopRequired=U.loopRequired||1/0,U.errorDataPath=="property"&&(U._errorDataPathProperty=!0),U.serialize===void 0&&(U.serialize=n),this._metaOpts=qe(this),U.formats&&ce(this),U.keywords&&Be(this),V(this),typeof U.meta=="object"&&this.addMetaSchema(U.meta),U.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),re(this)}function g(U,Z){var ee;if(typeof U=="string"){if(ee=this.getSchema(U),!ee)throw new Error('no schema with key or ref "'+U+'"')}else{var ue=this._addSchema(U);ee=ue.validate||this._compile(ue)}var W=ee(Z);return ee.$async!==!0&&(this.errors=ee.errors),W}function b(U,Z){var ee=this._addSchema(U,void 0,Z);return ee.validate||this._compile(ee)}function E(U,Z,ee,ue){if(Array.isArray(U)){for(var W=0;W0&&R.push("--allowedTools",P.join(",")),I.length>0&&R.push("--disallowedTools",I.join(",")),$&&Object.keys($).length>0&&R.push("--mcp-config",JSON.stringify({mcpServers:$})),a&&Object.keys(a).length>0&&R.push("--agents",JSON.stringify(a)),O&&R.push("--setting-sources",O.join(",")),A&&R.push("--strict-mcp-config"),v&&R.push("--permission-mode",v),g&&R.push("--allow-dangerously-skip-permissions"),d){if(h&&d===h)throw new Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");R.push("--fallback-model",d)}q&&R.push("--include-partial-messages");for(let V of e)R.push("--add-dir",V);if(C&&C.length>0)for(let V of C)if(V.type==="local")R.push("--plugin-dir",V.path);else throw new Error(`Unsupported plugin type: ${V.type}`);this.options.forkSession&&R.push("--fork-session"),this.options.resumeSessionAt&&R.push("--resume-session-at",this.options.resumeSessionAt);for(let[V,re]of Object.entries(n))re===null?R.push(`--${V}`):R.push(`--${V}`,re);if(l.CLAUDE_CODE_ENTRYPOINT||(l.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),!aa().existsSync(o)){let V=z1(o)?`Claude Code native binary not found at ${o}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${o}. Is options.pathToClaudeCodeExecutable set?`;throw new ReferenceError(V)}let z=z1(o),B=z?o:s,G=z?[...i,...R]:[...i,o,...R];this.logForDebugging(z?`Spawning Claude Code native binary: ${B} ${G.join(" ")}`:`Spawning Claude Code process: ${B} ${G.join(" ")}`);let te=l.DEBUG||c?"pipe":"ignore";this.child=(0,nE.spawn)(B,G,{cwd:t,stdio:["pipe","pipe",te],signal:this.abortController.signal,env:l}),this.childStdin=this.child.stdin,this.childStdout=this.child.stdout,(l.DEBUG||c)&&this.child.stderr.on("data",V=>{this.logForDebugging(V.toString())});let X=()=>{this.child&&!this.child.killed&&this.child.kill("SIGTERM")};this.processExitHandler=X,this.abortHandler=X,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.child.on("error",V=>{this.ready=!1,this.abortController.signal.aborted?this.exitError=new hs("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${V.message}`),this.logForDebugging(this.exitError.message))}),this.child.on("close",(V,re)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new hs("Claude Code process aborted by user");else{let ce=this.getProcessExitError(V,re);ce&&(this.exitError=ce,this.logForDebugging(ce.message))}}),this.ready=!0}catch(e){throw this.ready=!1,e}}getProcessExitError(e,a){if(e!==0&&e!==null)return new Error(`Claude Code process exited with code ${e}`);if(a)return new Error(`Claude Code process terminated by signal ${a}`)}logForDebugging(e){process.env.DEBUG&&process.stderr.write(`${e} +===========================`}var xd=require("path"),r1=require("url"),a1=require("events"),n1=require("child_process"),i1=require("readline"),ke=jt(require("fs"),1),o1=require("fs/promises"),f1=require("path"),m1=require("os"),vs=require("path"),Sd=require("process"),h1=require("crypto"),P$={},_j=Object.create,Ej=Object.getPrototypeOf,bd=Object.defineProperty,wj=Object.getOwnPropertyNames,Sj=Object.prototype.hasOwnProperty,Pj=(r,e,a)=>{a=r!=null?_j(Ej(r)):{};let t=e||!r||!r.__esModule?bd(a,"default",{value:r,enumerable:!0}):a;for(let s of wj(r))Sj.call(t,s)||bd(t,s,{get:()=>r[s],enumerable:!0});return t},Ce=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Rj=(r,e)=>{for(var a in e)bd(r,a,{get:e[a],enumerable:!0,configurable:!0,set:t=>e[a]=()=>t})},Tj=Ce((r,e)=>{(function(a,t){typeof r=="object"&&typeof e<"u"?t(r):typeof define=="function"&&define.amd?define(["exports"],t):t(a.URI=a.URI||{})})(r,function(a){function t(){for(var y=arguments.length,g=Array(y),S=0;S1){g[0]=g[0].slice(0,-1);for(var D=g.length-1,L=1;L= 0x80 (not a basic code point)","invalid-input":"Invalid input"},q=d-v,C=Math.floor,R=String.fromCharCode;function j(y){throw new RangeError(F[y])}function z(y,g){for(var S=[],D=y.length;D--;)S[D]=g(y[D]);return S}function B(y,g){var S=y.split("@"),D="";S.length>1&&(D=S[0]+"@",y=S[1]),y=y.replace(A,".");var L=y.split("."),K=z(L,g).join(".");return D+K}function G(y){for(var g=[],S=0,D=y.length;S=55296&&L<=56319&&S>1,g+=C(g/S);g>q*x>>1;L+=d)g=C(g/q);return C(L+(q+1)*g/(g+b))},ce=function(g){var S=[],D=g.length,L=0,K=O,ne=k,ge=g.lastIndexOf(P);ge<0&&(ge=0);for(var pe=0;pe=128&&j("not-basic"),S.push(g.charCodeAt(pe));for(var Ae=ge>0?ge+1:0;Ae=D&&j("invalid-input");var Te=X(g.charCodeAt(Ae++));(Te>=d||Te>C((h-L)/Re))&&j("overflow"),L+=Te*Re;var de=ye<=ne?v:ye>=ne+x?x:ye-ne;if(TeC(h/Xe)&&j("overflow"),Re*=Xe}var Ne=S.length+1;ne=re(L-ve,Ne,ve==0),C(L/Ne)>h-K&&j("overflow"),K+=C(L/Ne),L%=Ne,S.splice(L++,0,K)}return String.fromCodePoint.apply(String,S)},Be=function(g){var S=[];g=G(g);var D=g.length,L=O,K=0,ne=k,ge=!0,pe=!1,Ae=void 0;try{for(var ve=g[Symbol.iterator](),Re;!(ge=(Re=ve.next()).done);ge=!0){var ye=Re.value;ye<128&&S.push(R(ye))}}catch(Gr){pe=!0,Ae=Gr}finally{try{!ge&&ve.return&&ve.return()}finally{if(pe)throw Ae}}var Te=S.length,de=Te;for(Te&&S.push(P);de=L&&itC((h-K)/dt)&&j("overflow"),K+=(Xe-L)*dt,L=Xe;var ft=!0,Ht=!1,It=void 0;try{for(var Tr=g[Symbol.iterator](),vr;!(ft=(vr=Tr.next()).done);ft=!0){var gr=vr.value;if(grh&&j("overflow"),gr==L){for(var St=K,Bt=d;;Bt+=d){var Vt=Bt<=ne?v:Bt>=ne+x?x:Bt-ne;if(St>6|192).toString(16).toUpperCase()+"%"+(g&63|128).toString(16).toUpperCase():S="%"+(g>>12|224).toString(16).toUpperCase()+"%"+(g>>6&63|128).toString(16).toUpperCase()+"%"+(g&63|128).toString(16).toUpperCase(),S}function Z(y){for(var g="",S=0,D=y.length;S=194&&L<224){if(D-S>=6){var K=parseInt(y.substr(S+4,2),16);g+=String.fromCharCode((L&31)<<6|K&63)}else g+=y.substr(S,6);S+=6}else if(L>=224){if(D-S>=9){var ne=parseInt(y.substr(S+4,2),16),ge=parseInt(y.substr(S+7,2),16);g+=String.fromCharCode((L&15)<<12|(ne&63)<<6|ge&63)}else g+=y.substr(S,9);S+=9}else g+=y.substr(S,3),S+=3}return g}function ee(y,g){function S(D){var L=Z(D);return L.match(g.UNRESERVED)?L:D}return y.scheme&&(y.scheme=String(y.scheme).replace(g.PCT_ENCODED,S).toLowerCase().replace(g.NOT_SCHEME,"")),y.userinfo!==void 0&&(y.userinfo=String(y.userinfo).replace(g.PCT_ENCODED,S).replace(g.NOT_USERINFO,U).replace(g.PCT_ENCODED,n)),y.host!==void 0&&(y.host=String(y.host).replace(g.PCT_ENCODED,S).toLowerCase().replace(g.NOT_HOST,U).replace(g.PCT_ENCODED,n)),y.path!==void 0&&(y.path=String(y.path).replace(g.PCT_ENCODED,S).replace(y.scheme?g.NOT_PATH:g.NOT_PATH_NOSCHEME,U).replace(g.PCT_ENCODED,n)),y.query!==void 0&&(y.query=String(y.query).replace(g.PCT_ENCODED,S).replace(g.NOT_QUERY,U).replace(g.PCT_ENCODED,n)),y.fragment!==void 0&&(y.fragment=String(y.fragment).replace(g.PCT_ENCODED,S).replace(g.NOT_FRAGMENT,U).replace(g.PCT_ENCODED,n)),y}function ue(y){return y.replace(/^0*(.*)/,"$1")||"0"}function W(y,g){var S=y.match(g.IPV4ADDRESS)||[],D=m(S,2),L=D[1];return L?L.split(".").map(ue).join("."):y}function Q(y,g){var S=y.match(g.IPV6ADDRESS)||[],D=m(S,3),L=D[1],K=D[2];if(L){for(var ne=L.toLowerCase().split("::").reverse(),ge=m(ne,2),pe=ge[0],Ae=ge[1],ve=Ae?Ae.split(":").map(ue):[],Re=pe.split(":").map(ue),ye=g.IPV4ADDRESS.test(Re[Re.length-1]),Te=ye?7:8,de=Re.length-Te,Xe=Array(Te),Ne=0;Ne1){var Fe=Xe.slice(0,Me.index),it=Xe.slice(Me.index+Me.length);st=Fe.join(":")+"::"+it.join(":")}else st=Xe.join(":");return K&&(st+="%"+K),st}else return y}var ie=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,Ie="".match(/(){0}/)[1]===void 0;function he(y){var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},S={},D=g.iri!==!1?p:u;g.reference==="suffix"&&(y=(g.scheme?g.scheme+":":"")+"//"+y);var L=y.match(ie);if(L){Ie?(S.scheme=L[1],S.userinfo=L[3],S.host=L[4],S.port=parseInt(L[5],10),S.path=L[6]||"",S.query=L[7],S.fragment=L[8],isNaN(S.port)&&(S.port=L[5])):(S.scheme=L[1]||void 0,S.userinfo=y.indexOf("@")!==-1?L[3]:void 0,S.host=y.indexOf("//")!==-1?L[4]:void 0,S.port=parseInt(L[5],10),S.path=L[6]||"",S.query=y.indexOf("?")!==-1?L[7]:void 0,S.fragment=y.indexOf("#")!==-1?L[8]:void 0,isNaN(S.port)&&(S.port=y.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?L[4]:void 0)),S.host&&(S.host=Q(W(S.host,D),D)),S.scheme===void 0&&S.userinfo===void 0&&S.host===void 0&&S.port===void 0&&!S.path&&S.query===void 0?S.reference="same-document":S.scheme===void 0?S.reference="relative":S.fragment===void 0?S.reference="absolute":S.reference="uri",g.reference&&g.reference!=="suffix"&&g.reference!==S.reference&&(S.error=S.error||"URI is not a "+g.reference+" reference.");var K=Oe[(g.scheme||S.scheme||"").toLowerCase()];if(!g.unicodeSupport&&(!K||!K.unicodeSupport)){if(S.host&&(g.domainHost||K&&K.domainHost))try{S.host=xe.toASCII(S.host.replace(D.PCT_ENCODED,Z).toLowerCase())}catch(ne){S.error=S.error||"Host's domain name can not be converted to ASCII via punycode: "+ne}ee(S,u)}else ee(S,D);K&&K.parse&&K.parse(S,g)}else S.error=S.error||"URI can not be parsed.";return S}function Ze(y,g){var S=g.iri!==!1?p:u,D=[];return y.userinfo!==void 0&&(D.push(y.userinfo),D.push("@")),y.host!==void 0&&D.push(Q(W(String(y.host),S),S).replace(S.IPV6ADDRESS,function(L,K,ne){return"["+K+(ne?"%25"+ne:"")+"]"})),(typeof y.port=="number"||typeof y.port=="string")&&(D.push(":"),D.push(String(y.port))),D.length?D.join(""):void 0}var We=/^\.\.?\//,Ee=/^\/\.(\/|$)/,Ye=/^\/\.\.(\/|$)/,Ue=/^\/?(?:.|\n)*?(?=\/|$)/;function Qe(y){for(var g=[];y.length;)if(y.match(We))y=y.replace(We,"");else if(y.match(Ee))y=y.replace(Ee,"/");else if(y.match(Ye))y=y.replace(Ye,"/"),g.pop();else if(y==="."||y==="..")y="";else{var S=y.match(Ue);if(S){var D=S[0];y=y.slice(D.length),g.push(D)}else throw new Error("Unexpected dot segment condition")}return g.join("")}function Ve(y){var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},S=g.iri?p:u,D=[],L=Oe[(g.scheme||y.scheme||"").toLowerCase()];if(L&&L.serialize&&L.serialize(y,g),y.host&&!S.IPV6ADDRESS.test(y.host)){if(g.domainHost||L&&L.domainHost)try{y.host=g.iri?xe.toUnicode(y.host):xe.toASCII(y.host.replace(S.PCT_ENCODED,Z).toLowerCase())}catch(ge){y.error=y.error||"Host's domain name can not be converted to "+(g.iri?"Unicode":"ASCII")+" via punycode: "+ge}}ee(y,S),g.reference!=="suffix"&&y.scheme&&(D.push(y.scheme),D.push(":"));var K=Ze(y,g);if(K!==void 0&&(g.reference!=="suffix"&&D.push("//"),D.push(K),y.path&&y.path.charAt(0)!=="/"&&D.push("/")),y.path!==void 0){var ne=y.path;!g.absolutePath&&(!L||!L.absolutePath)&&(ne=Qe(ne)),K===void 0&&(ne=ne.replace(/^\/\//,"/%2F")),D.push(ne)}return y.query!==void 0&&(D.push("?"),D.push(y.query)),y.fragment!==void 0&&(D.push("#"),D.push(y.fragment)),D.join("")}function Ke(y,g){var S=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},D=arguments[3],L={};return D||(y=he(Ve(y,S),S),g=he(Ve(g,S),S)),S=S||{},!S.tolerant&&g.scheme?(L.scheme=g.scheme,L.userinfo=g.userinfo,L.host=g.host,L.port=g.port,L.path=Qe(g.path||""),L.query=g.query):(g.userinfo!==void 0||g.host!==void 0||g.port!==void 0?(L.userinfo=g.userinfo,L.host=g.host,L.port=g.port,L.path=Qe(g.path||""),L.query=g.query):(g.path?(g.path.charAt(0)==="/"?L.path=Qe(g.path):((y.userinfo!==void 0||y.host!==void 0||y.port!==void 0)&&!y.path?L.path="/"+g.path:y.path?L.path=y.path.slice(0,y.path.lastIndexOf("/")+1)+g.path:L.path=g.path,L.path=Qe(L.path)),L.query=g.query):(L.path=y.path,g.query!==void 0?L.query=g.query:L.query=y.query),L.userinfo=y.userinfo,L.host=y.host,L.port=y.port),L.scheme=y.scheme),L.fragment=g.fragment,L}function bt(y,g,S){var D=l({scheme:"null"},S);return Ve(Ke(he(y,D),he(g,D),D,!0),D)}function xt(y,g){return typeof y=="string"?y=Ve(he(y,g),g):i(y)==="object"&&(y=he(Ve(y,g),g)),y}function wt(y,g,S){return typeof y=="string"?y=Ve(he(y,S),S):i(y)==="object"&&(y=Ve(y,S)),typeof g=="string"?g=Ve(he(g,S),S):i(g)==="object"&&(g=Ve(g,S)),y===g}function Br(y,g){return y&&y.toString().replace(!g||!g.iri?u.ESCAPE:p.ESCAPE,U)}function Ct(y,g){return y&&y.toString().replace(!g||!g.iri?u.PCT_ENCODED:p.PCT_ENCODED,Z)}var ia={scheme:"http",domainHost:!0,parse:function(g,S){return g.host||(g.error=g.error||"HTTP URIs must have a host."),g},serialize:function(g,S){var D=String(g.scheme).toLowerCase()==="https";return(g.port===(D?443:80)||g.port==="")&&(g.port=void 0),g.path||(g.path="/"),g}},oa={scheme:"https",domainHost:ia.domainHost,parse:ia.parse,serialize:ia.serialize};function Nn(y){return typeof y.secure=="boolean"?y.secure:String(y.scheme).toLowerCase()==="wss"}var Ia={scheme:"ws",domainHost:!0,parse:function(g,S){var D=g;return D.secure=Nn(D),D.resourceName=(D.path||"/")+(D.query?"?"+D.query:""),D.path=void 0,D.query=void 0,D},serialize:function(g,S){if((g.port===(Nn(g)?443:80)||g.port==="")&&(g.port=void 0),typeof g.secure=="boolean"&&(g.scheme=g.secure?"wss":"ws",g.secure=void 0),g.resourceName){var D=g.resourceName.split("?"),L=m(D,2),K=L[0],ne=L[1];g.path=K&&K!=="/"?K:void 0,g.query=ne,g.resourceName=void 0}return g.fragment=void 0,g}},qi={scheme:"wss",domainHost:Ia.domainHost,parse:Ia.parse,serialize:Ia.serialize},Mi={},Jt=!0,Fi="[A-Za-z0-9\\-\\.\\_\\~"+(Jt?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",Yt="[0-9A-Fa-f]",ol=s(s("%[EFef]"+Yt+"%"+Yt+Yt+"%"+Yt+Yt)+"|"+s("%[89A-Fa-f]"+Yt+"%"+Yt+Yt)+"|"+s("%"+Yt+Yt)),cl="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",ll="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",ul=t(ll,'[\\"\\\\]'),ca="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",pl=new RegExp(Fi,"g"),Vr=new RegExp(ol,"g"),dl=new RegExp(t("[^]",cl,"[\\.]",'[\\"]',ul),"g"),js=new RegExp(t("[^]",Fi,ca),"g"),Li=js;function Dn(y){var g=Z(y);return g.match(pl)?g:y}var $n={scheme:"mailto",parse:function(g,S){var D=g,L=D.to=D.path?D.path.split(","):[];if(D.path=void 0,D.query){for(var K=!1,ne={},ge=D.query.split("&"),pe=0,Ae=ge.length;pe{e.exports=function a(t,s){if(t===s)return!0;if(t&&s&&typeof t=="object"&&typeof s=="object"){if(t.constructor!==s.constructor)return!1;var i,n,o;if(Array.isArray(t)){if(i=t.length,i!=s.length)return!1;for(n=i;n--!==0;)if(!a(t[n],s[n]))return!1;return!0}if(t.constructor===RegExp)return t.source===s.source&&t.flags===s.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===s.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===s.toString();if(o=Object.keys(t),i=o.length,i!==Object.keys(s).length)return!1;for(n=i;n--!==0;)if(!Object.prototype.hasOwnProperty.call(s,o[n]))return!1;for(n=i;n--!==0;){var l=o[n];if(!a(t[l],s[l]))return!1}return!0}return t!==t&&s!==s}}),kj=Ce((r,e)=>{e.exports=function(t){for(var s=0,i=t.length,n=0,o;n=55296&&o<=56319&&n{e.exports={copy:a,checkDataType:t,checkDataTypes:s,coerceToTypes:n,toHash:o,getProperty:u,escapeQuotes:p,equal:Id(),ucs2length:kj(),varOccurences:m,varReplace:f,schemaHasRules:h,schemaHasRulesExcept:d,schemaUnknownRules:v,toQuotedString:x,getPathExpr:b,getPath:E,getData:P,unescapeFragment:$,unescapeJsonPointer:q,escapeFragment:A,escapeJsonPointer:F};function a(C,R){R=R||{};for(var j in C)R[j]=C[j];return R}function t(C,R,j,z){var B=z?" !== ":" === ",G=z?" || ":" && ",te=z?"!":"",X=z?"":"!";switch(C){case"null":return R+B+"null";case"array":return te+"Array.isArray("+R+")";case"object":return"("+te+R+G+"typeof "+R+B+'"object"'+G+X+"Array.isArray("+R+"))";case"integer":return"(typeof "+R+B+'"number"'+G+X+"("+R+" % 1)"+G+R+B+R+(j?G+te+"isFinite("+R+")":"")+")";case"number":return"(typeof "+R+B+'"'+C+'"'+(j?G+te+"isFinite("+R+")":"")+")";default:return"typeof "+R+B+'"'+C+'"'}}function s(C,R,j){switch(C.length){case 1:return t(C[0],R,j,!0);default:var z="",B=o(C);B.array&&B.object&&(z=B.null?"(":"(!"+R+" || ",z+="typeof "+R+' !== "object")',delete B.null,delete B.array,delete B.object),B.number&&delete B.integer;for(var G in B)z+=(z?" && ":"")+t(G,R,j,!0);return z}}var i=o(["string","number","integer","boolean","null"]);function n(C,R){if(Array.isArray(R)){for(var j=[],z=0;z=R)throw new Error("Cannot access property/index "+z+" levels up, current level is "+R);return j[R-z]}if(z>R)throw new Error("Cannot access data "+z+" levels up, current level is "+R);if(G="data"+(R-z||""),!B)return G}for(var X=G,V=B.split("/"),re=0;re{var a=Cn();e.exports=t;function t(s){a.copy(s,this)}}),Oj=Ce((r,e)=>{var a=e.exports=function(i,n,o){typeof n=="function"&&(o=n,n={}),o=n.cb||o;var l=typeof o=="function"?o:o.pre||function(){},c=o.post||function(){};t(n,l,c,i,"",i)};a.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},a.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},a.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},a.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function t(i,n,o,l,c,u,p,m,f,h){if(l&&typeof l=="object"&&!Array.isArray(l)){n(l,c,u,p,m,f,h);for(var d in l){var v=l[d];if(Array.isArray(v)){if(d in a.arrayKeywords)for(var x=0;x{var a=Tj(),t=Id(),s=Cn(),i=JE(),n=Oj();e.exports=o,o.normalizeId=E,o.fullPath=v,o.url=k,o.ids=O,o.inlineRef=f,o.schema=l;function o(P,I,$){var A=this._refs[$];if(typeof A=="string")if(this._refs[A])A=this._refs[A];else return o.call(this,P,I,A);if(A=A||this._schemas[$],A instanceof i)return f(A.schema,this._opts.inlineRefs)?A.schema:A.validate||this._compile(A);var F=l.call(this,I,$),q,C,R;return F&&(q=F.schema,I=F.root,R=F.baseId),q instanceof i?C=q.validate||P.call(this,q.schema,I,void 0,R):q!==void 0&&(C=f(q,this._opts.inlineRefs)?q:P.call(this,q,I,void 0,R)),C}function l(P,I){var $=a.parse(I),A=x($),F=v(this._getId(P.schema));if(Object.keys(P.schema).length===0||A!==F){var q=E(A),C=this._refs[q];if(typeof C=="string")return c.call(this,P,C,$);if(C instanceof i)C.validate||this._compile(C),P=C;else if(C=this._schemas[q],C instanceof i){if(C.validate||this._compile(C),q==E(I))return{schema:C,root:P,baseId:F};P=C}else return;if(!P.schema)return;F=v(this._getId(P.schema))}return p.call(this,$,F,P.schema,P)}function c(P,I,$){var A=l.call(this,P,I);if(A){var F=A.schema,q=A.baseId;P=A.root;var C=this._getId(F);return C&&(q=k(q,C)),p.call(this,$,q,F,P)}}var u=s.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function p(P,I,$,A){if(P.fragment=P.fragment||"",P.fragment.slice(0,1)=="/"){for(var F=P.fragment.split("/"),q=1;q{var a=Ad();e.exports={Validation:i(t),MissingRef:i(s)};function t(n){this.message="validation failed",this.errors=n,this.ajv=this.validation=!0}s.message=function(n,o){return"can't resolve reference "+o+" from id "+n};function s(n,o,l){this.message=l||s.message(n,o),this.missingRef=a.url(n,o),this.missingSchema=a.normalizeId(a.fullPath(this.missingRef))}function i(n){return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}}),YE=Ce((r,e)=>{e.exports=function(a,t){t||(t={}),typeof t=="function"&&(t={cmp:t});var s=typeof t.cycles=="boolean"?t.cycles:!1,i=t.cmp&&(function(o){return function(l){return function(c,u){var p={key:c,value:l[c]},m={key:u,value:l[u]};return o(p,m)}}})(t.cmp),n=[];return(function o(l){if(l&&l.toJSON&&typeof l.toJSON=="function"&&(l=l.toJSON()),l!==void 0){if(typeof l=="number")return isFinite(l)?""+l:"null";if(typeof l!="object")return JSON.stringify(l);var c,u;if(Array.isArray(l)){for(u="[",c=0;c{e.exports=function(t,s,i){var n="",o=t.schema.$async===!0,l=t.util.schemaHasRulesExcept(t.schema,t.RULES.all,"$ref"),c=t.self._getId(t.schema);if(t.opts.strictKeywords){var u=t.util.schemaUnknownRules(t.schema,t.RULES.keywords);if(u){var p="unknown keyword: "+u;if(t.opts.strictKeywords==="log")t.logger.warn(p);else throw new Error(p)}}if(t.isTop&&(n+=" var validate = ",o&&(t.async=!0,n+="async "),n+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",c&&(t.opts.sourceCode||t.opts.processCode)&&(n+=" "+("/*# sourceURL="+c+" */")+" ")),typeof t.schema=="boolean"||!(l||t.schema.$ref)){var s="false schema",m=t.level,f=t.dataLevel,h=t.schema[s],d=t.schemaPath+t.util.getProperty(s),v=t.errSchemaPath+"/"+s,I=!t.opts.allErrors,F,x="data"+(f||""),P="valid"+m;if(t.schema===!1){t.isTop?I=!0:n+=" var "+P+" = false; ";var b=b||[];b.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '"+(F||"false schema")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(v)+" , params: {} ",t.opts.messages!==!1&&(n+=" , message: 'boolean schema is false' "),t.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+t.schemaPath+" , data: "+x+" "),n+=" } "):n+=" {} ";var E=n;n=b.pop(),!t.compositeRule&&I?t.async?n+=" throw new ValidationError(["+E+"]); ":n+=" validate.errors = ["+E+"]; return false; ":n+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else t.isTop?o?n+=" return data; ":n+=" validate.errors = null; return true; ":n+=" var "+P+" = true; ";return t.isTop&&(n+=" }; return validate; "),n}if(t.isTop){var k=t.isTop,m=t.level=0,f=t.dataLevel=0,x="data";if(t.rootId=t.resolve.fullPath(t.self._getId(t.root.schema)),t.baseId=t.baseId||t.rootId,delete t.isTop,t.dataPathArr=[""],t.schema.default!==void 0&&t.opts.useDefaults&&t.opts.strictDefaults){var O="default is ignored in the schema root";if(t.opts.strictDefaults==="log")t.logger.warn(O);else throw new Error(O)}n+=" var vErrors = null; ",n+=" var errors = 0; ",n+=" if (rootData === undefined) rootData = data; "}else{var{level:m,dataLevel:f}=t,x="data"+(f||"");if(c&&(t.baseId=t.resolve.url(t.baseId,c)),o&&!t.async)throw new Error("async schema in sync schema");n+=" var errs_"+m+" = errors;"}var P="valid"+m,I=!t.opts.allErrors,$="",A="",F,q=t.schema.type,C=Array.isArray(q);if(q&&t.opts.nullable&&t.schema.nullable===!0&&(C?q.indexOf("null")==-1&&(q=q.concat("null")):q!="null"&&(q=[q,"null"],C=!0)),C&&q.length==1&&(q=q[0],C=!1),t.schema.$ref&&l){if(t.opts.extendRefs=="fail")throw new Error('$ref: validation keywords used in schema at path "'+t.errSchemaPath+'" (see option extendRefs)');t.opts.extendRefs!==!0&&(l=!1,t.logger.warn('$ref: keywords ignored in schema at path "'+t.errSchemaPath+'"'))}if(t.schema.$comment&&t.opts.$comment&&(n+=" "+t.RULES.all.$comment.code(t,"$comment")),q){if(t.opts.coerceTypes)var R=t.util.coerceToTypes(t.opts.coerceTypes,q);var j=t.RULES.types[q];if(R||C||j===!0||j&&!Ue(j)){var d=t.schemaPath+".type",v=t.errSchemaPath+"/type",d=t.schemaPath+".type",v=t.errSchemaPath+"/type",z=C?"checkDataTypes":"checkDataType";if(n+=" if ("+t.util[z](q,x,t.opts.strictNumbers,!0)+") { ",R){var B="dataType"+m,G="coerced"+m;n+=" var "+B+" = typeof "+x+"; var "+G+" = undefined; ",t.opts.coerceTypes=="array"&&(n+=" if ("+B+" == 'object' && Array.isArray("+x+") && "+x+".length == 1) { "+x+" = "+x+"[0]; "+B+" = typeof "+x+"; if ("+t.util.checkDataType(t.schema.type,x,t.opts.strictNumbers)+") "+G+" = "+x+"; } "),n+=" if ("+G+" !== undefined) ; ";var te=R;if(te)for(var X,V=-1,re=te.length-1;V{var a=Ad(),t=Cn(),s=jd(),i=YE(),n=e1(),o=t.ucs2length,l=Id(),c=s.Validation;e.exports=u;function u(E,k,O,P){var I=this,$=this._opts,A=[void 0],F={},q=[],C={},R=[],j={},z=[];k=k||{schema:E,refVal:A,refs:F};var B=p.call(this,E,k,P),G=this._compilations[B.index];if(B.compiling)return G.callValidate=ce;var te=this._formats,X=this.RULES;try{var V=Be(E,k,O,P);G.validate=V;var re=G.callValidate;return re&&(re.schema=V.schema,re.errors=null,re.refs=V.refs,re.refVal=V.refVal,re.root=V.root,re.$async=V.$async,$.sourceCode&&(re.source=V.source)),V}finally{m.call(this,E,k,P)}function ce(){var W=G.validate,Q=W.apply(this,arguments);return ce.errors=W.errors,Q}function Be(W,Q,ie,Ie){var he=!Q||Q&&Q.schema==W;if(Q.schema!=k.schema)return u.call(I,W,Q,ie,Ie);var Ze=W.$async===!0,We=n({isTop:!0,schema:W,isRoot:he,baseId:Ie,root:Q,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:s.MissingRef,RULES:X,validate:n,util:t,resolve:a,resolveRef:be,usePattern:Z,useDefault:ee,useCustomRule:ue,opts:$,formats:te,logger:I.logger,self:I});We=b(A,v)+b(q,h)+b(R,d)+b(z,x)+We,$.processCode&&(We=$.processCode(We,W));var Ee;try{var Ye=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",We);Ee=Ye(I,X,te,k,A,R,z,l,o,c),A[0]=Ee}catch(Ue){throw I.logger.error("Error compiling schema, function code:",We),Ue}return Ee.schema=W,Ee.errors=null,Ee.refs=F,Ee.refVal=A,Ee.root=he?Ee:Q,Ze&&(Ee.$async=!0),$.sourceCode===!0&&(Ee.source={code:We,patterns:q,defaults:R}),Ee}function be(W,Q,ie){Q=a.url(W,Q);var Ie=F[Q],he,Ze;if(Ie!==void 0)return he=A[Ie],Ze="refVal["+Ie+"]",U(he,Ze);if(!ie&&k.refs){var We=k.refs[Q];if(We!==void 0)return he=k.refVal[We],Ze=qe(Q,he),U(he,Ze)}Ze=qe(Q);var Ee=a.call(I,Be,k,Q);if(Ee===void 0){var Ye=O&&O[Q];Ye&&(Ee=a.inlineRef(Ye,$.inlineRefs)?Ye:u.call(I,Ye,k,O,W))}if(Ee===void 0)xe(Q);else return Oe(Q,Ee),U(Ee,Ze)}function qe(W,Q){var ie=A.length;return A[ie]=Q,F[W]=ie,"refVal"+ie}function xe(W){delete F[W]}function Oe(W,Q){var ie=F[W];A[ie]=Q}function U(W,Q){return typeof W=="object"||typeof W=="boolean"?{code:Q,schema:W,inline:!0}:{code:Q,$async:W&&!!W.$async}}function Z(W){var Q=C[W];return Q===void 0&&(Q=C[W]=q.length,q[Q]=W),"pattern"+Q}function ee(W){switch(typeof W){case"boolean":case"number":return""+W;case"string":return t.toQuotedString(W);case"object":if(W===null)return"null";var Q=i(W),ie=j[Q];return ie===void 0&&(ie=j[Q]=R.length,R[ie]=W),"default"+ie}}function ue(W,Q,ie,Ie){if(I._opts.validateSchema!==!1){var he=W.definition.dependencies;if(he&&!he.every(function(bt){return Object.prototype.hasOwnProperty.call(ie,bt)}))throw new Error("parent schema must have all required keywords: "+he.join(","));var Ze=W.definition.validateSchema;if(Ze){var We=Ze(Q);if(!We){var Ee="keyword schema is invalid: "+I.errorsText(Ze.errors);if(I._opts.validateSchema=="log")I.logger.error(Ee);else throw new Error(Ee)}}}var Ye=W.definition.compile,Ue=W.definition.inline,Qe=W.definition.macro,Ve;if(Ye)Ve=Ye.call(I,Q,ie,Ie);else if(Qe)Ve=Qe.call(I,Q,ie,Ie),$.validateSchema!==!1&&I.validateSchema(Ve,!0);else if(Ue)Ve=Ue.call(I,Ie,W.keyword,Q,ie);else if(Ve=W.definition.validate,!Ve)return;if(Ve===void 0)throw new Error('custom keyword "'+W.keyword+'"failed to compile');var Ke=z.length;return z[Ke]=Ve,{code:"customRule"+Ke,validate:Ve}}}function p(E,k,O){var P=f.call(this,E,k,O);return P>=0?{index:P,compiling:!0}:(P=this._compilations.length,this._compilations[P]={schema:E,root:k,baseId:O},{index:P,compiling:!1})}function m(E,k,O){var P=f.call(this,E,k,O);P>=0&&this._compilations.splice(P,1)}function f(E,k,O){for(var P=0;P{var a=e.exports=function(){this._cache={}};a.prototype.put=function(s,i){this._cache[s]=i},a.prototype.get=function(s){return this._cache[s]},a.prototype.del=function(s){delete this._cache[s]},a.prototype.clear=function(){this._cache={}}}),Aj=Ce((r,e)=>{var a=Cn(),t=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,s=[0,31,28,31,30,31,30,31,31,30,31,30,31],i=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,n=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,o=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,l=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,c=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,p=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,m=/^(?:\/(?:[^~/]|~0|~1)*)*$/,f=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,h=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;e.exports=d;function d(A){return A=A=="full"?"full":"fast",a.copy(d[A])}d.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:$,uuid:p,"json-pointer":m,"json-pointer-uri-fragment":f,"relative-json-pointer":h},d.full={date:x,time:b,"date-time":k,uri:P,"uri-reference":l,"uri-template":c,url:u,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:$,uuid:p,"json-pointer":m,"json-pointer-uri-fragment":f,"relative-json-pointer":h};function v(A){return A%4===0&&(A%100!==0||A%400===0)}function x(A){var F=A.match(t);if(!F)return!1;var q=+F[1],C=+F[2],R=+F[3];return C>=1&&C<=12&&R>=1&&R<=(C==2&&v(q)?29:s[C])}function b(A,F){var q=A.match(i);if(!q)return!1;var C=q[1],R=q[2],j=q[3],z=q[5];return(C<=23&&R<=59&&j<=59||C==23&&R==59&&j==60)&&(!F||z)}var E=/t|\s/i;function k(A){var F=A.split(E);return F.length==2&&x(F[0])&&b(F[1],!0)}var O=/\/|:/;function P(A){return O.test(A)&&o.test(A)}var I=/[^\\]\\Z/;function $(A){if(I.test(A))return!1;try{return new RegExp(A),!0}catch{return!1}}}),jj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.errSchemaPath+"/"+s,p=!t.opts.allErrors,m="data"+(l||""),f="valid"+o,h,d;if(c=="#"||c=="#/")t.isRoot?(h=t.async,d="validate"):(h=t.root.schema.$async===!0,d="root.refVal[0]");else{var v=t.resolveRef(t.baseId,c,t.isRoot);if(v===void 0){var x=t.MissingRefError.message(t.baseId,c);if(t.opts.missingRefs=="fail"){t.logger.error(x);var b=b||[];b.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(u)+" , params: { ref: '"+t.util.escapeQuotes(c)+"' } ",t.opts.messages!==!1&&(n+=" , message: 'can\\'t resolve reference "+t.util.escapeQuotes(c)+"' "),t.opts.verbose&&(n+=" , schema: "+t.util.toQuotedString(c)+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+m+" "),n+=" } "):n+=" {} ";var E=n;n=b.pop(),!t.compositeRule&&p?t.async?n+=" throw new ValidationError(["+E+"]); ":n+=" validate.errors = ["+E+"]; return false; ":n+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",p&&(n+=" if (false) { ")}else if(t.opts.missingRefs=="ignore")t.logger.warn(x),p&&(n+=" if (true) { ");else throw new t.MissingRefError(t.baseId,c,x)}else if(v.inline){var k=t.util.copy(t);k.level++;var O="valid"+k.level;k.schema=v.schema,k.schemaPath="",k.errSchemaPath=c;var P=t.validate(k).replace(/validate\.schema/g,v.code);n+=" "+P+" ",p&&(n+=" if ("+O+") { ")}else h=v.$async===!0||t.async&&v.$async!==!1,d=v.code}if(d){var b=b||[];b.push(n),n="",t.opts.passContext?n+=" "+d+".call(this, ":n+=" "+d+"( ",n+=" "+m+", (dataPath || '')",t.errorPath!='""'&&(n+=" + "+t.errorPath);var I=l?"data"+(l-1||""):"parentData",$=l?t.dataPathArr[l]:"parentDataProperty";n+=" , "+I+" , "+$+", rootData) ";var A=n;if(n=b.pop(),h){if(!t.async)throw new Error("async schema referenced by sync schema");p&&(n+=" var "+f+"; "),n+=" try { await "+A+"; ",p&&(n+=" "+f+" = true; "),n+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",p&&(n+=" "+f+" = false; "),n+=" } ",p&&(n+=" if ("+f+") { ")}else n+=" if (!"+A+") { if (vErrors === null) vErrors = "+d+".errors; else vErrors = vErrors.concat("+d+".errors); errors = vErrors.length; } ",p&&(n+=" else { ")}return n}}),Nj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.schema[s],l=t.schemaPath+t.util.getProperty(s),c=t.errSchemaPath+"/"+s,u=!t.opts.allErrors,p=t.util.copy(t),m="";p.level++;var f="valid"+p.level,h=p.baseId,d=!0,v=o;if(v)for(var x,b=-1,E=v.length-1;b0||x===!1:t.util.schemaHasRules(x,t.RULES.all))&&(d=!1,p.schema=x,p.schemaPath=l+"["+b+"]",p.errSchemaPath=c+"/"+b,n+=" "+t.validate(p)+" ",p.baseId=h,u&&(n+=" if ("+f+") { ",m+="}"));return u&&(d?n+=" if (true) { ":n+=" "+m.slice(0,-1)+" "),n}}),Dj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d="errs__"+o,v=t.util.copy(t),x="";v.level++;var b="valid"+v.level,E=c.every(function(F){return t.opts.strictKeywords?typeof F=="object"&&Object.keys(F).length>0||F===!1:t.util.schemaHasRules(F,t.RULES.all)});if(E){var k=v.baseId;n+=" var "+d+" = errors; var "+h+" = false; ";var O=t.compositeRule;t.compositeRule=v.compositeRule=!0;var P=c;if(P)for(var I,$=-1,A=P.length-1;${e.exports=function(t,s,i){var n=" ",o=t.schema[s],l=t.errSchemaPath+"/"+s,c=!t.opts.allErrors,u=t.util.toQuotedString(o);return t.opts.$comment===!0?n+=" console.log("+u+");":typeof t.opts.$comment=="function"&&(n+=" self._opts.$comment("+u+", "+t.util.toQuotedString(l)+", validate.root.schema);"),n}}),qj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d=t.opts.$data&&c&&c.$data,v;d?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",v="schema"+o):v=c,d||(n+=" var schema"+o+" = validate.schema"+u+";"),n+="var "+h+" = equal("+f+", schema"+o+"); if (!"+h+") { ";var x=x||[];x.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'const' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { allowedValue: schema"+o+" } ",t.opts.messages!==!1&&(n+=" , message: 'should be equal to constant' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var b=n;return n=x.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+b+"]); ":n+=" validate.errors = ["+b+"]; return false; ":n+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" }",m&&(n+=" else { "),n}}),Mj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d="errs__"+o,v=t.util.copy(t),x="";v.level++;var b="valid"+v.level,E="i"+o,k=v.dataLevel=t.dataLevel+1,O="data"+k,P=t.baseId,I=t.opts.strictKeywords?typeof c=="object"&&Object.keys(c).length>0||c===!1:t.util.schemaHasRules(c,t.RULES.all);if(n+="var "+d+" = errors;var "+h+";",I){var $=t.compositeRule;t.compositeRule=v.compositeRule=!0,v.schema=c,v.schemaPath=u,v.errSchemaPath=p,n+=" var "+b+" = false; for (var "+E+" = 0; "+E+" < "+f+".length; "+E+"++) { ",v.errorPath=t.util.getPathExpr(t.errorPath,E,t.opts.jsonPointers,!0);var A=f+"["+E+"]";v.dataPathArr[k]=E;var F=t.validate(v);v.baseId=P,t.util.varOccurences(F,O)<2?n+=" "+t.util.varReplace(F,O,A)+" ":n+=" var "+O+" = "+A+"; "+F+" ",n+=" if ("+b+") break; } ",t.compositeRule=v.compositeRule=$,n+=" "+x+" if (!"+b+") {"}else n+=" if ("+f+".length == 0) {";var q=q||[];q.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: {} ",t.opts.messages!==!1&&(n+=" , message: 'should contain a valid item' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var C=n;return n=q.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+C+"]); ":n+=" validate.errors = ["+C+"]; return false; ":n+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { ",I&&(n+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } "),t.opts.allErrors&&(n+=" } "),n}}),Fj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="errs__"+o,d=t.util.copy(t),v="";d.level++;var x="valid"+d.level,b={},E={},k=t.opts.ownProperties;for($ in c)if($!="__proto__"){var O=c[$],P=Array.isArray(O)?E:b;P[$]=O}n+="var "+h+" = errors;";var I=t.errorPath;n+="var missing"+o+";";for(var $ in E)if(P=E[$],P.length){if(n+=" if ( "+f+t.util.getProperty($)+" !== undefined ",k&&(n+=" && Object.prototype.hasOwnProperty.call("+f+", '"+t.util.escapeQuotes($)+"') "),m){n+=" && ( ";var A=P;if(A)for(var F,q=-1,C=A.length-1;q0||O===!1:t.util.schemaHasRules(O,t.RULES.all))&&(n+=" "+x+" = true; if ( "+f+t.util.getProperty($)+" !== undefined ",k&&(n+=" && Object.prototype.hasOwnProperty.call("+f+", '"+t.util.escapeQuotes($)+"') "),n+=") { ",d.schema=O,d.schemaPath=u+t.util.getProperty($),d.errSchemaPath=p+"/"+t.util.escapeFragment($),n+=" "+t.validate(d)+" ",d.baseId=ce,n+=" } ",m&&(n+=" if ("+x+") { ",v+="}"))}return m&&(n+=" "+v+" if ("+h+" == errors) {"),n}}),Lj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d=t.opts.$data&&c&&c.$data,v;d?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",v="schema"+o):v=c;var x="i"+o,b="schema"+o;d||(n+=" var "+b+" = validate.schema"+u+";"),n+="var "+h+";",d&&(n+=" if (schema"+o+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+o+")) "+h+" = false; else {"),n+=""+h+" = false;for (var "+x+"=0; "+x+"<"+b+".length; "+x+"++) if (equal("+f+", "+b+"["+x+"])) { "+h+" = true; break; }",d&&(n+=" } "),n+=" if (!"+h+") { ";var E=E||[];E.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { allowedValues: schema"+o+" } ",t.opts.messages!==!1&&(n+=" , message: 'should be equal to one of the allowed values' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var k=n;return n=E.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+k+"]); ":n+=" validate.errors = ["+k+"]; return false; ":n+=" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" }",m&&(n+=" else { "),n}}),Uj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||"");if(t.opts.format===!1)return m&&(n+=" if (true) { "),n;var h=t.opts.$data&&c&&c.$data,d;h?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",d="schema"+o):d=c;var v=t.opts.unknownFormats,x=Array.isArray(v);if(h){var b="format"+o,E="isObject"+o,k="formatType"+o;n+=" var "+b+" = formats["+d+"]; var "+E+" = typeof "+b+" == 'object' && !("+b+" instanceof RegExp) && "+b+".validate; var "+k+" = "+E+" && "+b+".type || 'string'; if ("+E+") { ",t.async&&(n+=" var async"+o+" = "+b+".async; "),n+=" "+b+" = "+b+".validate; } if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'string') || "),n+=" (",v!="ignore"&&(n+=" ("+d+" && !"+b+" ",x&&(n+=" && self._opts.unknownFormats.indexOf("+d+") == -1 "),n+=") || "),n+=" ("+b+" && "+k+" == '"+i+"' && !(typeof "+b+" == 'function' ? ",t.async?n+=" (async"+o+" ? await "+b+"("+f+") : "+b+"("+f+")) ":n+=" "+b+"("+f+") ",n+=" : "+b+".test("+f+"))))) {"}else{var b=t.formats[c];if(!b){if(v=="ignore")return t.logger.warn('unknown format "'+c+'" ignored in schema at path "'+t.errSchemaPath+'"'),m&&(n+=" if (true) { "),n;if(x&&v.indexOf(c)>=0)return m&&(n+=" if (true) { "),n;throw new Error('unknown format "'+c+'" is used in schema at path "'+t.errSchemaPath+'"')}var E=typeof b=="object"&&!(b instanceof RegExp)&&b.validate,k=E&&b.type||"string";if(E){var O=b.async===!0;b=b.validate}if(k!=i)return m&&(n+=" if (true) { "),n;if(O){if(!t.async)throw new Error("async format in sync schema");var P="formats"+t.util.getProperty(c)+".validate";n+=" if (!(await "+P+"("+f+"))) { "}else{n+=" if (! ";var P="formats"+t.util.getProperty(c);E&&(P+=".validate"),typeof b=="function"?n+=" "+P+"("+f+") ":n+=" "+P+".test("+f+") ",n+=") { "}}var I=I||[];I.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'format' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { format: ",h?n+=""+d:n+=""+t.util.toQuotedString(c),n+=" } ",t.opts.messages!==!1&&(n+=` , message: 'should match format "`,h?n+="' + "+d+" + '":n+=""+t.util.escapeQuotes(c),n+=`"' `),t.opts.verbose&&(n+=" , schema: ",h?n+="validate.schema"+u:n+=""+t.util.toQuotedString(c),n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var $=n;return n=I.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+$+"]); ":n+=" validate.errors = ["+$+"]; return false; ":n+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",m&&(n+=" else { "),n}}),zj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d="errs__"+o,v=t.util.copy(t);v.level++;var x="valid"+v.level,b=t.schema.then,E=t.schema.else,k=b!==void 0&&(t.opts.strictKeywords?typeof b=="object"&&Object.keys(b).length>0||b===!1:t.util.schemaHasRules(b,t.RULES.all)),O=E!==void 0&&(t.opts.strictKeywords?typeof E=="object"&&Object.keys(E).length>0||E===!1:t.util.schemaHasRules(E,t.RULES.all)),P=v.baseId;if(k||O){var I;v.createErrors=!1,v.schema=c,v.schemaPath=u,v.errSchemaPath=p,n+=" var "+d+" = errors; var "+h+" = true; ";var $=t.compositeRule;t.compositeRule=v.compositeRule=!0,n+=" "+t.validate(v)+" ",v.baseId=P,v.createErrors=!0,n+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",t.compositeRule=v.compositeRule=$,k?(n+=" if ("+x+") { ",v.schema=t.schema.then,v.schemaPath=t.schemaPath+".then",v.errSchemaPath=t.errSchemaPath+"/then",n+=" "+t.validate(v)+" ",v.baseId=P,n+=" "+h+" = "+x+"; ",k&&O?(I="ifClause"+o,n+=" var "+I+" = 'then'; "):I="'then'",n+=" } ",O&&(n+=" else { ")):n+=" if (!"+x+") { ",O&&(v.schema=t.schema.else,v.schemaPath=t.schemaPath+".else",v.errSchemaPath=t.errSchemaPath+"/else",n+=" "+t.validate(v)+" ",v.baseId=P,n+=" "+h+" = "+x+"; ",k&&O?(I="ifClause"+o,n+=" var "+I+" = 'else'; "):I="'else'",n+=" } "),n+=" if (!"+h+") { var err = ",t.createErrors!==!1?(n+=" { keyword: 'if' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { failingKeyword: "+I+" } ",t.opts.messages!==!1&&(n+=` , message: 'should match "' + `+I+` + '" schema' `),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!t.compositeRule&&m&&(t.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+=" } ",m&&(n+=" else { ")}else m&&(n+=" if (true) { ");return n}}),Hj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d="errs__"+o,v=t.util.copy(t),x="";v.level++;var b="valid"+v.level,E="i"+o,k=v.dataLevel=t.dataLevel+1,O="data"+k,P=t.baseId;if(n+="var "+d+" = errors;var "+h+";",Array.isArray(c)){var I=t.schema.additionalItems;if(I===!1){n+=" "+h+" = "+f+".length <= "+c.length+"; ";var $=p;p=t.errSchemaPath+"/additionalItems",n+=" if (!"+h+") { ";var A=A||[];A.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { limit: "+c.length+" } ",t.opts.messages!==!1&&(n+=" , message: 'should NOT have more than "+c.length+" items' "),t.opts.verbose&&(n+=" , schema: false , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var F=n;n=A.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+F+"]); ":n+=" validate.errors = ["+F+"]; return false; ":n+=" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",p=$,m&&(x+="}",n+=" else { ")}var q=c;if(q){for(var C,R=-1,j=q.length-1;R0||C===!1:t.util.schemaHasRules(C,t.RULES.all)){n+=" "+b+" = true; if ("+f+".length > "+R+") { ";var z=f+"["+R+"]";v.schema=C,v.schemaPath=u+"["+R+"]",v.errSchemaPath=p+"/"+R,v.errorPath=t.util.getPathExpr(t.errorPath,R,t.opts.jsonPointers,!0),v.dataPathArr[k]=R;var B=t.validate(v);v.baseId=P,t.util.varOccurences(B,O)<2?n+=" "+t.util.varReplace(B,O,z)+" ":n+=" var "+O+" = "+z+"; "+B+" ",n+=" } ",m&&(n+=" if ("+b+") { ",x+="}")}}if(typeof I=="object"&&(t.opts.strictKeywords?typeof I=="object"&&Object.keys(I).length>0||I===!1:t.util.schemaHasRules(I,t.RULES.all))){v.schema=I,v.schemaPath=t.schemaPath+".additionalItems",v.errSchemaPath=t.errSchemaPath+"/additionalItems",n+=" "+b+" = true; if ("+f+".length > "+c.length+") { for (var "+E+" = "+c.length+"; "+E+" < "+f+".length; "+E+"++) { ",v.errorPath=t.util.getPathExpr(t.errorPath,E,t.opts.jsonPointers,!0);var z=f+"["+E+"]";v.dataPathArr[k]=E;var B=t.validate(v);v.baseId=P,t.util.varOccurences(B,O)<2?n+=" "+t.util.varReplace(B,O,z)+" ":n+=" var "+O+" = "+z+"; "+B+" ",m&&(n+=" if (!"+b+") break; "),n+=" } } ",m&&(n+=" if ("+b+") { ",x+="}")}}else if(t.opts.strictKeywords?typeof c=="object"&&Object.keys(c).length>0||c===!1:t.util.schemaHasRules(c,t.RULES.all)){v.schema=c,v.schemaPath=u,v.errSchemaPath=p,n+=" for (var "+E+" = 0; "+E+" < "+f+".length; "+E+"++) { ",v.errorPath=t.util.getPathExpr(t.errorPath,E,t.opts.jsonPointers,!0);var z=f+"["+E+"]";v.dataPathArr[k]=E;var B=t.validate(v);v.baseId=P,t.util.varOccurences(B,O)<2?n+=" "+t.util.varReplace(B,O,z)+" ":n+=" var "+O+" = "+z+"; "+B+" ",m&&(n+=" if (!"+b+") break; "),n+=" }"}return m&&(n+=" "+x+" if ("+d+" == errors) {"),n}}),ME=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,P,f="data"+(l||""),h=t.opts.$data&&c&&c.$data,d;h?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",d="schema"+o):d=c;var v=s=="maximum",x=v?"exclusiveMaximum":"exclusiveMinimum",b=t.schema[x],E=t.opts.$data&&b&&b.$data,k=v?"<":">",O=v?">":"<",P=void 0;if(!(h||typeof c=="number"||c===void 0))throw new Error(s+" must be number");if(!(E||b===void 0||typeof b=="number"||typeof b=="boolean"))throw new Error(x+" must be number or boolean");if(E){var I=t.util.getData(b.$data,l,t.dataPathArr),$="exclusive"+o,A="exclType"+o,F="exclIsNumber"+o,q="op"+o,C="' + "+q+" + '";n+=" var schemaExcl"+o+" = "+I+"; ",I="schemaExcl"+o,n+=" var "+$+"; var "+A+" = typeof "+I+"; if ("+A+" != 'boolean' && "+A+" != 'undefined' && "+A+" != 'number') { ";var P=x,R=R||[];R.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '"+(P||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: {} ",t.opts.messages!==!1&&(n+=" , message: '"+x+" should be boolean' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var j=n;n=R.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+j+"]); ":n+=" validate.errors = ["+j+"]; return false; ":n+=" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),n+=" "+A+" == 'number' ? ( ("+$+" = "+d+" === undefined || "+I+" "+k+"= "+d+") ? "+f+" "+O+"= "+I+" : "+f+" "+O+" "+d+" ) : ( ("+$+" = "+I+" === true) ? "+f+" "+O+"= "+d+" : "+f+" "+O+" "+d+" ) || "+f+" !== "+f+") { var op"+o+" = "+$+" ? '"+k+"' : '"+k+"='; ",c===void 0&&(P=x,p=t.errSchemaPath+"/"+x,d=I,h=E)}else{var F=typeof b=="number",C=k;if(F&&h){var q="'"+C+"'";n+=" if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),n+=" ( "+d+" === undefined || "+b+" "+k+"= "+d+" ? "+f+" "+O+"= "+b+" : "+f+" "+O+" "+d+" ) || "+f+" !== "+f+") { "}else{F&&c===void 0?($=!0,P=x,p=t.errSchemaPath+"/"+x,d=b,O+="="):(F&&(d=Math[v?"min":"max"](b,c)),b===(F?d:!0)?($=!0,P=x,p=t.errSchemaPath+"/"+x,O+="="):($=!1,C+="="));var q="'"+C+"'";n+=" if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),n+=" "+f+" "+O+" "+d+" || "+f+" !== "+f+") { "}}P=P||s;var R=R||[];R.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '"+(P||"_limit")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { comparison: "+q+", limit: "+d+", exclusive: "+$+" } ",t.opts.messages!==!1&&(n+=" , message: 'should be "+C+" ",h?n+="' + "+d:n+=""+d+"'"),t.opts.verbose&&(n+=" , schema: ",h?n+="validate.schema"+u:n+=""+c,n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var j=n;return n=R.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+j+"]); ":n+=" validate.errors = ["+j+"]; return false; ":n+=" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",m&&(n+=" else { "),n}}),FE=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,x,f="data"+(l||""),h=t.opts.$data&&c&&c.$data,d;if(h?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",d="schema"+o):d=c,!(h||typeof c=="number"))throw new Error(s+" must be number");var v=s=="maxItems"?">":"<";n+="if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),n+=" "+f+".length "+v+" "+d+") { ";var x=s,b=b||[];b.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '"+(x||"_limitItems")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { limit: "+d+" } ",t.opts.messages!==!1&&(n+=" , message: 'should NOT have ",s=="maxItems"?n+="more":n+="fewer",n+=" than ",h?n+="' + "+d+" + '":n+=""+c,n+=" items' "),t.opts.verbose&&(n+=" , schema: ",h?n+="validate.schema"+u:n+=""+c,n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var E=n;return n=b.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+E+"]); ":n+=" validate.errors = ["+E+"]; return false; ":n+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",m&&(n+=" else { "),n}}),LE=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,x,f="data"+(l||""),h=t.opts.$data&&c&&c.$data,d;if(h?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",d="schema"+o):d=c,!(h||typeof c=="number"))throw new Error(s+" must be number");var v=s=="maxLength"?">":"<";n+="if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),t.opts.unicode===!1?n+=" "+f+".length ":n+=" ucs2length("+f+") ",n+=" "+v+" "+d+") { ";var x=s,b=b||[];b.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '"+(x||"_limitLength")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { limit: "+d+" } ",t.opts.messages!==!1&&(n+=" , message: 'should NOT be ",s=="maxLength"?n+="longer":n+="shorter",n+=" than ",h?n+="' + "+d+" + '":n+=""+c,n+=" characters' "),t.opts.verbose&&(n+=" , schema: ",h?n+="validate.schema"+u:n+=""+c,n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var E=n;return n=b.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+E+"]); ":n+=" validate.errors = ["+E+"]; return false; ":n+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",m&&(n+=" else { "),n}}),UE=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,x,f="data"+(l||""),h=t.opts.$data&&c&&c.$data,d;if(h?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",d="schema"+o):d=c,!(h||typeof c=="number"))throw new Error(s+" must be number");var v=s=="maxProperties"?">":"<";n+="if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),n+=" Object.keys("+f+").length "+v+" "+d+") { ";var x=s,b=b||[];b.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '"+(x||"_limitProperties")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { limit: "+d+" } ",t.opts.messages!==!1&&(n+=" , message: 'should NOT have ",s=="maxProperties"?n+="more":n+="fewer",n+=" than ",h?n+="' + "+d+" + '":n+=""+c,n+=" properties' "),t.opts.verbose&&(n+=" , schema: ",h?n+="validate.schema"+u:n+=""+c,n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var E=n;return n=b.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+E+"]); ":n+=" validate.errors = ["+E+"]; return false; ":n+=" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",m&&(n+=" else { "),n}}),Bj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h=t.opts.$data&&c&&c.$data,d;if(h?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",d="schema"+o):d=c,!(h||typeof c=="number"))throw new Error(s+" must be number");n+="var division"+o+";if (",h&&(n+=" "+d+" !== undefined && ( typeof "+d+" != 'number' || "),n+=" (division"+o+" = "+f+" / "+d+", ",t.opts.multipleOfPrecision?n+=" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+t.opts.multipleOfPrecision+" ":n+=" division"+o+" !== parseInt(division"+o+") ",n+=" ) ",h&&(n+=" ) "),n+=" ) { ";var v=v||[];v.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { multipleOf: "+d+" } ",t.opts.messages!==!1&&(n+=" , message: 'should be multiple of ",h?n+="' + "+d:n+=""+d+"'"),t.opts.verbose&&(n+=" , schema: ",h?n+="validate.schema"+u:n+=""+c,n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var x=n;return n=v.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+x+"]); ":n+=" validate.errors = ["+x+"]; return false; ":n+=" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",m&&(n+=" else { "),n}}),Vj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="errs__"+o,d=t.util.copy(t);d.level++;var v="valid"+d.level;if(t.opts.strictKeywords?typeof c=="object"&&Object.keys(c).length>0||c===!1:t.util.schemaHasRules(c,t.RULES.all)){d.schema=c,d.schemaPath=u,d.errSchemaPath=p,n+=" var "+h+" = errors; ";var x=t.compositeRule;t.compositeRule=d.compositeRule=!0,d.createErrors=!1;var b;d.opts.allErrors&&(b=d.opts.allErrors,d.opts.allErrors=!1),n+=" "+t.validate(d)+" ",d.createErrors=!0,b&&(d.opts.allErrors=b),t.compositeRule=d.compositeRule=x,n+=" if ("+v+") { ";var E=E||[];E.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: {} ",t.opts.messages!==!1&&(n+=" , message: 'should NOT be valid' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var k=n;n=E.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+k+"]); ":n+=" validate.errors = ["+k+"]; return false; ":n+=" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ",t.opts.allErrors&&(n+=" } ")}else n+=" var err = ",t.createErrors!==!1?(n+=" { keyword: 'not' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: {} ",t.opts.messages!==!1&&(n+=" , message: 'should NOT be valid' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",m&&(n+=" if (false) { ");return n}}),Gj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d="errs__"+o,v=t.util.copy(t),x="";v.level++;var b="valid"+v.level,E=v.baseId,k="prevValid"+o,O="passingSchemas"+o;n+="var "+d+" = errors , "+k+" = false , "+h+" = false , "+O+" = null; ";var P=t.compositeRule;t.compositeRule=v.compositeRule=!0;var I=c;if(I)for(var $,A=-1,F=I.length-1;A0||$===!1:t.util.schemaHasRules($,t.RULES.all))?(v.schema=$,v.schemaPath=u+"["+A+"]",v.errSchemaPath=p+"/"+A,n+=" "+t.validate(v)+" ",v.baseId=E):n+=" var "+b+" = true; ",A&&(n+=" if ("+b+" && "+k+") { "+h+" = false; "+O+" = ["+O+", "+A+"]; } else { ",x+="}"),n+=" if ("+b+") { "+h+" = "+k+" = true; "+O+" = "+A+"; }";return t.compositeRule=v.compositeRule=P,n+=""+x+"if (!"+h+") { var err = ",t.createErrors!==!1?(n+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { passingSchemas: "+O+" } ",t.opts.messages!==!1&&(n+=" , message: 'should match exactly one schema in oneOf' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ",n+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!t.compositeRule&&m&&(t.async?n+=" throw new ValidationError(vErrors); ":n+=" validate.errors = vErrors; return false; "),n+="} else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; }",t.opts.allErrors&&(n+=" } "),n}}),Zj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h=t.opts.$data&&c&&c.$data,d;h?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",d="schema"+o):d=c;var v=h?"(new RegExp("+d+"))":t.usePattern(c);n+="if ( ",h&&(n+=" ("+d+" !== undefined && typeof "+d+" != 'string') || "),n+=" !"+v+".test("+f+") ) { ";var x=x||[];x.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { pattern: ",h?n+=""+d:n+=""+t.util.toQuotedString(c),n+=" } ",t.opts.messages!==!1&&(n+=` , message: 'should match pattern "`,h?n+="' + "+d+" + '":n+=""+t.util.escapeQuotes(c),n+=`"' `),t.opts.verbose&&(n+=" , schema: ",h?n+="validate.schema"+u:n+=""+t.util.toQuotedString(c),n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var b=n;return n=x.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+b+"]); ":n+=" validate.errors = ["+b+"]; return false; ":n+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+="} ",m&&(n+=" else { "),n}}),Wj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="errs__"+o,d=t.util.copy(t),v="";d.level++;var x="valid"+d.level,b="key"+o,E="idx"+o,k=d.dataLevel=t.dataLevel+1,O="data"+k,P="dataProperties"+o,I=Object.keys(c||{}).filter(V),$=t.schema.patternProperties||{},A=Object.keys($).filter(V),F=t.schema.additionalProperties,q=I.length||A.length,C=F===!1,R=typeof F=="object"&&Object.keys(F).length,j=t.opts.removeAdditional,z=C||R||j,B=t.opts.ownProperties,G=t.baseId,te=t.schema.required;if(te&&!(t.opts.$data&&te.$data)&&te.length8)n+=" || validate.schema"+u+".hasOwnProperty("+b+") ";else{var re=I;if(re)for(var ce,Be=-1,be=re.length-1;Be0||Ue===!1:t.util.schemaHasRules(Ue,t.RULES.all)){var Qe=t.util.getProperty(ce),Ie=f+Qe,Ve=Ze&&Ue.default!==void 0;d.schema=Ue,d.schemaPath=u+Qe,d.errSchemaPath=p+"/"+t.util.escapeFragment(ce),d.errorPath=t.util.getPath(t.errorPath,ce,t.opts.jsonPointers),d.dataPathArr[k]=t.util.toQuotedString(ce);var he=t.validate(d);if(d.baseId=G,t.util.varOccurences(he,O)<2){he=t.util.varReplace(he,O,Ie);var Ke=Ie}else{var Ke=O;n+=" var "+O+" = "+Ie+"; "}if(Ve)n+=" "+he+" ";else{if(X&&X[ce]){n+=" if ( "+Ke+" === undefined ",B&&(n+=" || ! Object.prototype.hasOwnProperty.call("+f+", '"+t.util.escapeQuotes(ce)+"') "),n+=") { "+x+" = false; ";var Z=t.errorPath,ue=p,bt=t.util.escapeQuotes(ce);t.opts._errorDataPathProperty&&(t.errorPath=t.util.getPath(Z,ce,t.opts.jsonPointers)),p=t.errSchemaPath+"/required";var W=W||[];W.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { missingProperty: '"+bt+"' } ",t.opts.messages!==!1&&(n+=" , message: '",t.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+bt+"\\'",n+="' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var Q=n;n=W.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+Q+"]); ":n+=" validate.errors = ["+Q+"]; return false; ":n+=" var err = "+Q+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",p=ue,t.errorPath=Z,n+=" } else { "}else m?(n+=" if ( "+Ke+" === undefined ",B&&(n+=" || ! Object.prototype.hasOwnProperty.call("+f+", '"+t.util.escapeQuotes(ce)+"') "),n+=") { "+x+" = true; } else { "):(n+=" if ("+Ke+" !== undefined ",B&&(n+=" && Object.prototype.hasOwnProperty.call("+f+", '"+t.util.escapeQuotes(ce)+"') "),n+=" ) { ");n+=" "+he+" } "}}m&&(n+=" if ("+x+") { ",v+="}")}}if(A.length){var xt=A;if(xt)for(var xe,wt=-1,Br=xt.length-1;wt0||Ue===!1:t.util.schemaHasRules(Ue,t.RULES.all)){d.schema=Ue,d.schemaPath=t.schemaPath+".patternProperties"+t.util.getProperty(xe),d.errSchemaPath=t.errSchemaPath+"/patternProperties/"+t.util.escapeFragment(xe),B?n+=" "+P+" = "+P+" || Object.keys("+f+"); for (var "+E+"=0; "+E+"<"+P+".length; "+E+"++) { var "+b+" = "+P+"["+E+"]; ":n+=" for (var "+b+" in "+f+") { ",n+=" if ("+t.usePattern(xe)+".test("+b+")) { ",d.errorPath=t.util.getPathExpr(t.errorPath,b,t.opts.jsonPointers);var Ie=f+"["+b+"]";d.dataPathArr[k]=b;var he=t.validate(d);d.baseId=G,t.util.varOccurences(he,O)<2?n+=" "+t.util.varReplace(he,O,Ie)+" ":n+=" var "+O+" = "+Ie+"; "+he+" ",m&&(n+=" if (!"+x+") break; "),n+=" } ",m&&(n+=" else "+x+" = true; "),n+=" } ",m&&(n+=" if ("+x+") { ",v+="}")}}}return m&&(n+=" "+v+" if ("+h+" == errors) {"),n}}),Kj=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="errs__"+o,d=t.util.copy(t),v="";d.level++;var x="valid"+d.level;if(n+="var "+h+" = errors;",t.opts.strictKeywords?typeof c=="object"&&Object.keys(c).length>0||c===!1:t.util.schemaHasRules(c,t.RULES.all)){d.schema=c,d.schemaPath=u,d.errSchemaPath=p;var b="key"+o,E="idx"+o,k="i"+o,O="' + "+b+" + '",P=d.dataLevel=t.dataLevel+1,I="data"+P,$="dataProperties"+o,A=t.opts.ownProperties,F=t.baseId;A&&(n+=" var "+$+" = undefined; "),A?n+=" "+$+" = "+$+" || Object.keys("+f+"); for (var "+E+"=0; "+E+"<"+$+".length; "+E+"++) { var "+b+" = "+$+"["+E+"]; ":n+=" for (var "+b+" in "+f+") { ",n+=" var startErrs"+o+" = errors; ";var q=b,C=t.compositeRule;t.compositeRule=d.compositeRule=!0;var R=t.validate(d);d.baseId=F,t.util.varOccurences(R,I)<2?n+=" "+t.util.varReplace(R,I,q)+" ":n+=" var "+I+" = "+q+"; "+R+" ",t.compositeRule=d.compositeRule=C,n+=" if (!"+x+") { for (var "+k+"=startErrs"+o+"; "+k+"{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d=t.opts.$data&&c&&c.$data,v;d?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",v="schema"+o):v=c;var x="schema"+o;if(!d)if(c.length0||I===!1:t.util.schemaHasRules(I,t.RULES.all))||(b[b.length]=k)}}else var b=c;if(d||b.length){var $=t.errorPath,A=d||b.length>=t.opts.loopRequired,F=t.opts.ownProperties;if(m)if(n+=" var missing"+o+"; ",A){d||(n+=" var "+x+" = validate.schema"+u+"; ");var q="i"+o,C="schema"+o+"["+q+"]",R="' + "+C+" + '";t.opts._errorDataPathProperty&&(t.errorPath=t.util.getPathExpr($,C,t.opts.jsonPointers)),n+=" var "+h+" = true; ",d&&(n+=" if (schema"+o+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+o+")) "+h+" = false; else {"),n+=" for (var "+q+" = 0; "+q+" < "+x+".length; "+q+"++) { "+h+" = "+f+"["+x+"["+q+"]] !== undefined ",F&&(n+=" && Object.prototype.hasOwnProperty.call("+f+", "+x+"["+q+"]) "),n+="; if (!"+h+") break; } ",d&&(n+=" } "),n+=" if (!"+h+") { ";var j=j||[];j.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'required' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { missingProperty: '"+R+"' } ",t.opts.messages!==!1&&(n+=" , message: '",t.opts._errorDataPathProperty?n+="is a required property":n+="should have required property \\'"+R+"\\'",n+="' "),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var z=n;n=j.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+z+"]); ":n+=" validate.errors = ["+z+"]; return false; ":n+=" var err = "+z+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } else { "}else{n+=" if ( ";var B=b;if(B)for(var G,q=-1,te=B.length-1;q{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f="data"+(l||""),h="valid"+o,d=t.opts.$data&&c&&c.$data,v;if(d?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",v="schema"+o):v=c,(c||d)&&t.opts.uniqueItems!==!1){d&&(n+=" var "+h+"; if ("+v+" === false || "+v+" === undefined) "+h+" = true; else if (typeof "+v+" != 'boolean') "+h+" = false; else { "),n+=" var i = "+f+".length , "+h+" = true , j; if (i > 1) { ";var x=t.schema.items&&t.schema.items.type,b=Array.isArray(x);if(!x||x=="object"||x=="array"||b&&(x.indexOf("object")>=0||x.indexOf("array")>=0))n+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+f+"[i], "+f+"[j])) { "+h+" = false; break outer; } } } ";else{n+=" var itemIndices = {}, item; for (;i--;) { var item = "+f+"[i]; ";var E="checkDataType"+(b?"s":"");n+=" if ("+t.util[E](x,"item",t.opts.strictNumbers,!0)+") continue; ",b&&(n+=` if (typeof item == 'string') item = '"' + item; `),n+=" if (typeof itemIndices[item] == 'number') { "+h+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}n+=" } ",d&&(n+=" } "),n+=" if (!"+h+") { ";var k=k||[];k.push(n),n="",t.createErrors!==!1?(n+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { i: i, j: j } ",t.opts.messages!==!1&&(n+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),t.opts.verbose&&(n+=" , schema: ",d?n+="validate.schema"+u:n+=""+c,n+=" , parentSchema: validate.schema"+t.schemaPath+" , data: "+f+" "),n+=" } "):n+=" {} ";var O=n;n=k.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+O+"]); ":n+=" validate.errors = ["+O+"]; return false; ":n+=" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n+=" } ",m&&(n+=" else { ")}else m&&(n+=" if (true) { ");return n}}),Jj=Ce((r,e)=>{e.exports={$ref:jj(),allOf:Nj(),anyOf:Dj(),$comment:$j(),const:qj(),contains:Mj(),dependencies:Fj(),enum:Lj(),format:Uj(),if:zj(),items:Hj(),maximum:ME(),minimum:ME(),maxItems:FE(),minItems:FE(),maxLength:LE(),minLength:LE(),maxProperties:UE(),minProperties:UE(),multipleOf:Bj(),not:Vj(),oneOf:Gj(),pattern:Zj(),properties:Wj(),propertyNames:Kj(),required:Qj(),uniqueItems:Xj(),validate:e1()}}),Yj=Ce((r,e)=>{var a=Jj(),t=Cn().toHash;e.exports=function(){var i=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],n=["type","$comment"],o=["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"],l=["number","integer","string","array","object","boolean","null"];return i.all=t(n),i.types=t(l),i.forEach(function(c){c.rules=c.rules.map(function(u){var p;if(typeof u=="object"){var m=Object.keys(u)[0];p=u[m],u=m,p.forEach(function(h){n.push(h),i.all[h]=!0})}n.push(u);var f=i.all[u]={keyword:u,code:a[u],implements:p};return f}),i.all.$comment={keyword:"$comment",code:a.$comment},c.type&&(i.types[c.type]=c)}),i.keywords=t(n.concat(o)),i.custom={},i}}),eN=Ce((r,e)=>{var a=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(t,s){for(var i=0;i{var a=jd().MissingRef;e.exports=t;function t(s,i,n){var o=this;if(typeof this._opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");typeof i=="function"&&(n=i,i=void 0);var l=c(s).then(function(){var p=o._addSchema(s,void 0,i);return p.validate||u(p)});return n&&l.then(function(p){n(null,p)},n),l;function c(p){var m=p.$schema;return m&&!o.getSchema(m)?t.call(o,{$ref:m},!0):Promise.resolve()}function u(p){try{return o._compile(p)}catch(f){if(f instanceof a)return m(f);throw f}function m(f){var h=f.missingSchema;if(x(h))throw new Error("Schema "+h+" is loaded but "+f.missingRef+" cannot be resolved");var d=o._loadingSchemas[h];return d||(d=o._loadingSchemas[h]=o._opts.loadSchema(h),d.then(v,v)),d.then(function(b){if(!x(h))return c(b).then(function(){x(h)||o.addSchema(b,h,void 0,i)})}).then(function(){return u(p)});function v(){delete o._loadingSchemas[h]}function x(b){return o._refs[b]||o._schemas[b]}}}}}),rN=Ce((r,e)=>{e.exports=function(t,s,i){var n=" ",o=t.level,l=t.dataLevel,c=t.schema[s],u=t.schemaPath+t.util.getProperty(s),p=t.errSchemaPath+"/"+s,m=!t.opts.allErrors,f,h="data"+(l||""),d="valid"+o,v="errs__"+o,x=t.opts.$data&&c&&c.$data,b;x?(n+=" var schema"+o+" = "+t.util.getData(c.$data,l,t.dataPathArr)+"; ",b="schema"+o):b=c;var E=this,k="definition"+o,O=E.definition,P="",I,$,A,F,q;if(x&&O.$data){q="keywordValidate"+o;var C=O.validateSchema;n+=" var "+k+" = RULES.custom['"+s+"'].definition; var "+q+" = "+k+".validate;"}else{if(F=t.useCustomRule(E,c,t.schema,t),!F)return;b="validate.schema"+u,q=F.code,I=O.compile,$=O.inline,A=O.macro}var R=q+".errors",j="i"+o,z="ruleErr"+o,B=O.async;if(B&&!t.async)throw new Error("async keyword in sync schema");if($||A||(n+=""+R+" = null;"),n+="var "+v+" = errors;var "+d+";",x&&O.$data&&(P+="}",n+=" if ("+b+" === undefined) { "+d+" = true; } else { ",C&&(P+="}",n+=" "+d+" = "+k+".validateSchema("+b+"); if ("+d+") { ")),$)O.statements?n+=" "+F.validate+" ":n+=" "+d+" = "+F.validate+"; ";else if(A){var G=t.util.copy(t),P="";G.level++;var te="valid"+G.level;G.schema=F.validate,G.schemaPath="";var X=t.compositeRule;t.compositeRule=G.compositeRule=!0;var V=t.validate(G).replace(/validate\.schema/g,q);t.compositeRule=G.compositeRule=X,n+=" "+V}else{var re=re||[];re.push(n),n="",n+=" "+q+".call( ",t.opts.passContext?n+="this":n+="self",I||O.schema===!1?n+=" , "+h+" ":n+=" , "+b+" , "+h+" , validate.schema"+t.schemaPath+" ",n+=" , (dataPath || '')",t.errorPath!='""'&&(n+=" + "+t.errorPath);var ce=l?"data"+(l-1||""):"parentData",Be=l?t.dataPathArr[l]:"parentDataProperty";n+=" , "+ce+" , "+Be+" , rootData ) ";var be=n;n=re.pop(),O.errors===!1?(n+=" "+d+" = ",B&&(n+="await "),n+=""+be+"; "):B?(R="customErrors"+o,n+=" var "+R+" = null; try { "+d+" = await "+be+"; } catch (e) { "+d+" = false; if (e instanceof ValidationError) "+R+" = e.errors; else throw e; } "):n+=" "+R+" = null; "+d+" = "+be+"; "}if(O.modifying&&(n+=" if ("+ce+") "+h+" = "+ce+"["+Be+"];"),n+=""+P,O.valid)m&&(n+=" if (true) { ");else{n+=" if ( ",O.valid===void 0?(n+=" !",A?n+=""+te:n+=""+d):n+=" "+!O.valid+" ",n+=") { ",f=E.keyword;var re=re||[];re.push(n),n="";var re=re||[];re.push(n),n="",t.createErrors!==!1?(n+=" { keyword: '"+(f||"custom")+"' , dataPath: (dataPath || '') + "+t.errorPath+" , schemaPath: "+t.util.toQuotedString(p)+" , params: { keyword: '"+E.keyword+"' } ",t.opts.messages!==!1&&(n+=` , message: 'should pass "`+E.keyword+`" keyword validation' `),t.opts.verbose&&(n+=" , schema: validate.schema"+u+" , parentSchema: validate.schema"+t.schemaPath+" , data: "+h+" "),n+=" } "):n+=" {} ";var qe=n;n=re.pop(),!t.compositeRule&&m?t.async?n+=" throw new ValidationError(["+qe+"]); ":n+=" validate.errors = ["+qe+"]; return false; ":n+=" var err = "+qe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var xe=n;n=re.pop(),$?O.errors?O.errors!="full"&&(n+=" for (var "+j+"="+v+"; "+j+"{e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),aN=Ce((r,e)=>{var a=t1();e.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:a.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:a.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}}),sN=Ce((r,e)=>{var a=/^[a-z_$][a-z0-9_$-]*$/i,t=rN(),s=aN();e.exports={add:i,get:n,remove:o,validate:l};function i(c,u){var p=this.RULES;if(p.keywords[c])throw new Error("Keyword "+c+" is already defined");if(!a.test(c))throw new Error("Keyword "+c+" is not a valid identifier");if(u){this.validateKeyword(u,!0);var m=u.type;if(Array.isArray(m))for(var f=0;f{e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}}),iN=Ce((r,e)=>{var a=Cj(),t=Ad(),s=Ij(),i=JE(),n=YE(),o=Aj(),l=Yj(),c=eN(),u=Cn();e.exports=v,v.prototype.validate=x,v.prototype.compile=b,v.prototype.addSchema=E,v.prototype.addMetaSchema=k,v.prototype.validateSchema=O,v.prototype.getSchema=I,v.prototype.removeSchema=F,v.prototype.addFormat=X,v.prototype.errorsText=te,v.prototype._addSchema=C,v.prototype._compile=R,v.prototype.compileAsync=tN();var p=sN();v.prototype.addKeyword=p.add,v.prototype.getKeyword=p.get,v.prototype.removeKeyword=p.remove,v.prototype.validateKeyword=p.validate;var m=jd();v.ValidationError=m.Validation,v.MissingRefError=m.MissingRef,v.$dataMetaSchema=c;var f="http://json-schema.org/draft-07/schema",h=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],d=["/properties"];function v(U){if(!(this instanceof v))return new v(U);U=this._opts=u.copy(U)||{},xe(this),this._schemas={},this._refs={},this._fragments={},this._formats=o(U.format),this._cache=U.cache||new s,this._loadingSchemas={},this._compilations=[],this.RULES=l(),this._getId=j(U),U.loopRequired=U.loopRequired||1/0,U.errorDataPath=="property"&&(U._errorDataPathProperty=!0),U.serialize===void 0&&(U.serialize=n),this._metaOpts=qe(this),U.formats&&ce(this),U.keywords&&Be(this),V(this),typeof U.meta=="object"&&this.addMetaSchema(U.meta),U.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),re(this)}function x(U,Z){var ee;if(typeof U=="string"){if(ee=this.getSchema(U),!ee)throw new Error('no schema with key or ref "'+U+'"')}else{var ue=this._addSchema(U);ee=ue.validate||this._compile(ue)}var W=ee(Z);return ee.$async!==!0&&(this.errors=ee.errors),W}function b(U,Z){var ee=this._addSchema(U,void 0,Z);return ee.validate||this._compile(ee)}function E(U,Z,ee,ue){if(Array.isArray(U)){for(var W=0;W0&&R.push("--allowedTools",P.join(",")),I.length>0&&R.push("--disallowedTools",I.join(",")),$&&Object.keys($).length>0&&R.push("--mcp-config",JSON.stringify({mcpServers:$})),a&&Object.keys(a).length>0&&R.push("--agents",JSON.stringify(a)),O&&R.push("--setting-sources",O.join(",")),A&&R.push("--strict-mcp-config"),v&&R.push("--permission-mode",v),x&&R.push("--allow-dangerously-skip-permissions"),d){if(h&&d===h)throw new Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");R.push("--fallback-model",d)}q&&R.push("--include-partial-messages");for(let V of e)R.push("--add-dir",V);if(C&&C.length>0)for(let V of C)if(V.type==="local")R.push("--plugin-dir",V.path);else throw new Error(`Unsupported plugin type: ${V.type}`);this.options.forkSession&&R.push("--fork-session"),this.options.resumeSessionAt&&R.push("--resume-session-at",this.options.resumeSessionAt);for(let[V,re]of Object.entries(n))re===null?R.push(`--${V}`):R.push(`--${V}`,re);if(l.CLAUDE_CODE_ENTRYPOINT||(l.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),!aa().existsSync(o)){let V=zE(o)?`Claude Code native binary not found at ${o}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${o}. Is options.pathToClaudeCodeExecutable set?`;throw new ReferenceError(V)}let z=zE(o),B=z?o:s,G=z?[...i,...R]:[...i,o,...R];this.logForDebugging(z?`Spawning Claude Code native binary: ${B} ${G.join(" ")}`:`Spawning Claude Code process: ${B} ${G.join(" ")}`);let te=l.DEBUG||c?"pipe":"ignore";this.child=(0,n1.spawn)(B,G,{cwd:t,stdio:["pipe","pipe",te],signal:this.abortController.signal,env:l}),this.childStdin=this.child.stdin,this.childStdout=this.child.stdout,(l.DEBUG||c)&&this.child.stderr.on("data",V=>{this.logForDebugging(V.toString())});let X=()=>{this.child&&!this.child.killed&&this.child.kill("SIGTERM")};this.processExitHandler=X,this.abortHandler=X,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.child.on("error",V=>{this.ready=!1,this.abortController.signal.aborted?this.exitError=new hs("Claude Code process aborted by user"):(this.exitError=new Error(`Failed to spawn Claude Code process: ${V.message}`),this.logForDebugging(this.exitError.message))}),this.child.on("close",(V,re)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new hs("Claude Code process aborted by user");else{let ce=this.getProcessExitError(V,re);ce&&(this.exitError=ce,this.logForDebugging(ce.message))}}),this.ready=!0}catch(e){throw this.ready=!1,e}}getProcessExitError(e,a){if(e!==0&&e!==null)return new Error(`Claude Code process exited with code ${e}`);if(a)return new Error(`Claude Code process terminated by signal ${a}`)}logForDebugging(e){process.env.DEBUG&&process.stderr.write(`${e} `),this.options.stderr&&this.options.stderr(e)}write(e){if(this.abortController.signal.aborted)throw new hs("Operation aborted");if(!this.ready||!this.childStdin)throw new Error("ProcessTransport is not ready for writing");if(this.child?.killed||this.child?.exitCode!==null)throw new Error("Cannot write to terminated process");if(this.exitError)throw new Error(`Cannot write to process that exited with error: ${this.exitError.message}`);process.env.DEBUG_SDK&&process.stderr.write(`[ProcessTransport] Writing to stdin: ${e.substring(0,100)} -`);try{!this.childStdin.write(e)&&process.env.DEBUG_SDK&&console.warn("[ProcessTransport] Write buffer full, data queued")}catch(a){throw this.ready=!1,new Error(`Failed to write to process stdin: ${a.message}`)}}close(){this.childStdin&&(this.childStdin.end(),this.childStdin=void 0),this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0),this.abortHandler&&(this.abortController.signal.removeEventListener("abort",this.abortHandler),this.abortHandler=void 0);for(let{handler:e}of this.exitListeners)this.child?.off("exit",e);this.exitListeners=[],this.child&&!this.child.killed&&(this.child.kill("SIGTERM"),setTimeout(()=>{this.child&&!this.child.killed&&this.child.kill("SIGKILL")},5e3)),this.ready=!1}isReady(){return this.ready}async*readMessages(){if(!this.childStdout)throw new Error("ProcessTransport output stream not available");let e=(0,iE.createInterface)({input:this.childStdout});try{for await(let a of e)a.trim()&&(yield JSON.parse(a));await this.waitForExit()}catch(a){throw a}finally{e.close()}}endInput(){this.childStdin&&this.childStdin.end()}getInputStream(){return this.childStdin}onExit(e){if(!this.child)return()=>{};let a=(t,s)=>{let i=this.getProcessExitError(t,s);e(i)};return this.child.on("exit",a),this.exitListeners.push({callback:e,handler:a}),()=>{this.child&&this.child.off("exit",a);let t=this.exitListeners.findIndex(s=>s.handler===a);t!==-1&&this.exitListeners.splice(t,1)}}async waitForExit(){if(!this.child){if(this.exitError)throw this.exitError;return}if(this.child.exitCode!==null||this.child.killed){if(this.exitError)throw this.exitError;return}return new Promise((e,a)=>{let t=(i,n)=>{if(this.abortController.signal.aborted){a(new hs("Operation aborted"));return}let o=this.getProcessExitError(i,n);o?a(o):e()};this.child.once("exit",t);let s=i=>{this.child.off("exit",t),a(i)};this.child.once("error",s),this.child.once("exit",()=>{this.child.off("error",s)})})}};function z1(r){return![".js",".mjs",".tsx",".ts",".jsx"].some(a=>r.endsWith(a))}var Ed=class{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(e){this.returned=e}[Symbol.asyncIterator](){if(this.started)throw new Error("Stream can only be iterated once");return this.started=!0,this}next(){return this.queue.length>0?Promise.resolve({done:!1,value:this.queue.shift()}):this.isDone?Promise.resolve({done:!0,value:void 0}):this.hasError?Promise.reject(this.hasError):new Promise((e,a)=>{this.readResolve=e,this.readReject=a})}enqueue(e){if(this.readResolve){let a=this.readResolve;this.readResolve=void 0,this.readReject=void 0,a({done:!1,value:e})}else this.queue.push(e)}done(){if(this.isDone=!0,this.readResolve){let e=this.readResolve;this.readResolve=void 0,this.readReject=void 0,e({done:!0,value:void 0})}}error(e){if(this.hasError=e,this.readReject){let a=this.readReject;this.readResolve=void 0,this.readReject=void 0,a(e)}}return(){return this.isDone=!0,this.returned&&this.returned(),Promise.resolve({done:!0,value:void 0})}},wd=class{sendMcpMessage;isClosed=!1;constructor(e){this.sendMcpMessage=e}onclose;onerror;onmessage;async start(){}async send(e){if(this.isClosed)throw new Error("Transport is closed");this.sendMcpMessage(e)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}},uN=typeof global=="object"&&global&&global.Object===Object&&global,pN=uN,dN=typeof self=="object"&&self&&self.Object===Object&&self,fN=pN||dN||Function("return this")(),Nd=fN,mN=Nd.Symbol,zc=mN,lE=Object.prototype,hN=lE.hasOwnProperty,vN=lE.toString,ki=zc?zc.toStringTag:void 0;function gN(r){var e=hN.call(r,ki),a=r[ki];try{r[ki]=void 0;var t=!0}catch{}var s=vN.call(r);return t&&(e?r[ki]=a:delete r[ki]),s}var yN=gN,bN=Object.prototype,xN=bN.toString;function _N(r){return xN.call(r)}var EN=_N,wN="[object Null]",SN="[object Undefined]",H1=zc?zc.toStringTag:void 0;function PN(r){return r==null?r===void 0?SN:wN:H1&&H1 in Object(r)?yN(r):EN(r)}var RN=PN;function TN(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}var uE=TN,kN="[object AsyncFunction]",ON="[object Function]",CN="[object GeneratorFunction]",IN="[object Proxy]";function AN(r){if(!uE(r))return!1;var e=RN(r);return e==ON||e==CN||e==kN||e==IN}var jN=AN,NN=Nd["__core-js_shared__"],gd=NN,B1=(function(){var r=/[^.]+$/.exec(gd&&gd.keys&&gd.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""})();function DN(r){return!!B1&&B1 in r}var $N=DN,qN=Function.prototype,MN=qN.toString;function FN(r){if(r!=null){try{return MN.call(r)}catch{}try{return r+""}catch{}}return""}var LN=FN,UN=/[\\^$.*+?()[\]{}|]/g,zN=/^\[object .+?Constructor\]$/,HN=Function.prototype,BN=Object.prototype,VN=HN.toString,GN=BN.hasOwnProperty,ZN=RegExp("^"+VN.call(GN).replace(UN,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function WN(r){if(!uE(r)||$N(r))return!1;var e=jN(r)?ZN:zN;return e.test(LN(r))}var KN=WN;function QN(r,e){return r?.[e]}var XN=QN;function JN(r,e){var a=XN(r,e);return KN(a)?a:void 0}var pE=JN;function YN(r,e){return r===e||r!==r&&e!==e}var eD=YN,tD=pE(Object,"create"),Oi=tD;function rD(){this.__data__=Oi?Oi(null):{},this.size=0}var aD=rD;function sD(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}var nD=sD,iD="__lodash_hash_undefined__",oD=Object.prototype,cD=oD.hasOwnProperty;function lD(r){var e=this.__data__;if(Oi){var a=e[r];return a===iD?void 0:a}return cD.call(e,r)?e[r]:void 0}var uD=lD,pD=Object.prototype,dD=pD.hasOwnProperty;function fD(r){var e=this.__data__;return Oi?e[r]!==void 0:dD.call(e,r)}var mD=fD,hD="__lodash_hash_undefined__";function vD(r,e){var a=this.__data__;return this.size+=this.has(r)?0:1,a[r]=Oi&&e===void 0?hD:e,this}var gD=vD;function In(r){var e=-1,a=r==null?0:r.length;for(this.clear();++e-1}var kD=TD;function OD(r,e){var a=this.__data__,t=Kc(a,r);return t<0?(++this.size,a.push([r,e])):a[t][1]=e,this}var CD=OD;function An(r){var e=-1,a=r==null?0:r.length;for(this.clear();++e{if(!r||r.trim()==="")return null;let e=r.split(",").map(i=>i.trim()).filter(Boolean);if(e.length===0)return null;let a=e.some(i=>i.startsWith("!")),t=e.some(i=>!i.startsWith("!"));if(a&&t)return null;let s=e.map(i=>i.replace(/^!/,"").toLowerCase());return{include:a?[]:s,exclude:a?s:[],isExclusive:a}});function QD(r){let e=[],a=r.match(/^MCP server ["']([^"']+)["']/);if(a&&a[1])e.push("mcp"),e.push(a[1].toLowerCase());else{let i=r.match(/^([^:[]+):/);i&&i[1]&&e.push(i[1].trim().toLowerCase())}let t=r.match(/^\[([^\]]+)]/);t&&t[1]&&e.push(t[1].trim().toLowerCase()),r.toLowerCase().includes("statsig event:")&&e.push("statsig");let s=r.match(/:\s*([^:]+?)(?:\s+(?:type|mode|status|event))?:/);if(s&&s[1]){let i=s[1].trim().toLowerCase();i.length<30&&!i.includes(" ")&&e.push(i)}return Array.from(new Set(e))}function XD(r,e){return e?r.length===0?!1:e.isExclusive?!r.some(a=>e.exclude.includes(a)):r.some(a=>e.include.includes(a)):!0}function JD(r,e){if(!e)return!0;let a=QD(r);return XD(a,e)}function YD(){return process.env.CLAUDE_CONFIG_DIR??(0,fE.join)((0,mE.homedir)(),".claude")}function Z1(r){if(!r)return!1;if(typeof r=="boolean")return r;let e=r.toLowerCase().trim();return["1","true","yes","on"].includes(e)}var e5={name:"BASH_MAX_OUTPUT_LENGTH",default:3e4,validate:r=>{if(!r)return{effective:3e4,status:"valid"};let t=parseInt(r,10);return isNaN(t)||t<=0?{effective:3e4,status:"invalid",message:`Invalid value "${r}" (using default: 30000)`}:t>15e4?{effective:15e4,status:"capped",message:`Capped from ${t} to 150000`}:{effective:t,status:"valid"}}},t5={name:"CLAUDE_CODE_MAX_OUTPUT_TOKENS",default:32e3,validate:r=>{if(!r)return{effective:32e3,status:"valid"};let e=parseInt(r,10);return isNaN(e)||e<=0?{effective:32e3,status:"invalid",message:`Invalid value "${r}" (using default: 32000)`}:e>32e3?{effective:32e3,status:"capped",message:`Capped from ${e} to 32000`}:{effective:e,status:"valid"}}};function r5(){return{originalCwd:(0,Sd.cwd)(),totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:(0,Sd.cwd)(),modelUsage:{},mainLoopModelOverride:void 0,maxRateLimitFallbackActive:!1,initialMainLoopModel:null,modelStrings:null,isNonInteractiveSession:!0,isInteractive:!1,clientType:"cli",sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,sessionId:(0,hE.randomUUID)(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[e5,t5],lastAPIRequest:null,inMemoryErrorLog:[],inlinePlugins:[]}}var a5=r5();function s5(){return a5.sessionId}var F3=ji(()=>Z1(process.env.DEBUG)||Z1(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||vE()||process.argv.some(r=>r.startsWith("--debug="))),n5=ji(()=>{let r=process.argv.find(a=>a.startsWith("--debug="));if(!r)return null;let e=r.substring(8);return KD(e)}),vE=ji(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));function i5(r){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let e=n5();return JD(r,e)}var o5=!1;function ea(r,{level:e}={level:"debug"}){if(!i5(r))return;o5&&r.includes(` +`);try{!this.childStdin.write(e)&&process.env.DEBUG_SDK&&console.warn("[ProcessTransport] Write buffer full, data queued")}catch(a){throw this.ready=!1,new Error(`Failed to write to process stdin: ${a.message}`)}}close(){this.childStdin&&(this.childStdin.end(),this.childStdin=void 0),this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0),this.abortHandler&&(this.abortController.signal.removeEventListener("abort",this.abortHandler),this.abortHandler=void 0);for(let{handler:e}of this.exitListeners)this.child?.off("exit",e);this.exitListeners=[],this.child&&!this.child.killed&&(this.child.kill("SIGTERM"),setTimeout(()=>{this.child&&!this.child.killed&&this.child.kill("SIGKILL")},5e3)),this.ready=!1}isReady(){return this.ready}async*readMessages(){if(!this.childStdout)throw new Error("ProcessTransport output stream not available");let e=(0,i1.createInterface)({input:this.childStdout});try{for await(let a of e)a.trim()&&(yield JSON.parse(a));await this.waitForExit()}catch(a){throw a}finally{e.close()}}endInput(){this.childStdin&&this.childStdin.end()}getInputStream(){return this.childStdin}onExit(e){if(!this.child)return()=>{};let a=(t,s)=>{let i=this.getProcessExitError(t,s);e(i)};return this.child.on("exit",a),this.exitListeners.push({callback:e,handler:a}),()=>{this.child&&this.child.off("exit",a);let t=this.exitListeners.findIndex(s=>s.handler===a);t!==-1&&this.exitListeners.splice(t,1)}}async waitForExit(){if(!this.child){if(this.exitError)throw this.exitError;return}if(this.child.exitCode!==null||this.child.killed){if(this.exitError)throw this.exitError;return}return new Promise((e,a)=>{let t=(i,n)=>{if(this.abortController.signal.aborted){a(new hs("Operation aborted"));return}let o=this.getProcessExitError(i,n);o?a(o):e()};this.child.once("exit",t);let s=i=>{this.child.off("exit",t),a(i)};this.child.once("error",s),this.child.once("exit",()=>{this.child.off("error",s)})})}};function zE(r){return![".js",".mjs",".tsx",".ts",".jsx"].some(a=>r.endsWith(a))}var Ed=class{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(e){this.returned=e}[Symbol.asyncIterator](){if(this.started)throw new Error("Stream can only be iterated once");return this.started=!0,this}next(){return this.queue.length>0?Promise.resolve({done:!1,value:this.queue.shift()}):this.isDone?Promise.resolve({done:!0,value:void 0}):this.hasError?Promise.reject(this.hasError):new Promise((e,a)=>{this.readResolve=e,this.readReject=a})}enqueue(e){if(this.readResolve){let a=this.readResolve;this.readResolve=void 0,this.readReject=void 0,a({done:!1,value:e})}else this.queue.push(e)}done(){if(this.isDone=!0,this.readResolve){let e=this.readResolve;this.readResolve=void 0,this.readReject=void 0,e({done:!0,value:void 0})}}error(e){if(this.hasError=e,this.readReject){let a=this.readReject;this.readResolve=void 0,this.readReject=void 0,a(e)}}return(){return this.isDone=!0,this.returned&&this.returned(),Promise.resolve({done:!0,value:void 0})}},wd=class{sendMcpMessage;isClosed=!1;constructor(e){this.sendMcpMessage=e}onclose;onerror;onmessage;async start(){}async send(e){if(this.isClosed)throw new Error("Transport is closed");this.sendMcpMessage(e)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}},uN=typeof global=="object"&&global&&global.Object===Object&&global,pN=uN,dN=typeof self=="object"&&self&&self.Object===Object&&self,fN=pN||dN||Function("return this")(),Nd=fN,mN=Nd.Symbol,zc=mN,l1=Object.prototype,hN=l1.hasOwnProperty,vN=l1.toString,ki=zc?zc.toStringTag:void 0;function gN(r){var e=hN.call(r,ki),a=r[ki];try{r[ki]=void 0;var t=!0}catch{}var s=vN.call(r);return t&&(e?r[ki]=a:delete r[ki]),s}var yN=gN,bN=Object.prototype,xN=bN.toString;function _N(r){return xN.call(r)}var EN=_N,wN="[object Null]",SN="[object Undefined]",HE=zc?zc.toStringTag:void 0;function PN(r){return r==null?r===void 0?SN:wN:HE&&HE in Object(r)?yN(r):EN(r)}var RN=PN;function TN(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}var u1=TN,kN="[object AsyncFunction]",ON="[object Function]",CN="[object GeneratorFunction]",IN="[object Proxy]";function AN(r){if(!u1(r))return!1;var e=RN(r);return e==ON||e==CN||e==kN||e==IN}var jN=AN,NN=Nd["__core-js_shared__"],gd=NN,BE=(function(){var r=/[^.]+$/.exec(gd&&gd.keys&&gd.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""})();function DN(r){return!!BE&&BE in r}var $N=DN,qN=Function.prototype,MN=qN.toString;function FN(r){if(r!=null){try{return MN.call(r)}catch{}try{return r+""}catch{}}return""}var LN=FN,UN=/[\\^$.*+?()[\]{}|]/g,zN=/^\[object .+?Constructor\]$/,HN=Function.prototype,BN=Object.prototype,VN=HN.toString,GN=BN.hasOwnProperty,ZN=RegExp("^"+VN.call(GN).replace(UN,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function WN(r){if(!u1(r)||$N(r))return!1;var e=jN(r)?ZN:zN;return e.test(LN(r))}var KN=WN;function QN(r,e){return r?.[e]}var XN=QN;function JN(r,e){var a=XN(r,e);return KN(a)?a:void 0}var p1=JN;function YN(r,e){return r===e||r!==r&&e!==e}var eD=YN,tD=p1(Object,"create"),Oi=tD;function rD(){this.__data__=Oi?Oi(null):{},this.size=0}var aD=rD;function sD(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}var nD=sD,iD="__lodash_hash_undefined__",oD=Object.prototype,cD=oD.hasOwnProperty;function lD(r){var e=this.__data__;if(Oi){var a=e[r];return a===iD?void 0:a}return cD.call(e,r)?e[r]:void 0}var uD=lD,pD=Object.prototype,dD=pD.hasOwnProperty;function fD(r){var e=this.__data__;return Oi?e[r]!==void 0:dD.call(e,r)}var mD=fD,hD="__lodash_hash_undefined__";function vD(r,e){var a=this.__data__;return this.size+=this.has(r)?0:1,a[r]=Oi&&e===void 0?hD:e,this}var gD=vD;function In(r){var e=-1,a=r==null?0:r.length;for(this.clear();++e-1}var kD=TD;function OD(r,e){var a=this.__data__,t=Kc(a,r);return t<0?(++this.size,a.push([r,e])):a[t][1]=e,this}var CD=OD;function An(r){var e=-1,a=r==null?0:r.length;for(this.clear();++e{if(!r||r.trim()==="")return null;let e=r.split(",").map(i=>i.trim()).filter(Boolean);if(e.length===0)return null;let a=e.some(i=>i.startsWith("!")),t=e.some(i=>!i.startsWith("!"));if(a&&t)return null;let s=e.map(i=>i.replace(/^!/,"").toLowerCase());return{include:a?[]:s,exclude:a?s:[],isExclusive:a}});function QD(r){let e=[],a=r.match(/^MCP server ["']([^"']+)["']/);if(a&&a[1])e.push("mcp"),e.push(a[1].toLowerCase());else{let i=r.match(/^([^:[]+):/);i&&i[1]&&e.push(i[1].trim().toLowerCase())}let t=r.match(/^\[([^\]]+)]/);t&&t[1]&&e.push(t[1].trim().toLowerCase()),r.toLowerCase().includes("statsig event:")&&e.push("statsig");let s=r.match(/:\s*([^:]+?)(?:\s+(?:type|mode|status|event))?:/);if(s&&s[1]){let i=s[1].trim().toLowerCase();i.length<30&&!i.includes(" ")&&e.push(i)}return Array.from(new Set(e))}function XD(r,e){return e?r.length===0?!1:e.isExclusive?!r.some(a=>e.exclude.includes(a)):r.some(a=>e.include.includes(a)):!0}function JD(r,e){if(!e)return!0;let a=QD(r);return XD(a,e)}function YD(){return process.env.CLAUDE_CONFIG_DIR??(0,f1.join)((0,m1.homedir)(),".claude")}function ZE(r){if(!r)return!1;if(typeof r=="boolean")return r;let e=r.toLowerCase().trim();return["1","true","yes","on"].includes(e)}var e5={name:"BASH_MAX_OUTPUT_LENGTH",default:3e4,validate:r=>{if(!r)return{effective:3e4,status:"valid"};let t=parseInt(r,10);return isNaN(t)||t<=0?{effective:3e4,status:"invalid",message:`Invalid value "${r}" (using default: 30000)`}:t>15e4?{effective:15e4,status:"capped",message:`Capped from ${t} to 150000`}:{effective:t,status:"valid"}}},t5={name:"CLAUDE_CODE_MAX_OUTPUT_TOKENS",default:32e3,validate:r=>{if(!r)return{effective:32e3,status:"valid"};let e=parseInt(r,10);return isNaN(e)||e<=0?{effective:32e3,status:"invalid",message:`Invalid value "${r}" (using default: 32000)`}:e>32e3?{effective:32e3,status:"capped",message:`Capped from ${e} to 32000`}:{effective:e,status:"valid"}}};function r5(){return{originalCwd:(0,Sd.cwd)(),totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:(0,Sd.cwd)(),modelUsage:{},mainLoopModelOverride:void 0,maxRateLimitFallbackActive:!1,initialMainLoopModel:null,modelStrings:null,isNonInteractiveSession:!0,isInteractive:!1,clientType:"cli",sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,sessionId:(0,h1.randomUUID)(),loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,envVarValidators:[e5,t5],lastAPIRequest:null,inMemoryErrorLog:[],inlinePlugins:[]}}var a5=r5();function s5(){return a5.sessionId}var F3=ji(()=>ZE(process.env.DEBUG)||ZE(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||v1()||process.argv.some(r=>r.startsWith("--debug="))),n5=ji(()=>{let r=process.argv.find(a=>a.startsWith("--debug="));if(!r)return null;let e=r.substring(8);return KD(e)}),v1=ji(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e"));function i5(r){if(typeof process>"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let e=n5();return JD(r,e)}var o5=!1;function ea(r,{level:e}={level:"debug"}){if(!i5(r))return;o5&&r.includes(` `)&&(r=JSON.stringify(r));let a=`[${e.toUpperCase()}] ${r.trim()} -`;if(vE()){WD(a);return}aa().existsSync((0,vs.dirname)(Uc()))||aa().mkdirSync((0,vs.dirname)(Uc())),aa().appendFileSync(Uc(),a),c5()}function Uc(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??(0,vs.join)(YD(),"debug",`${s5()}.txt`)}var c5=ji(()=>{try{let r=Uc(),e=(0,vs.dirname)(r),a=(0,vs.join)(e,"latest");if(aa().existsSync(e)||aa().mkdirSync(e),aa().existsSync(a))try{aa().unlinkSync(a)}catch{}aa().symlinkSync(r,a)}catch{}}),Pd=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new Ed;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;pendingMcpResponses=new Map;firstResultReceivedPromise;firstResultReceivedResolve;constructor(e,a,t,s,i,n=new Map){this.transport=e,this.isSingleUserTurn=a,this.canUseTool=t,this.hooks=s,this.abortController=i;for(let[o,l]of n){let c=new wd(u=>this.sendMcpServerMessageToCli(o,u));this.sdkMcpTransports.set(o,c),l.connect(c)}this.sdkMessages=this.readSdkMessages(),this.firstResultReceivedPromise=new Promise(o=>{this.firstResultReceivedResolve=o}),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(e){this.inputStream.error(e)}cleanup(e){if(!this.cleanupPerformed){this.cleanupPerformed=!0;try{this.transport.close(),this.pendingControlResponses.clear(),this.pendingMcpResponses.clear(),e?this.inputStream.error(e):this.inputStream.done()}catch{}}}next(...[e]){return this.sdkMessages.next(e)}return(e){return this.sdkMessages.return(e)}throw(e){return this.sdkMessages.throw(e)}[Symbol.asyncIterator](){return this.sdkMessages}[Symbol.asyncDispose](){return this.sdkMessages[Symbol.asyncDispose]()}async readMessages(){try{for await(let e of this.transport.readMessages()){if(e.type==="control_response"){let a=this.pendingControlResponses.get(e.response.request_id);a&&a(e.response);continue}else if(e.type==="control_request"){this.handleControlRequest(e);continue}else if(e.type==="control_cancel_request"){this.handleControlCancelRequest(e);continue}else if(e.type==="keep_alive")continue;e.type==="result"&&(this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.isSingleUserTurn&&this.transport.endInput()),this.inputStream.enqueue(e)}this.inputStream.done(),this.cleanup()}catch(e){this.inputStream.error(e),this.cleanup(e)}}async handleControlRequest(e){let a=new AbortController;this.cancelControllers.set(e.request_id,a);try{let t=await this.processControlRequest(e,a.signal),s={type:"control_response",response:{subtype:"success",request_id:e.request_id,response:t}};await Promise.resolve(this.transport.write(JSON.stringify(s)+` +`;if(v1()){WD(a);return}aa().existsSync((0,vs.dirname)(Uc()))||aa().mkdirSync((0,vs.dirname)(Uc())),aa().appendFileSync(Uc(),a),c5()}function Uc(){return process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??(0,vs.join)(YD(),"debug",`${s5()}.txt`)}var c5=ji(()=>{try{let r=Uc(),e=(0,vs.dirname)(r),a=(0,vs.join)(e,"latest");if(aa().existsSync(e)||aa().mkdirSync(e),aa().existsSync(a))try{aa().unlinkSync(a)}catch{}aa().symlinkSync(r,a)}catch{}}),Pd=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new Ed;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;pendingMcpResponses=new Map;firstResultReceivedPromise;firstResultReceivedResolve;constructor(e,a,t,s,i,n=new Map){this.transport=e,this.isSingleUserTurn=a,this.canUseTool=t,this.hooks=s,this.abortController=i;for(let[o,l]of n){let c=new wd(u=>this.sendMcpServerMessageToCli(o,u));this.sdkMcpTransports.set(o,c),l.connect(c)}this.sdkMessages=this.readSdkMessages(),this.firstResultReceivedPromise=new Promise(o=>{this.firstResultReceivedResolve=o}),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(e){this.inputStream.error(e)}cleanup(e){if(!this.cleanupPerformed){this.cleanupPerformed=!0;try{this.transport.close(),this.pendingControlResponses.clear(),this.pendingMcpResponses.clear(),e?this.inputStream.error(e):this.inputStream.done()}catch{}}}next(...[e]){return this.sdkMessages.next(e)}return(e){return this.sdkMessages.return(e)}throw(e){return this.sdkMessages.throw(e)}[Symbol.asyncIterator](){return this.sdkMessages}[Symbol.asyncDispose](){return this.sdkMessages[Symbol.asyncDispose]()}async readMessages(){try{for await(let e of this.transport.readMessages()){if(e.type==="control_response"){let a=this.pendingControlResponses.get(e.response.request_id);a&&a(e.response);continue}else if(e.type==="control_request"){this.handleControlRequest(e);continue}else if(e.type==="control_cancel_request"){this.handleControlCancelRequest(e);continue}else if(e.type==="keep_alive")continue;e.type==="result"&&(this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.isSingleUserTurn&&this.transport.endInput()),this.inputStream.enqueue(e)}this.inputStream.done(),this.cleanup()}catch(e){this.inputStream.error(e),this.cleanup(e)}}async handleControlRequest(e){let a=new AbortController;this.cancelControllers.set(e.request_id,a);try{let t=await this.processControlRequest(e,a.signal),s={type:"control_response",response:{subtype:"success",request_id:e.request_id,response:t}};await Promise.resolve(this.transport.write(JSON.stringify(s)+` `))}catch(t){let s={type:"control_response",response:{subtype:"error",request_id:e.request_id,error:t.message||String(t)}};await Promise.resolve(this.transport.write(JSON.stringify(s)+` `))}finally{this.cancelControllers.delete(e.request_id)}}handleControlCancelRequest(e){let a=this.cancelControllers.get(e.request_id);a&&(a.abort(),this.cancelControllers.delete(e.request_id))}async processControlRequest(e,a){if(e.request.subtype==="can_use_tool"){if(!this.canUseTool)throw new Error("canUseTool callback is not provided.");return this.canUseTool(e.request.tool_name,e.request.input,{signal:a,suggestions:e.request.permission_suggestions})}else{if(e.request.subtype==="hook_callback")return await this.handleHookCallbacks(e.request.callback_id,e.request.input,e.request.tool_use_id,a);if(e.request.subtype==="mcp_message"){let t=e.request,s=this.sdkMcpTransports.get(t.server_name);if(!s)throw new Error(`SDK MCP server not found: ${t.server_name}`);return"method"in t.message&&"id"in t.message&&t.message.id!==null?{mcp_response:await this.handleMcpControlRequest(t.server_name,t,s)}:(s.onmessage&&s.onmessage(t.message),{mcp_response:{jsonrpc:"2.0",result:{},id:0}})}}throw new Error("Unsupported control request subtype: "+e.request.subtype)}async*readSdkMessages(){for await(let e of this.inputStream)yield e}async initialize(){let e;if(this.hooks){e={};for(let[i,n]of Object.entries(this.hooks))n.length>0&&(e[i]=n.map(o=>{let l=[];for(let c of o.hooks){let u=`hook_${this.nextCallbackId++}`;this.hookCallbacks.set(u,c),l.push(u)}return{matcher:o.matcher,hookCallbackIds:l}}))}let a=this.sdkMcpTransports.size>0?Array.from(this.sdkMcpTransports.keys()):void 0,t={subtype:"initialize",hooks:e,sdkMcpServers:a};return(await this.request(t)).response}async interrupt(){await this.request({subtype:"interrupt"})}async setPermissionMode(e){await this.request({subtype:"set_permission_mode",mode:e})}async setModel(e){await this.request({subtype:"set_model",model:e})}async setMaxThinkingTokens(e){await this.request({subtype:"set_max_thinking_tokens",max_thinking_tokens:e})}request(e){let a=Math.random().toString(36).substring(2,15),t={request_id:a,type:"control_request",request:e};return new Promise((s,i)=>{this.pendingControlResponses.set(a,n=>{n.subtype==="success"?s(n):i(new Error(n.error))}),Promise.resolve(this.transport.write(JSON.stringify(t)+` `))})}async supportedCommands(){return(await this.initialization).commands}async supportedModels(){return(await this.initialization).models}async mcpServerStatus(){return(await this.request({subtype:"mcp_status"})).response.mcpServers}async accountInfo(){return(await this.initialization).account}async streamInput(e){ea("[Query.streamInput] Starting to process input stream"),ea(`[Query.streamInput] this.sdkMcpTransports.size = ${this.sdkMcpTransports.size}`);try{let a=0;for await(let t of e){if(a++,ea(`[Query.streamInput] Processing message ${a}: ${t.type}`),this.abortController?.signal.aborted)break;await Promise.resolve(this.transport.write(JSON.stringify(t)+` -`))}if(ea(`[Query.streamInput] Finished processing ${a} messages from input stream`),ea(`[Query.streamInput] About to check MCP servers. this.sdkMcpTransports.size = ${this.sdkMcpTransports.size}`),this.sdkMcpTransports.size>0&&this.firstResultReceivedPromise){ea("[Query.streamInput] Entering Promise.race to wait for result");let t=1e4,s;await Promise.race([this.firstResultReceivedPromise.then(()=>{ea("[Query.streamInput] Received first result, closing input stream"),s&&clearTimeout(s)}),new Promise(i=>{s=setTimeout(()=>{ea("[Query.streamInput] Timed out waiting for first result, closing input stream"),i()},t)})]),s&&clearTimeout(s)}ea("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(a){if(!(a instanceof hs))throw a}}handleHookCallbacks(e,a,t,s){let i=this.hookCallbacks.get(e);if(!i)throw new Error(`No hook callback found for ID: ${e}`);return i(a,t,{signal:s})}sendMcpServerMessageToCli(e,a){if("id"in a&&a.id!==null&&a.id!==void 0){let t=`${e}:${a.id}`,s=this.pendingMcpResponses.get(t);if(s){s.resolve(a),this.pendingMcpResponses.delete(t);return}}throw new Error("No pending request found")}handleMcpControlRequest(e,a,t){let s="id"in a.message?a.message.id:null,i=`${e}:${s}`;return new Promise((n,o)=>{let l=null,c=()=>{l&&clearTimeout(l),this.pendingMcpResponses.delete(i)},u=m=>{c(),n(m)},p=m=>{c(),o(m)};if(this.pendingMcpResponses.set(i,{resolve:u,reject:p}),t.onmessage)t.onmessage(a.message);else{c(),o(new Error("No message handler registered"));return}l=setTimeout(()=>{this.pendingMcpResponses.has(i)&&(c(),o(new Error("Request timeout")))},3e4)})}},w={};Rj(w,{void:()=>G5,util:()=>Ge,unknown:()=>B5,union:()=>Q5,undefined:()=>U5,tuple:()=>Y5,transformer:()=>Q1,symbol:()=>L5,string:()=>wE,strictObject:()=>K5,setErrorMap:()=>p5,set:()=>r6,record:()=>e6,quotelessJson:()=>l5,promise:()=>c6,preprocess:()=>p6,pipeline:()=>d6,ostring:()=>f6,optional:()=>l6,onumber:()=>m6,oboolean:()=>h6,objectUtil:()=>Rd,object:()=>W5,number:()=>SE,nullable:()=>u6,null:()=>z5,never:()=>V5,nativeEnum:()=>o6,nan:()=>q5,map:()=>t6,makeIssue:()=>Bc,literal:()=>n6,lazy:()=>s6,late:()=>D5,isValid:()=>gs,isDirty:()=>kd,isAsync:()=>Ci,isAborted:()=>Td,intersection:()=>J5,instanceof:()=>$5,getParsedType:()=>ra,getErrorMap:()=>Hc,function:()=>a6,enum:()=>i6,effect:()=>Q1,discriminatedUnion:()=>X5,defaultErrorMap:()=>Sn,datetimeRegex:()=>xE,date:()=>F5,custom:()=>EE,coerce:()=>v6,boolean:()=>PE,bigint:()=>M5,array:()=>Z5,any:()=>H5,addIssueToContext:()=>se,ZodVoid:()=>Rn,ZodUnknown:()=>sa,ZodUnion:()=>Ss,ZodUndefined:()=>Es,ZodType:()=>je,ZodTuple:()=>Ur,ZodTransformer:()=>Xt,ZodSymbol:()=>Pn,ZodString:()=>ka,ZodSet:()=>kn,ZodSchema:()=>je,ZodRecord:()=>Gc,ZodReadonly:()=>As,ZodPromise:()=>Ca,ZodPipeline:()=>Ai,ZodParsedType:()=>le,ZodOptional:()=>dr,ZodObject:()=>Ut,ZodNumber:()=>ys,ZodNullable:()=>zr,ZodNull:()=>ws,ZodNever:()=>Pr,ZodNativeEnum:()=>Os,ZodNaN:()=>On,ZodMap:()=>Tn,ZodLiteral:()=>Ts,ZodLazy:()=>Rs,ZodIssueCode:()=>Y,ZodIntersection:()=>Ps,ZodFunction:()=>Zc,ZodFirstPartyTypeKind:()=>Pe,ZodError:()=>Qt,ZodEnum:()=>ks,ZodEffects:()=>Xt,ZodDiscriminatedUnion:()=>Vc,ZodDefault:()=>Cs,ZodDate:()=>_s,ZodCatch:()=>Is,ZodBranded:()=>Ii,ZodBoolean:()=>xs,ZodBigInt:()=>bs,ZodArray:()=>na,ZodAny:()=>Oa,Schema:()=>je,ParseStatus:()=>Rt,OK:()=>Ot,NEVER:()=>g6,INVALID:()=>we,EMPTY_PATH:()=>d5,DIRTY:()=>wn,BRAND:()=>N5});var Ge;(function(r){r.assertEqual=s=>{};function e(s){}r.assertIs=e;function a(s){throw new Error}r.assertNever=a,r.arrayToEnum=s=>{let i={};for(let n of s)i[n]=n;return i},r.getValidEnumValues=s=>{let i=r.objectKeys(s).filter(o=>typeof s[s[o]]!="number"),n={};for(let o of i)n[o]=s[o];return r.objectValues(n)},r.objectValues=s=>r.objectKeys(s).map(function(i){return s[i]}),r.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let i=[];for(let n in s)Object.prototype.hasOwnProperty.call(s,n)&&i.push(n);return i},r.find=(s,i)=>{for(let n of s)if(i(n))return n},r.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function t(s,i=" | "){return s.map(n=>typeof n=="string"?`'${n}'`:n).join(i)}r.joinValues=t,r.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(Ge||(Ge={}));var Rd;(function(r){r.mergeShapes=(e,a)=>({...e,...a})})(Rd||(Rd={}));var le=Ge.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ra=r=>{switch(typeof r){case"undefined":return le.undefined;case"string":return le.string;case"number":return Number.isNaN(r)?le.nan:le.number;case"boolean":return le.boolean;case"function":return le.function;case"bigint":return le.bigint;case"symbol":return le.symbol;case"object":return Array.isArray(r)?le.array:r===null?le.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?le.promise:typeof Map<"u"&&r instanceof Map?le.map:typeof Set<"u"&&r instanceof Set?le.set:typeof Date<"u"&&r instanceof Date?le.date:le.object;default:return le.unknown}},Y=Ge.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),l5=r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:"),Qt=class r extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=t=>{this.issues=[...this.issues,t]},this.addIssues=(t=[])=>{this.issues=[...this.issues,...t]};let a=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,a):this.__proto__=a,this.name="ZodError",this.issues=e}format(e){let a=e||function(i){return i.message},t={_errors:[]},s=i=>{for(let n of i.issues)if(n.code==="invalid_union")n.unionErrors.map(s);else if(n.code==="invalid_return_type")s(n.returnTypeError);else if(n.code==="invalid_arguments")s(n.argumentsError);else if(n.path.length===0)t._errors.push(a(n));else{let o=t,l=0;for(;la.message){let a={},t=[];for(let s of this.issues)if(s.path.length>0){let i=s.path[0];a[i]=a[i]||[],a[i].push(e(s))}else t.push(e(s));return{formErrors:t,fieldErrors:a}}get formErrors(){return this.flatten()}};Qt.create=r=>new Qt(r);var u5=(r,e)=>{let a;switch(r.code){case Y.invalid_type:r.received===le.undefined?a="Required":a=`Expected ${r.expected}, received ${r.received}`;break;case Y.invalid_literal:a=`Invalid literal value, expected ${JSON.stringify(r.expected,Ge.jsonStringifyReplacer)}`;break;case Y.unrecognized_keys:a=`Unrecognized key(s) in object: ${Ge.joinValues(r.keys,", ")}`;break;case Y.invalid_union:a="Invalid input";break;case Y.invalid_union_discriminator:a=`Invalid discriminator value. Expected ${Ge.joinValues(r.options)}`;break;case Y.invalid_enum_value:a=`Invalid enum value. Expected ${Ge.joinValues(r.options)}, received '${r.received}'`;break;case Y.invalid_arguments:a="Invalid function arguments";break;case Y.invalid_return_type:a="Invalid function return type";break;case Y.invalid_date:a="Invalid date";break;case Y.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(a=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(a=`${a} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?a=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?a=`Invalid input: must end with "${r.validation.endsWith}"`:Ge.assertNever(r.validation):r.validation!=="regex"?a=`Invalid ${r.validation}`:a="Invalid";break;case Y.too_small:r.type==="array"?a=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?a=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?a=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="bigint"?a=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?a=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:a="Invalid input";break;case Y.too_big:r.type==="array"?a=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?a=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?a=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?a=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?a=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:a="Invalid input";break;case Y.custom:a="Invalid input";break;case Y.invalid_intersection_types:a="Intersection results could not be merged";break;case Y.not_multiple_of:a=`Number must be a multiple of ${r.multipleOf}`;break;case Y.not_finite:a="Number must be finite";break;default:a=e.defaultError,Ge.assertNever(r)}return{message:a}},Sn=u5,gE=Sn;function p5(r){gE=r}function Hc(){return gE}var Bc=r=>{let{data:e,path:a,errorMaps:t,issueData:s}=r,i=[...a,...s.path||[]],n={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let o="",l=t.filter(c=>!!c).slice().reverse();for(let c of l)o=c(n,{data:e,defaultError:o}).message;return{...s,path:i,message:o}},d5=[];function se(r,e){let a=Hc(),t=Bc({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,a,a===Sn?void 0:Sn].filter(s=>!!s)});r.common.issues.push(t)}var Rt=class r{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,a){let t=[];for(let s of a){if(s.status==="aborted")return we;s.status==="dirty"&&e.dirty(),t.push(s.value)}return{status:e.value,value:t}}static async mergeObjectAsync(e,a){let t=[];for(let s of a){let i=await s.key,n=await s.value;t.push({key:i,value:n})}return r.mergeObjectSync(e,t)}static mergeObjectSync(e,a){let t={};for(let s of a){let{key:i,value:n}=s;if(i.status==="aborted"||n.status==="aborted")return we;i.status==="dirty"&&e.dirty(),n.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof n.value<"u"||s.alwaysSet)&&(t[i.value]=n.value)}return{status:e.value,value:t}}},we=Object.freeze({status:"aborted"}),wn=r=>({status:"dirty",value:r}),Ot=r=>({status:"valid",value:r}),Td=r=>r.status==="aborted",kd=r=>r.status==="dirty",gs=r=>r.status==="valid",Ci=r=>typeof Promise<"u"&&r instanceof Promise,me;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e?.message})(me||(me={}));var fr=class{constructor(e,a,t,s){this._cachedPath=[],this.parent=e,this.data=a,this._path=t,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},W1=(r,e)=>{if(gs(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let a=new Qt(r.common.issues);return this._error=a,this._error}}};function $e(r){if(!r)return{};let{errorMap:e,invalid_type_error:a,required_error:t,description:s}=r;if(e&&(a||t))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(n,o)=>{let{message:l}=r;return n.code==="invalid_enum_value"?{message:l??o.defaultError}:typeof o.data>"u"?{message:l??t??o.defaultError}:n.code!=="invalid_type"?{message:o.defaultError}:{message:l??a??o.defaultError}},description:s}}var je=class{get description(){return this._def.description}_getType(e){return ra(e.data)}_getOrReturnCtx(e,a){return a||{common:e.parent.common,data:e.data,parsedType:ra(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Rt,ctx:{common:e.parent.common,data:e.data,parsedType:ra(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let a=this._parse(e);if(Ci(a))throw new Error("Synchronous parse encountered promise.");return a}_parseAsync(e){let a=this._parse(e);return Promise.resolve(a)}parse(e,a){let t=this.safeParse(e,a);if(t.success)return t.data;throw t.error}safeParse(e,a){let t={common:{issues:[],async:a?.async??!1,contextualErrorMap:a?.errorMap},path:a?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ra(e)},s=this._parseSync({data:e,path:t.path,parent:t});return W1(t,s)}"~validate"(e){let a={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ra(e)};if(!this["~standard"].async)try{let t=this._parseSync({data:e,path:[],parent:a});return gs(t)?{value:t.value}:{issues:a.common.issues}}catch(t){t?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),a.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:a}).then(t=>gs(t)?{value:t.value}:{issues:a.common.issues})}async parseAsync(e,a){let t=await this.safeParseAsync(e,a);if(t.success)return t.data;throw t.error}async safeParseAsync(e,a){let t={common:{issues:[],contextualErrorMap:a?.errorMap,async:!0},path:a?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ra(e)},s=this._parse({data:e,path:t.path,parent:t}),i=await(Ci(s)?s:Promise.resolve(s));return W1(t,i)}refine(e,a){let t=s=>typeof a=="string"||typeof a>"u"?{message:a}:typeof a=="function"?a(s):a;return this._refinement((s,i)=>{let n=e(s),o=()=>i.addIssue({code:Y.custom,...t(s)});return typeof Promise<"u"&&n instanceof Promise?n.then(l=>l?!0:(o(),!1)):n?!0:(o(),!1)})}refinement(e,a){return this._refinement((t,s)=>e(t)?!0:(s.addIssue(typeof a=="function"?a(t,s):a),!1))}_refinement(e){return new Xt({schema:this,typeName:Pe.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:a=>this["~validate"](a)}}optional(){return dr.create(this,this._def)}nullable(){return zr.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return na.create(this)}promise(){return Ca.create(this,this._def)}or(e){return Ss.create([this,e],this._def)}and(e){return Ps.create(this,e,this._def)}transform(e){return new Xt({...$e(this._def),schema:this,typeName:Pe.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let a=typeof e=="function"?e:()=>e;return new Cs({...$e(this._def),innerType:this,defaultValue:a,typeName:Pe.ZodDefault})}brand(){return new Ii({typeName:Pe.ZodBranded,type:this,...$e(this._def)})}catch(e){let a=typeof e=="function"?e:()=>e;return new Is({...$e(this._def),innerType:this,catchValue:a,typeName:Pe.ZodCatch})}describe(e){let a=this.constructor;return new a({...this._def,description:e})}pipe(e){return Ai.create(this,e)}readonly(){return As.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},f5=/^c[^\s-]{8,}$/i,m5=/^[0-9a-z]+$/,h5=/^[0-9A-HJKMNP-TV-Z]{26}$/i,v5=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,g5=/^[a-z0-9_-]{21}$/i,y5=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,b5=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,x5=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,_5="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",yd,E5=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,w5=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,S5=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,P5=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,R5=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,T5=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,yE="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",k5=new RegExp(`^${yE}$`);function bE(r){let e="[0-5]\\d";r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`);let a=r.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${a}`}function O5(r){return new RegExp(`^${bE(r)}$`)}function xE(r){let e=`${yE}T${bE(r)}`,a=[];return a.push(r.local?"Z?":"Z"),r.offset&&a.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${a.join("|")})`,new RegExp(`^${e}$`)}function C5(r,e){return!!((e==="v4"||!e)&&E5.test(r)||(e==="v6"||!e)&&S5.test(r))}function I5(r,e){if(!y5.test(r))return!1;try{let[a]=r.split(".");if(!a)return!1;let t=a.replace(/-/g,"+").replace(/_/g,"/").padEnd(a.length+(4-a.length%4)%4,"="),s=JSON.parse(atob(t));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function A5(r,e){return!!((e==="v4"||!e)&&w5.test(r)||(e==="v6"||!e)&&P5.test(r))}var ka=class r extends je{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==le.string){let i=this._getOrReturnCtx(e);return se(i,{code:Y.invalid_type,expected:le.string,received:i.parsedType}),we}let t=new Rt,s;for(let i of this._def.checks)if(i.kind==="min")e.data.lengthi.value&&(s=this._getOrReturnCtx(e,s),se(s,{code:Y.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),t.dirty());else if(i.kind==="length"){let n=e.data.length>i.value,o=e.data.lengthe.test(s),{validation:a,code:Y.invalid_string,...me.errToObj(t)})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...me.errToObj(e)})}url(e){return this._addCheck({kind:"url",...me.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...me.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...me.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...me.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...me.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...me.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...me.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...me.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...me.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...me.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...me.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...me.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...me.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...me.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...me.errToObj(e)})}regex(e,a){return this._addCheck({kind:"regex",regex:e,...me.errToObj(a)})}includes(e,a){return this._addCheck({kind:"includes",value:e,position:a?.position,...me.errToObj(a?.message)})}startsWith(e,a){return this._addCheck({kind:"startsWith",value:e,...me.errToObj(a)})}endsWith(e,a){return this._addCheck({kind:"endsWith",value:e,...me.errToObj(a)})}min(e,a){return this._addCheck({kind:"min",value:e,...me.errToObj(a)})}max(e,a){return this._addCheck({kind:"max",value:e,...me.errToObj(a)})}length(e,a){return this._addCheck({kind:"length",value:e,...me.errToObj(a)})}nonempty(e){return this.min(1,me.errToObj(e))}trim(){return new r({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new r({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new r({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e}get maxLength(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuenew ka({checks:[],typeName:Pe.ZodString,coerce:r?.coerce??!1,...$e(r)});function j5(r,e){let a=(r.toString().split(".")[1]||"").length,t=(e.toString().split(".")[1]||"").length,s=a>t?a:t,i=Number.parseInt(r.toFixed(s).replace(".","")),n=Number.parseInt(e.toFixed(s).replace(".",""));return i%n/10**s}var ys=class r extends je{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==le.number){let i=this._getOrReturnCtx(e);return se(i,{code:Y.invalid_type,expected:le.number,received:i.parsedType}),we}let t,s=new Rt;for(let i of this._def.checks)i.kind==="int"?Ge.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),se(t,{code:Y.invalid_type,expected:"integer",received:"float",message:i.message}),s.dirty()):i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(t=this._getOrReturnCtx(e,t),se(t,{code:Y.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="multipleOf"?j5(e.data,i.value)!==0&&(t=this._getOrReturnCtx(e,t),se(t,{code:Y.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),se(t,{code:Y.not_finite,message:i.message}),s.dirty()):Ge.assertNever(i);return{status:s.value,value:e.data}}gte(e,a){return this.setLimit("min",e,!0,me.toString(a))}gt(e,a){return this.setLimit("min",e,!1,me.toString(a))}lte(e,a){return this.setLimit("max",e,!0,me.toString(a))}lt(e,a){return this.setLimit("max",e,!1,me.toString(a))}setLimit(e,a,t,s){return new r({...this._def,checks:[...this._def.checks,{kind:e,value:a,inclusive:t,message:me.toString(s)}]})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:me.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:me.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:me.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:me.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:me.toString(e)})}multipleOf(e,a){return this._addCheck({kind:"multipleOf",value:e,message:me.toString(a)})}finite(e){return this._addCheck({kind:"finite",message:me.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:me.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:me.toString(e)})}get minValue(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e}get maxValue(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuee.kind==="int"||e.kind==="multipleOf"&&Ge.isInteger(e.value))}get isFinite(){let e=null,a=null;for(let t of this._def.checks){if(t.kind==="finite"||t.kind==="int"||t.kind==="multipleOf")return!0;t.kind==="min"?(a===null||t.value>a)&&(a=t.value):t.kind==="max"&&(e===null||t.valuenew ys({checks:[],typeName:Pe.ZodNumber,coerce:r?.coerce||!1,...$e(r)});var bs=class r extends je{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==le.bigint)return this._getInvalidInput(e);let t,s=new Rt;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(t=this._getOrReturnCtx(e,t),se(t,{code:Y.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),se(t,{code:Y.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):Ge.assertNever(i);return{status:s.value,value:e.data}}_getInvalidInput(e){let a=this._getOrReturnCtx(e);return se(a,{code:Y.invalid_type,expected:le.bigint,received:a.parsedType}),we}gte(e,a){return this.setLimit("min",e,!0,me.toString(a))}gt(e,a){return this.setLimit("min",e,!1,me.toString(a))}lte(e,a){return this.setLimit("max",e,!0,me.toString(a))}lt(e,a){return this.setLimit("max",e,!1,me.toString(a))}setLimit(e,a,t,s){return new r({...this._def,checks:[...this._def.checks,{kind:e,value:a,inclusive:t,message:me.toString(s)}]})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:me.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:me.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:me.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:me.toString(e)})}multipleOf(e,a){return this._addCheck({kind:"multipleOf",value:e,message:me.toString(a)})}get minValue(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e}get maxValue(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuenew bs({checks:[],typeName:Pe.ZodBigInt,coerce:r?.coerce??!1,...$e(r)});var xs=class extends je{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==le.boolean){let t=this._getOrReturnCtx(e);return se(t,{code:Y.invalid_type,expected:le.boolean,received:t.parsedType}),we}return Ot(e.data)}};xs.create=r=>new xs({typeName:Pe.ZodBoolean,coerce:r?.coerce||!1,...$e(r)});var _s=class r extends je{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==le.date){let i=this._getOrReturnCtx(e);return se(i,{code:Y.invalid_type,expected:le.date,received:i.parsedType}),we}if(Number.isNaN(e.data.getTime())){let i=this._getOrReturnCtx(e);return se(i,{code:Y.invalid_date}),we}let t=new Rt,s;for(let i of this._def.checks)i.kind==="min"?e.data.getTime()i.value&&(s=this._getOrReturnCtx(e,s),se(s,{code:Y.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),t.dirty()):Ge.assertNever(i);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}min(e,a){return this._addCheck({kind:"min",value:e.getTime(),message:me.toString(a)})}max(e,a){return this._addCheck({kind:"max",value:e.getTime(),message:me.toString(a)})}get minDate(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuenew _s({checks:[],coerce:r?.coerce||!1,typeName:Pe.ZodDate,...$e(r)});var Pn=class extends je{_parse(e){if(this._getType(e)!==le.symbol){let t=this._getOrReturnCtx(e);return se(t,{code:Y.invalid_type,expected:le.symbol,received:t.parsedType}),we}return Ot(e.data)}};Pn.create=r=>new Pn({typeName:Pe.ZodSymbol,...$e(r)});var Es=class extends je{_parse(e){if(this._getType(e)!==le.undefined){let t=this._getOrReturnCtx(e);return se(t,{code:Y.invalid_type,expected:le.undefined,received:t.parsedType}),we}return Ot(e.data)}};Es.create=r=>new Es({typeName:Pe.ZodUndefined,...$e(r)});var ws=class extends je{_parse(e){if(this._getType(e)!==le.null){let t=this._getOrReturnCtx(e);return se(t,{code:Y.invalid_type,expected:le.null,received:t.parsedType}),we}return Ot(e.data)}};ws.create=r=>new ws({typeName:Pe.ZodNull,...$e(r)});var Oa=class extends je{constructor(){super(...arguments),this._any=!0}_parse(e){return Ot(e.data)}};Oa.create=r=>new Oa({typeName:Pe.ZodAny,...$e(r)});var sa=class extends je{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Ot(e.data)}};sa.create=r=>new sa({typeName:Pe.ZodUnknown,...$e(r)});var Pr=class extends je{_parse(e){let a=this._getOrReturnCtx(e);return se(a,{code:Y.invalid_type,expected:le.never,received:a.parsedType}),we}};Pr.create=r=>new Pr({typeName:Pe.ZodNever,...$e(r)});var Rn=class extends je{_parse(e){if(this._getType(e)!==le.undefined){let t=this._getOrReturnCtx(e);return se(t,{code:Y.invalid_type,expected:le.void,received:t.parsedType}),we}return Ot(e.data)}};Rn.create=r=>new Rn({typeName:Pe.ZodVoid,...$e(r)});var na=class r extends je{_parse(e){let{ctx:a,status:t}=this._processInputParams(e),s=this._def;if(a.parsedType!==le.array)return se(a,{code:Y.invalid_type,expected:le.array,received:a.parsedType}),we;if(s.exactLength!==null){let n=a.data.length>s.exactLength.value,o=a.data.lengths.maxLength.value&&(se(a,{code:Y.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),t.dirty()),a.common.async)return Promise.all([...a.data].map((n,o)=>s.type._parseAsync(new fr(a,n,a.path,o)))).then(n=>Rt.mergeArray(t,n));let i=[...a.data].map((n,o)=>s.type._parseSync(new fr(a,n,a.path,o)));return Rt.mergeArray(t,i)}get element(){return this._def.type}min(e,a){return new r({...this._def,minLength:{value:e,message:me.toString(a)}})}max(e,a){return new r({...this._def,maxLength:{value:e,message:me.toString(a)}})}length(e,a){return new r({...this._def,exactLength:{value:e,message:me.toString(a)}})}nonempty(e){return this.min(1,e)}};na.create=(r,e)=>new na({type:r,minLength:null,maxLength:null,exactLength:null,typeName:Pe.ZodArray,...$e(e)});function En(r){if(r instanceof Ut){let e={};for(let a in r.shape){let t=r.shape[a];e[a]=dr.create(En(t))}return new Ut({...r._def,shape:()=>e})}else return r instanceof na?new na({...r._def,type:En(r.element)}):r instanceof dr?dr.create(En(r.unwrap())):r instanceof zr?zr.create(En(r.unwrap())):r instanceof Ur?Ur.create(r.items.map(e=>En(e))):r}var Ut=class r extends je{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),a=Ge.objectKeys(e);return this._cached={shape:e,keys:a},this._cached}_parse(e){if(this._getType(e)!==le.object){let c=this._getOrReturnCtx(e);return se(c,{code:Y.invalid_type,expected:le.object,received:c.parsedType}),we}let{status:t,ctx:s}=this._processInputParams(e),{shape:i,keys:n}=this._getCached(),o=[];if(!(this._def.catchall instanceof Pr&&this._def.unknownKeys==="strip"))for(let c in s.data)n.includes(c)||o.push(c);let l=[];for(let c of n){let u=i[c],p=s.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new fr(s,p,s.path,c)),alwaysSet:c in s.data})}if(this._def.catchall instanceof Pr){let c=this._def.unknownKeys;if(c==="passthrough")for(let u of o)l.push({key:{status:"valid",value:u},value:{status:"valid",value:s.data[u]}});else if(c==="strict")o.length>0&&(se(s,{code:Y.unrecognized_keys,keys:o}),t.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let u of o){let p=s.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new fr(s,p,s.path,u)),alwaysSet:u in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let c=[];for(let u of l){let p=await u.key,m=await u.value;c.push({key:p,value:m,alwaysSet:u.alwaysSet})}return c}).then(c=>Rt.mergeObjectSync(t,c)):Rt.mergeObjectSync(t,l)}get shape(){return this._def.shape()}strict(e){return me.errToObj,new r({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(a,t)=>{let s=this._def.errorMap?.(a,t).message??t.defaultError;return a.code==="unrecognized_keys"?{message:me.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new r({...this._def,unknownKeys:"strip"})}passthrough(){return new r({...this._def,unknownKeys:"passthrough"})}extend(e){return new r({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new r({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Pe.ZodObject})}setKey(e,a){return this.augment({[e]:a})}catchall(e){return new r({...this._def,catchall:e})}pick(e){let a={};for(let t of Ge.objectKeys(e))e[t]&&this.shape[t]&&(a[t]=this.shape[t]);return new r({...this._def,shape:()=>a})}omit(e){let a={};for(let t of Ge.objectKeys(this.shape))e[t]||(a[t]=this.shape[t]);return new r({...this._def,shape:()=>a})}deepPartial(){return En(this)}partial(e){let a={};for(let t of Ge.objectKeys(this.shape)){let s=this.shape[t];e&&!e[t]?a[t]=s:a[t]=s.optional()}return new r({...this._def,shape:()=>a})}required(e){let a={};for(let t of Ge.objectKeys(this.shape))if(e&&!e[t])a[t]=this.shape[t];else{let i=this.shape[t];for(;i instanceof dr;)i=i._def.innerType;a[t]=i}return new r({...this._def,shape:()=>a})}keyof(){return _E(Ge.objectKeys(this.shape))}};Ut.create=(r,e)=>new Ut({shape:()=>r,unknownKeys:"strip",catchall:Pr.create(),typeName:Pe.ZodObject,...$e(e)});Ut.strictCreate=(r,e)=>new Ut({shape:()=>r,unknownKeys:"strict",catchall:Pr.create(),typeName:Pe.ZodObject,...$e(e)});Ut.lazycreate=(r,e)=>new Ut({shape:r,unknownKeys:"strip",catchall:Pr.create(),typeName:Pe.ZodObject,...$e(e)});var Ss=class extends je{_parse(e){let{ctx:a}=this._processInputParams(e),t=this._def.options;function s(i){for(let o of i)if(o.result.status==="valid")return o.result;for(let o of i)if(o.result.status==="dirty")return a.common.issues.push(...o.ctx.common.issues),o.result;let n=i.map(o=>new Qt(o.ctx.common.issues));return se(a,{code:Y.invalid_union,unionErrors:n}),we}if(a.common.async)return Promise.all(t.map(async i=>{let n={...a,common:{...a.common,issues:[]},parent:null};return{result:await i._parseAsync({data:a.data,path:a.path,parent:n}),ctx:n}})).then(s);{let i,n=[];for(let l of t){let c={...a,common:{...a.common,issues:[]},parent:null},u=l._parseSync({data:a.data,path:a.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!i&&(i={result:u,ctx:c}),c.common.issues.length&&n.push(c.common.issues)}if(i)return a.common.issues.push(...i.ctx.common.issues),i.result;let o=n.map(l=>new Qt(l));return se(a,{code:Y.invalid_union,unionErrors:o}),we}}get options(){return this._def.options}};Ss.create=(r,e)=>new Ss({options:r,typeName:Pe.ZodUnion,...$e(e)});var ta=r=>r instanceof Rs?ta(r.schema):r instanceof Xt?ta(r.innerType()):r instanceof Ts?[r.value]:r instanceof ks?r.options:r instanceof Os?Ge.objectValues(r.enum):r instanceof Cs?ta(r._def.innerType):r instanceof Es?[void 0]:r instanceof ws?[null]:r instanceof dr?[void 0,...ta(r.unwrap())]:r instanceof zr?[null,...ta(r.unwrap())]:r instanceof Ii||r instanceof As?ta(r.unwrap()):r instanceof Is?ta(r._def.innerType):[],Vc=class r extends je{_parse(e){let{ctx:a}=this._processInputParams(e);if(a.parsedType!==le.object)return se(a,{code:Y.invalid_type,expected:le.object,received:a.parsedType}),we;let t=this.discriminator,s=a.data[t],i=this.optionsMap.get(s);return i?a.common.async?i._parseAsync({data:a.data,path:a.path,parent:a}):i._parseSync({data:a.data,path:a.path,parent:a}):(se(a,{code:Y.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[t]}),we)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,a,t){let s=new Map;for(let i of a){let n=ta(i.shape[e]);if(!n.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let o of n){if(s.has(o))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);s.set(o,i)}}return new r({typeName:Pe.ZodDiscriminatedUnion,discriminator:e,options:a,optionsMap:s,...$e(t)})}};function Od(r,e){let a=ra(r),t=ra(e);if(r===e)return{valid:!0,data:r};if(a===le.object&&t===le.object){let s=Ge.objectKeys(e),i=Ge.objectKeys(r).filter(o=>s.indexOf(o)!==-1),n={...r,...e};for(let o of i){let l=Od(r[o],e[o]);if(!l.valid)return{valid:!1};n[o]=l.data}return{valid:!0,data:n}}else if(a===le.array&&t===le.array){if(r.length!==e.length)return{valid:!1};let s=[];for(let i=0;i{if(Td(i)||Td(n))return we;let o=Od(i.value,n.value);return o.valid?((kd(i)||kd(n))&&a.dirty(),{status:a.value,value:o.data}):(se(t,{code:Y.invalid_intersection_types}),we)};return t.common.async?Promise.all([this._def.left._parseAsync({data:t.data,path:t.path,parent:t}),this._def.right._parseAsync({data:t.data,path:t.path,parent:t})]).then(([i,n])=>s(i,n)):s(this._def.left._parseSync({data:t.data,path:t.path,parent:t}),this._def.right._parseSync({data:t.data,path:t.path,parent:t}))}};Ps.create=(r,e,a)=>new Ps({left:r,right:e,typeName:Pe.ZodIntersection,...$e(a)});var Ur=class r extends je{_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==le.array)return se(t,{code:Y.invalid_type,expected:le.array,received:t.parsedType}),we;if(t.data.lengththis._def.items.length&&(se(t,{code:Y.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),a.dirty());let i=[...t.data].map((n,o)=>{let l=this._def.items[o]||this._def.rest;return l?l._parse(new fr(t,n,t.path,o)):null}).filter(n=>!!n);return t.common.async?Promise.all(i).then(n=>Rt.mergeArray(a,n)):Rt.mergeArray(a,i)}get items(){return this._def.items}rest(e){return new r({...this._def,rest:e})}};Ur.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ur({items:r,typeName:Pe.ZodTuple,rest:null,...$e(e)})};var Gc=class r extends je{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==le.object)return se(t,{code:Y.invalid_type,expected:le.object,received:t.parsedType}),we;let s=[],i=this._def.keyType,n=this._def.valueType;for(let o in t.data)s.push({key:i._parse(new fr(t,o,t.path,o)),value:n._parse(new fr(t,t.data[o],t.path,o)),alwaysSet:o in t.data});return t.common.async?Rt.mergeObjectAsync(a,s):Rt.mergeObjectSync(a,s)}get element(){return this._def.valueType}static create(e,a,t){return a instanceof je?new r({keyType:e,valueType:a,typeName:Pe.ZodRecord,...$e(t)}):new r({keyType:ka.create(),valueType:e,typeName:Pe.ZodRecord,...$e(a)})}},Tn=class extends je{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==le.map)return se(t,{code:Y.invalid_type,expected:le.map,received:t.parsedType}),we;let s=this._def.keyType,i=this._def.valueType,n=[...t.data.entries()].map(([o,l],c)=>({key:s._parse(new fr(t,o,t.path,[c,"key"])),value:i._parse(new fr(t,l,t.path,[c,"value"]))}));if(t.common.async){let o=new Map;return Promise.resolve().then(async()=>{for(let l of n){let c=await l.key,u=await l.value;if(c.status==="aborted"||u.status==="aborted")return we;(c.status==="dirty"||u.status==="dirty")&&a.dirty(),o.set(c.value,u.value)}return{status:a.value,value:o}})}else{let o=new Map;for(let l of n){let c=l.key,u=l.value;if(c.status==="aborted"||u.status==="aborted")return we;(c.status==="dirty"||u.status==="dirty")&&a.dirty(),o.set(c.value,u.value)}return{status:a.value,value:o}}}};Tn.create=(r,e,a)=>new Tn({valueType:e,keyType:r,typeName:Pe.ZodMap,...$e(a)});var kn=class r extends je{_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==le.set)return se(t,{code:Y.invalid_type,expected:le.set,received:t.parsedType}),we;let s=this._def;s.minSize!==null&&t.data.sizes.maxSize.value&&(se(t,{code:Y.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),a.dirty());let i=this._def.valueType;function n(l){let c=new Set;for(let u of l){if(u.status==="aborted")return we;u.status==="dirty"&&a.dirty(),c.add(u.value)}return{status:a.value,value:c}}let o=[...t.data.values()].map((l,c)=>i._parse(new fr(t,l,t.path,c)));return t.common.async?Promise.all(o).then(l=>n(l)):n(o)}min(e,a){return new r({...this._def,minSize:{value:e,message:me.toString(a)}})}max(e,a){return new r({...this._def,maxSize:{value:e,message:me.toString(a)}})}size(e,a){return this.min(e,a).max(e,a)}nonempty(e){return this.min(1,e)}};kn.create=(r,e)=>new kn({valueType:r,minSize:null,maxSize:null,typeName:Pe.ZodSet,...$e(e)});var Zc=class r extends je{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:a}=this._processInputParams(e);if(a.parsedType!==le.function)return se(a,{code:Y.invalid_type,expected:le.function,received:a.parsedType}),we;function t(o,l){return Bc({data:o,path:a.path,errorMaps:[a.common.contextualErrorMap,a.schemaErrorMap,Hc(),Sn].filter(c=>!!c),issueData:{code:Y.invalid_arguments,argumentsError:l}})}function s(o,l){return Bc({data:o,path:a.path,errorMaps:[a.common.contextualErrorMap,a.schemaErrorMap,Hc(),Sn].filter(c=>!!c),issueData:{code:Y.invalid_return_type,returnTypeError:l}})}let i={errorMap:a.common.contextualErrorMap},n=a.data;if(this._def.returns instanceof Ca){let o=this;return Ot(async function(...l){let c=new Qt([]),u=await o._def.args.parseAsync(l,i).catch(f=>{throw c.addIssue(t(l,f)),c}),p=await Reflect.apply(n,this,u);return await o._def.returns._def.type.parseAsync(p,i).catch(f=>{throw c.addIssue(s(p,f)),c})})}else{let o=this;return Ot(function(...l){let c=o._def.args.safeParse(l,i);if(!c.success)throw new Qt([t(l,c.error)]);let u=Reflect.apply(n,this,c.data),p=o._def.returns.safeParse(u,i);if(!p.success)throw new Qt([s(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new r({...this._def,args:Ur.create(e).rest(sa.create())})}returns(e){return new r({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,a,t){return new r({args:e||Ur.create([]).rest(sa.create()),returns:a||sa.create(),typeName:Pe.ZodFunction,...$e(t)})}},Rs=class extends je{get schema(){return this._def.getter()}_parse(e){let{ctx:a}=this._processInputParams(e);return this._def.getter()._parse({data:a.data,path:a.path,parent:a})}};Rs.create=(r,e)=>new Rs({getter:r,typeName:Pe.ZodLazy,...$e(e)});var Ts=class extends je{_parse(e){if(e.data!==this._def.value){let a=this._getOrReturnCtx(e);return se(a,{received:a.data,code:Y.invalid_literal,expected:this._def.value}),we}return{status:"valid",value:e.data}}get value(){return this._def.value}};Ts.create=(r,e)=>new Ts({value:r,typeName:Pe.ZodLiteral,...$e(e)});function _E(r,e){return new ks({values:r,typeName:Pe.ZodEnum,...$e(e)})}var ks=class r extends je{_parse(e){if(typeof e.data!="string"){let a=this._getOrReturnCtx(e),t=this._def.values;return se(a,{expected:Ge.joinValues(t),received:a.parsedType,code:Y.invalid_type}),we}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let a=this._getOrReturnCtx(e),t=this._def.values;return se(a,{received:a.data,code:Y.invalid_enum_value,options:t}),we}return Ot(e.data)}get options(){return this._def.values}get enum(){let e={};for(let a of this._def.values)e[a]=a;return e}get Values(){let e={};for(let a of this._def.values)e[a]=a;return e}get Enum(){let e={};for(let a of this._def.values)e[a]=a;return e}extract(e,a=this._def){return r.create(e,{...this._def,...a})}exclude(e,a=this._def){return r.create(this.options.filter(t=>!e.includes(t)),{...this._def,...a})}};ks.create=_E;var Os=class extends je{_parse(e){let a=Ge.getValidEnumValues(this._def.values),t=this._getOrReturnCtx(e);if(t.parsedType!==le.string&&t.parsedType!==le.number){let s=Ge.objectValues(a);return se(t,{expected:Ge.joinValues(s),received:t.parsedType,code:Y.invalid_type}),we}if(this._cache||(this._cache=new Set(Ge.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let s=Ge.objectValues(a);return se(t,{received:t.data,code:Y.invalid_enum_value,options:s}),we}return Ot(e.data)}get enum(){return this._def.values}};Os.create=(r,e)=>new Os({values:r,typeName:Pe.ZodNativeEnum,...$e(e)});var Ca=class extends je{unwrap(){return this._def.type}_parse(e){let{ctx:a}=this._processInputParams(e);if(a.parsedType!==le.promise&&a.common.async===!1)return se(a,{code:Y.invalid_type,expected:le.promise,received:a.parsedType}),we;let t=a.parsedType===le.promise?a.data:Promise.resolve(a.data);return Ot(t.then(s=>this._def.type.parseAsync(s,{path:a.path,errorMap:a.common.contextualErrorMap})))}};Ca.create=(r,e)=>new Ca({type:r,typeName:Pe.ZodPromise,...$e(e)});var Xt=class extends je{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Pe.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:a,ctx:t}=this._processInputParams(e),s=this._def.effect||null,i={addIssue:n=>{se(t,n),n.fatal?a.abort():a.dirty()},get path(){return t.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){let n=s.transform(t.data,i);if(t.common.async)return Promise.resolve(n).then(async o=>{if(a.value==="aborted")return we;let l=await this._def.schema._parseAsync({data:o,path:t.path,parent:t});return l.status==="aborted"?we:l.status==="dirty"||a.value==="dirty"?wn(l.value):l});{if(a.value==="aborted")return we;let o=this._def.schema._parseSync({data:n,path:t.path,parent:t});return o.status==="aborted"?we:o.status==="dirty"||a.value==="dirty"?wn(o.value):o}}if(s.type==="refinement"){let n=o=>{let l=s.refinement(o,i);if(t.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(t.common.async===!1){let o=this._def.schema._parseSync({data:t.data,path:t.path,parent:t});return o.status==="aborted"?we:(o.status==="dirty"&&a.dirty(),n(o.value),{status:a.value,value:o.value})}else return this._def.schema._parseAsync({data:t.data,path:t.path,parent:t}).then(o=>o.status==="aborted"?we:(o.status==="dirty"&&a.dirty(),n(o.value).then(()=>({status:a.value,value:o.value}))))}if(s.type==="transform")if(t.common.async===!1){let n=this._def.schema._parseSync({data:t.data,path:t.path,parent:t});if(!gs(n))return we;let o=s.transform(n.value,i);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:a.value,value:o}}else return this._def.schema._parseAsync({data:t.data,path:t.path,parent:t}).then(n=>gs(n)?Promise.resolve(s.transform(n.value,i)).then(o=>({status:a.value,value:o})):we);Ge.assertNever(s)}};Xt.create=(r,e,a)=>new Xt({schema:r,typeName:Pe.ZodEffects,effect:e,...$e(a)});Xt.createWithPreprocess=(r,e,a)=>new Xt({schema:e,effect:{type:"preprocess",transform:r},typeName:Pe.ZodEffects,...$e(a)});var dr=class extends je{_parse(e){return this._getType(e)===le.undefined?Ot(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dr.create=(r,e)=>new dr({innerType:r,typeName:Pe.ZodOptional,...$e(e)});var zr=class extends je{_parse(e){return this._getType(e)===le.null?Ot(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};zr.create=(r,e)=>new zr({innerType:r,typeName:Pe.ZodNullable,...$e(e)});var Cs=class extends je{_parse(e){let{ctx:a}=this._processInputParams(e),t=a.data;return a.parsedType===le.undefined&&(t=this._def.defaultValue()),this._def.innerType._parse({data:t,path:a.path,parent:a})}removeDefault(){return this._def.innerType}};Cs.create=(r,e)=>new Cs({innerType:r,typeName:Pe.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...$e(e)});var Is=class extends je{_parse(e){let{ctx:a}=this._processInputParams(e),t={...a,common:{...a.common,issues:[]}},s=this._def.innerType._parse({data:t.data,path:t.path,parent:{...t}});return Ci(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Qt(t.common.issues)},input:t.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Qt(t.common.issues)},input:t.data})}}removeCatch(){return this._def.innerType}};Is.create=(r,e)=>new Is({innerType:r,typeName:Pe.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...$e(e)});var On=class extends je{_parse(e){if(this._getType(e)!==le.nan){let t=this._getOrReturnCtx(e);return se(t,{code:Y.invalid_type,expected:le.nan,received:t.parsedType}),we}return{status:"valid",value:e.data}}};On.create=r=>new On({typeName:Pe.ZodNaN,...$e(r)});var N5=Symbol("zod_brand"),Ii=class extends je{_parse(e){let{ctx:a}=this._processInputParams(e),t=a.data;return this._def.type._parse({data:t,path:a.path,parent:a})}unwrap(){return this._def.type}},Ai=class r extends je{_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:t.data,path:t.path,parent:t});return i.status==="aborted"?we:i.status==="dirty"?(a.dirty(),wn(i.value)):this._def.out._parseAsync({data:i.value,path:t.path,parent:t})})();{let s=this._def.in._parseSync({data:t.data,path:t.path,parent:t});return s.status==="aborted"?we:s.status==="dirty"?(a.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:t.path,parent:t})}}static create(e,a){return new r({in:e,out:a,typeName:Pe.ZodPipeline})}},As=class extends je{_parse(e){let a=this._def.innerType._parse(e),t=s=>(gs(s)&&(s.value=Object.freeze(s.value)),s);return Ci(a)?a.then(s=>t(s)):t(a)}unwrap(){return this._def.innerType}};As.create=(r,e)=>new As({innerType:r,typeName:Pe.ZodReadonly,...$e(e)});function K1(r,e){let a=typeof r=="function"?r(e):typeof r=="string"?{message:r}:r;return typeof a=="string"?{message:a}:a}function EE(r,e={},a){return r?Oa.create().superRefine((t,s)=>{let i=r(t);if(i instanceof Promise)return i.then(n=>{if(!n){let o=K1(e,t),l=o.fatal??a??!0;s.addIssue({code:"custom",...o,fatal:l})}});if(!i){let n=K1(e,t),o=n.fatal??a??!0;s.addIssue({code:"custom",...n,fatal:o})}}):Oa.create()}var D5={object:Ut.lazycreate},Pe;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(Pe||(Pe={}));var $5=(r,e={message:`Input not instance of ${r.name}`})=>EE(a=>a instanceof r,e),wE=ka.create,SE=ys.create,q5=On.create,M5=bs.create,PE=xs.create,F5=_s.create,L5=Pn.create,U5=Es.create,z5=ws.create,H5=Oa.create,B5=sa.create,V5=Pr.create,G5=Rn.create,Z5=na.create,W5=Ut.create,K5=Ut.strictCreate,Q5=Ss.create,X5=Vc.create,J5=Ps.create,Y5=Ur.create,e6=Gc.create,t6=Tn.create,r6=kn.create,a6=Zc.create,s6=Rs.create,n6=Ts.create,i6=ks.create,o6=Os.create,c6=Ca.create,Q1=Xt.create,l6=dr.create,u6=zr.create,p6=Xt.createWithPreprocess,d6=Ai.create,f6=()=>wE().optional(),m6=()=>SE().optional(),h6=()=>PE().optional(),v6={string:r=>ka.create({...r,coerce:!0}),number:r=>ys.create({...r,coerce:!0}),boolean:r=>xs.create({...r,coerce:!0}),bigint:r=>bs.create({...r,coerce:!0}),date:r=>_s.create({...r,coerce:!0})},g6=we;var Xc="2.0",RE=w.union([w.string(),w.number().int()]),TE=w.string(),y6=w.object({progressToken:w.optional(RE)}).passthrough(),mr=w.object({_meta:w.optional(y6)}).passthrough(),zt=w.object({method:w.string(),params:w.optional(mr)}),Ni=w.object({_meta:w.optional(w.object({}).passthrough())}).passthrough(),Hr=w.object({method:w.string(),params:w.optional(Ni)}),hr=w.object({_meta:w.optional(w.object({}).passthrough())}).passthrough(),Jc=w.union([w.string(),w.number().int()]),b6=w.object({jsonrpc:w.literal(Xc),id:Jc}).merge(zt).strict();var x6=w.object({jsonrpc:w.literal(Xc)}).merge(Hr).strict();var _6=w.object({jsonrpc:w.literal(Xc),id:Jc,result:hr}).strict();var X1;(function(r){r[r.ConnectionClosed=-32e3]="ConnectionClosed",r[r.RequestTimeout=-32001]="RequestTimeout",r[r.ParseError=-32700]="ParseError",r[r.InvalidRequest=-32600]="InvalidRequest",r[r.MethodNotFound=-32601]="MethodNotFound",r[r.InvalidParams=-32602]="InvalidParams",r[r.InternalError=-32603]="InternalError"})(X1||(X1={}));var E6=w.object({jsonrpc:w.literal(Xc),id:Jc,error:w.object({code:w.number().int(),message:w.string(),data:w.optional(w.unknown())})}).strict();var L3=w.union([b6,x6,_6,E6]),kE=hr.strict(),OE=Hr.extend({method:w.literal("notifications/cancelled"),params:Ni.extend({requestId:Jc,reason:w.string().optional()})}),Di=w.object({name:w.string(),title:w.optional(w.string())}).passthrough(),CE=Di.extend({version:w.string()}),w6=w.object({experimental:w.optional(w.object({}).passthrough()),sampling:w.optional(w.object({}).passthrough()),elicitation:w.optional(w.object({}).passthrough()),roots:w.optional(w.object({listChanged:w.optional(w.boolean())}).passthrough())}).passthrough(),S6=zt.extend({method:w.literal("initialize"),params:mr.extend({protocolVersion:w.string(),capabilities:w6,clientInfo:CE})}),P6=w.object({experimental:w.optional(w.object({}).passthrough()),logging:w.optional(w.object({}).passthrough()),completions:w.optional(w.object({}).passthrough()),prompts:w.optional(w.object({listChanged:w.optional(w.boolean())}).passthrough()),resources:w.optional(w.object({subscribe:w.optional(w.boolean()),listChanged:w.optional(w.boolean())}).passthrough()),tools:w.optional(w.object({listChanged:w.optional(w.boolean())}).passthrough())}).passthrough(),R6=hr.extend({protocolVersion:w.string(),capabilities:P6,serverInfo:CE,instructions:w.optional(w.string())}),T6=Hr.extend({method:w.literal("notifications/initialized")}),IE=zt.extend({method:w.literal("ping")}),k6=w.object({progress:w.number(),total:w.optional(w.number()),message:w.optional(w.string())}).passthrough(),AE=Hr.extend({method:w.literal("notifications/progress"),params:Ni.merge(k6).extend({progressToken:RE})}),Yc=zt.extend({params:mr.extend({cursor:w.optional(TE)}).optional()}),el=hr.extend({nextCursor:w.optional(TE)}),jE=w.object({uri:w.string(),mimeType:w.optional(w.string()),_meta:w.optional(w.object({}).passthrough())}).passthrough(),NE=jE.extend({text:w.string()}),$d=w.string().refine(r=>{try{return atob(r),!0}catch{return!1}},{message:"Invalid Base64 string"}),DE=jE.extend({blob:$d}),$E=Di.extend({uri:w.string(),description:w.optional(w.string()),mimeType:w.optional(w.string()),_meta:w.optional(w.object({}).passthrough())}),O6=Di.extend({uriTemplate:w.string(),description:w.optional(w.string()),mimeType:w.optional(w.string()),_meta:w.optional(w.object({}).passthrough())}),C6=Yc.extend({method:w.literal("resources/list")}),I6=el.extend({resources:w.array($E)}),A6=Yc.extend({method:w.literal("resources/templates/list")}),j6=el.extend({resourceTemplates:w.array(O6)}),N6=zt.extend({method:w.literal("resources/read"),params:mr.extend({uri:w.string()})}),D6=hr.extend({contents:w.array(w.union([NE,DE]))}),$6=Hr.extend({method:w.literal("notifications/resources/list_changed")}),q6=zt.extend({method:w.literal("resources/subscribe"),params:mr.extend({uri:w.string()})}),M6=zt.extend({method:w.literal("resources/unsubscribe"),params:mr.extend({uri:w.string()})}),F6=Hr.extend({method:w.literal("notifications/resources/updated"),params:Ni.extend({uri:w.string()})}),L6=w.object({name:w.string(),description:w.optional(w.string()),required:w.optional(w.boolean())}).passthrough(),U6=Di.extend({description:w.optional(w.string()),arguments:w.optional(w.array(L6)),_meta:w.optional(w.object({}).passthrough())}),z6=Yc.extend({method:w.literal("prompts/list")}),H6=el.extend({prompts:w.array(U6)}),B6=zt.extend({method:w.literal("prompts/get"),params:mr.extend({name:w.string(),arguments:w.optional(w.record(w.string()))})}),qd=w.object({type:w.literal("text"),text:w.string(),_meta:w.optional(w.object({}).passthrough())}).passthrough(),Md=w.object({type:w.literal("image"),data:$d,mimeType:w.string(),_meta:w.optional(w.object({}).passthrough())}).passthrough(),Fd=w.object({type:w.literal("audio"),data:$d,mimeType:w.string(),_meta:w.optional(w.object({}).passthrough())}).passthrough(),V6=w.object({type:w.literal("resource"),resource:w.union([NE,DE]),_meta:w.optional(w.object({}).passthrough())}).passthrough(),G6=$E.extend({type:w.literal("resource_link")}),qE=w.union([qd,Md,Fd,G6,V6]),Z6=w.object({role:w.enum(["user","assistant"]),content:qE}).passthrough(),W6=hr.extend({description:w.optional(w.string()),messages:w.array(Z6)}),K6=Hr.extend({method:w.literal("notifications/prompts/list_changed")}),Q6=w.object({title:w.optional(w.string()),readOnlyHint:w.optional(w.boolean()),destructiveHint:w.optional(w.boolean()),idempotentHint:w.optional(w.boolean()),openWorldHint:w.optional(w.boolean())}).passthrough(),X6=Di.extend({description:w.optional(w.string()),inputSchema:w.object({type:w.literal("object"),properties:w.optional(w.object({}).passthrough()),required:w.optional(w.array(w.string()))}).passthrough(),outputSchema:w.optional(w.object({type:w.literal("object"),properties:w.optional(w.object({}).passthrough()),required:w.optional(w.array(w.string()))}).passthrough()),annotations:w.optional(Q6),_meta:w.optional(w.object({}).passthrough())}),J6=Yc.extend({method:w.literal("tools/list")}),Y6=el.extend({tools:w.array(X6)}),ME=hr.extend({content:w.array(qE).default([]),structuredContent:w.object({}).passthrough().optional(),isError:w.optional(w.boolean())}),U3=ME.or(hr.extend({toolResult:w.unknown()})),e$=zt.extend({method:w.literal("tools/call"),params:mr.extend({name:w.string(),arguments:w.optional(w.record(w.unknown()))})}),t$=Hr.extend({method:w.literal("notifications/tools/list_changed")}),FE=w.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),r$=zt.extend({method:w.literal("logging/setLevel"),params:mr.extend({level:FE})}),a$=Hr.extend({method:w.literal("notifications/message"),params:Ni.extend({level:FE,logger:w.optional(w.string()),data:w.unknown()})}),s$=w.object({name:w.string().optional()}).passthrough(),n$=w.object({hints:w.optional(w.array(s$)),costPriority:w.optional(w.number().min(0).max(1)),speedPriority:w.optional(w.number().min(0).max(1)),intelligencePriority:w.optional(w.number().min(0).max(1))}).passthrough(),i$=w.object({role:w.enum(["user","assistant"]),content:w.union([qd,Md,Fd])}).passthrough(),o$=zt.extend({method:w.literal("sampling/createMessage"),params:mr.extend({messages:w.array(i$),systemPrompt:w.optional(w.string()),includeContext:w.optional(w.enum(["none","thisServer","allServers"])),temperature:w.optional(w.number()),maxTokens:w.number().int(),stopSequences:w.optional(w.array(w.string())),metadata:w.optional(w.object({}).passthrough()),modelPreferences:w.optional(n$)})}),c$=hr.extend({model:w.string(),stopReason:w.optional(w.enum(["endTurn","stopSequence","maxTokens"]).or(w.string())),role:w.enum(["user","assistant"]),content:w.discriminatedUnion("type",[qd,Md,Fd])}),l$=w.object({type:w.literal("boolean"),title:w.optional(w.string()),description:w.optional(w.string()),default:w.optional(w.boolean())}).passthrough(),u$=w.object({type:w.literal("string"),title:w.optional(w.string()),description:w.optional(w.string()),minLength:w.optional(w.number()),maxLength:w.optional(w.number()),format:w.optional(w.enum(["email","uri","date","date-time"]))}).passthrough(),p$=w.object({type:w.enum(["number","integer"]),title:w.optional(w.string()),description:w.optional(w.string()),minimum:w.optional(w.number()),maximum:w.optional(w.number())}).passthrough(),d$=w.object({type:w.literal("string"),title:w.optional(w.string()),description:w.optional(w.string()),enum:w.array(w.string()),enumNames:w.optional(w.array(w.string()))}).passthrough(),f$=w.union([l$,u$,p$,d$]),m$=zt.extend({method:w.literal("elicitation/create"),params:mr.extend({message:w.string(),requestedSchema:w.object({type:w.literal("object"),properties:w.record(w.string(),f$),required:w.optional(w.array(w.string()))}).passthrough()})}),h$=hr.extend({action:w.enum(["accept","decline","cancel"]),content:w.optional(w.record(w.string(),w.unknown()))}),v$=w.object({type:w.literal("ref/resource"),uri:w.string()}).passthrough(),g$=w.object({type:w.literal("ref/prompt"),name:w.string()}).passthrough(),y$=zt.extend({method:w.literal("completion/complete"),params:mr.extend({ref:w.union([g$,v$]),argument:w.object({name:w.string(),value:w.string()}).passthrough(),context:w.optional(w.object({arguments:w.optional(w.record(w.string(),w.string()))}))})}),b$=hr.extend({completion:w.object({values:w.array(w.string()).max(100),total:w.optional(w.number().int()),hasMore:w.optional(w.boolean())}).passthrough()}),x$=w.object({uri:w.string().startsWith("file://"),name:w.optional(w.string()),_meta:w.optional(w.object({}).passthrough())}).passthrough(),_$=zt.extend({method:w.literal("roots/list")}),E$=hr.extend({roots:w.array(x$)}),w$=Hr.extend({method:w.literal("notifications/roots/list_changed")}),z3=w.union([IE,S6,y$,r$,B6,z6,C6,A6,N6,q6,M6,e$,J6]),H3=w.union([OE,AE,T6,w$]),B3=w.union([kE,c$,h$,E$]),V3=w.union([IE,o$,m$,_$]),G3=w.union([OE,AE,a$,F6,$6,t$,K6]),Z3=w.union([kE,R6,b$,W6,H6,I6,j6,D6,ME,Y6]);var W3=Pj(iN(),1);var K3=Symbol("Let zodToJsonSchema decide on which parser to use");var Q3=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");var Cd;(function(r){r.Completable="McpCompletable"})(Cd||(Cd={}));var Wc=class extends je{_parse(e){let{ctx:a}=this._processInputParams(e),t=a.data;return this._def.type._parse({data:t,path:a.path,parent:a})}unwrap(){return this._def.type}};Wc.create=(r,e)=>new Wc({type:r,typeName:Cd.Completable,complete:e.complete,...S$(e)});function S$(r){if(!r)return{};let{errorMap:e,invalid_type_error:a,required_error:t,description:s}=r;if(e&&(a||t))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(n,o)=>{var l,c;let{message:u}=r;return n.code==="invalid_enum_value"?{message:u??o.defaultError}:typeof o.data>"u"?{message:(l=u??t)!==null&&l!==void 0?l:o.defaultError}:n.code!=="invalid_type"?{message:o.defaultError}:{message:(c=u??a)!==null&&c!==void 0?c:o.defaultError}},description:s}}function LE({prompt:r,options:e}){let{systemPrompt:a,settingSources:t,...s}=e??{},i,n;a===void 0?i="":typeof a=="string"?i=a:a.type==="preset"&&(n=a.append);let o=s.pathToClaudeCodeExecutable;if(!o){let xe=(0,rE.fileURLToPath)(P$.url),Oe=(0,xd.join)(xe,"..");o=(0,xd.join)(Oe,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.27";let{abortController:l=sE(),additionalDirectories:c=[],agents:u,allowedTools:p=[],canUseTool:m,continue:f,cwd:h,disallowedTools:d=[],env:v,executable:g=cE()?"bun":"node",executableArgs:b=[],extraArgs:E={},fallbackModel:k,forkSession:O,hooks:P,includePartialMessages:I,maxThinkingTokens:$,maxTurns:A,mcpServers:F,model:q,permissionMode:C="default",allowDangerouslySkipPermissions:R=!1,permissionPromptToolName:j,plugins:z,resume:B,resumeSessionAt:G,stderr:te,strictMcpConfig:X}=s,V=v;if(V||(V={...process.env}),V.CLAUDE_CODE_ENTRYPOINT||(V.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),!o)throw new Error("pathToClaudeCodeExecutable is required");let re={},ce=new Map;if(F)for(let[xe,Oe]of Object.entries(F))Oe.type==="sdk"&&"instance"in Oe?(ce.set(xe,Oe.instance),re[xe]={type:"sdk",name:xe}):re[xe]=Oe;let Be=typeof r=="string",be=new _d({abortController:l,additionalDirectories:c,agents:u,cwd:h,executable:g,executableArgs:b,extraArgs:E,pathToClaudeCodeExecutable:o,env:V,forkSession:O,stderr:te,customSystemPrompt:i,appendSystemPrompt:n,maxThinkingTokens:$,maxTurns:A,model:q,fallbackModel:k,permissionMode:C,allowDangerouslySkipPermissions:R,permissionPromptToolName:j,continueConversation:f,resume:B,resumeSessionAt:G,settingSources:t??[],allowedTools:p,disallowedTools:d,mcpServers:re,strictMcpConfig:X,canUseTool:!!m,hooks:!!P,includePartialMessages:I,plugins:z}),qe=new Pd(be,Be,m,P,l,ce);return typeof r=="string"?be.write(JSON.stringify({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:r}]},parent_tool_use_id:null})+` -`):qe.streamInput(r),qe}var tl=class{dbManager;sessionManager;constructor(e,a){this.dbManager=e,this.sessionManager=a}async startSession(e,a){try{let t=this.findClaudeExecutable(),s=this.getModelId(),i=["Bash","Read","Write","Edit","Grep","Glob","WebFetch","WebSearch","Task","NotebookEdit","AskUserQuestion","TodoWrite"],n=this.createMessageGenerator(e),o=LE({prompt:n,options:{model:s,disallowedTools:i,abortController:e.abortController,pathToClaudeCodeExecutable:t}});for await(let c of o){if(c.type==="assistant"){let u=c.message.content,p=Array.isArray(u)?u.filter(v=>v.type==="text").map(v=>v.text).join(` -`):typeof u=="string"?u:"",m=p.length,f=e.cumulativeInputTokens+e.cumulativeOutputTokens,h=c.message.usage;h&&(e.cumulativeInputTokens+=h.input_tokens||0,e.cumulativeOutputTokens+=h.output_tokens||0,h.cache_creation_input_tokens&&(e.cumulativeInputTokens+=h.cache_creation_input_tokens),H.debug("SDK","Token usage captured",{sessionId:e.sessionDbId,inputTokens:h.input_tokens,outputTokens:h.output_tokens,cacheCreation:h.cache_creation_input_tokens||0,cacheRead:h.cache_read_input_tokens||0,cumulativeInput:e.cumulativeInputTokens,cumulativeOutput:e.cumulativeOutputTokens}));let d=e.cumulativeInputTokens+e.cumulativeOutputTokens-f;if(m>0){let v=m>100?p.substring(0,100)+"...":p;H.dataOut("SDK",`Response received (${m} chars)`,{sessionId:e.sessionDbId,promptNumber:e.lastPromptNumber},v),await this.processSDKResponse(e,p,a,d)}}c.type==="result"&&c.subtype}let l=Date.now()-e.startTime;H.success("SDK","Agent completed",{sessionId:e.sessionDbId,duration:`${(l/1e3).toFixed(1)}s`}),this.dbManager.getSessionStore().markSessionCompleted(e.sessionDbId)}catch(t){throw t.name==="AbortError"?H.warn("SDK","Agent aborted",{sessionId:e.sessionDbId}):H.failure("SDK","Agent error",{sessionDbId:e.sessionDbId},t),t}finally{this.sessionManager.deleteSession(e.sessionDbId).catch(()=>{})}}async*createMessageGenerator(e){yield{type:"user",message:{role:"user",content:e.lastPromptNumber===1?N1(e.project,e.claudeSessionId,e.userPrompt):q1(e.userPrompt,e.lastPromptNumber,e.claudeSessionId)},session_id:e.claudeSessionId,parent_tool_use_id:null,isSynthetic:!0};for await(let a of this.sessionManager.getMessageIterator(e.sessionDbId))a.type==="observation"?(a.prompt_number!==void 0&&(e.lastPromptNumber=a.prompt_number),yield{type:"user",message:{role:"user",content:D1({id:0,tool_name:a.tool_name,tool_input:JSON.stringify(a.tool_input),tool_output:JSON.stringify(a.tool_response),created_at_epoch:Date.now(),cwd:a.cwd})},session_id:e.claudeSessionId,parent_tool_use_id:null,isSynthetic:!0}):a.type==="summarize"&&(yield{type:"user",message:{role:"user",content:$1({id:e.sessionDbId,sdk_session_id:e.sdkSessionId,project:e.project,user_prompt:e.userPrompt,last_user_message:a.last_user_message||"",last_assistant_message:a.last_assistant_message||""})},session_id:e.claudeSessionId,parent_tool_use_id:null,isSynthetic:!0})}async processSDKResponse(e,a,t,s){let i=A1(a,e.claudeSessionId);for(let o of i){let{id:l,createdAtEpoch:c}=this.dbManager.getSessionStore().storeObservation(e.claudeSessionId,e.project,o,e.lastPromptNumber,s);H.info("SDK","Observation saved",{sessionId:e.sessionDbId,obsId:l,type:o.type,title:o.title||Kt("obs.title is null",{obsId:l,type:o.type},"(untitled)"),filesRead:o.files_read?.length??(Kt("obs.files_read is null/undefined",{obsId:l}),0),filesModified:o.files_modified?.length??(Kt("obs.files_modified is null/undefined",{obsId:l}),0),concepts:o.concepts?.length??(Kt("obs.concepts is null/undefined",{obsId:l}),0)});let u=Date.now(),p=o.type,m=o.title||Kt("obs.title is null for Chroma sync",{obsId:l,type:o.type},"(untitled)");this.dbManager.getChromaSync().syncObservation(l,e.claudeSessionId,e.project,o,e.lastPromptNumber,c,s).then(()=>{let f=Date.now()-u;H.debug("CHROMA","Observation synced",{obsId:l,duration:`${f}ms`,type:p,title:m})}).catch(f=>{H.error("CHROMA","Failed to sync observation",{obsId:l,sessionId:e.sessionDbId,type:p,title:m},f)}),t&&t.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_observation",observation:{id:l,sdk_session_id:e.sdkSessionId,session_id:e.claudeSessionId,type:o.type,title:o.title,subtitle:o.subtitle,text:o.text||null,narrative:o.narrative||null,facts:JSON.stringify(o.facts||[]),concepts:JSON.stringify(o.concepts||[]),files_read:JSON.stringify(o.files||[]),files_modified:JSON.stringify([]),project:e.project,prompt_number:e.lastPromptNumber,created_at_epoch:c}})}let n=j1(a,e.sessionDbId);if(n){let{id:o,createdAtEpoch:l}=this.dbManager.getSessionStore().storeSummary(e.claudeSessionId,e.project,n,e.lastPromptNumber,s);H.info("SDK","Summary saved",{sessionId:e.sessionDbId,summaryId:o,request:n.request||Kt("summary.request is null",{summaryId:o},"(no request)"),hasCompleted:!!n.completed,hasNextSteps:!!n.next_steps});let c=Date.now(),u=n.request||Kt("summary.request is null for Chroma sync",{summaryId:o},"(no request)");this.dbManager.getChromaSync().syncSummary(o,e.claudeSessionId,e.project,n,e.lastPromptNumber,l,s).then(()=>{let p=Date.now()-c;H.debug("CHROMA","Summary synced",{summaryId:o,duration:`${p}ms`,request:u})}).catch(p=>{H.error("CHROMA","Failed to sync summary",{summaryId:o,sessionId:e.sessionDbId,request:u},p)}),t&&t.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_summary",summary:{id:o,session_id:e.claudeSessionId,request:n.request,investigated:n.investigated,learned:n.learned,completed:n.completed,next_steps:n.next_steps,notes:n.notes,project:e.project,prompt_number:e.lastPromptNumber,created_at_epoch:l}})}t&&typeof t.broadcastProcessingStatus=="function"&&t.broadcastProcessingStatus()}findClaudeExecutable(){let e=process.env.CLAUDE_CODE_PATH||(0,UE.execSync)(process.platform==="win32"?"where claude":"which claude",{encoding:"utf8"}).trim().split(` -`)[0].trim();if(!e)throw new Error("Claude executable not found in PATH");return e}getModelId(){try{let e=HE.default.join((0,zE.homedir)(),".claude-mem","settings.json");if((0,rl.existsSync)(e)){let t=JSON.parse((0,rl.readFileSync)(e,"utf-8")).env?.CLAUDE_MEM_MODEL;if(t)return t}}catch{}return process.env.CLAUDE_MEM_MODEL||"claude-haiku-4-5"}};var al=class{dbManager;constructor(e){this.dbManager=e}stripProjectPath(e,a){let t=`/${a}/`,s=e.indexOf(t);return s!==-1?e.substring(s+t.length):e}stripProjectPaths(e,a){if(!e)return e;try{let s=JSON.parse(e).map(i=>this.stripProjectPath(i,a));return JSON.stringify(s)}catch{return e}}sanitizeObservation(e){return{...e,files_read:this.stripProjectPaths(e.files_read,e.project),files_modified:this.stripProjectPaths(e.files_modified,e.project)}}getObservations(e,a,t){let s=this.paginate("observations","id, sdk_session_id, project, type, title, subtitle, narrative, text, facts, concepts, files_read, files_modified, prompt_number, created_at, created_at_epoch",e,a,t);return{...s,items:s.items.map(i=>this.sanitizeObservation(i))}}getSummaries(e,a,t){let s=this.dbManager.getSessionStore().db,i=` +`))}if(ea(`[Query.streamInput] Finished processing ${a} messages from input stream`),ea(`[Query.streamInput] About to check MCP servers. this.sdkMcpTransports.size = ${this.sdkMcpTransports.size}`),this.sdkMcpTransports.size>0&&this.firstResultReceivedPromise){ea("[Query.streamInput] Entering Promise.race to wait for result");let t=1e4,s;await Promise.race([this.firstResultReceivedPromise.then(()=>{ea("[Query.streamInput] Received first result, closing input stream"),s&&clearTimeout(s)}),new Promise(i=>{s=setTimeout(()=>{ea("[Query.streamInput] Timed out waiting for first result, closing input stream"),i()},t)})]),s&&clearTimeout(s)}ea("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(a){if(!(a instanceof hs))throw a}}handleHookCallbacks(e,a,t,s){let i=this.hookCallbacks.get(e);if(!i)throw new Error(`No hook callback found for ID: ${e}`);return i(a,t,{signal:s})}sendMcpServerMessageToCli(e,a){if("id"in a&&a.id!==null&&a.id!==void 0){let t=`${e}:${a.id}`,s=this.pendingMcpResponses.get(t);if(s){s.resolve(a),this.pendingMcpResponses.delete(t);return}}throw new Error("No pending request found")}handleMcpControlRequest(e,a,t){let s="id"in a.message?a.message.id:null,i=`${e}:${s}`;return new Promise((n,o)=>{let l=null,c=()=>{l&&clearTimeout(l),this.pendingMcpResponses.delete(i)},u=m=>{c(),n(m)},p=m=>{c(),o(m)};if(this.pendingMcpResponses.set(i,{resolve:u,reject:p}),t.onmessage)t.onmessage(a.message);else{c(),o(new Error("No message handler registered"));return}l=setTimeout(()=>{this.pendingMcpResponses.has(i)&&(c(),o(new Error("Request timeout")))},3e4)})}},w={};Rj(w,{void:()=>G5,util:()=>Ge,unknown:()=>B5,union:()=>Q5,undefined:()=>U5,tuple:()=>Y5,transformer:()=>QE,symbol:()=>L5,string:()=>w1,strictObject:()=>K5,setErrorMap:()=>p5,set:()=>r6,record:()=>e6,quotelessJson:()=>l5,promise:()=>c6,preprocess:()=>p6,pipeline:()=>d6,ostring:()=>f6,optional:()=>l6,onumber:()=>m6,oboolean:()=>h6,objectUtil:()=>Rd,object:()=>W5,number:()=>S1,nullable:()=>u6,null:()=>z5,never:()=>V5,nativeEnum:()=>o6,nan:()=>q5,map:()=>t6,makeIssue:()=>Bc,literal:()=>n6,lazy:()=>s6,late:()=>D5,isValid:()=>gs,isDirty:()=>kd,isAsync:()=>Ci,isAborted:()=>Td,intersection:()=>J5,instanceof:()=>$5,getParsedType:()=>ra,getErrorMap:()=>Hc,function:()=>a6,enum:()=>i6,effect:()=>QE,discriminatedUnion:()=>X5,defaultErrorMap:()=>Sn,datetimeRegex:()=>x1,date:()=>F5,custom:()=>E1,coerce:()=>v6,boolean:()=>P1,bigint:()=>M5,array:()=>Z5,any:()=>H5,addIssueToContext:()=>se,ZodVoid:()=>Rn,ZodUnknown:()=>sa,ZodUnion:()=>Ss,ZodUndefined:()=>Es,ZodType:()=>je,ZodTuple:()=>Ur,ZodTransformer:()=>Xt,ZodSymbol:()=>Pn,ZodString:()=>ka,ZodSet:()=>kn,ZodSchema:()=>je,ZodRecord:()=>Gc,ZodReadonly:()=>As,ZodPromise:()=>Ca,ZodPipeline:()=>Ai,ZodParsedType:()=>le,ZodOptional:()=>dr,ZodObject:()=>Ut,ZodNumber:()=>ys,ZodNullable:()=>zr,ZodNull:()=>ws,ZodNever:()=>Pr,ZodNativeEnum:()=>Os,ZodNaN:()=>On,ZodMap:()=>Tn,ZodLiteral:()=>Ts,ZodLazy:()=>Rs,ZodIssueCode:()=>Y,ZodIntersection:()=>Ps,ZodFunction:()=>Zc,ZodFirstPartyTypeKind:()=>Pe,ZodError:()=>Qt,ZodEnum:()=>ks,ZodEffects:()=>Xt,ZodDiscriminatedUnion:()=>Vc,ZodDefault:()=>Cs,ZodDate:()=>_s,ZodCatch:()=>Is,ZodBranded:()=>Ii,ZodBoolean:()=>xs,ZodBigInt:()=>bs,ZodArray:()=>na,ZodAny:()=>Oa,Schema:()=>je,ParseStatus:()=>Rt,OK:()=>Ot,NEVER:()=>g6,INVALID:()=>we,EMPTY_PATH:()=>d5,DIRTY:()=>wn,BRAND:()=>N5});var Ge;(function(r){r.assertEqual=s=>{};function e(s){}r.assertIs=e;function a(s){throw new Error}r.assertNever=a,r.arrayToEnum=s=>{let i={};for(let n of s)i[n]=n;return i},r.getValidEnumValues=s=>{let i=r.objectKeys(s).filter(o=>typeof s[s[o]]!="number"),n={};for(let o of i)n[o]=s[o];return r.objectValues(n)},r.objectValues=s=>r.objectKeys(s).map(function(i){return s[i]}),r.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let i=[];for(let n in s)Object.prototype.hasOwnProperty.call(s,n)&&i.push(n);return i},r.find=(s,i)=>{for(let n of s)if(i(n))return n},r.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function t(s,i=" | "){return s.map(n=>typeof n=="string"?`'${n}'`:n).join(i)}r.joinValues=t,r.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(Ge||(Ge={}));var Rd;(function(r){r.mergeShapes=(e,a)=>({...e,...a})})(Rd||(Rd={}));var le=Ge.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ra=r=>{switch(typeof r){case"undefined":return le.undefined;case"string":return le.string;case"number":return Number.isNaN(r)?le.nan:le.number;case"boolean":return le.boolean;case"function":return le.function;case"bigint":return le.bigint;case"symbol":return le.symbol;case"object":return Array.isArray(r)?le.array:r===null?le.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?le.promise:typeof Map<"u"&&r instanceof Map?le.map:typeof Set<"u"&&r instanceof Set?le.set:typeof Date<"u"&&r instanceof Date?le.date:le.object;default:return le.unknown}},Y=Ge.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),l5=r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:"),Qt=class r extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=t=>{this.issues=[...this.issues,t]},this.addIssues=(t=[])=>{this.issues=[...this.issues,...t]};let a=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,a):this.__proto__=a,this.name="ZodError",this.issues=e}format(e){let a=e||function(i){return i.message},t={_errors:[]},s=i=>{for(let n of i.issues)if(n.code==="invalid_union")n.unionErrors.map(s);else if(n.code==="invalid_return_type")s(n.returnTypeError);else if(n.code==="invalid_arguments")s(n.argumentsError);else if(n.path.length===0)t._errors.push(a(n));else{let o=t,l=0;for(;la.message){let a={},t=[];for(let s of this.issues)if(s.path.length>0){let i=s.path[0];a[i]=a[i]||[],a[i].push(e(s))}else t.push(e(s));return{formErrors:t,fieldErrors:a}}get formErrors(){return this.flatten()}};Qt.create=r=>new Qt(r);var u5=(r,e)=>{let a;switch(r.code){case Y.invalid_type:r.received===le.undefined?a="Required":a=`Expected ${r.expected}, received ${r.received}`;break;case Y.invalid_literal:a=`Invalid literal value, expected ${JSON.stringify(r.expected,Ge.jsonStringifyReplacer)}`;break;case Y.unrecognized_keys:a=`Unrecognized key(s) in object: ${Ge.joinValues(r.keys,", ")}`;break;case Y.invalid_union:a="Invalid input";break;case Y.invalid_union_discriminator:a=`Invalid discriminator value. Expected ${Ge.joinValues(r.options)}`;break;case Y.invalid_enum_value:a=`Invalid enum value. Expected ${Ge.joinValues(r.options)}, received '${r.received}'`;break;case Y.invalid_arguments:a="Invalid function arguments";break;case Y.invalid_return_type:a="Invalid function return type";break;case Y.invalid_date:a="Invalid date";break;case Y.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(a=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(a=`${a} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?a=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?a=`Invalid input: must end with "${r.validation.endsWith}"`:Ge.assertNever(r.validation):r.validation!=="regex"?a=`Invalid ${r.validation}`:a="Invalid";break;case Y.too_small:r.type==="array"?a=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?a=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?a=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="bigint"?a=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?a=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:a="Invalid input";break;case Y.too_big:r.type==="array"?a=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?a=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?a=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?a=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?a=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:a="Invalid input";break;case Y.custom:a="Invalid input";break;case Y.invalid_intersection_types:a="Intersection results could not be merged";break;case Y.not_multiple_of:a=`Number must be a multiple of ${r.multipleOf}`;break;case Y.not_finite:a="Number must be finite";break;default:a=e.defaultError,Ge.assertNever(r)}return{message:a}},Sn=u5,g1=Sn;function p5(r){g1=r}function Hc(){return g1}var Bc=r=>{let{data:e,path:a,errorMaps:t,issueData:s}=r,i=[...a,...s.path||[]],n={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let o="",l=t.filter(c=>!!c).slice().reverse();for(let c of l)o=c(n,{data:e,defaultError:o}).message;return{...s,path:i,message:o}},d5=[];function se(r,e){let a=Hc(),t=Bc({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,a,a===Sn?void 0:Sn].filter(s=>!!s)});r.common.issues.push(t)}var Rt=class r{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,a){let t=[];for(let s of a){if(s.status==="aborted")return we;s.status==="dirty"&&e.dirty(),t.push(s.value)}return{status:e.value,value:t}}static async mergeObjectAsync(e,a){let t=[];for(let s of a){let i=await s.key,n=await s.value;t.push({key:i,value:n})}return r.mergeObjectSync(e,t)}static mergeObjectSync(e,a){let t={};for(let s of a){let{key:i,value:n}=s;if(i.status==="aborted"||n.status==="aborted")return we;i.status==="dirty"&&e.dirty(),n.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof n.value<"u"||s.alwaysSet)&&(t[i.value]=n.value)}return{status:e.value,value:t}}},we=Object.freeze({status:"aborted"}),wn=r=>({status:"dirty",value:r}),Ot=r=>({status:"valid",value:r}),Td=r=>r.status==="aborted",kd=r=>r.status==="dirty",gs=r=>r.status==="valid",Ci=r=>typeof Promise<"u"&&r instanceof Promise,me;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e?.message})(me||(me={}));var fr=class{constructor(e,a,t,s){this._cachedPath=[],this.parent=e,this.data=a,this._path=t,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},WE=(r,e)=>{if(gs(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let a=new Qt(r.common.issues);return this._error=a,this._error}}};function $e(r){if(!r)return{};let{errorMap:e,invalid_type_error:a,required_error:t,description:s}=r;if(e&&(a||t))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(n,o)=>{let{message:l}=r;return n.code==="invalid_enum_value"?{message:l??o.defaultError}:typeof o.data>"u"?{message:l??t??o.defaultError}:n.code!=="invalid_type"?{message:o.defaultError}:{message:l??a??o.defaultError}},description:s}}var je=class{get description(){return this._def.description}_getType(e){return ra(e.data)}_getOrReturnCtx(e,a){return a||{common:e.parent.common,data:e.data,parsedType:ra(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Rt,ctx:{common:e.parent.common,data:e.data,parsedType:ra(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let a=this._parse(e);if(Ci(a))throw new Error("Synchronous parse encountered promise.");return a}_parseAsync(e){let a=this._parse(e);return Promise.resolve(a)}parse(e,a){let t=this.safeParse(e,a);if(t.success)return t.data;throw t.error}safeParse(e,a){let t={common:{issues:[],async:a?.async??!1,contextualErrorMap:a?.errorMap},path:a?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ra(e)},s=this._parseSync({data:e,path:t.path,parent:t});return WE(t,s)}"~validate"(e){let a={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ra(e)};if(!this["~standard"].async)try{let t=this._parseSync({data:e,path:[],parent:a});return gs(t)?{value:t.value}:{issues:a.common.issues}}catch(t){t?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),a.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:a}).then(t=>gs(t)?{value:t.value}:{issues:a.common.issues})}async parseAsync(e,a){let t=await this.safeParseAsync(e,a);if(t.success)return t.data;throw t.error}async safeParseAsync(e,a){let t={common:{issues:[],contextualErrorMap:a?.errorMap,async:!0},path:a?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ra(e)},s=this._parse({data:e,path:t.path,parent:t}),i=await(Ci(s)?s:Promise.resolve(s));return WE(t,i)}refine(e,a){let t=s=>typeof a=="string"||typeof a>"u"?{message:a}:typeof a=="function"?a(s):a;return this._refinement((s,i)=>{let n=e(s),o=()=>i.addIssue({code:Y.custom,...t(s)});return typeof Promise<"u"&&n instanceof Promise?n.then(l=>l?!0:(o(),!1)):n?!0:(o(),!1)})}refinement(e,a){return this._refinement((t,s)=>e(t)?!0:(s.addIssue(typeof a=="function"?a(t,s):a),!1))}_refinement(e){return new Xt({schema:this,typeName:Pe.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:a=>this["~validate"](a)}}optional(){return dr.create(this,this._def)}nullable(){return zr.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return na.create(this)}promise(){return Ca.create(this,this._def)}or(e){return Ss.create([this,e],this._def)}and(e){return Ps.create(this,e,this._def)}transform(e){return new Xt({...$e(this._def),schema:this,typeName:Pe.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let a=typeof e=="function"?e:()=>e;return new Cs({...$e(this._def),innerType:this,defaultValue:a,typeName:Pe.ZodDefault})}brand(){return new Ii({typeName:Pe.ZodBranded,type:this,...$e(this._def)})}catch(e){let a=typeof e=="function"?e:()=>e;return new Is({...$e(this._def),innerType:this,catchValue:a,typeName:Pe.ZodCatch})}describe(e){let a=this.constructor;return new a({...this._def,description:e})}pipe(e){return Ai.create(this,e)}readonly(){return As.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},f5=/^c[^\s-]{8,}$/i,m5=/^[0-9a-z]+$/,h5=/^[0-9A-HJKMNP-TV-Z]{26}$/i,v5=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,g5=/^[a-z0-9_-]{21}$/i,y5=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,b5=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,x5=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,_5="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",yd,E5=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,w5=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,S5=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,P5=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,R5=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,T5=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,y1="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",k5=new RegExp(`^${y1}$`);function b1(r){let e="[0-5]\\d";r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`);let a=r.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${a}`}function O5(r){return new RegExp(`^${b1(r)}$`)}function x1(r){let e=`${y1}T${b1(r)}`,a=[];return a.push(r.local?"Z?":"Z"),r.offset&&a.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${a.join("|")})`,new RegExp(`^${e}$`)}function C5(r,e){return!!((e==="v4"||!e)&&E5.test(r)||(e==="v6"||!e)&&S5.test(r))}function I5(r,e){if(!y5.test(r))return!1;try{let[a]=r.split(".");if(!a)return!1;let t=a.replace(/-/g,"+").replace(/_/g,"/").padEnd(a.length+(4-a.length%4)%4,"="),s=JSON.parse(atob(t));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function A5(r,e){return!!((e==="v4"||!e)&&w5.test(r)||(e==="v6"||!e)&&P5.test(r))}var ka=class r extends je{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==le.string){let i=this._getOrReturnCtx(e);return se(i,{code:Y.invalid_type,expected:le.string,received:i.parsedType}),we}let t=new Rt,s;for(let i of this._def.checks)if(i.kind==="min")e.data.lengthi.value&&(s=this._getOrReturnCtx(e,s),se(s,{code:Y.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),t.dirty());else if(i.kind==="length"){let n=e.data.length>i.value,o=e.data.lengthe.test(s),{validation:a,code:Y.invalid_string,...me.errToObj(t)})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...me.errToObj(e)})}url(e){return this._addCheck({kind:"url",...me.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...me.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...me.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...me.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...me.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...me.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...me.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...me.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...me.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...me.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...me.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...me.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...me.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...me.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...me.errToObj(e)})}regex(e,a){return this._addCheck({kind:"regex",regex:e,...me.errToObj(a)})}includes(e,a){return this._addCheck({kind:"includes",value:e,position:a?.position,...me.errToObj(a?.message)})}startsWith(e,a){return this._addCheck({kind:"startsWith",value:e,...me.errToObj(a)})}endsWith(e,a){return this._addCheck({kind:"endsWith",value:e,...me.errToObj(a)})}min(e,a){return this._addCheck({kind:"min",value:e,...me.errToObj(a)})}max(e,a){return this._addCheck({kind:"max",value:e,...me.errToObj(a)})}length(e,a){return this._addCheck({kind:"length",value:e,...me.errToObj(a)})}nonempty(e){return this.min(1,me.errToObj(e))}trim(){return new r({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new r({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new r({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e}get maxLength(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuenew ka({checks:[],typeName:Pe.ZodString,coerce:r?.coerce??!1,...$e(r)});function j5(r,e){let a=(r.toString().split(".")[1]||"").length,t=(e.toString().split(".")[1]||"").length,s=a>t?a:t,i=Number.parseInt(r.toFixed(s).replace(".","")),n=Number.parseInt(e.toFixed(s).replace(".",""));return i%n/10**s}var ys=class r extends je{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==le.number){let i=this._getOrReturnCtx(e);return se(i,{code:Y.invalid_type,expected:le.number,received:i.parsedType}),we}let t,s=new Rt;for(let i of this._def.checks)i.kind==="int"?Ge.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),se(t,{code:Y.invalid_type,expected:"integer",received:"float",message:i.message}),s.dirty()):i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(t=this._getOrReturnCtx(e,t),se(t,{code:Y.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="multipleOf"?j5(e.data,i.value)!==0&&(t=this._getOrReturnCtx(e,t),se(t,{code:Y.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),se(t,{code:Y.not_finite,message:i.message}),s.dirty()):Ge.assertNever(i);return{status:s.value,value:e.data}}gte(e,a){return this.setLimit("min",e,!0,me.toString(a))}gt(e,a){return this.setLimit("min",e,!1,me.toString(a))}lte(e,a){return this.setLimit("max",e,!0,me.toString(a))}lt(e,a){return this.setLimit("max",e,!1,me.toString(a))}setLimit(e,a,t,s){return new r({...this._def,checks:[...this._def.checks,{kind:e,value:a,inclusive:t,message:me.toString(s)}]})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:me.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:me.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:me.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:me.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:me.toString(e)})}multipleOf(e,a){return this._addCheck({kind:"multipleOf",value:e,message:me.toString(a)})}finite(e){return this._addCheck({kind:"finite",message:me.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:me.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:me.toString(e)})}get minValue(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e}get maxValue(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuee.kind==="int"||e.kind==="multipleOf"&&Ge.isInteger(e.value))}get isFinite(){let e=null,a=null;for(let t of this._def.checks){if(t.kind==="finite"||t.kind==="int"||t.kind==="multipleOf")return!0;t.kind==="min"?(a===null||t.value>a)&&(a=t.value):t.kind==="max"&&(e===null||t.valuenew ys({checks:[],typeName:Pe.ZodNumber,coerce:r?.coerce||!1,...$e(r)});var bs=class r extends je{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==le.bigint)return this._getInvalidInput(e);let t,s=new Rt;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(t=this._getOrReturnCtx(e,t),se(t,{code:Y.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),se(t,{code:Y.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):Ge.assertNever(i);return{status:s.value,value:e.data}}_getInvalidInput(e){let a=this._getOrReturnCtx(e);return se(a,{code:Y.invalid_type,expected:le.bigint,received:a.parsedType}),we}gte(e,a){return this.setLimit("min",e,!0,me.toString(a))}gt(e,a){return this.setLimit("min",e,!1,me.toString(a))}lte(e,a){return this.setLimit("max",e,!0,me.toString(a))}lt(e,a){return this.setLimit("max",e,!1,me.toString(a))}setLimit(e,a,t,s){return new r({...this._def,checks:[...this._def.checks,{kind:e,value:a,inclusive:t,message:me.toString(s)}]})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:me.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:me.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:me.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:me.toString(e)})}multipleOf(e,a){return this._addCheck({kind:"multipleOf",value:e,message:me.toString(a)})}get minValue(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e}get maxValue(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuenew bs({checks:[],typeName:Pe.ZodBigInt,coerce:r?.coerce??!1,...$e(r)});var xs=class extends je{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==le.boolean){let t=this._getOrReturnCtx(e);return se(t,{code:Y.invalid_type,expected:le.boolean,received:t.parsedType}),we}return Ot(e.data)}};xs.create=r=>new xs({typeName:Pe.ZodBoolean,coerce:r?.coerce||!1,...$e(r)});var _s=class r extends je{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==le.date){let i=this._getOrReturnCtx(e);return se(i,{code:Y.invalid_type,expected:le.date,received:i.parsedType}),we}if(Number.isNaN(e.data.getTime())){let i=this._getOrReturnCtx(e);return se(i,{code:Y.invalid_date}),we}let t=new Rt,s;for(let i of this._def.checks)i.kind==="min"?e.data.getTime()i.value&&(s=this._getOrReturnCtx(e,s),se(s,{code:Y.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),t.dirty()):Ge.assertNever(i);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}min(e,a){return this._addCheck({kind:"min",value:e.getTime(),message:me.toString(a)})}max(e,a){return this._addCheck({kind:"max",value:e.getTime(),message:me.toString(a)})}get minDate(){let e=null;for(let a of this._def.checks)a.kind==="min"&&(e===null||a.value>e)&&(e=a.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let a of this._def.checks)a.kind==="max"&&(e===null||a.valuenew _s({checks:[],coerce:r?.coerce||!1,typeName:Pe.ZodDate,...$e(r)});var Pn=class extends je{_parse(e){if(this._getType(e)!==le.symbol){let t=this._getOrReturnCtx(e);return se(t,{code:Y.invalid_type,expected:le.symbol,received:t.parsedType}),we}return Ot(e.data)}};Pn.create=r=>new Pn({typeName:Pe.ZodSymbol,...$e(r)});var Es=class extends je{_parse(e){if(this._getType(e)!==le.undefined){let t=this._getOrReturnCtx(e);return se(t,{code:Y.invalid_type,expected:le.undefined,received:t.parsedType}),we}return Ot(e.data)}};Es.create=r=>new Es({typeName:Pe.ZodUndefined,...$e(r)});var ws=class extends je{_parse(e){if(this._getType(e)!==le.null){let t=this._getOrReturnCtx(e);return se(t,{code:Y.invalid_type,expected:le.null,received:t.parsedType}),we}return Ot(e.data)}};ws.create=r=>new ws({typeName:Pe.ZodNull,...$e(r)});var Oa=class extends je{constructor(){super(...arguments),this._any=!0}_parse(e){return Ot(e.data)}};Oa.create=r=>new Oa({typeName:Pe.ZodAny,...$e(r)});var sa=class extends je{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Ot(e.data)}};sa.create=r=>new sa({typeName:Pe.ZodUnknown,...$e(r)});var Pr=class extends je{_parse(e){let a=this._getOrReturnCtx(e);return se(a,{code:Y.invalid_type,expected:le.never,received:a.parsedType}),we}};Pr.create=r=>new Pr({typeName:Pe.ZodNever,...$e(r)});var Rn=class extends je{_parse(e){if(this._getType(e)!==le.undefined){let t=this._getOrReturnCtx(e);return se(t,{code:Y.invalid_type,expected:le.void,received:t.parsedType}),we}return Ot(e.data)}};Rn.create=r=>new Rn({typeName:Pe.ZodVoid,...$e(r)});var na=class r extends je{_parse(e){let{ctx:a,status:t}=this._processInputParams(e),s=this._def;if(a.parsedType!==le.array)return se(a,{code:Y.invalid_type,expected:le.array,received:a.parsedType}),we;if(s.exactLength!==null){let n=a.data.length>s.exactLength.value,o=a.data.lengths.maxLength.value&&(se(a,{code:Y.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),t.dirty()),a.common.async)return Promise.all([...a.data].map((n,o)=>s.type._parseAsync(new fr(a,n,a.path,o)))).then(n=>Rt.mergeArray(t,n));let i=[...a.data].map((n,o)=>s.type._parseSync(new fr(a,n,a.path,o)));return Rt.mergeArray(t,i)}get element(){return this._def.type}min(e,a){return new r({...this._def,minLength:{value:e,message:me.toString(a)}})}max(e,a){return new r({...this._def,maxLength:{value:e,message:me.toString(a)}})}length(e,a){return new r({...this._def,exactLength:{value:e,message:me.toString(a)}})}nonempty(e){return this.min(1,e)}};na.create=(r,e)=>new na({type:r,minLength:null,maxLength:null,exactLength:null,typeName:Pe.ZodArray,...$e(e)});function En(r){if(r instanceof Ut){let e={};for(let a in r.shape){let t=r.shape[a];e[a]=dr.create(En(t))}return new Ut({...r._def,shape:()=>e})}else return r instanceof na?new na({...r._def,type:En(r.element)}):r instanceof dr?dr.create(En(r.unwrap())):r instanceof zr?zr.create(En(r.unwrap())):r instanceof Ur?Ur.create(r.items.map(e=>En(e))):r}var Ut=class r extends je{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),a=Ge.objectKeys(e);return this._cached={shape:e,keys:a},this._cached}_parse(e){if(this._getType(e)!==le.object){let c=this._getOrReturnCtx(e);return se(c,{code:Y.invalid_type,expected:le.object,received:c.parsedType}),we}let{status:t,ctx:s}=this._processInputParams(e),{shape:i,keys:n}=this._getCached(),o=[];if(!(this._def.catchall instanceof Pr&&this._def.unknownKeys==="strip"))for(let c in s.data)n.includes(c)||o.push(c);let l=[];for(let c of n){let u=i[c],p=s.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new fr(s,p,s.path,c)),alwaysSet:c in s.data})}if(this._def.catchall instanceof Pr){let c=this._def.unknownKeys;if(c==="passthrough")for(let u of o)l.push({key:{status:"valid",value:u},value:{status:"valid",value:s.data[u]}});else if(c==="strict")o.length>0&&(se(s,{code:Y.unrecognized_keys,keys:o}),t.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let u of o){let p=s.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new fr(s,p,s.path,u)),alwaysSet:u in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let c=[];for(let u of l){let p=await u.key,m=await u.value;c.push({key:p,value:m,alwaysSet:u.alwaysSet})}return c}).then(c=>Rt.mergeObjectSync(t,c)):Rt.mergeObjectSync(t,l)}get shape(){return this._def.shape()}strict(e){return me.errToObj,new r({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(a,t)=>{let s=this._def.errorMap?.(a,t).message??t.defaultError;return a.code==="unrecognized_keys"?{message:me.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new r({...this._def,unknownKeys:"strip"})}passthrough(){return new r({...this._def,unknownKeys:"passthrough"})}extend(e){return new r({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new r({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Pe.ZodObject})}setKey(e,a){return this.augment({[e]:a})}catchall(e){return new r({...this._def,catchall:e})}pick(e){let a={};for(let t of Ge.objectKeys(e))e[t]&&this.shape[t]&&(a[t]=this.shape[t]);return new r({...this._def,shape:()=>a})}omit(e){let a={};for(let t of Ge.objectKeys(this.shape))e[t]||(a[t]=this.shape[t]);return new r({...this._def,shape:()=>a})}deepPartial(){return En(this)}partial(e){let a={};for(let t of Ge.objectKeys(this.shape)){let s=this.shape[t];e&&!e[t]?a[t]=s:a[t]=s.optional()}return new r({...this._def,shape:()=>a})}required(e){let a={};for(let t of Ge.objectKeys(this.shape))if(e&&!e[t])a[t]=this.shape[t];else{let i=this.shape[t];for(;i instanceof dr;)i=i._def.innerType;a[t]=i}return new r({...this._def,shape:()=>a})}keyof(){return _1(Ge.objectKeys(this.shape))}};Ut.create=(r,e)=>new Ut({shape:()=>r,unknownKeys:"strip",catchall:Pr.create(),typeName:Pe.ZodObject,...$e(e)});Ut.strictCreate=(r,e)=>new Ut({shape:()=>r,unknownKeys:"strict",catchall:Pr.create(),typeName:Pe.ZodObject,...$e(e)});Ut.lazycreate=(r,e)=>new Ut({shape:r,unknownKeys:"strip",catchall:Pr.create(),typeName:Pe.ZodObject,...$e(e)});var Ss=class extends je{_parse(e){let{ctx:a}=this._processInputParams(e),t=this._def.options;function s(i){for(let o of i)if(o.result.status==="valid")return o.result;for(let o of i)if(o.result.status==="dirty")return a.common.issues.push(...o.ctx.common.issues),o.result;let n=i.map(o=>new Qt(o.ctx.common.issues));return se(a,{code:Y.invalid_union,unionErrors:n}),we}if(a.common.async)return Promise.all(t.map(async i=>{let n={...a,common:{...a.common,issues:[]},parent:null};return{result:await i._parseAsync({data:a.data,path:a.path,parent:n}),ctx:n}})).then(s);{let i,n=[];for(let l of t){let c={...a,common:{...a.common,issues:[]},parent:null},u=l._parseSync({data:a.data,path:a.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!i&&(i={result:u,ctx:c}),c.common.issues.length&&n.push(c.common.issues)}if(i)return a.common.issues.push(...i.ctx.common.issues),i.result;let o=n.map(l=>new Qt(l));return se(a,{code:Y.invalid_union,unionErrors:o}),we}}get options(){return this._def.options}};Ss.create=(r,e)=>new Ss({options:r,typeName:Pe.ZodUnion,...$e(e)});var ta=r=>r instanceof Rs?ta(r.schema):r instanceof Xt?ta(r.innerType()):r instanceof Ts?[r.value]:r instanceof ks?r.options:r instanceof Os?Ge.objectValues(r.enum):r instanceof Cs?ta(r._def.innerType):r instanceof Es?[void 0]:r instanceof ws?[null]:r instanceof dr?[void 0,...ta(r.unwrap())]:r instanceof zr?[null,...ta(r.unwrap())]:r instanceof Ii||r instanceof As?ta(r.unwrap()):r instanceof Is?ta(r._def.innerType):[],Vc=class r extends je{_parse(e){let{ctx:a}=this._processInputParams(e);if(a.parsedType!==le.object)return se(a,{code:Y.invalid_type,expected:le.object,received:a.parsedType}),we;let t=this.discriminator,s=a.data[t],i=this.optionsMap.get(s);return i?a.common.async?i._parseAsync({data:a.data,path:a.path,parent:a}):i._parseSync({data:a.data,path:a.path,parent:a}):(se(a,{code:Y.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[t]}),we)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,a,t){let s=new Map;for(let i of a){let n=ta(i.shape[e]);if(!n.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let o of n){if(s.has(o))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);s.set(o,i)}}return new r({typeName:Pe.ZodDiscriminatedUnion,discriminator:e,options:a,optionsMap:s,...$e(t)})}};function Od(r,e){let a=ra(r),t=ra(e);if(r===e)return{valid:!0,data:r};if(a===le.object&&t===le.object){let s=Ge.objectKeys(e),i=Ge.objectKeys(r).filter(o=>s.indexOf(o)!==-1),n={...r,...e};for(let o of i){let l=Od(r[o],e[o]);if(!l.valid)return{valid:!1};n[o]=l.data}return{valid:!0,data:n}}else if(a===le.array&&t===le.array){if(r.length!==e.length)return{valid:!1};let s=[];for(let i=0;i{if(Td(i)||Td(n))return we;let o=Od(i.value,n.value);return o.valid?((kd(i)||kd(n))&&a.dirty(),{status:a.value,value:o.data}):(se(t,{code:Y.invalid_intersection_types}),we)};return t.common.async?Promise.all([this._def.left._parseAsync({data:t.data,path:t.path,parent:t}),this._def.right._parseAsync({data:t.data,path:t.path,parent:t})]).then(([i,n])=>s(i,n)):s(this._def.left._parseSync({data:t.data,path:t.path,parent:t}),this._def.right._parseSync({data:t.data,path:t.path,parent:t}))}};Ps.create=(r,e,a)=>new Ps({left:r,right:e,typeName:Pe.ZodIntersection,...$e(a)});var Ur=class r extends je{_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==le.array)return se(t,{code:Y.invalid_type,expected:le.array,received:t.parsedType}),we;if(t.data.lengththis._def.items.length&&(se(t,{code:Y.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),a.dirty());let i=[...t.data].map((n,o)=>{let l=this._def.items[o]||this._def.rest;return l?l._parse(new fr(t,n,t.path,o)):null}).filter(n=>!!n);return t.common.async?Promise.all(i).then(n=>Rt.mergeArray(a,n)):Rt.mergeArray(a,i)}get items(){return this._def.items}rest(e){return new r({...this._def,rest:e})}};Ur.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ur({items:r,typeName:Pe.ZodTuple,rest:null,...$e(e)})};var Gc=class r extends je{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==le.object)return se(t,{code:Y.invalid_type,expected:le.object,received:t.parsedType}),we;let s=[],i=this._def.keyType,n=this._def.valueType;for(let o in t.data)s.push({key:i._parse(new fr(t,o,t.path,o)),value:n._parse(new fr(t,t.data[o],t.path,o)),alwaysSet:o in t.data});return t.common.async?Rt.mergeObjectAsync(a,s):Rt.mergeObjectSync(a,s)}get element(){return this._def.valueType}static create(e,a,t){return a instanceof je?new r({keyType:e,valueType:a,typeName:Pe.ZodRecord,...$e(t)}):new r({keyType:ka.create(),valueType:e,typeName:Pe.ZodRecord,...$e(a)})}},Tn=class extends je{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==le.map)return se(t,{code:Y.invalid_type,expected:le.map,received:t.parsedType}),we;let s=this._def.keyType,i=this._def.valueType,n=[...t.data.entries()].map(([o,l],c)=>({key:s._parse(new fr(t,o,t.path,[c,"key"])),value:i._parse(new fr(t,l,t.path,[c,"value"]))}));if(t.common.async){let o=new Map;return Promise.resolve().then(async()=>{for(let l of n){let c=await l.key,u=await l.value;if(c.status==="aborted"||u.status==="aborted")return we;(c.status==="dirty"||u.status==="dirty")&&a.dirty(),o.set(c.value,u.value)}return{status:a.value,value:o}})}else{let o=new Map;for(let l of n){let c=l.key,u=l.value;if(c.status==="aborted"||u.status==="aborted")return we;(c.status==="dirty"||u.status==="dirty")&&a.dirty(),o.set(c.value,u.value)}return{status:a.value,value:o}}}};Tn.create=(r,e,a)=>new Tn({valueType:e,keyType:r,typeName:Pe.ZodMap,...$e(a)});var kn=class r extends je{_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.parsedType!==le.set)return se(t,{code:Y.invalid_type,expected:le.set,received:t.parsedType}),we;let s=this._def;s.minSize!==null&&t.data.sizes.maxSize.value&&(se(t,{code:Y.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),a.dirty());let i=this._def.valueType;function n(l){let c=new Set;for(let u of l){if(u.status==="aborted")return we;u.status==="dirty"&&a.dirty(),c.add(u.value)}return{status:a.value,value:c}}let o=[...t.data.values()].map((l,c)=>i._parse(new fr(t,l,t.path,c)));return t.common.async?Promise.all(o).then(l=>n(l)):n(o)}min(e,a){return new r({...this._def,minSize:{value:e,message:me.toString(a)}})}max(e,a){return new r({...this._def,maxSize:{value:e,message:me.toString(a)}})}size(e,a){return this.min(e,a).max(e,a)}nonempty(e){return this.min(1,e)}};kn.create=(r,e)=>new kn({valueType:r,minSize:null,maxSize:null,typeName:Pe.ZodSet,...$e(e)});var Zc=class r extends je{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:a}=this._processInputParams(e);if(a.parsedType!==le.function)return se(a,{code:Y.invalid_type,expected:le.function,received:a.parsedType}),we;function t(o,l){return Bc({data:o,path:a.path,errorMaps:[a.common.contextualErrorMap,a.schemaErrorMap,Hc(),Sn].filter(c=>!!c),issueData:{code:Y.invalid_arguments,argumentsError:l}})}function s(o,l){return Bc({data:o,path:a.path,errorMaps:[a.common.contextualErrorMap,a.schemaErrorMap,Hc(),Sn].filter(c=>!!c),issueData:{code:Y.invalid_return_type,returnTypeError:l}})}let i={errorMap:a.common.contextualErrorMap},n=a.data;if(this._def.returns instanceof Ca){let o=this;return Ot(async function(...l){let c=new Qt([]),u=await o._def.args.parseAsync(l,i).catch(f=>{throw c.addIssue(t(l,f)),c}),p=await Reflect.apply(n,this,u);return await o._def.returns._def.type.parseAsync(p,i).catch(f=>{throw c.addIssue(s(p,f)),c})})}else{let o=this;return Ot(function(...l){let c=o._def.args.safeParse(l,i);if(!c.success)throw new Qt([t(l,c.error)]);let u=Reflect.apply(n,this,c.data),p=o._def.returns.safeParse(u,i);if(!p.success)throw new Qt([s(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new r({...this._def,args:Ur.create(e).rest(sa.create())})}returns(e){return new r({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,a,t){return new r({args:e||Ur.create([]).rest(sa.create()),returns:a||sa.create(),typeName:Pe.ZodFunction,...$e(t)})}},Rs=class extends je{get schema(){return this._def.getter()}_parse(e){let{ctx:a}=this._processInputParams(e);return this._def.getter()._parse({data:a.data,path:a.path,parent:a})}};Rs.create=(r,e)=>new Rs({getter:r,typeName:Pe.ZodLazy,...$e(e)});var Ts=class extends je{_parse(e){if(e.data!==this._def.value){let a=this._getOrReturnCtx(e);return se(a,{received:a.data,code:Y.invalid_literal,expected:this._def.value}),we}return{status:"valid",value:e.data}}get value(){return this._def.value}};Ts.create=(r,e)=>new Ts({value:r,typeName:Pe.ZodLiteral,...$e(e)});function _1(r,e){return new ks({values:r,typeName:Pe.ZodEnum,...$e(e)})}var ks=class r extends je{_parse(e){if(typeof e.data!="string"){let a=this._getOrReturnCtx(e),t=this._def.values;return se(a,{expected:Ge.joinValues(t),received:a.parsedType,code:Y.invalid_type}),we}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let a=this._getOrReturnCtx(e),t=this._def.values;return se(a,{received:a.data,code:Y.invalid_enum_value,options:t}),we}return Ot(e.data)}get options(){return this._def.values}get enum(){let e={};for(let a of this._def.values)e[a]=a;return e}get Values(){let e={};for(let a of this._def.values)e[a]=a;return e}get Enum(){let e={};for(let a of this._def.values)e[a]=a;return e}extract(e,a=this._def){return r.create(e,{...this._def,...a})}exclude(e,a=this._def){return r.create(this.options.filter(t=>!e.includes(t)),{...this._def,...a})}};ks.create=_1;var Os=class extends je{_parse(e){let a=Ge.getValidEnumValues(this._def.values),t=this._getOrReturnCtx(e);if(t.parsedType!==le.string&&t.parsedType!==le.number){let s=Ge.objectValues(a);return se(t,{expected:Ge.joinValues(s),received:t.parsedType,code:Y.invalid_type}),we}if(this._cache||(this._cache=new Set(Ge.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let s=Ge.objectValues(a);return se(t,{received:t.data,code:Y.invalid_enum_value,options:s}),we}return Ot(e.data)}get enum(){return this._def.values}};Os.create=(r,e)=>new Os({values:r,typeName:Pe.ZodNativeEnum,...$e(e)});var Ca=class extends je{unwrap(){return this._def.type}_parse(e){let{ctx:a}=this._processInputParams(e);if(a.parsedType!==le.promise&&a.common.async===!1)return se(a,{code:Y.invalid_type,expected:le.promise,received:a.parsedType}),we;let t=a.parsedType===le.promise?a.data:Promise.resolve(a.data);return Ot(t.then(s=>this._def.type.parseAsync(s,{path:a.path,errorMap:a.common.contextualErrorMap})))}};Ca.create=(r,e)=>new Ca({type:r,typeName:Pe.ZodPromise,...$e(e)});var Xt=class extends je{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Pe.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:a,ctx:t}=this._processInputParams(e),s=this._def.effect||null,i={addIssue:n=>{se(t,n),n.fatal?a.abort():a.dirty()},get path(){return t.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){let n=s.transform(t.data,i);if(t.common.async)return Promise.resolve(n).then(async o=>{if(a.value==="aborted")return we;let l=await this._def.schema._parseAsync({data:o,path:t.path,parent:t});return l.status==="aborted"?we:l.status==="dirty"||a.value==="dirty"?wn(l.value):l});{if(a.value==="aborted")return we;let o=this._def.schema._parseSync({data:n,path:t.path,parent:t});return o.status==="aborted"?we:o.status==="dirty"||a.value==="dirty"?wn(o.value):o}}if(s.type==="refinement"){let n=o=>{let l=s.refinement(o,i);if(t.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(t.common.async===!1){let o=this._def.schema._parseSync({data:t.data,path:t.path,parent:t});return o.status==="aborted"?we:(o.status==="dirty"&&a.dirty(),n(o.value),{status:a.value,value:o.value})}else return this._def.schema._parseAsync({data:t.data,path:t.path,parent:t}).then(o=>o.status==="aborted"?we:(o.status==="dirty"&&a.dirty(),n(o.value).then(()=>({status:a.value,value:o.value}))))}if(s.type==="transform")if(t.common.async===!1){let n=this._def.schema._parseSync({data:t.data,path:t.path,parent:t});if(!gs(n))return we;let o=s.transform(n.value,i);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:a.value,value:o}}else return this._def.schema._parseAsync({data:t.data,path:t.path,parent:t}).then(n=>gs(n)?Promise.resolve(s.transform(n.value,i)).then(o=>({status:a.value,value:o})):we);Ge.assertNever(s)}};Xt.create=(r,e,a)=>new Xt({schema:r,typeName:Pe.ZodEffects,effect:e,...$e(a)});Xt.createWithPreprocess=(r,e,a)=>new Xt({schema:e,effect:{type:"preprocess",transform:r},typeName:Pe.ZodEffects,...$e(a)});var dr=class extends je{_parse(e){return this._getType(e)===le.undefined?Ot(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dr.create=(r,e)=>new dr({innerType:r,typeName:Pe.ZodOptional,...$e(e)});var zr=class extends je{_parse(e){return this._getType(e)===le.null?Ot(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};zr.create=(r,e)=>new zr({innerType:r,typeName:Pe.ZodNullable,...$e(e)});var Cs=class extends je{_parse(e){let{ctx:a}=this._processInputParams(e),t=a.data;return a.parsedType===le.undefined&&(t=this._def.defaultValue()),this._def.innerType._parse({data:t,path:a.path,parent:a})}removeDefault(){return this._def.innerType}};Cs.create=(r,e)=>new Cs({innerType:r,typeName:Pe.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...$e(e)});var Is=class extends je{_parse(e){let{ctx:a}=this._processInputParams(e),t={...a,common:{...a.common,issues:[]}},s=this._def.innerType._parse({data:t.data,path:t.path,parent:{...t}});return Ci(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Qt(t.common.issues)},input:t.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Qt(t.common.issues)},input:t.data})}}removeCatch(){return this._def.innerType}};Is.create=(r,e)=>new Is({innerType:r,typeName:Pe.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...$e(e)});var On=class extends je{_parse(e){if(this._getType(e)!==le.nan){let t=this._getOrReturnCtx(e);return se(t,{code:Y.invalid_type,expected:le.nan,received:t.parsedType}),we}return{status:"valid",value:e.data}}};On.create=r=>new On({typeName:Pe.ZodNaN,...$e(r)});var N5=Symbol("zod_brand"),Ii=class extends je{_parse(e){let{ctx:a}=this._processInputParams(e),t=a.data;return this._def.type._parse({data:t,path:a.path,parent:a})}unwrap(){return this._def.type}},Ai=class r extends je{_parse(e){let{status:a,ctx:t}=this._processInputParams(e);if(t.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:t.data,path:t.path,parent:t});return i.status==="aborted"?we:i.status==="dirty"?(a.dirty(),wn(i.value)):this._def.out._parseAsync({data:i.value,path:t.path,parent:t})})();{let s=this._def.in._parseSync({data:t.data,path:t.path,parent:t});return s.status==="aborted"?we:s.status==="dirty"?(a.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:t.path,parent:t})}}static create(e,a){return new r({in:e,out:a,typeName:Pe.ZodPipeline})}},As=class extends je{_parse(e){let a=this._def.innerType._parse(e),t=s=>(gs(s)&&(s.value=Object.freeze(s.value)),s);return Ci(a)?a.then(s=>t(s)):t(a)}unwrap(){return this._def.innerType}};As.create=(r,e)=>new As({innerType:r,typeName:Pe.ZodReadonly,...$e(e)});function KE(r,e){let a=typeof r=="function"?r(e):typeof r=="string"?{message:r}:r;return typeof a=="string"?{message:a}:a}function E1(r,e={},a){return r?Oa.create().superRefine((t,s)=>{let i=r(t);if(i instanceof Promise)return i.then(n=>{if(!n){let o=KE(e,t),l=o.fatal??a??!0;s.addIssue({code:"custom",...o,fatal:l})}});if(!i){let n=KE(e,t),o=n.fatal??a??!0;s.addIssue({code:"custom",...n,fatal:o})}}):Oa.create()}var D5={object:Ut.lazycreate},Pe;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(Pe||(Pe={}));var $5=(r,e={message:`Input not instance of ${r.name}`})=>E1(a=>a instanceof r,e),w1=ka.create,S1=ys.create,q5=On.create,M5=bs.create,P1=xs.create,F5=_s.create,L5=Pn.create,U5=Es.create,z5=ws.create,H5=Oa.create,B5=sa.create,V5=Pr.create,G5=Rn.create,Z5=na.create,W5=Ut.create,K5=Ut.strictCreate,Q5=Ss.create,X5=Vc.create,J5=Ps.create,Y5=Ur.create,e6=Gc.create,t6=Tn.create,r6=kn.create,a6=Zc.create,s6=Rs.create,n6=Ts.create,i6=ks.create,o6=Os.create,c6=Ca.create,QE=Xt.create,l6=dr.create,u6=zr.create,p6=Xt.createWithPreprocess,d6=Ai.create,f6=()=>w1().optional(),m6=()=>S1().optional(),h6=()=>P1().optional(),v6={string:r=>ka.create({...r,coerce:!0}),number:r=>ys.create({...r,coerce:!0}),boolean:r=>xs.create({...r,coerce:!0}),bigint:r=>bs.create({...r,coerce:!0}),date:r=>_s.create({...r,coerce:!0})},g6=we;var Xc="2.0",R1=w.union([w.string(),w.number().int()]),T1=w.string(),y6=w.object({progressToken:w.optional(R1)}).passthrough(),mr=w.object({_meta:w.optional(y6)}).passthrough(),zt=w.object({method:w.string(),params:w.optional(mr)}),Ni=w.object({_meta:w.optional(w.object({}).passthrough())}).passthrough(),Hr=w.object({method:w.string(),params:w.optional(Ni)}),hr=w.object({_meta:w.optional(w.object({}).passthrough())}).passthrough(),Jc=w.union([w.string(),w.number().int()]),b6=w.object({jsonrpc:w.literal(Xc),id:Jc}).merge(zt).strict();var x6=w.object({jsonrpc:w.literal(Xc)}).merge(Hr).strict();var _6=w.object({jsonrpc:w.literal(Xc),id:Jc,result:hr}).strict();var XE;(function(r){r[r.ConnectionClosed=-32e3]="ConnectionClosed",r[r.RequestTimeout=-32001]="RequestTimeout",r[r.ParseError=-32700]="ParseError",r[r.InvalidRequest=-32600]="InvalidRequest",r[r.MethodNotFound=-32601]="MethodNotFound",r[r.InvalidParams=-32602]="InvalidParams",r[r.InternalError=-32603]="InternalError"})(XE||(XE={}));var E6=w.object({jsonrpc:w.literal(Xc),id:Jc,error:w.object({code:w.number().int(),message:w.string(),data:w.optional(w.unknown())})}).strict();var L3=w.union([b6,x6,_6,E6]),k1=hr.strict(),O1=Hr.extend({method:w.literal("notifications/cancelled"),params:Ni.extend({requestId:Jc,reason:w.string().optional()})}),Di=w.object({name:w.string(),title:w.optional(w.string())}).passthrough(),C1=Di.extend({version:w.string()}),w6=w.object({experimental:w.optional(w.object({}).passthrough()),sampling:w.optional(w.object({}).passthrough()),elicitation:w.optional(w.object({}).passthrough()),roots:w.optional(w.object({listChanged:w.optional(w.boolean())}).passthrough())}).passthrough(),S6=zt.extend({method:w.literal("initialize"),params:mr.extend({protocolVersion:w.string(),capabilities:w6,clientInfo:C1})}),P6=w.object({experimental:w.optional(w.object({}).passthrough()),logging:w.optional(w.object({}).passthrough()),completions:w.optional(w.object({}).passthrough()),prompts:w.optional(w.object({listChanged:w.optional(w.boolean())}).passthrough()),resources:w.optional(w.object({subscribe:w.optional(w.boolean()),listChanged:w.optional(w.boolean())}).passthrough()),tools:w.optional(w.object({listChanged:w.optional(w.boolean())}).passthrough())}).passthrough(),R6=hr.extend({protocolVersion:w.string(),capabilities:P6,serverInfo:C1,instructions:w.optional(w.string())}),T6=Hr.extend({method:w.literal("notifications/initialized")}),I1=zt.extend({method:w.literal("ping")}),k6=w.object({progress:w.number(),total:w.optional(w.number()),message:w.optional(w.string())}).passthrough(),A1=Hr.extend({method:w.literal("notifications/progress"),params:Ni.merge(k6).extend({progressToken:R1})}),Yc=zt.extend({params:mr.extend({cursor:w.optional(T1)}).optional()}),el=hr.extend({nextCursor:w.optional(T1)}),j1=w.object({uri:w.string(),mimeType:w.optional(w.string()),_meta:w.optional(w.object({}).passthrough())}).passthrough(),N1=j1.extend({text:w.string()}),$d=w.string().refine(r=>{try{return atob(r),!0}catch{return!1}},{message:"Invalid Base64 string"}),D1=j1.extend({blob:$d}),$1=Di.extend({uri:w.string(),description:w.optional(w.string()),mimeType:w.optional(w.string()),_meta:w.optional(w.object({}).passthrough())}),O6=Di.extend({uriTemplate:w.string(),description:w.optional(w.string()),mimeType:w.optional(w.string()),_meta:w.optional(w.object({}).passthrough())}),C6=Yc.extend({method:w.literal("resources/list")}),I6=el.extend({resources:w.array($1)}),A6=Yc.extend({method:w.literal("resources/templates/list")}),j6=el.extend({resourceTemplates:w.array(O6)}),N6=zt.extend({method:w.literal("resources/read"),params:mr.extend({uri:w.string()})}),D6=hr.extend({contents:w.array(w.union([N1,D1]))}),$6=Hr.extend({method:w.literal("notifications/resources/list_changed")}),q6=zt.extend({method:w.literal("resources/subscribe"),params:mr.extend({uri:w.string()})}),M6=zt.extend({method:w.literal("resources/unsubscribe"),params:mr.extend({uri:w.string()})}),F6=Hr.extend({method:w.literal("notifications/resources/updated"),params:Ni.extend({uri:w.string()})}),L6=w.object({name:w.string(),description:w.optional(w.string()),required:w.optional(w.boolean())}).passthrough(),U6=Di.extend({description:w.optional(w.string()),arguments:w.optional(w.array(L6)),_meta:w.optional(w.object({}).passthrough())}),z6=Yc.extend({method:w.literal("prompts/list")}),H6=el.extend({prompts:w.array(U6)}),B6=zt.extend({method:w.literal("prompts/get"),params:mr.extend({name:w.string(),arguments:w.optional(w.record(w.string()))})}),qd=w.object({type:w.literal("text"),text:w.string(),_meta:w.optional(w.object({}).passthrough())}).passthrough(),Md=w.object({type:w.literal("image"),data:$d,mimeType:w.string(),_meta:w.optional(w.object({}).passthrough())}).passthrough(),Fd=w.object({type:w.literal("audio"),data:$d,mimeType:w.string(),_meta:w.optional(w.object({}).passthrough())}).passthrough(),V6=w.object({type:w.literal("resource"),resource:w.union([N1,D1]),_meta:w.optional(w.object({}).passthrough())}).passthrough(),G6=$1.extend({type:w.literal("resource_link")}),q1=w.union([qd,Md,Fd,G6,V6]),Z6=w.object({role:w.enum(["user","assistant"]),content:q1}).passthrough(),W6=hr.extend({description:w.optional(w.string()),messages:w.array(Z6)}),K6=Hr.extend({method:w.literal("notifications/prompts/list_changed")}),Q6=w.object({title:w.optional(w.string()),readOnlyHint:w.optional(w.boolean()),destructiveHint:w.optional(w.boolean()),idempotentHint:w.optional(w.boolean()),openWorldHint:w.optional(w.boolean())}).passthrough(),X6=Di.extend({description:w.optional(w.string()),inputSchema:w.object({type:w.literal("object"),properties:w.optional(w.object({}).passthrough()),required:w.optional(w.array(w.string()))}).passthrough(),outputSchema:w.optional(w.object({type:w.literal("object"),properties:w.optional(w.object({}).passthrough()),required:w.optional(w.array(w.string()))}).passthrough()),annotations:w.optional(Q6),_meta:w.optional(w.object({}).passthrough())}),J6=Yc.extend({method:w.literal("tools/list")}),Y6=el.extend({tools:w.array(X6)}),M1=hr.extend({content:w.array(q1).default([]),structuredContent:w.object({}).passthrough().optional(),isError:w.optional(w.boolean())}),U3=M1.or(hr.extend({toolResult:w.unknown()})),e$=zt.extend({method:w.literal("tools/call"),params:mr.extend({name:w.string(),arguments:w.optional(w.record(w.unknown()))})}),t$=Hr.extend({method:w.literal("notifications/tools/list_changed")}),F1=w.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),r$=zt.extend({method:w.literal("logging/setLevel"),params:mr.extend({level:F1})}),a$=Hr.extend({method:w.literal("notifications/message"),params:Ni.extend({level:F1,logger:w.optional(w.string()),data:w.unknown()})}),s$=w.object({name:w.string().optional()}).passthrough(),n$=w.object({hints:w.optional(w.array(s$)),costPriority:w.optional(w.number().min(0).max(1)),speedPriority:w.optional(w.number().min(0).max(1)),intelligencePriority:w.optional(w.number().min(0).max(1))}).passthrough(),i$=w.object({role:w.enum(["user","assistant"]),content:w.union([qd,Md,Fd])}).passthrough(),o$=zt.extend({method:w.literal("sampling/createMessage"),params:mr.extend({messages:w.array(i$),systemPrompt:w.optional(w.string()),includeContext:w.optional(w.enum(["none","thisServer","allServers"])),temperature:w.optional(w.number()),maxTokens:w.number().int(),stopSequences:w.optional(w.array(w.string())),metadata:w.optional(w.object({}).passthrough()),modelPreferences:w.optional(n$)})}),c$=hr.extend({model:w.string(),stopReason:w.optional(w.enum(["endTurn","stopSequence","maxTokens"]).or(w.string())),role:w.enum(["user","assistant"]),content:w.discriminatedUnion("type",[qd,Md,Fd])}),l$=w.object({type:w.literal("boolean"),title:w.optional(w.string()),description:w.optional(w.string()),default:w.optional(w.boolean())}).passthrough(),u$=w.object({type:w.literal("string"),title:w.optional(w.string()),description:w.optional(w.string()),minLength:w.optional(w.number()),maxLength:w.optional(w.number()),format:w.optional(w.enum(["email","uri","date","date-time"]))}).passthrough(),p$=w.object({type:w.enum(["number","integer"]),title:w.optional(w.string()),description:w.optional(w.string()),minimum:w.optional(w.number()),maximum:w.optional(w.number())}).passthrough(),d$=w.object({type:w.literal("string"),title:w.optional(w.string()),description:w.optional(w.string()),enum:w.array(w.string()),enumNames:w.optional(w.array(w.string()))}).passthrough(),f$=w.union([l$,u$,p$,d$]),m$=zt.extend({method:w.literal("elicitation/create"),params:mr.extend({message:w.string(),requestedSchema:w.object({type:w.literal("object"),properties:w.record(w.string(),f$),required:w.optional(w.array(w.string()))}).passthrough()})}),h$=hr.extend({action:w.enum(["accept","decline","cancel"]),content:w.optional(w.record(w.string(),w.unknown()))}),v$=w.object({type:w.literal("ref/resource"),uri:w.string()}).passthrough(),g$=w.object({type:w.literal("ref/prompt"),name:w.string()}).passthrough(),y$=zt.extend({method:w.literal("completion/complete"),params:mr.extend({ref:w.union([g$,v$]),argument:w.object({name:w.string(),value:w.string()}).passthrough(),context:w.optional(w.object({arguments:w.optional(w.record(w.string(),w.string()))}))})}),b$=hr.extend({completion:w.object({values:w.array(w.string()).max(100),total:w.optional(w.number().int()),hasMore:w.optional(w.boolean())}).passthrough()}),x$=w.object({uri:w.string().startsWith("file://"),name:w.optional(w.string()),_meta:w.optional(w.object({}).passthrough())}).passthrough(),_$=zt.extend({method:w.literal("roots/list")}),E$=hr.extend({roots:w.array(x$)}),w$=Hr.extend({method:w.literal("notifications/roots/list_changed")}),z3=w.union([I1,S6,y$,r$,B6,z6,C6,A6,N6,q6,M6,e$,J6]),H3=w.union([O1,A1,T6,w$]),B3=w.union([k1,c$,h$,E$]),V3=w.union([I1,o$,m$,_$]),G3=w.union([O1,A1,a$,F6,$6,t$,K6]),Z3=w.union([k1,R6,b$,W6,H6,I6,j6,D6,M1,Y6]);var W3=Pj(iN(),1);var K3=Symbol("Let zodToJsonSchema decide on which parser to use");var Q3=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");var Cd;(function(r){r.Completable="McpCompletable"})(Cd||(Cd={}));var Wc=class extends je{_parse(e){let{ctx:a}=this._processInputParams(e),t=a.data;return this._def.type._parse({data:t,path:a.path,parent:a})}unwrap(){return this._def.type}};Wc.create=(r,e)=>new Wc({type:r,typeName:Cd.Completable,complete:e.complete,...S$(e)});function S$(r){if(!r)return{};let{errorMap:e,invalid_type_error:a,required_error:t,description:s}=r;if(e&&(a||t))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(n,o)=>{var l,c;let{message:u}=r;return n.code==="invalid_enum_value"?{message:u??o.defaultError}:typeof o.data>"u"?{message:(l=u??t)!==null&&l!==void 0?l:o.defaultError}:n.code!=="invalid_type"?{message:o.defaultError}:{message:(c=u??a)!==null&&c!==void 0?c:o.defaultError}},description:s}}function L1({prompt:r,options:e}){let{systemPrompt:a,settingSources:t,...s}=e??{},i,n;a===void 0?i="":typeof a=="string"?i=a:a.type==="preset"&&(n=a.append);let o=s.pathToClaudeCodeExecutable;if(!o){let xe=(0,r1.fileURLToPath)(P$.url),Oe=(0,xd.join)(xe,"..");o=(0,xd.join)(Oe,"cli.js")}process.env.CLAUDE_AGENT_SDK_VERSION="0.1.27";let{abortController:l=s1(),additionalDirectories:c=[],agents:u,allowedTools:p=[],canUseTool:m,continue:f,cwd:h,disallowedTools:d=[],env:v,executable:x=c1()?"bun":"node",executableArgs:b=[],extraArgs:E={},fallbackModel:k,forkSession:O,hooks:P,includePartialMessages:I,maxThinkingTokens:$,maxTurns:A,mcpServers:F,model:q,permissionMode:C="default",allowDangerouslySkipPermissions:R=!1,permissionPromptToolName:j,plugins:z,resume:B,resumeSessionAt:G,stderr:te,strictMcpConfig:X}=s,V=v;if(V||(V={...process.env}),V.CLAUDE_CODE_ENTRYPOINT||(V.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),!o)throw new Error("pathToClaudeCodeExecutable is required");let re={},ce=new Map;if(F)for(let[xe,Oe]of Object.entries(F))Oe.type==="sdk"&&"instance"in Oe?(ce.set(xe,Oe.instance),re[xe]={type:"sdk",name:xe}):re[xe]=Oe;let Be=typeof r=="string",be=new _d({abortController:l,additionalDirectories:c,agents:u,cwd:h,executable:x,executableArgs:b,extraArgs:E,pathToClaudeCodeExecutable:o,env:V,forkSession:O,stderr:te,customSystemPrompt:i,appendSystemPrompt:n,maxThinkingTokens:$,maxTurns:A,model:q,fallbackModel:k,permissionMode:C,allowDangerouslySkipPermissions:R,permissionPromptToolName:j,continueConversation:f,resume:B,resumeSessionAt:G,settingSources:t??[],allowedTools:p,disallowedTools:d,mcpServers:re,strictMcpConfig:X,canUseTool:!!m,hooks:!!P,includePartialMessages:I,plugins:z}),qe=new Pd(be,Be,m,P,l,ce);return typeof r=="string"?be.write(JSON.stringify({type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:r}]},parent_tool_use_id:null})+` +`):qe.streamInput(r),qe}var tl=class{dbManager;sessionManager;constructor(e,a){this.dbManager=e,this.sessionManager=a}async startSession(e,a){try{let t=this.findClaudeExecutable(),s=this.getModelId(),i=["Bash","Read","Write","Edit","Grep","Glob","WebFetch","WebSearch","Task","NotebookEdit","AskUserQuestion","TodoWrite"],n=this.createMessageGenerator(e),o=L1({prompt:n,options:{model:s,disallowedTools:i,abortController:e.abortController,pathToClaudeCodeExecutable:t}});for await(let c of o){if(c.type==="assistant"){let u=c.message.content,p=Array.isArray(u)?u.filter(v=>v.type==="text").map(v=>v.text).join(` +`):typeof u=="string"?u:"",m=p.length,f=e.cumulativeInputTokens+e.cumulativeOutputTokens,h=c.message.usage;h&&(e.cumulativeInputTokens+=h.input_tokens||0,e.cumulativeOutputTokens+=h.output_tokens||0,h.cache_creation_input_tokens&&(e.cumulativeInputTokens+=h.cache_creation_input_tokens),H.debug("SDK","Token usage captured",{sessionId:e.sessionDbId,inputTokens:h.input_tokens,outputTokens:h.output_tokens,cacheCreation:h.cache_creation_input_tokens||0,cacheRead:h.cache_read_input_tokens||0,cumulativeInput:e.cumulativeInputTokens,cumulativeOutput:e.cumulativeOutputTokens}));let d=e.cumulativeInputTokens+e.cumulativeOutputTokens-f;if(m>0){let v=m>100?p.substring(0,100)+"...":p;H.dataOut("SDK",`Response received (${m} chars)`,{sessionId:e.sessionDbId,promptNumber:e.lastPromptNumber},v),await this.processSDKResponse(e,p,a,d)}}c.type==="result"&&c.subtype}let l=Date.now()-e.startTime;H.success("SDK","Agent completed",{sessionId:e.sessionDbId,duration:`${(l/1e3).toFixed(1)}s`}),this.dbManager.getSessionStore().markSessionCompleted(e.sessionDbId)}catch(t){throw t.name==="AbortError"?H.warn("SDK","Agent aborted",{sessionId:e.sessionDbId}):H.failure("SDK","Agent error",{sessionDbId:e.sessionDbId},t),t}finally{this.sessionManager.deleteSession(e.sessionDbId).catch(()=>{})}}async*createMessageGenerator(e){yield{type:"user",message:{role:"user",content:e.lastPromptNumber===1?NE(e.project,e.claudeSessionId,e.userPrompt):qE(e.userPrompt,e.lastPromptNumber,e.claudeSessionId)},session_id:e.claudeSessionId,parent_tool_use_id:null,isSynthetic:!0};for await(let a of this.sessionManager.getMessageIterator(e.sessionDbId))a.type==="observation"?(a.prompt_number!==void 0&&(e.lastPromptNumber=a.prompt_number),yield{type:"user",message:{role:"user",content:DE({id:0,tool_name:a.tool_name,tool_input:JSON.stringify(a.tool_input),tool_output:JSON.stringify(a.tool_response),created_at_epoch:Date.now(),cwd:a.cwd})},session_id:e.claudeSessionId,parent_tool_use_id:null,isSynthetic:!0}):a.type==="summarize"&&(yield{type:"user",message:{role:"user",content:$E({id:e.sessionDbId,sdk_session_id:e.sdkSessionId,project:e.project,user_prompt:e.userPrompt,last_user_message:a.last_user_message||"",last_assistant_message:a.last_assistant_message||""})},session_id:e.claudeSessionId,parent_tool_use_id:null,isSynthetic:!0})}async processSDKResponse(e,a,t,s){let i=AE(a,e.claudeSessionId);for(let o of i){let{id:l,createdAtEpoch:c}=this.dbManager.getSessionStore().storeObservation(e.claudeSessionId,e.project,o,e.lastPromptNumber,s);H.info("SDK","Observation saved",{sessionId:e.sessionDbId,obsId:l,type:o.type,title:o.title||Kt("obs.title is null",{obsId:l,type:o.type},"(untitled)"),filesRead:o.files_read?.length??(Kt("obs.files_read is null/undefined",{obsId:l}),0),filesModified:o.files_modified?.length??(Kt("obs.files_modified is null/undefined",{obsId:l}),0),concepts:o.concepts?.length??(Kt("obs.concepts is null/undefined",{obsId:l}),0)});let u=Date.now(),p=o.type,m=o.title||Kt("obs.title is null for Chroma sync",{obsId:l,type:o.type},"(untitled)");this.dbManager.getChromaSync().syncObservation(l,e.claudeSessionId,e.project,o,e.lastPromptNumber,c,s).then(()=>{let f=Date.now()-u;H.debug("CHROMA","Observation synced",{obsId:l,duration:`${f}ms`,type:p,title:m})}).catch(f=>{H.error("CHROMA","Failed to sync observation",{obsId:l,sessionId:e.sessionDbId,type:p,title:m},f)}),t&&t.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_observation",observation:{id:l,sdk_session_id:e.sdkSessionId,session_id:e.claudeSessionId,type:o.type,title:o.title,subtitle:o.subtitle,text:o.text||null,narrative:o.narrative||null,facts:JSON.stringify(o.facts||[]),concepts:JSON.stringify(o.concepts||[]),files_read:JSON.stringify(o.files||[]),files_modified:JSON.stringify([]),project:e.project,prompt_number:e.lastPromptNumber,created_at_epoch:c}})}let n=jE(a,e.sessionDbId);if(n){let{id:o,createdAtEpoch:l}=this.dbManager.getSessionStore().storeSummary(e.claudeSessionId,e.project,n,e.lastPromptNumber,s);H.info("SDK","Summary saved",{sessionId:e.sessionDbId,summaryId:o,request:n.request||Kt("summary.request is null",{summaryId:o},"(no request)"),hasCompleted:!!n.completed,hasNextSteps:!!n.next_steps});let c=Date.now(),u=n.request||Kt("summary.request is null for Chroma sync",{summaryId:o},"(no request)");this.dbManager.getChromaSync().syncSummary(o,e.claudeSessionId,e.project,n,e.lastPromptNumber,l,s).then(()=>{let p=Date.now()-c;H.debug("CHROMA","Summary synced",{summaryId:o,duration:`${p}ms`,request:u})}).catch(p=>{H.error("CHROMA","Failed to sync summary",{summaryId:o,sessionId:e.sessionDbId,request:u},p)}),t&&t.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_summary",summary:{id:o,session_id:e.claudeSessionId,request:n.request,investigated:n.investigated,learned:n.learned,completed:n.completed,next_steps:n.next_steps,notes:n.notes,project:e.project,prompt_number:e.lastPromptNumber,created_at_epoch:l}})}t&&typeof t.broadcastProcessingStatus=="function"&&t.broadcastProcessingStatus()}findClaudeExecutable(){let e=process.env.CLAUDE_CODE_PATH||(0,U1.execSync)(process.platform==="win32"?"where claude":"which claude",{encoding:"utf8"}).trim().split(` +`)[0].trim();if(!e)throw new Error("Claude executable not found in PATH");return e}getModelId(){try{let e=H1.default.join((0,z1.homedir)(),".claude-mem","settings.json");if((0,rl.existsSync)(e)){let t=JSON.parse((0,rl.readFileSync)(e,"utf-8")).env?.CLAUDE_MEM_MODEL;if(t)return t}}catch{}return process.env.CLAUDE_MEM_MODEL||"claude-haiku-4-5"}};var al=class{dbManager;constructor(e){this.dbManager=e}stripProjectPath(e,a){let t=`/${a}/`,s=e.indexOf(t);return s!==-1?e.substring(s+t.length):e}stripProjectPaths(e,a){if(!e)return e;try{let s=JSON.parse(e).map(i=>this.stripProjectPath(i,a));return JSON.stringify(s)}catch{return e}}sanitizeObservation(e){return{...e,files_read:this.stripProjectPaths(e.files_read,e.project),files_modified:this.stripProjectPaths(e.files_modified,e.project)}}getObservations(e,a,t){let s=this.paginate("observations","id, sdk_session_id, project, type, title, subtitle, narrative, text, facts, concepts, files_read, files_modified, prompt_number, created_at, created_at_epoch",e,a,t);return{...s,items:s.items.map(i=>this.sanitizeObservation(i))}}getSummaries(e,a,t){let s=this.dbManager.getSessionStore().db,i=` SELECT ss.id, s.claude_session_id as session_id, @@ -871,8 +857,8 @@ MEMORY PROCESSING CONTINUED `,n=[];t&&(i+=" WHERE s.project = ?",n.push(t)),i+=" ORDER BY up.created_at_epoch DESC LIMIT ? OFFSET ?",n.push(a+1,e);let l=s.prepare(i).all(...n);return{items:l.slice(0,a),hasMore:l.length>a,offset:e,limit:a}}paginate(e,a,t,s,i){let n=this.dbManager.getSessionStore().db,o=`SELECT ${a} FROM ${e}`,l=[];i&&(o+=" WHERE project = ?",l.push(i)),o+=" ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?",l.push(s+1,t);let u=n.prepare(o).all(...l);return{items:u.slice(0,s),hasMore:u.length>s,offset:t,limit:s}}};var sl=class{dbManager;defaultSettings={sidebarOpen:!0,selectedProject:null,theme:"system"};constructor(e){this.dbManager=e}getSettings(){let e=this.dbManager.getSessionStore().db;try{let t=e.prepare("SELECT key, value FROM viewer_settings").all(),s={...this.defaultSettings};for(let i of t){let n=i.key;n in s&&(s[n]=JSON.parse(i.value))}return s}catch(a){return H.debug("WORKER","Failed to load settings, using defaults",{},a),{...this.defaultSettings}}}updateSettings(e){let t=this.dbManager.getSessionStore().db.prepare(` INSERT OR REPLACE INTO viewer_settings (key, value) VALUES (?, ?) - `);for(let[s,i]of Object.entries(e))t.run(s,JSON.stringify(i));return this.getSettings()}};var $i=class{app;server=null;startTime=Date.now();mcpClient;dbManager;sessionManager;sseBroadcaster;sdkAgent;paginationHelper;settingsManager;constructor(){this.app=(0,nl.default)(),this.dbManager=new qc,this.sessionManager=new Mc(this.dbManager),this.sseBroadcaster=new Fc,this.sdkAgent=new tl(this.dbManager,this.sessionManager),this.paginationHelper=new al(this.dbManager),this.settingsManager=new sl(this.dbManager),this.sessionManager.setOnSessionDeleted(()=>{this.broadcastProcessingStatus()}),this.mcpClient=new gn({name:"worker-search-proxy",version:"1.0.0"},{capabilities:{}}),this.setupMiddleware(),this.setupRoutes()}setupMiddleware(){this.app.use(nl.default.json({limit:"50mb"})),this.app.use((0,BE.default)()),this.app.use((t,s,i)=>{if(t.path.startsWith("/health")||t.path==="/"||t.path.includes("."))return i();let n=Date.now(),o=`${t.method}-${Date.now()}`,l=this.summarizeRequestBody(t.method,t.path,t.body);H.info("HTTP",`\u2192 ${t.method} ${t.path}`,{requestId:o},l);let c=s.send.bind(s);s.send=function(u){let p=Date.now()-n;return H.info("HTTP",`\u2190 ${s.statusCode} ${t.path}`,{requestId:o,duration:`${p}ms`}),c(u)},i()});let e=Ka(),a=Rr.default.join(e,"plugin","ui");this.app.use(nl.default.static(a))}summarizeRequestBody(e,a,t){if(!t||Object.keys(t).length===0||a.includes("/init"))return"";if(a.includes("/observations")){let s=t.tool_name||"?",i=t.tool_input;return`tool=${H.formatTool(s,i)}`}return a.includes("/summarize")?"requesting summary":""}setupRoutes(){this.app.get("/health",this.handleHealth.bind(this)),this.app.get("/",this.handleViewerUI.bind(this)),this.app.get("/stream",this.handleSSEStream.bind(this)),this.app.post("/sessions/:sessionDbId/init",this.handleSessionInit.bind(this)),this.app.post("/sessions/:sessionDbId/observations",this.handleObservations.bind(this)),this.app.post("/sessions/:sessionDbId/summarize",this.handleSummarize.bind(this)),this.app.get("/sessions/:sessionDbId/status",this.handleSessionStatus.bind(this)),this.app.delete("/sessions/:sessionDbId",this.handleSessionDelete.bind(this)),this.app.post("/sessions/:sessionDbId/complete",this.handleSessionComplete.bind(this)),this.app.get("/api/observations",this.handleGetObservations.bind(this)),this.app.get("/api/summaries",this.handleGetSummaries.bind(this)),this.app.get("/api/prompts",this.handleGetPrompts.bind(this)),this.app.get("/api/stats",this.handleGetStats.bind(this)),this.app.get("/api/processing-status",this.handleGetProcessingStatus.bind(this)),this.app.post("/api/processing",this.handleSetProcessing.bind(this)),this.app.get("/api/settings",this.handleGetSettings.bind(this)),this.app.post("/api/settings",this.handleUpdateSettings.bind(this)),this.app.get("/api/mcp/status",this.handleGetMcpStatus.bind(this)),this.app.post("/api/mcp/toggle",this.handleToggleMcp.bind(this)),this.app.get("/api/search/observations",this.handleSearchObservations.bind(this)),this.app.get("/api/search/sessions",this.handleSearchSessions.bind(this)),this.app.get("/api/search/prompts",this.handleSearchPrompts.bind(this)),this.app.get("/api/search/by-concept",this.handleSearchByConcept.bind(this)),this.app.get("/api/search/by-file",this.handleSearchByFile.bind(this)),this.app.get("/api/search/by-type",this.handleSearchByType.bind(this)),this.app.get("/api/context/recent",this.handleGetRecentContext.bind(this)),this.app.get("/api/context/timeline",this.handleGetContextTimeline.bind(this)),this.app.get("/api/timeline/by-query",this.handleGetTimelineByQuery.bind(this)),this.app.get("/api/search/help",this.handleSearchHelp.bind(this))}async cleanupOrphanedProcesses(){try{let{execSync:e}=await import("child_process");try{let a=e("pgrep -fl uvx",{encoding:"utf-8",stdio:"pipe"}).trim();if(a){let t=a.split(` -`).length;H.info("WORKER","Cleaning up orphaned MCP processes",{count:t}),e("pkill -f uvx",{stdio:"pipe"}),H.success("WORKER",`Cleaned up ${t} orphaned MCP server processes`)}}catch(a){if(a.status===1)H.debug("WORKER","No orphaned MCP processes to clean up");else throw a}}catch(e){H.warn("WORKER","Failed to cleanup orphaned processes (non-fatal)",{},e)}}async start(){await this.cleanupOrphanedProcesses(),await this.dbManager.initialize();let e=Rr.default.join(__dirname,"..","..","plugin","scripts","search-server.mjs"),a=new xn({command:"node",args:[e],env:process.env});await this.mcpClient.connect(a),H.success("WORKER","Connected to MCP search server");let t=ec();this.server=await new Promise((s,i)=>{let n=this.app.listen(t,()=>s(n));n.on("error",i)}),H.info("SYSTEM","Worker started",{port:t,pid:process.pid})}async shutdown(){if(await this.sessionManager.shutdownAll(),this.mcpClient)try{await this.mcpClient.close(),H.info("SYSTEM","MCP client closed")}catch(e){H.error("SYSTEM","Failed to close MCP client",{},e)}this.server&&await new Promise((e,a)=>{this.server.close(t=>t?a(t):e())}),await this.dbManager.close(),H.info("SYSTEM","Worker shutdown complete")}handleHealth(e,a){a.json({status:"ok",timestamp:Date.now()})}handleViewerUI(e,a){try{let t=Ka(),s=Rr.default.join(t,"plugin","ui","viewer.html"),i=(0,vt.readFileSync)(s,"utf-8");a.setHeader("Content-Type","text/html"),a.send(i)}catch(t){H.failure("WORKER","Viewer UI error",{},t),a.status(500).json({error:"Failed to load viewer UI"})}}handleSSEStream(e,a){a.setHeader("Content-Type","text/event-stream"),a.setHeader("Cache-Control","no-cache"),a.setHeader("Connection","keep-alive"),this.sseBroadcaster.addClient(a);let t=this.dbManager.getSessionStore().getAllProjects();this.sseBroadcaster.broadcast({type:"initial_load",projects:t,timestamp:Date.now()});let s=this.sessionManager.isAnySessionProcessing(),i=this.sessionManager.getTotalActiveWork();this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:s,queueDepth:i})}handleSessionInit(e,a){try{let t=parseInt(e.params.sessionDbId,10),{userPrompt:s,promptNumber:i}=e.body,n=this.sessionManager.initializeSession(t,s,i),l=this.dbManager.getSessionStore().db.prepare(` + `);for(let[s,i]of Object.entries(e))t.run(s,JSON.stringify(i));return this.getSettings()}};var $i=class{app;server=null;startTime=Date.now();mcpClient;dbManager;sessionManager;sseBroadcaster;sdkAgent;paginationHelper;settingsManager;constructor(){this.app=(0,nl.default)(),this.dbManager=new qc,this.sessionManager=new Mc(this.dbManager),this.sseBroadcaster=new Fc,this.sdkAgent=new tl(this.dbManager,this.sessionManager),this.paginationHelper=new al(this.dbManager),this.settingsManager=new sl(this.dbManager),this.sessionManager.setOnSessionDeleted(()=>{this.broadcastProcessingStatus()}),this.mcpClient=new gn({name:"worker-search-proxy",version:"1.0.0"},{capabilities:{}}),this.setupMiddleware(),this.setupRoutes()}setupMiddleware(){this.app.use(nl.default.json({limit:"50mb"})),this.app.use((0,B1.default)()),this.app.use((t,s,i)=>{if(t.path.startsWith("/health")||t.path==="/"||t.path.includes("."))return i();let n=Date.now(),o=`${t.method}-${Date.now()}`,l=this.summarizeRequestBody(t.method,t.path,t.body);H.info("HTTP",`\u2192 ${t.method} ${t.path}`,{requestId:o},l);let c=s.send.bind(s);s.send=function(u){let p=Date.now()-n;return H.info("HTTP",`\u2190 ${s.statusCode} ${t.path}`,{requestId:o,duration:`${p}ms`}),c(u)},i()});let e=Ka(),a=Rr.default.join(e,"plugin","ui");this.app.use(nl.default.static(a))}summarizeRequestBody(e,a,t){if(!t||Object.keys(t).length===0||a.includes("/init"))return"";if(a.includes("/observations")){let s=t.tool_name||"?",i=t.tool_input;return`tool=${H.formatTool(s,i)}`}return a.includes("/summarize")?"requesting summary":""}setupRoutes(){this.app.get("/health",this.handleHealth.bind(this)),this.app.get("/",this.handleViewerUI.bind(this)),this.app.get("/stream",this.handleSSEStream.bind(this)),this.app.post("/sessions/:sessionDbId/init",this.handleSessionInit.bind(this)),this.app.post("/sessions/:sessionDbId/observations",this.handleObservations.bind(this)),this.app.post("/sessions/:sessionDbId/summarize",this.handleSummarize.bind(this)),this.app.get("/sessions/:sessionDbId/status",this.handleSessionStatus.bind(this)),this.app.delete("/sessions/:sessionDbId",this.handleSessionDelete.bind(this)),this.app.post("/sessions/:sessionDbId/complete",this.handleSessionComplete.bind(this)),this.app.get("/api/observations",this.handleGetObservations.bind(this)),this.app.get("/api/summaries",this.handleGetSummaries.bind(this)),this.app.get("/api/prompts",this.handleGetPrompts.bind(this)),this.app.get("/api/observation/:id",this.handleGetObservationById.bind(this)),this.app.get("/api/session/:id",this.handleGetSessionById.bind(this)),this.app.get("/api/prompt/:id",this.handleGetPromptById.bind(this)),this.app.get("/api/stats",this.handleGetStats.bind(this)),this.app.get("/api/processing-status",this.handleGetProcessingStatus.bind(this)),this.app.post("/api/processing",this.handleSetProcessing.bind(this)),this.app.get("/api/settings",this.handleGetSettings.bind(this)),this.app.post("/api/settings",this.handleUpdateSettings.bind(this)),this.app.get("/api/mcp/status",this.handleGetMcpStatus.bind(this)),this.app.post("/api/mcp/toggle",this.handleToggleMcp.bind(this)),this.app.get("/api/search",this.handleUnifiedSearch.bind(this)),this.app.get("/api/timeline",this.handleUnifiedTimeline.bind(this)),this.app.get("/api/decisions",this.handleDecisions.bind(this)),this.app.get("/api/changes",this.handleChanges.bind(this)),this.app.get("/api/how-it-works",this.handleHowItWorks.bind(this)),this.app.get("/api/search/observations",this.handleSearchObservations.bind(this)),this.app.get("/api/search/sessions",this.handleSearchSessions.bind(this)),this.app.get("/api/search/prompts",this.handleSearchPrompts.bind(this)),this.app.get("/api/search/by-concept",this.handleSearchByConcept.bind(this)),this.app.get("/api/search/by-file",this.handleSearchByFile.bind(this)),this.app.get("/api/search/by-type",this.handleSearchByType.bind(this)),this.app.get("/api/context/recent",this.handleGetRecentContext.bind(this)),this.app.get("/api/context/timeline",this.handleGetContextTimeline.bind(this)),this.app.get("/api/timeline/by-query",this.handleGetTimelineByQuery.bind(this)),this.app.get("/api/search/help",this.handleSearchHelp.bind(this))}async cleanupOrphanedProcesses(){try{let{execSync:e}=await import("child_process");try{let a=e("pgrep -fl uvx",{encoding:"utf-8",stdio:"pipe"}).trim();if(a){let t=a.split(` +`).length;H.info("WORKER","Cleaning up orphaned MCP processes",{count:t}),e("pkill -f uvx",{stdio:"pipe"}),H.success("WORKER",`Cleaned up ${t} orphaned MCP server processes`)}}catch(a){if(a.status===1)H.debug("WORKER","No orphaned MCP processes to clean up");else throw a}}catch(e){H.warn("WORKER","Failed to cleanup orphaned processes (non-fatal)",{},e)}}async start(){await this.cleanupOrphanedProcesses(),await this.dbManager.initialize();let e=Rr.default.join(__dirname,"..","..","plugin","scripts","search-server.cjs"),a=new xn({command:"node",args:[e],env:process.env});await this.mcpClient.connect(a),H.success("WORKER","Connected to MCP search server");let t=ec();this.server=await new Promise((s,i)=>{let n=this.app.listen(t,()=>s(n));n.on("error",i)}),H.info("SYSTEM","Worker started",{port:t,pid:process.pid})}async shutdown(){if(await this.sessionManager.shutdownAll(),this.mcpClient)try{await this.mcpClient.close(),H.info("SYSTEM","MCP client closed")}catch(e){H.error("SYSTEM","Failed to close MCP client",{},e)}this.server&&await new Promise((e,a)=>{this.server.close(t=>t?a(t):e())}),await this.dbManager.close(),H.info("SYSTEM","Worker shutdown complete")}handleHealth(e,a){a.json({status:"ok",timestamp:Date.now()})}handleViewerUI(e,a){try{let t=Ka(),s=Rr.default.join(t,"plugin","ui","viewer.html"),i=(0,vt.readFileSync)(s,"utf-8");a.setHeader("Content-Type","text/html"),a.send(i)}catch(t){H.failure("WORKER","Viewer UI error",{},t),a.status(500).json({error:"Failed to load viewer UI"})}}handleSSEStream(e,a){a.setHeader("Content-Type","text/event-stream"),a.setHeader("Cache-Control","no-cache"),a.setHeader("Connection","keep-alive"),this.sseBroadcaster.addClient(a);let t=this.dbManager.getSessionStore().getAllProjects();this.sseBroadcaster.broadcast({type:"initial_load",projects:t,timestamp:Date.now()});let s=this.sessionManager.isAnySessionProcessing(),i=this.sessionManager.getTotalActiveWork();this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:s,queueDepth:i})}handleSessionInit(e,a){try{let t=parseInt(e.params.sessionDbId,10),{userPrompt:s,promptNumber:i}=e.body,n=this.sessionManager.initializeSession(t,s,i),l=this.dbManager.getSessionStore().db.prepare(` SELECT up.*, s.sdk_session_id, @@ -882,7 +868,7 @@ MEMORY PROCESSING CONTINUED WHERE up.claude_session_id = ? ORDER BY up.created_at_epoch DESC LIMIT 1 - `).get(n.claudeSessionId);if(l){this.sseBroadcaster.broadcast({type:"new_prompt",prompt:{id:l.id,claude_session_id:l.claude_session_id,project:l.project,prompt_number:l.prompt_number,prompt_text:l.prompt_text,created_at_epoch:l.created_at_epoch}}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:!0});let c=Date.now(),u=l.prompt_text;this.dbManager.getChromaSync().syncUserPrompt(l.id,l.sdk_session_id,l.project,u,l.prompt_number,l.created_at_epoch).then(()=>{let p=Date.now()-c,m=u.length>60?u.substring(0,60)+"...":u;H.debug("CHROMA","User prompt synced",{promptId:l.id,duration:`${p}ms`,prompt:m})}).catch(p=>{H.error("CHROMA","Failed to sync user_prompt",{promptId:l.id,sessionId:t},p)})}this.broadcastProcessingStatus(),H.info("SESSION","Generator starting",{sessionId:t,project:n.project,promptNum:n.lastPromptNumber}),n.generatorPromise=this.sdkAgent.startSession(n,this).catch(c=>{H.failure("SDK","SDK agent error",{sessionId:t},c)}).finally(()=>{H.info("SESSION","Generator finished",{sessionId:t}),n.generatorPromise=null,this.broadcastProcessingStatus()}),this.sseBroadcaster.broadcast({type:"session_started",sessionDbId:t,project:n.project}),a.json({status:"initialized",sessionDbId:t,port:ec()})}catch(t){H.failure("WORKER","Session init failed",{},t),a.status(500).json({error:t.message})}}handleObservations(e,a){try{let t=parseInt(e.params.sessionDbId,10),{tool_name:s,tool_input:i,tool_response:n,prompt_number:o,cwd:l}=e.body;this.sessionManager.queueObservation(t,{tool_name:s,tool_input:i,tool_response:n,prompt_number:o,cwd:l});let c=this.sessionManager.getSession(t);c&&!c.generatorPromise&&(H.info("SESSION","Generator auto-starting (observation)",{sessionId:t,queueDepth:c.pendingMessages.length}),c.generatorPromise=this.sdkAgent.startSession(c,this).catch(u=>{H.failure("SDK","SDK agent error",{sessionId:t},u)}).finally(()=>{H.info("SESSION","Generator finished",{sessionId:t}),c.generatorPromise=null,this.broadcastProcessingStatus()})),this.broadcastProcessingStatus(),this.sseBroadcaster.broadcast({type:"observation_queued",sessionDbId:t}),a.json({status:"queued"})}catch(t){H.failure("WORKER","Observation queuing failed",{},t),a.status(500).json({error:t.message})}}handleSummarize(e,a){try{let t=parseInt(e.params.sessionDbId,10),{last_user_message:s,last_assistant_message:i}=e.body;this.sessionManager.queueSummarize(t,s,i);let n=this.sessionManager.getSession(t);n&&!n.generatorPromise&&(H.info("SESSION","Generator auto-starting (summarize)",{sessionId:t,queueDepth:n.pendingMessages.length}),n.generatorPromise=this.sdkAgent.startSession(n,this).catch(o=>{H.failure("SDK","SDK agent error",{sessionId:t},o)}).finally(()=>{H.info("SESSION","Generator finished",{sessionId:t}),n.generatorPromise=null,this.broadcastProcessingStatus()})),this.broadcastProcessingStatus(),a.json({status:"queued"})}catch(t){H.failure("WORKER","Summarize queuing failed",{},t),a.status(500).json({error:t.message})}}handleSessionStatus(e,a){try{let t=parseInt(e.params.sessionDbId,10),s=this.sessionManager.getSession(t);if(!s){a.json({status:"not_found"});return}a.json({status:"active",sessionDbId:t,project:s.project,queueLength:s.pendingMessages.length,uptime:Date.now()-s.startTime})}catch(t){H.failure("WORKER","Session status failed",{},t),a.status(500).json({error:t.message})}}async handleSessionDelete(e,a){try{let t=parseInt(e.params.sessionDbId,10);await this.sessionManager.deleteSession(t),this.dbManager.markSessionComplete(t),this.sseBroadcaster.broadcast({type:"session_completed",sessionDbId:t}),a.json({status:"deleted"})}catch(t){H.failure("WORKER","Session delete failed",{},t),a.status(500).json({error:t.message})}}async handleSessionComplete(e,a){try{let t=parseInt(e.params.sessionDbId,10);if(isNaN(t)){a.status(400).json({success:!1,error:"Invalid session ID"});return}await this.sessionManager.deleteSession(t),this.dbManager.markSessionComplete(t),this.broadcastProcessingStatus(),this.sseBroadcaster.broadcast({type:"session_completed",timestamp:Date.now(),sessionDbId:t}),a.json({success:!0})}catch(t){H.failure("WORKER","Session complete failed",{},t),a.status(500).json({success:!1,error:String(t)})}}handleGetObservations(e,a){try{let{offset:t,limit:s,project:i}=Ld(e),n=this.paginationHelper.getObservations(t,s,i);a.json(n)}catch(t){H.failure("WORKER","Get observations failed",{},t),a.status(500).json({error:t.message})}}handleGetSummaries(e,a){try{let{offset:t,limit:s,project:i}=Ld(e),n=this.paginationHelper.getSummaries(t,s,i);a.json(n)}catch(t){H.failure("WORKER","Get summaries failed",{},t),a.status(500).json({error:t.message})}}handleGetPrompts(e,a){try{let{offset:t,limit:s,project:i}=Ld(e),n=this.paginationHelper.getPrompts(t,s,i);a.json(n)}catch(t){H.failure("WORKER","Get prompts failed",{},t),a.status(500).json({error:t.message})}}handleGetStats(e,a){try{let t=this.dbManager.getSessionStore().db,s=Ka(),i=Rr.default.join(s,"package.json"),o=JSON.parse((0,vt.readFileSync)(i,"utf-8")).version,l=t.prepare("SELECT COUNT(*) as count FROM observations").get(),c=t.prepare("SELECT COUNT(*) as count FROM sdk_sessions").get(),u=t.prepare("SELECT COUNT(*) as count FROM session_summaries").get(),p=Rr.default.join((0,il.homedir)(),".claude-mem","claude-mem.db"),m=0;(0,vt.existsSync)(p)&&(m=(0,vt.statSync)(p).size);let f=Math.floor((Date.now()-this.startTime)/1e3),h=this.sessionManager.getActiveSessionCount(),d=this.sseBroadcaster.getClientCount();a.json({worker:{version:o,uptime:f,activeSessions:h,sseClients:d,port:ec()},database:{path:p,size:m,observations:l.count,sessions:c.count,summaries:u.count}})}catch(t){H.failure("WORKER","Get stats failed",{},t),a.status(500).json({error:t.message})}}handleGetSettings(e,a){try{let t=Rr.default.join((0,il.homedir)(),".claude","settings.json");if(!(0,vt.existsSync)(t)){a.json({CLAUDE_MEM_MODEL:"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777"});return}let s=(0,vt.readFileSync)(t,"utf-8"),n=JSON.parse(s).env||{};a.json({CLAUDE_MEM_MODEL:n.CLAUDE_MEM_MODEL||"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:n.CLAUDE_MEM_CONTEXT_OBSERVATIONS||"50",CLAUDE_MEM_WORKER_PORT:n.CLAUDE_MEM_WORKER_PORT||"37777"})}catch(t){H.failure("WORKER","Get settings failed",{},t),a.status(500).json({error:t.message})}}handleUpdateSettings(e,a){try{let{CLAUDE_MEM_MODEL:t,CLAUDE_MEM_CONTEXT_OBSERVATIONS:s,CLAUDE_MEM_WORKER_PORT:i}=e.body;if(s){let l=parseInt(s,10);if(isNaN(l)||l<1||l>200){a.status(400).json({success:!1,error:"CLAUDE_MEM_CONTEXT_OBSERVATIONS must be between 1 and 200"});return}}if(i){let l=parseInt(i,10);if(isNaN(l)||l<1024||l>65535){a.status(400).json({success:!1,error:"CLAUDE_MEM_WORKER_PORT must be between 1024 and 65535"});return}}let n=Rr.default.join((0,il.homedir)(),".claude","settings.json"),o={env:{}};if((0,vt.existsSync)(n)){let l=(0,vt.readFileSync)(n,"utf-8");o=JSON.parse(l),o.env||(o.env={})}t&&(o.env.CLAUDE_MEM_MODEL=t),s&&(o.env.CLAUDE_MEM_CONTEXT_OBSERVATIONS=s),i&&(o.env.CLAUDE_MEM_WORKER_PORT=i),(0,vt.writeFileSync)(n,JSON.stringify(o,null,2),"utf-8"),H.info("WORKER","Settings updated"),a.json({success:!0,message:"Settings updated successfully"})}catch(t){H.failure("WORKER","Update settings failed",{},t),a.status(500).json({success:!1,error:String(t)})}}handleGetProcessingStatus(e,a){let t=this.sessionManager.isAnySessionProcessing(),s=this.sessionManager.getTotalActiveWork();a.json({isProcessing:t,queueDepth:s})}broadcastProcessingStatus(){let e=this.sessionManager.isAnySessionProcessing(),a=this.sessionManager.getTotalActiveWork(),t=this.sessionManager.getActiveSessionCount();H.info("WORKER","Broadcasting processing status",{isProcessing:e,queueDepth:a,activeSessions:t}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:e,queueDepth:a})}handleSetProcessing(e,a){try{this.broadcastProcessingStatus();let t=this.sessionManager.isAnySessionProcessing(),s=this.sessionManager.getTotalQueueDepth(),i=this.sessionManager.getActiveSessionCount();H.debug("WORKER","Processing status broadcast",{isProcessing:t,queueDepth:s,activeSessions:i}),a.json({status:"ok",isProcessing:t})}catch(t){H.failure("WORKER","Failed to broadcast processing status",{},t),a.status(500).json({error:t.message})}}handleGetMcpStatus(e,a){try{let t=this.isMcpEnabled();a.json({enabled:t})}catch(t){H.failure("WORKER","Get MCP status failed",{},t),a.status(500).json({error:t.message})}}handleToggleMcp(e,a){try{let{enabled:t}=e.body;if(typeof t!="boolean"){a.status(400).json({error:"enabled must be a boolean"});return}this.toggleMcp(t),a.json({success:!0,enabled:this.isMcpEnabled()})}catch(t){H.failure("WORKER","Toggle MCP failed",{},t),a.status(500).json({success:!1,error:t.message})}}isMcpEnabled(){let e=Ka(),a=Rr.default.join(e,"plugin",".mcp.json");return(0,vt.existsSync)(a)}toggleMcp(e){try{let a=Ka(),t=Rr.default.join(a,"plugin",".mcp.json"),s=Rr.default.join(a,"plugin",".mcp.json.disabled");e&&(0,vt.existsSync)(s)?((0,vt.renameSync)(s,t),H.info("WORKER","MCP search server enabled")):!e&&(0,vt.existsSync)(t)?((0,vt.renameSync)(t,s),H.info("WORKER","MCP search server disabled")):H.debug("WORKER","MCP toggle no-op (already in desired state)",{enabled:e})}catch(a){throw H.failure("WORKER","Failed to toggle MCP",{enabled:e},a),a}}async handleSearchObservations(e,a){try{let t=await this.mcpClient.callTool({name:"search_observations",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleSearchSessions(e,a){try{let t=await this.mcpClient.callTool({name:"search_sessions",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleSearchPrompts(e,a){try{let t=await this.mcpClient.callTool({name:"search_user_prompts",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleSearchByConcept(e,a){try{let t=await this.mcpClient.callTool({name:"find_by_concept",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleSearchByFile(e,a){try{let t=await this.mcpClient.callTool({name:"find_by_file",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleSearchByType(e,a){try{let t=await this.mcpClient.callTool({name:"find_by_type",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleGetRecentContext(e,a){try{let t=await this.mcpClient.callTool({name:"get_recent_context",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleGetContextTimeline(e,a){try{let t=await this.mcpClient.callTool({name:"get_context_timeline",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleGetTimelineByQuery(e,a){try{let t=await this.mcpClient.callTool({name:"get_timeline_by_query",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}handleSearchHelp(e,a){a.json({title:"Claude-Mem Search API",description:"HTTP API for searching persistent memory",endpoints:[{path:"/api/search/observations",method:"GET",description:"Search observations using full-text search",parameters:{query:"Search query (required)",format:'Response format: "index" or "full" (default: "full")',limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/sessions",method:"GET",description:"Search session summaries using full-text search",parameters:{query:"Search query (required)",format:'Response format: "index" or "full" (default: "full")',limit:"Number of results (default: 20)"}},{path:"/api/search/prompts",method:"GET",description:"Search user prompts using full-text search",parameters:{query:"Search query (required)",format:'Response format: "index" or "full" (default: "full")',limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/by-concept",method:"GET",description:"Find observations by concept tag",parameters:{concept:"Concept tag (required): discovery, decision, bugfix, feature, refactor",format:'Response format: "index" or "full" (default: "full")',limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-file",method:"GET",description:"Find observations and sessions by file path",parameters:{filePath:"File path or partial path (required)",format:'Response format: "index" or "full" (default: "full")',limit:"Number of results per type (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-type",method:"GET",description:"Find observations by type",parameters:{type:"Observation type (required): discovery, decision, bugfix, feature, refactor",format:'Response format: "index" or "full" (default: "full")',limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/context/recent",method:"GET",description:"Get recent session context including summaries and observations",parameters:{project:"Project name (default: current directory)",limit:"Number of recent sessions (default: 3)"}},{path:"/api/context/timeline",method:"GET",description:"Get unified timeline around a specific point in time",parameters:{anchor:'Anchor point: observation ID, session ID (e.g., "S123"), or ISO timestamp (required)',depth_before:"Number of records before anchor (default: 10)",depth_after:"Number of records after anchor (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/timeline/by-query",method:"GET",description:"Search for best match, then get timeline around it",parameters:{query:"Search query (required)",mode:'Search mode: "auto", "observations", or "sessions" (default: "auto")',depth_before:"Number of records before match (default: 10)",depth_after:"Number of records after match (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/help",method:"GET",description:"Get this help documentation"}],examples:['curl "http://localhost:37777/api/search/observations?query=authentication&format=index&limit=5"','curl "http://localhost:37777/api/search/by-type?type=bugfix&limit=10"','curl "http://localhost:37777/api/context/recent?project=claude-mem&limit=3"','curl "http://localhost:37777/api/context/timeline?anchor=123&depth_before=5&depth_after=5"']})}};function Ld(r){let e=parseInt(r.query.offset,10)||0,a=Math.min(parseInt(r.query.limit,10)||20,100),t=r.query.project;return{offset:e,limit:a,project:t}}if(require.main===module||!module.parent){let r=new $i;process.on("SIGTERM",async()=>{H.info("SYSTEM","Received SIGTERM, shutting down gracefully"),await r.shutdown(),process.exit(0)}),process.on("SIGINT",async()=>{H.info("SYSTEM","Received SIGINT, shutting down gracefully"),await r.shutdown(),process.exit(0)}),r.start().catch(e=>{H.failure("SYSTEM","Worker startup failed",{},e),process.exit(1)})}var R$=$i;0&&(module.exports={WorkerService}); + `).get(n.claudeSessionId);if(l){this.sseBroadcaster.broadcast({type:"new_prompt",prompt:{id:l.id,claude_session_id:l.claude_session_id,project:l.project,prompt_number:l.prompt_number,prompt_text:l.prompt_text,created_at_epoch:l.created_at_epoch}}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:!0});let c=Date.now(),u=l.prompt_text;this.dbManager.getChromaSync().syncUserPrompt(l.id,l.sdk_session_id,l.project,u,l.prompt_number,l.created_at_epoch).then(()=>{let p=Date.now()-c,m=u.length>60?u.substring(0,60)+"...":u;H.debug("CHROMA","User prompt synced",{promptId:l.id,duration:`${p}ms`,prompt:m})}).catch(p=>{H.error("CHROMA","Failed to sync user_prompt",{promptId:l.id,sessionId:t},p)})}this.broadcastProcessingStatus(),H.info("SESSION","Generator starting",{sessionId:t,project:n.project,promptNum:n.lastPromptNumber}),n.generatorPromise=this.sdkAgent.startSession(n,this).catch(c=>{H.failure("SDK","SDK agent error",{sessionId:t},c)}).finally(()=>{H.info("SESSION","Generator finished",{sessionId:t}),n.generatorPromise=null,this.broadcastProcessingStatus()}),this.sseBroadcaster.broadcast({type:"session_started",sessionDbId:t,project:n.project}),a.json({status:"initialized",sessionDbId:t,port:ec()})}catch(t){H.failure("WORKER","Session init failed",{},t),a.status(500).json({error:t.message})}}handleObservations(e,a){try{let t=parseInt(e.params.sessionDbId,10),{tool_name:s,tool_input:i,tool_response:n,prompt_number:o,cwd:l}=e.body;this.sessionManager.queueObservation(t,{tool_name:s,tool_input:i,tool_response:n,prompt_number:o,cwd:l});let c=this.sessionManager.getSession(t);c&&!c.generatorPromise&&(H.info("SESSION","Generator auto-starting (observation)",{sessionId:t,queueDepth:c.pendingMessages.length}),c.generatorPromise=this.sdkAgent.startSession(c,this).catch(u=>{H.failure("SDK","SDK agent error",{sessionId:t},u)}).finally(()=>{H.info("SESSION","Generator finished",{sessionId:t}),c.generatorPromise=null,this.broadcastProcessingStatus()})),this.broadcastProcessingStatus(),this.sseBroadcaster.broadcast({type:"observation_queued",sessionDbId:t}),a.json({status:"queued"})}catch(t){H.failure("WORKER","Observation queuing failed",{},t),a.status(500).json({error:t.message})}}handleSummarize(e,a){try{let t=parseInt(e.params.sessionDbId,10),{last_user_message:s,last_assistant_message:i}=e.body;this.sessionManager.queueSummarize(t,s,i);let n=this.sessionManager.getSession(t);n&&!n.generatorPromise&&(H.info("SESSION","Generator auto-starting (summarize)",{sessionId:t,queueDepth:n.pendingMessages.length}),n.generatorPromise=this.sdkAgent.startSession(n,this).catch(o=>{H.failure("SDK","SDK agent error",{sessionId:t},o)}).finally(()=>{H.info("SESSION","Generator finished",{sessionId:t}),n.generatorPromise=null,this.broadcastProcessingStatus()})),this.broadcastProcessingStatus(),a.json({status:"queued"})}catch(t){H.failure("WORKER","Summarize queuing failed",{},t),a.status(500).json({error:t.message})}}handleSessionStatus(e,a){try{let t=parseInt(e.params.sessionDbId,10),s=this.sessionManager.getSession(t);if(!s){a.json({status:"not_found"});return}a.json({status:"active",sessionDbId:t,project:s.project,queueLength:s.pendingMessages.length,uptime:Date.now()-s.startTime})}catch(t){H.failure("WORKER","Session status failed",{},t),a.status(500).json({error:t.message})}}async handleSessionDelete(e,a){try{let t=parseInt(e.params.sessionDbId,10);await this.sessionManager.deleteSession(t),this.dbManager.markSessionComplete(t),this.sseBroadcaster.broadcast({type:"session_completed",sessionDbId:t}),a.json({status:"deleted"})}catch(t){H.failure("WORKER","Session delete failed",{},t),a.status(500).json({error:t.message})}}async handleSessionComplete(e,a){try{let t=parseInt(e.params.sessionDbId,10);if(isNaN(t)){a.status(400).json({success:!1,error:"Invalid session ID"});return}await this.sessionManager.deleteSession(t),this.dbManager.markSessionComplete(t),this.broadcastProcessingStatus(),this.sseBroadcaster.broadcast({type:"session_completed",timestamp:Date.now(),sessionDbId:t}),a.json({success:!0})}catch(t){H.failure("WORKER","Session complete failed",{},t),a.status(500).json({success:!1,error:String(t)})}}handleGetObservations(e,a){try{let{offset:t,limit:s,project:i}=Ld(e),n=this.paginationHelper.getObservations(t,s,i);a.json(n)}catch(t){H.failure("WORKER","Get observations failed",{},t),a.status(500).json({error:t.message})}}handleGetSummaries(e,a){try{let{offset:t,limit:s,project:i}=Ld(e),n=this.paginationHelper.getSummaries(t,s,i);a.json(n)}catch(t){H.failure("WORKER","Get summaries failed",{},t),a.status(500).json({error:t.message})}}handleGetPrompts(e,a){try{let{offset:t,limit:s,project:i}=Ld(e),n=this.paginationHelper.getPrompts(t,s,i);a.json(n)}catch(t){H.failure("WORKER","Get prompts failed",{},t),a.status(500).json({error:t.message})}}handleGetObservationById(e,a){try{let t=parseInt(e.params.id,10);if(isNaN(t)){a.status(400).json({error:"Invalid observation ID"});return}let i=this.dbManager.getSessionStore().getObservationById(t);if(!i){a.status(404).json({error:`Observation #${t} not found`});return}a.json(i)}catch(t){H.failure("WORKER","Get observation by ID failed",{},t),a.status(500).json({error:t.message})}}handleGetSessionById(e,a){try{let t=parseInt(e.params.id,10);if(isNaN(t)){a.status(400).json({error:"Invalid session ID"});return}let i=this.dbManager.getSessionStore().getSessionSummariesByIds([t]);if(i.length===0){a.status(404).json({error:`Session #${t} not found`});return}a.json(i[0])}catch(t){H.failure("WORKER","Get session by ID failed",{},t),a.status(500).json({error:t.message})}}handleGetPromptById(e,a){try{let t=parseInt(e.params.id,10);if(isNaN(t)){a.status(400).json({error:"Invalid prompt ID"});return}let i=this.dbManager.getSessionStore().getUserPromptsByIds([t]);if(i.length===0){a.status(404).json({error:`Prompt #${t} not found`});return}a.json(i[0])}catch(t){H.failure("WORKER","Get prompt by ID failed",{},t),a.status(500).json({error:t.message})}}handleGetStats(e,a){try{let t=this.dbManager.getSessionStore().db,s=Ka(),i=Rr.default.join(s,"package.json"),o=JSON.parse((0,vt.readFileSync)(i,"utf-8")).version,l=t.prepare("SELECT COUNT(*) as count FROM observations").get(),c=t.prepare("SELECT COUNT(*) as count FROM sdk_sessions").get(),u=t.prepare("SELECT COUNT(*) as count FROM session_summaries").get(),p=Rr.default.join((0,il.homedir)(),".claude-mem","claude-mem.db"),m=0;(0,vt.existsSync)(p)&&(m=(0,vt.statSync)(p).size);let f=Math.floor((Date.now()-this.startTime)/1e3),h=this.sessionManager.getActiveSessionCount(),d=this.sseBroadcaster.getClientCount();a.json({worker:{version:o,uptime:f,activeSessions:h,sseClients:d,port:ec()},database:{path:p,size:m,observations:l.count,sessions:c.count,summaries:u.count}})}catch(t){H.failure("WORKER","Get stats failed",{},t),a.status(500).json({error:t.message})}}handleGetSettings(e,a){try{let t=Rr.default.join((0,il.homedir)(),".claude","settings.json");if(!(0,vt.existsSync)(t)){a.json({CLAUDE_MEM_MODEL:"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777"});return}let s=(0,vt.readFileSync)(t,"utf-8"),n=JSON.parse(s).env||{};a.json({CLAUDE_MEM_MODEL:n.CLAUDE_MEM_MODEL||"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:n.CLAUDE_MEM_CONTEXT_OBSERVATIONS||"50",CLAUDE_MEM_WORKER_PORT:n.CLAUDE_MEM_WORKER_PORT||"37777"})}catch(t){H.failure("WORKER","Get settings failed",{},t),a.status(500).json({error:t.message})}}handleUpdateSettings(e,a){try{let{CLAUDE_MEM_MODEL:t,CLAUDE_MEM_CONTEXT_OBSERVATIONS:s,CLAUDE_MEM_WORKER_PORT:i}=e.body;if(s){let l=parseInt(s,10);if(isNaN(l)||l<1||l>200){a.status(400).json({success:!1,error:"CLAUDE_MEM_CONTEXT_OBSERVATIONS must be between 1 and 200"});return}}if(i){let l=parseInt(i,10);if(isNaN(l)||l<1024||l>65535){a.status(400).json({success:!1,error:"CLAUDE_MEM_WORKER_PORT must be between 1024 and 65535"});return}}let n=Rr.default.join((0,il.homedir)(),".claude","settings.json"),o={env:{}};if((0,vt.existsSync)(n)){let l=(0,vt.readFileSync)(n,"utf-8");o=JSON.parse(l),o.env||(o.env={})}t&&(o.env.CLAUDE_MEM_MODEL=t),s&&(o.env.CLAUDE_MEM_CONTEXT_OBSERVATIONS=s),i&&(o.env.CLAUDE_MEM_WORKER_PORT=i),(0,vt.writeFileSync)(n,JSON.stringify(o,null,2),"utf-8"),H.info("WORKER","Settings updated"),a.json({success:!0,message:"Settings updated successfully"})}catch(t){H.failure("WORKER","Update settings failed",{},t),a.status(500).json({success:!1,error:String(t)})}}handleGetProcessingStatus(e,a){let t=this.sessionManager.isAnySessionProcessing(),s=this.sessionManager.getTotalActiveWork();a.json({isProcessing:t,queueDepth:s})}broadcastProcessingStatus(){let e=this.sessionManager.isAnySessionProcessing(),a=this.sessionManager.getTotalActiveWork(),t=this.sessionManager.getActiveSessionCount();H.info("WORKER","Broadcasting processing status",{isProcessing:e,queueDepth:a,activeSessions:t}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:e,queueDepth:a})}handleSetProcessing(e,a){try{this.broadcastProcessingStatus();let t=this.sessionManager.isAnySessionProcessing(),s=this.sessionManager.getTotalQueueDepth(),i=this.sessionManager.getActiveSessionCount();H.debug("WORKER","Processing status broadcast",{isProcessing:t,queueDepth:s,activeSessions:i}),a.json({status:"ok",isProcessing:t})}catch(t){H.failure("WORKER","Failed to broadcast processing status",{},t),a.status(500).json({error:t.message})}}handleGetMcpStatus(e,a){try{let t=this.isMcpEnabled();a.json({enabled:t})}catch(t){H.failure("WORKER","Get MCP status failed",{},t),a.status(500).json({error:t.message})}}handleToggleMcp(e,a){try{let{enabled:t}=e.body;if(typeof t!="boolean"){a.status(400).json({error:"enabled must be a boolean"});return}this.toggleMcp(t),a.json({success:!0,enabled:this.isMcpEnabled()})}catch(t){H.failure("WORKER","Toggle MCP failed",{},t),a.status(500).json({success:!1,error:t.message})}}isMcpEnabled(){let e=Ka(),a=Rr.default.join(e,"plugin",".mcp.json");return(0,vt.existsSync)(a)}toggleMcp(e){try{let a=Ka(),t=Rr.default.join(a,"plugin",".mcp.json"),s=Rr.default.join(a,"plugin",".mcp.json.disabled");e&&(0,vt.existsSync)(s)?((0,vt.renameSync)(s,t),H.info("WORKER","MCP search server enabled")):!e&&(0,vt.existsSync)(t)?((0,vt.renameSync)(t,s),H.info("WORKER","MCP search server disabled")):H.debug("WORKER","MCP toggle no-op (already in desired state)",{enabled:e})}catch(a){throw H.failure("WORKER","Failed to toggle MCP",{enabled:e},a),a}}async handleUnifiedSearch(e,a){try{let t=await this.mcpClient.callTool({name:"search",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Unified search failed",{},t),a.status(500).json({error:t.message})}}async handleUnifiedTimeline(e,a){try{let t=await this.mcpClient.callTool({name:"timeline",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Unified timeline failed",{},t),a.status(500).json({error:t.message})}}async handleDecisions(e,a){try{let t=await this.mcpClient.callTool({name:"decisions",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Decisions search failed",{},t),a.status(500).json({error:t.message})}}async handleChanges(e,a){try{let t=await this.mcpClient.callTool({name:"changes",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Changes search failed",{},t),a.status(500).json({error:t.message})}}async handleHowItWorks(e,a){try{let t=await this.mcpClient.callTool({name:"how_it_works",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","How it works search failed",{},t),a.status(500).json({error:t.message})}}async handleSearchObservations(e,a){try{let t=await this.mcpClient.callTool({name:"search_observations",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleSearchSessions(e,a){try{let t=await this.mcpClient.callTool({name:"search_sessions",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleSearchPrompts(e,a){try{let t=await this.mcpClient.callTool({name:"search_user_prompts",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleSearchByConcept(e,a){try{let t=await this.mcpClient.callTool({name:"find_by_concept",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleSearchByFile(e,a){try{let t=await this.mcpClient.callTool({name:"find_by_file",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleSearchByType(e,a){try{let t=await this.mcpClient.callTool({name:"find_by_type",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleGetRecentContext(e,a){try{let t=await this.mcpClient.callTool({name:"get_recent_context",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleGetContextTimeline(e,a){try{let t=await this.mcpClient.callTool({name:"get_context_timeline",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}async handleGetTimelineByQuery(e,a){try{let t=await this.mcpClient.callTool({name:"get_timeline_by_query",arguments:e.query});a.json(t.content)}catch(t){H.failure("WORKER","Search failed",{},t),a.status(500).json({error:t.message})}}handleSearchHelp(e,a){a.json({title:"Claude-Mem Search API",description:"HTTP API for searching persistent memory",endpoints:[{path:"/api/search/observations",method:"GET",description:"Search observations using full-text search",parameters:{query:"Search query (required)",format:'Response format: "index" or "full" (default: "full")',limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/sessions",method:"GET",description:"Search session summaries using full-text search",parameters:{query:"Search query (required)",format:'Response format: "index" or "full" (default: "full")',limit:"Number of results (default: 20)"}},{path:"/api/search/prompts",method:"GET",description:"Search user prompts using full-text search",parameters:{query:"Search query (required)",format:'Response format: "index" or "full" (default: "full")',limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/by-concept",method:"GET",description:"Find observations by concept tag",parameters:{concept:"Concept tag (required): discovery, decision, bugfix, feature, refactor",format:'Response format: "index" or "full" (default: "full")',limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-file",method:"GET",description:"Find observations and sessions by file path",parameters:{filePath:"File path or partial path (required)",format:'Response format: "index" or "full" (default: "full")',limit:"Number of results per type (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-type",method:"GET",description:"Find observations by type",parameters:{type:"Observation type (required): discovery, decision, bugfix, feature, refactor",format:'Response format: "index" or "full" (default: "full")',limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/context/recent",method:"GET",description:"Get recent session context including summaries and observations",parameters:{project:"Project name (default: current directory)",limit:"Number of recent sessions (default: 3)"}},{path:"/api/context/timeline",method:"GET",description:"Get unified timeline around a specific point in time",parameters:{anchor:'Anchor point: observation ID, session ID (e.g., "S123"), or ISO timestamp (required)',depth_before:"Number of records before anchor (default: 10)",depth_after:"Number of records after anchor (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/timeline/by-query",method:"GET",description:"Search for best match, then get timeline around it",parameters:{query:"Search query (required)",mode:'Search mode: "auto", "observations", or "sessions" (default: "auto")',depth_before:"Number of records before match (default: 10)",depth_after:"Number of records after match (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/help",method:"GET",description:"Get this help documentation"}],examples:['curl "http://localhost:37777/api/search/observations?query=authentication&format=index&limit=5"','curl "http://localhost:37777/api/search/by-type?type=bugfix&limit=10"','curl "http://localhost:37777/api/context/recent?project=claude-mem&limit=3"','curl "http://localhost:37777/api/context/timeline?anchor=123&depth_before=5&depth_after=5"']})}};function Ld(r){let e=parseInt(r.query.offset,10)||0,a=Math.min(parseInt(r.query.limit,10)||20,100),t=r.query.project;return{offset:e,limit:a,project:t}}if(require.main===module||!module.parent){let r=new $i;process.on("SIGTERM",async()=>{H.info("SYSTEM","Received SIGTERM, shutting down gracefully"),await r.shutdown(),process.exit(0)}),process.on("SIGINT",async()=>{H.info("SYSTEM","Received SIGINT, shutting down gracefully"),await r.shutdown(),process.exit(0)}),r.start().catch(e=>{H.failure("SYSTEM","Worker startup failed",{},e),process.exit(1)})}var R$=$i;0&&(module.exports={WorkerService}); /*! Bundled license information: depd/index.js: diff --git a/plugin/skills/mem-search/SKILL.md b/plugin/skills/mem-search/SKILL.md index 26f85265..affb8961 100644 --- a/plugin/skills/mem-search/SKILL.md +++ b/plugin/skills/mem-search/SKILL.md @@ -1,196 +1,123 @@ --- name: mem-search -description: Search claude-mem's persistent cross-session memory database to find work from previous conversations days, weeks, or months ago. Access past session summaries, bug fixes, feature implementations, and decisions that are NOT in the current conversation context. Use when user asks "did we already solve this?", "how did we do X last time?", "what happened in last week's session?", or needs information from previous sessions stored in the PM2-managed database. Searches observations, session summaries, and user prompts across entire project history. +description: Search claude-mem's persistent cross-session memory database. Use when user asks "did we already solve this?", "how did we do X last time?", or needs work from previous sessions. --- # Memory Search -Access claude-mem's persistent cross-session memory through HTTP API. Find past work, understand context across sessions, and learn from previous decisions. +Search past work across all sessions. Simple workflow: search → get IDs → fetch details by ID. -## When to Use This Skill +## When to Use -**Use when users ask about work from PREVIOUS sessions** (not current conversation): +Use when users ask about PREVIOUS sessions (not current conversation): +- "Did we already fix this?" +- "How did we solve X last time?" +- "What happened last week?" -### Temporal Triggers (Key Indicators) -- "Did we **already** fix this bug?" or "Have we seen this error **before**?" -- "How did we solve X **last time**?" or "What approach did we take **previously**?" -- "What did we do in **yesterday's/last week's/last month's** session?" -- "**When** did we last work on this?" or "What's the **history** of this file?" +## The Workflow -### Cross-Session Queries -- "Show me all authentication-related changes **across all sessions**" -- "What features did we add **last month**?" (not "today" or "this session") -- "Why did we choose this approach **before**?" (decisions from past sessions) -- "What files did we modify **when we added X**?" (historical context) +**ALWAYS follow this exact flow:** -**Do NOT use** for current session work, future planning, or questions Claude can answer from current conversation context. +1. **Search** - Get an index of results with IDs +2. **Review** - Look at titles/dates, pick relevant IDs +3. **Fetch** - Get full details ONLY for those IDs -## Common Trigger Phrases +### Step 1: Search Everything -This skill activates when detecting phrases about **cross-session history**: +```bash +curl "http://localhost:37777/api/search?query=authentication&format=index&limit=5" +``` -- "Did we already solve this?" / "Have we done this before?" -- "How did we implement X last time?" -- "What did we work on yesterday/last week/last month?" -- "Show me the history of [file/feature/decision]" -- "When did we fix/add/change X?" -- "What was happening around [date/time]?" -- "Catch me up on recent sessions" / "What have we been doing?" -- "What changes to [filename] across all sessions?" +**Required parameters:** +- `query` - Search term +- `format=index` - ALWAYS start with index (lightweight) +- `limit=5` - Start small (3-5 results) -**Unique identifiers:** claude-mem, persistent memory, cross-session database, session history, PM2-managed database +**Returns:** +``` +1. [feature] Added JWT authentication + Date: 11/17/2025, 3:48:45 PM + ID: 11131 -## Available Operations +2. [bugfix] Fixed auth token expiration + Date: 11/16/2025, 2:15:22 PM + ID: 10942 +``` -### Full-Text Search -- **observations** - Search all observations by keyword (bugs, features, decisions, discoveries, changes) - - Use when: "How did we implement X?" or "What bugs did we fix?" - - Example: Search for "authentication JWT" to find auth-related work +### Step 2: Pick IDs -- **sessions** - Search session summaries to find what was accomplished when - - Use when: "What did we accomplish last time?" or "What was the goal of that session?" - - Example: Find sessions where "added login feature" +Review the index results. Identify which IDs are actually relevant. Discard the rest. -- **prompts** - Find what users have asked about in previous sessions - - Use when: "Did I ask about this before?" or "What did I request last week?" - - Example: Search for "database migration" in past user prompts +### Step 3: Fetch by ID -### Filtered Search -- **by-type** - Filter observations by type (bugfix, feature, refactor, decision, discovery, change) - - Use when: "Show me all bug fixes" or "List features we added" - - Example: Get all observations with type=bugfix from last month +For each relevant ID, fetch full details: -- **by-concept** - Find observations tagged with specific concepts (problem-solution, how-it-works, gotcha) - - Use when: "What patterns did we discover?" or "Show me gotchas" - - Example: Find all observations tagged with concept "gotcha" +```bash +# Fetch observation +curl "http://localhost:37777/api/observation/11131" -- **by-file** - Find all work related to a specific file path across all sessions - - Use when: "What changes to auth.ts?" or "History of this file" - - Example: Get all work related to "src/auth/login.ts" +# Fetch session +curl "http://localhost:37777/api/session/2005" -### Timeline & Context -- **recent-context** - Get last N sessions with summaries and observations - - Use when: "What's been happening?" or "Catch me up on recent work" - - Example: Get last 3 sessions with limit=3 +# Fetch prompt +curl "http://localhost:37777/api/prompt/5421" +``` -- **timeline** - Get chronological context around a specific point in time (before/after window) - - Use when: "What was happening around [date]?" or "Show me context from that time" - - Example: Timeline around session 123 with depth 5 before and after +**ID formats:** +- Observations: Just the number (11131) +- Sessions: Just the number (2005) from "S2005" +- Prompts: Just the number (5421) -- **timeline-by-query** - Search first, then get timeline context around best match - - Use when: "When did we implement auth?" combined with "show me context around that time" - - Example: Search for "OAuth implementation" then get surrounding timeline +## Search Parameters -For detailed instructions on any operation, read the corresponding file in [operations/](operations/). +**Basic:** +- `query` - What to search for (required) +- `format` - "index" or "full" (always use "index" first) +- `limit` - How many results (default 5, max 100) -## Quick Decision Guide +**Filters (optional):** +- `type` - Filter to "observations", "sessions", or "prompts" +- `project` - Filter by project name +- `dateRange[start]` - Start date (YYYY-MM-DD) +- `dateRange[end]` - End date (YYYY-MM-DD) +- `obs_type` - Filter observations by: bugfix, feature, decision, discovery, change -**What is the user asking about?** +## Examples -1. **Recent work** (last 3-5 sessions) → Use **recent-context** with limit=3-5 -2. **Specific topic/keyword** (bugs, features, decisions) → Use **observations** search -3. **Specific file history** (changes to a file) → Use **by-file** search -4. **Timeline/chronology** (what happened when) → Use **timeline** or **timeline-by-query** -5. **Type-specific** (all bug fixes, all features) → Use **by-type** filter +**Find recent bug fixes:** +```bash +curl "http://localhost:37777/api/search?query=bug&type=observations&obs_type=bugfix&format=index&limit=5" +``` -**Most common:** Use **observations** search for general "how did we..." questions. +**Find what happened last week:** +```bash +curl "http://localhost:37777/api/search?query=&type=observations&dateRange[start]=2025-11-11&format=index&limit=10" +``` -## Progressive Disclosure Workflow (Token Efficiency) +**Search everything:** +```bash +curl "http://localhost:37777/api/search?query=database+migration&format=index&limit=5" +``` -**Core Principle**: Find high-signal items in index format FIRST (~50-100 tokens each), then request full details ONLY for relevant items (~500-1000 tokens each). +## Why This Workflow? -**4-Step Workflow:** +**Token efficiency:** +- Index format: ~50-100 tokens per result +- Full format: ~500-1000 tokens per result +- **10x difference** - only fetch full when you know it's relevant -1. **Start with Index Format** - - Always use `format=index` initially - - Set `limit=3-5` (not 10-20) - - Review titles and dates to assess relevance - - Token cost: ~50-100 per result - -2. **Identify Relevant Items** - - Scan index results - - Discard irrelevant items from list - - Keep only 1-3 most relevant - -3. **Request Full Details Selectively** - - Use `format=full` ONLY for specific relevant items - - Token cost: ~500-1000 per result - - **10x cost difference** - be selective - -4. **Refine with Filters** - - Use type, dateRange, concepts, files filters - - Paginate with offset if needed - - Narrow scope before expanding limits - -**DO:** -- ✅ Start with `format=index` and `limit=3-5` -- ✅ Use filters (type, dateRange, concepts, files) to narrow results -- ✅ Request `format=full` ONLY for specific relevant items -- ✅ Use offset for pagination instead of large limits - -**DON'T:** -- ❌ Jump straight to `format=full` -- ❌ Request `limit=20` without assessing index results first -- ❌ Load full details for all results upfront -- ❌ Skip index format to "save a step" (costs 10x more tokens) - -See [principles/progressive-disclosure.md](principles/progressive-disclosure.md) for complete workflow with examples and token calculations. - -## Quick Reference Table - -| Need | Operation | Key Parameters | -|------|-----------|----------------| -| Recent context | recent-context | limit=3-5 | -| Search observations | observations | query, format=index, limit=5 | -| Search sessions | sessions | query, format=index, limit=5 | -| Find by type | by-type | type=(bugfix\|feature\|decision), format=index | -| Find by file | by-file | filePath, format=index | -| Timeline around event | timeline | anchor=(sessionDbId), depth_before=5, depth_after=5 | -| Search + timeline | timeline-by-query | query, mode=auto | - -## Common Workflows - -For step-by-step guides on typical user requests, see [operations/common-workflows.md](operations/common-workflows.md): -- Understanding past work from previous sessions -- Finding specific bug fixes from history -- Understanding file history across sessions -- Timeline investigation workflows -- Search composition patterns - -## Response Formatting - -For guidelines on presenting search results to users, see [operations/formatting.md](operations/formatting.md): -- Index format responses (compact lists with titles/dates) -- Full format responses (complete observation details) -- Timeline responses (chronologically grouped) -- Error handling and user-friendly messages - -## Technical Notes - -- **Port:** Default 37777 (configurable via `CLAUDE_MEM_WORKER_PORT`) -- **Response format:** Always JSON -- **Search engine:** ChromaDB semantic search (primary ranking) + SQLite FTS5 (fallback) + 90-day recency filter + temporal ordering (hybrid architecture) -- **All operations:** HTTP GET with query parameters -- **Worker:** PM2-managed background process +**Clarity:** +- See everything first +- Pick what matters +- Get details only for what you need ## Error Handling -If HTTP request fails: -1. Inform user the claude-mem search service isn't available -2. Suggest checking if worker is running: `pm2 list` or `pm2 status claude-mem-worker` -3. Offer to help troubleshoot using the troubleshoot skill - -## Resources - -**Principles:** -- [principles/progressive-disclosure.md](principles/progressive-disclosure.md) - Complete 4-step workflow with token calculations -- [principles/anti-patterns.md](principles/anti-patterns.md) - 5 anti-patterns to avoid with LLM behavior insights - -**Operations:** -- [operations/](operations/) - Detailed instructions for each operation (9 operations + help) -- [operations/common-workflows.md](operations/common-workflows.md) - Step-by-step workflow guides -- [operations/formatting.md](operations/formatting.md) - Response formatting templates +If search fails, tell the user the worker isn't available and suggest: +```bash +pm2 list # Check if worker is running +``` --- -**Remember:** This skill searches **cross-session persistent memory**, NOT current conversation. Start with index format for token efficiency. Use temporal triggers to differentiate from native Claude memory. +**Remember:** ALWAYS search with format=index first. ALWAYS fetch by ID for details. The IDs are there for a reason - USE THEM. diff --git a/plugin/skills/mem-search/operations/observations.md b/plugin/skills/mem-search/operations/observations.md index 7e9d4d4e..97b65bfe 100644 --- a/plugin/skills/mem-search/operations/observations.md +++ b/plugin/skills/mem-search/operations/observations.md @@ -17,10 +17,16 @@ curl -s "http://localhost:37777/api/search/observations?query=authentication&for ## Parameters -- **query** (required): Natural language search query - uses semantic search (ChromaDB) for ranking with SQLite FTS5 fallback (e.g., "authentication", "bug fix", "database migration") +- **query** (optional): Natural language search query - uses semantic search (ChromaDB) for ranking with SQLite FTS5 fallback (e.g., "authentication", "bug fix", "database migration"). Can be omitted for filter-only searches. - **format**: "index" (summary) or "full" (complete details). Default: "full" - **limit**: Number of results (default: 20, max: 100) - **project**: Filter by project name (optional) +- **dateRange**: Filter by date range (optional) - `dateRange[start]` and/or `dateRange[end]` +- **obs_type**: Filter by observation type: bugfix, feature, refactor, decision, discovery, change (optional) +- **concepts**: Filter by concept tags (optional) +- **files**: Filter by file paths (optional) + +**Important**: When omitting `query`, you MUST provide at least one filter (project, dateRange, obs_type, concepts, or files) ## When to Use Each Format @@ -76,13 +82,28 @@ Found 5 results for "authentication": For complete formatting guidelines, see formatting.md (documentation coming soon). +## Filter-Only Examples + +Search without query text (direct SQLite filtering): + +```bash +# Get all observations from November 2025 +curl -s "http://localhost:37777/api/search?type=observations&dateRange[start]=2025-11-01&format=index" + +# Get all bug fixes from a specific project +curl -s "http://localhost:37777/api/search?type=observations&obs_type=bugfix&project=api-server&format=index" + +# Get all observations from last 7 days +curl -s "http://localhost:37777/api/search?type=observations&dateRange[start]=2025-11-11&format=index" +``` + ## Error Handling -**Missing query parameter:** +**Missing query and filters:** ```json -{"error": "Missing required parameter: query"} +{"error": "Either query or filters required for search"} ``` -Fix: Add the query parameter +Fix: Provide either a query parameter OR at least one filter (project, dateRange, obs_type, concepts, files) **No results found:** ```json diff --git a/private/POSTMORTEM-worker-debug-failure.md b/private/POSTMORTEM-worker-debug-failure.md new file mode 100644 index 00000000..a5fc6847 --- /dev/null +++ b/private/POSTMORTEM-worker-debug-failure.md @@ -0,0 +1,109 @@ +# Postmortem: Worker Debug Failure - 2025-11-17 + +## Incident Summary +Attempted to fix broken worker service. Worker was in crash loop with 225 restarts, failing with "MCP error -32000: Connection closed". Debug attempt failed and changes were reverted. + +## What Went Wrong + +### 1. **Jumped to Symptoms, Not Root Cause** +- Saw "MCP connection failed" errors in logs +- Immediately focused on MCP/Chroma connection code +- Never asked: "Why is this suddenly broken when it worked before?" +- Classic symptom chasing instead of root cause analysis + +### 2. **Ignored the Build Pipeline** +- Worker file wasn't in the expected location (`plugin/worker-service.cjs` vs `plugin/scripts/worker-service.cjs`) +- Build output existed but search server was producing corrupted/error output +- Never investigated: "Is the build system broken?" +- Should have compared built artifacts between main and current branch + +### 3. **Tried to Fix by Disabling Instead of Understanding** +- Final approach: comment out Chroma, comment out search server +- This is the opposite of debugging - it's just making things "work" by removing functionality +- User called this out as "duct tape around 5 things unrelated to the problem" +- Violated YAGNI/KISS by adding defensive complexity instead of fixing the actual issue + +### 4. **Didn't Compare Working vs Broken State** +- User specifically said "we fixed this before" +- Should have immediately: `git diff main src/services/worker-service.ts` +- Did this eventually but didn't follow through on the findings +- The diff showed only search-everything additions - the core worker code was UNCHANGED +- This should have been a huge red flag: "If the code is the same, why is it broken?" + +### 5. **Overcomplicated the Investigation** +- Started reading through ChromaSync implementation +- Traced through MCP connection code +- Analyzed startup sequences +- All of this was unnecessary if the root cause was a build issue + +## What Should Have Happened + +### Correct Debug Sequence: +1. ✅ Check worker status (`pm2 list`) - DONE +2. ✅ Check error logs - DONE +3. ❌ **Compare current code to main branch** - SKIPPED INITIALLY +4. ❌ **Check if built files are correct** - SKIPPED +5. ❌ **Test the build pipeline** - NEVER DONE +6. ❌ **Verify dependencies are installed** - NEVER CHECKED + +### The Real Questions: +- Is this a code change or a build issue? +- What changed between working state and broken state? +- Are the built artifacts corrupted? +- Is the search server build actually valid? +- Are there missing dependencies in plugin/scripts/node_modules? + +## Likely Root Causes (Untested) + +Based on evidence: +1. **Build artifacts are corrupted** - search-server.mjs threw syntax errors when run +2. **Node modules missing/outdated** - plugin/scripts/node_modules may be stale +3. **ESM/CJS bundling issue** - esbuild may have produced invalid output +4. **search-everything branch has broken build config** - scripts/build-hooks.js may have issues + +## Key Lessons + +### KISS/DRY/YAGNI Violations +- Added complexity (disabling features) instead of removing it +- Tried to work around symptoms instead of fixing root cause +- Ignored the principle: "If it worked before and code is same, it's environment/build" + +### Debugging Anti-Patterns +1. **Symptom Chasing**: Following error messages down rabbit holes +2. **Defensive Coding**: Commenting out "broken" features instead of fixing them +3. **Ignoring History**: Not comparing working vs broken states +4. **Build Blindness**: Assuming built artifacts are correct without verification + +### What Good Debugging Looks Like +1. Compare working state (main) vs broken state (current branch) +2. Identify what actually changed (code? deps? build?) +3. Test the simplest hypothesis first (build issue vs code issue) +4. Never disable features to "fix" things - that's not fixing + +## Action Items for Next Attempt + +### Before Writing Any Code: +- [ ] `git diff main` for all modified files +- [ ] Check if `plugin/scripts/` artifacts are valid JavaScript +- [ ] Compare build process: `npm run build` output on main vs current branch +- [ ] Verify `plugin/scripts/node_modules` exists and is current +- [ ] Test search-server.mjs in isolation: `node plugin/scripts/search-server.mjs` + +### If Build is Broken: +- [ ] Check scripts/build-hooks.js for recent changes +- [ ] Verify esbuild configuration +- [ ] Test build on main branch, then on current branch +- [ ] Don't modify source code until build is proven working + +### If Code is Broken: +- [ ] Create minimal repro (which specific change broke it?) +- [ ] Fix the actual bug, don't add workarounds +- [ ] Test the fix in isolation + +## Conclusion + +This failure exemplifies "debugging by making changes" instead of "debugging by understanding". The instinct to fix symptoms (MCP errors) instead of investigating root cause (why is it broken now?) led to wasted effort and ultimately no solution. + +The user's frustration was justified - I was adding defensive duct tape instead of finding and fixing the real problem. This is exactly what KISS/DRY/YAGNI principles are meant to prevent. + +**Next time: Compare, verify, understand, THEN fix. Never disable features to make errors go away.** diff --git a/private/docs/context/search-plan-nov-17.md b/private/docs/context/search-plan-nov-17.md new file mode 100644 index 00000000..facd6065 --- /dev/null +++ b/private/docs/context/search-plan-nov-17.md @@ -0,0 +1,119 @@ + Unified Search API Consolidation Plan + + Overview + + Consolidate 10 search endpoints into 6 powerful, semantic endpoints with intelligent aliasing for backward compatibility. + + New Endpoint Structure + + 1. /search - Unified Cross-Type Search + + - Searches all record types (observations + sessions + prompts) via Chroma multi-collection search + - Optional type filter to narrow down + - Replaces: search_observations, search_sessions, search_user_prompts + - Params: query, response=[index|full], type, project, dateRange, limit, offset, orderBy + + 2. /timeline - Unified Timeline Tool + + - Supports both anchor-based and query-based modes via params + - If anchor → direct timeline lookup (like get_context_timeline) + - If query → search-first then timeline (like get_timeline_by_query) + - Params: anchor OR query, depth_before, depth_after, response, mode, project + + 3. /decisions - Decision Observations + + - Metadata-first search for type=decision observations + - Uses specialized search logic for precision + - Params: response, project, dateRange, limit, offset, orderBy + + 4. /changes - Change Observations + + - Metadata-first search for type=change observations + - Same pattern as /decisions + + 5. /how-it-works - How-It-Works Concept + + - Metadata-first search for concept=how-it-works observations + - Same pattern as concept endpoints + + 6. /contextualize - Intelligent Context Builder + + - Complex hybrid endpoint: + a. Get 7 latest decisions + 7 latest changes + 3 latest how-it-works + b. Find newest date across all results + c. Get timeline (7 before + 7 after) around that date + d. Merge & re-sort into single timeline (newest → oldest) + e. Return timeline + narratives of each concept's latest result + - Params: query (for contextualization), project + + Implementation Phases + + Phase 1: Core Unified Search (search-server.ts) + + - Create search tool with Chroma multi-collection query + - Add type filtering support + - Alias old tools: search_observations → search(type=['observations']) + + Phase 2: Unified Timeline (search-server.ts) + + - Merge get_context_timeline + get_timeline_by_query logic + - Support both anchor and query params (mutually exclusive) + - Alias old timeline tools to new unified implementation + + Phase 3: Specialized Concept Endpoints (search-server.ts) + + - Create decisions, changes, how_it_works tools + - Use metadata-first search strategy + - Update find_by_type and find_by_concept to call these internally + + Phase 4: Contextualize Endpoint (search-server.ts) + + - Implement parallel fetching (7 decisions, 7 changes, 3 how-it-works) + - Find newest date, get timeline around it + - Merge, re-sort, extract narratives + - Return structured response with timeline + narratives + + Phase 5: HTTP API Routes (worker-service.ts) + + - Add 6 new routes: /api/search, /api/timeline, /api/decisions, /api/changes, /api/how-it-works, /api/contextualize + - Update old routes to alias new implementations + - Maintain backward compatibility + + Phase 6: Chroma Multi-Collection Search (ChromaSync.ts) + + - Add searchAll() method to query all collections in parallel + - Include source collection metadata in results + - Merge and rank by similarity score + + Phase 7: SQLite Fallback (SessionSearch.ts) + + - Add searchAll() for FTS5 fallback when Chroma unavailable + - Merge results from all three FTS5 tables + + Phase 8: Documentation & Skill Updates + + - Update mem-search skill with new endpoints + - Update CLAUDE.md and README.md + - Add examples and migration guide + + Phase 9: Testing & Deployment + + - Unit tests for all new tools + - Integration tests for aliasing + - Manual testing via mem-search skill + - Build → sync → worker restart + + Key Design Decisions + + ✅ Aliasing Strategy: Old endpoints call new implementations internally (zero breaking changes) + ✅ Unified Search: Chroma multi-collection search for true cross-type queries + ✅ Flexible Timeline: Single tool supports both direct and query-based modes + ✅ Specialized Shortcuts: /decisions, /changes, /how-it-works for common queries + ✅ Intelligent Context: /contextualize auto-builds rich context with narratives + + Migration Impact + + - Users: Zero breaking changes, old endpoints work via aliasing + - Codebase: Simplified from 10 conceptual endpoints to 6 + - Performance: Improved via Chroma multi-collection search + - Developer UX: Cleaner, more semantic API \ No newline at end of file diff --git a/scripts/build-hooks.js b/scripts/build-hooks.js index 4da8abb0..c738187c 100644 --- a/scripts/build-hooks.js +++ b/scripts/build-hooks.js @@ -26,12 +26,10 @@ const WORKER_SERVICE = { source: 'src/services/worker-service.ts' }; -// DEPRECATED: MCP search server replaced by skill-based search -// Keeping source file for reference: src/servers/search-server.ts -// const SEARCH_SERVER = { -// name: 'search-server', -// source: 'src/servers/search-server.ts' -// }; +const SEARCH_SERVER = { + name: 'search-server', + source: 'src/servers/search-server.ts' +}; async function buildHooks() { console.log('🔨 Building claude-mem hooks and worker service...\n'); @@ -94,6 +92,31 @@ async function buildHooks() { const workerStats = fs.statSync(`${hooksDir}/${WORKER_SERVICE.name}.cjs`); console.log(`✓ worker-service built (${(workerStats.size / 1024).toFixed(2)} KB)`); + // Build search server + console.log(`\n🔧 Building search server...`); + await build({ + entryPoints: [SEARCH_SERVER.source], + bundle: true, + platform: 'node', + target: 'node18', + format: 'cjs', + outfile: `${hooksDir}/${SEARCH_SERVER.name}.cjs`, + minify: true, + logLevel: 'error', + external: ['better-sqlite3'], + define: { + '__DEFAULT_PACKAGE_VERSION__': `"${version}"` + }, + banner: { + js: '#!/usr/bin/env node' + } + }); + + // Make search server executable + fs.chmodSync(`${hooksDir}/${SEARCH_SERVER.name}.cjs`, 0o755); + const searchServerStats = fs.statSync(`${hooksDir}/${SEARCH_SERVER.name}.cjs`); + console.log(`✓ search-server built (${(searchServerStats.size / 1024).toFixed(2)} KB)`); + // Build each hook for (const hook of HOOKS) { console.log(`\n🔧 Building ${hook.name}...`); @@ -126,14 +149,11 @@ async function buildHooks() { console.log(`✓ ${hook.name} built (${sizeInKB} KB)`); } - // DEPRECATED: MCP search server no longer built (replaced by skill-based search) - // Search functionality now provided via HTTP API + search skill - // Source file kept for reference: src/servers/search-server.ts - - console.log('\n✅ All hooks and worker service built successfully!'); + console.log('\n✅ All hooks, worker service, and search server built successfully!'); console.log(` Output: ${hooksDir}/`); console.log(` - Hooks: *-hook.js`); console.log(` - Worker: worker-service.cjs`); + console.log(` - Search Server: search-server.cjs`); console.log(` - Skills: plugin/skills/`); console.log('\n💡 Note: Dependencies will be auto-installed on first hook execution'); diff --git a/src/servers/search-server.ts b/src/servers/search-server.ts index 051c9647..ebdcd6b5 100644 --- a/src/servers/search-server.ts +++ b/src/servers/search-server.ts @@ -18,6 +18,7 @@ import { SessionSearch } from '../services/sqlite/SessionSearch.js'; import { SessionStore } from '../services/sqlite/SessionStore.js'; import { ObservationSearchResult, SessionSummarySearchResult, UserPromptSearchResult } from '../services/sqlite/types.js'; import { VECTOR_DB_DIR } from '../shared/paths.js'; +import { silentDebug } from '../utils/silent-debug.js'; // Initialize search instances let search: SessionSearch; @@ -45,18 +46,31 @@ async function queryChroma( throw new Error('Chroma client not initialized'); } + silentDebug('queryChroma called', { query, limit, whereFilter }); + + const whereStringified = whereFilter ? JSON.stringify(whereFilter) : undefined; + silentDebug('where filter stringified', { whereFilter, whereStringified }); + + const arguments_obj = { + collection_name: COLLECTION_NAME, + query_texts: [query], + n_results: limit, + include: ['documents', 'metadatas', 'distances'], + where: whereStringified + }; + silentDebug('calling chroma_query_documents', arguments_obj); + const result = await chromaClient.callTool({ name: 'chroma_query_documents', - arguments: { - collection_name: COLLECTION_NAME, - query_texts: [query], - n_results: limit, - include: ['documents', 'metadatas', 'distances'], - where: whereFilter - } + arguments: arguments_obj }); const resultText = result.content[0]?.text || ''; + silentDebug('chroma response received', { + hasContent: !!result.content[0]?.text, + textLength: resultText.length, + textPreview: resultText.substring(0, 200) + }); // Parse JSON response let parsed: any; @@ -64,6 +78,7 @@ async function queryChroma( parsed = JSON.parse(resultText); } catch (error) { console.error('[search-server] Failed to parse Chroma response as JSON:', error); + console.error('[search-server] Raw Chroma response:', resultText); return { ids: [], distances: [], metadatas: [] }; } @@ -345,10 +360,859 @@ const filterSchema = z.object({ // Define tool schemas const tools = [ { - name: 'search_observations', - description: 'Search observations using hybrid semantic + full-text search (ChromaDB primary, SQLite FTS5 fallback). IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.', + name: 'search', + description: 'Unified search across all memory types (observations, sessions, and user prompts) using vector-first semantic search (ChromaDB). Returns combined results from all document types. IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.', inputSchema: z.object({ - query: z.string().describe('Natural language search query (semantic ranking via ChromaDB, FTS5 fallback)'), + query: z.string().optional().describe('Natural language search query for semantic ranking via ChromaDB vector search. Optional - omit for date-filtered queries only (Chroma cannot filter by date, requires direct SQLite).'), + format: z.enum(['index', 'full']).default('index').describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'), + type: z.enum(['observations', 'sessions', 'prompts']).optional().describe('Filter by document type (observations, sessions, or prompts). Omit to search all types.'), + obs_type: z.union([ + z.enum(['decision', 'bugfix', 'feature', 'refactor', 'discovery', 'change']), + z.array(z.enum(['decision', 'bugfix', 'feature', 'refactor', 'discovery', 'change'])) + ]).optional().describe('Filter observations by type. Only applies when type="observations"'), + concepts: z.union([ + z.string(), + z.array(z.string()) + ]).optional().describe('Filter by concept tags. Only applies when type="observations"'), + files: z.union([ + z.string(), + z.array(z.string()) + ]).optional().describe('Filter by file paths (partial match). Only applies when type="observations"'), + project: z.string().optional().describe('Filter by project name'), + dateRange: z.object({ + start: z.union([z.string(), z.number()]).optional().describe('Start date (ISO string or epoch)'), + end: z.union([z.string(), z.number()]).optional().describe('End date (ISO string or epoch)') + }).optional().describe('Filter by date range'), + limit: z.number().min(1).max(100).default(20).describe('Maximum number of results'), + offset: z.number().min(0).default(0).describe('Number of results to skip'), + orderBy: z.enum(['relevance', 'date_desc', 'date_asc']).default('date_desc').describe('Sort order') + }), + handler: async (args: any) => { + try { + const { query, format = 'index', type, obs_type, concepts, files, ...options } = args; + let observations: ObservationSearchResult[] = []; + let sessions: SessionSummarySearchResult[] = []; + let prompts: UserPromptSearchResult[] = []; + + // Determine which types to query based on type filter + const searchObservations = !type || type === 'observations'; + const searchSessions = !type || type === 'sessions'; + const searchPrompts = !type || type === 'prompts'; + + // PATH 1: FILTER-ONLY (no query text) - Skip Chroma/FTS5, use direct SQLite filtering + // This path enables date filtering which Chroma cannot do (requires direct SQLite access) + if (!query) { + console.error(`[search-server] Filter-only query (no query text), using direct SQLite filtering (enables date filters)`); + const obsOptions = { ...options, type: obs_type, concepts, files }; + if (searchObservations) { + observations = search.searchObservations(undefined, obsOptions); + } + if (searchSessions) { + sessions = search.searchSessions(undefined, options); + } + if (searchPrompts) { + prompts = search.searchUserPrompts(undefined, options); + } + } + // PATH 2: CHROMA SEMANTIC SEARCH (query text + Chroma available) + else if (chromaClient) { + let chromaSucceeded = false; + try { + console.error(`[search-server] Using ChromaDB semantic search (type filter: ${type || 'all'})`); + + // Build Chroma where filter for doc_type + let whereFilter: Record | undefined; + if (type === 'observations') { + whereFilter = { doc_type: 'observation' }; + } else if (type === 'sessions') { + whereFilter = { doc_type: 'session_summary' }; + } else if (type === 'prompts') { + whereFilter = { doc_type: 'user_prompt' }; + } + + // Step 1: Chroma semantic search with optional type filter + const chromaResults = await queryChroma(query, 100, whereFilter); + chromaSucceeded = true; // Chroma didn't throw error + console.error(`[search-server] ChromaDB returned ${chromaResults.ids.length} semantic matches`); + + if (chromaResults.ids.length > 0) { + // Step 2: Filter by recency (90 days) + const ninetyDaysAgo = Date.now() - (90 * 24 * 60 * 60 * 1000); + const recentMetadata = chromaResults.metadatas.map((meta, idx) => ({ + id: chromaResults.ids[idx], + meta, + isRecent: meta && meta.created_at_epoch > ninetyDaysAgo + })).filter(item => item.isRecent); + + console.error(`[search-server] ${recentMetadata.length} results within 90-day window`); + + // Step 3: Categorize IDs by document type + const obsIds: number[] = []; + const sessionIds: number[] = []; + const promptIds: number[] = []; + + for (const item of recentMetadata) { + const docType = item.meta?.doc_type; + if (docType === 'observation' && searchObservations) { + obsIds.push(item.id); + } else if (docType === 'session_summary' && searchSessions) { + sessionIds.push(item.id); + } else if (docType === 'user_prompt' && searchPrompts) { + promptIds.push(item.id); + } + } + + console.error(`[search-server] Categorized: ${obsIds.length} obs, ${sessionIds.length} sessions, ${promptIds.length} prompts`); + + // Step 4: Hydrate from SQLite with additional filters + if (obsIds.length > 0) { + // Apply obs_type, concepts, files filters if provided + const obsOptions = { ...options, type: obs_type, concepts, files }; + observations = store.getObservationsByIds(obsIds, obsOptions); + } + if (sessionIds.length > 0) { + sessions = store.getSessionSummariesByIds(sessionIds, { orderBy: 'date_desc', limit: options.limit }); + } + if (promptIds.length > 0) { + prompts = store.getUserPromptsByIds(promptIds, { orderBy: 'date_desc', limit: options.limit }); + } + + console.error(`[search-server] Hydrated ${observations.length} obs, ${sessions.length} sessions, ${prompts.length} prompts from SQLite`); + } else { + // Chroma returned 0 results - this is the correct answer, don't fall back to FTS5 + console.error(`[search-server] ChromaDB found no matches (this is final - NOT falling back to FTS5)`); + } + } catch (chromaError: any) { + console.error('[search-server] ChromaDB failed - returning empty results (FTS5 fallback removed):', chromaError.message); + console.error('[search-server] Install UVX/Python to enable vector search: https://docs.astral.sh/uv/getting-started/installation/'); + // Return empty results - no fallback + observations = []; + sessions = []; + prompts = []; + } + } + // ChromaDB not initialized - return empty results (no fallback) + else { + console.error(`[search-server] ChromaDB not initialized - returning empty results (FTS5 fallback removed)`); + console.error(`[search-server] Install UVX/Python to enable vector search: https://docs.astral.sh/uv/getting-started/installation/`); + observations = []; + sessions = []; + prompts = []; + } + + const totalResults = observations.length + sessions.length + prompts.length; + + if (totalResults === 0) { + return { + content: [{ + type: 'text' as const, + text: `No results found matching "${query}"` + }] + }; + } + + // Combine all results with timestamps for unified sorting + interface CombinedResult { + type: 'observation' | 'session' | 'prompt'; + data: any; + epoch: number; + } + + const allResults: CombinedResult[] = [ + ...observations.map(obs => ({ type: 'observation' as const, data: obs, epoch: obs.created_at_epoch })), + ...sessions.map(sess => ({ type: 'session' as const, data: sess, epoch: sess.created_at_epoch })), + ...prompts.map(prompt => ({ type: 'prompt' as const, data: prompt, epoch: prompt.created_at_epoch })) + ]; + + // Sort by date (most recent first) + if (options.orderBy === 'date_desc') { + allResults.sort((a, b) => b.epoch - a.epoch); + } else if (options.orderBy === 'date_asc') { + allResults.sort((a, b) => a.epoch - b.epoch); + } + + // Apply limit across all types + const limitedResults = allResults.slice(0, options.limit || 20); + + // Format based on requested format + let combinedText: string; + if (format === 'index') { + const header = `Found ${totalResults} result(s) matching "${query}" (${observations.length} obs, ${sessions.length} sessions, ${prompts.length} prompts):\n\n`; + const formattedResults = limitedResults.map((item, i) => { + if (item.type === 'observation') { + return formatObservationIndex(item.data, i); + } else if (item.type === 'session') { + return formatSessionIndex(item.data, i); + } else { + return formatUserPromptIndex(item.data, i); + } + }); + combinedText = header + formattedResults.join('\n\n') + formatSearchTips(); + } else { + const formattedResults = limitedResults.map(item => { + if (item.type === 'observation') { + return formatObservationResult(item.data); + } else if (item.type === 'session') { + return formatSessionResult(item.data); + } else { + return formatUserPromptResult(item.data); + } + }); + combinedText = formattedResults.join('\n\n---\n\n'); + } + + return { + content: [{ + type: 'text' as const, + text: combinedText + }] + }; + } catch (error: any) { + return { + content: [{ + type: 'text' as const, + text: `Search failed: ${error.message}` + }], + isError: true + }; + } + } + }, + { + name: 'timeline', + description: 'Get a unified timeline of context around a specific point in time OR search query. Supports two modes: (1) anchor-based: provide observation ID, session ID, or timestamp to center timeline around; (2) query-based: provide natural language query to find relevant observation and center timeline around it. All record types (observations, sessions, prompts) are interleaved chronologically.', + inputSchema: z.object({ + anchor: z.union([ + z.number(), + z.string() + ]).optional().describe('Anchor point: observation ID (number), session ID (e.g., "S123"), or ISO timestamp. Use this OR query, not both.'), + query: z.string().optional().describe('Natural language search query to find relevant observation as anchor. Use this OR anchor, not both.'), + depth_before: z.number().min(0).max(50).default(10).describe('Number of records to retrieve before anchor (default: 10)'), + depth_after: z.number().min(0).max(50).default(10).describe('Number of records to retrieve after anchor (default: 10)'), + project: z.string().optional().describe('Filter by project name') + }), + handler: async (args: any) => { + try { + const { anchor, query, depth_before = 10, depth_after = 10, project } = args; + + // Validate: must provide either anchor or query, not both + if (!anchor && !query) { + return { + content: [{ + type: 'text' as const, + text: 'Error: Must provide either "anchor" or "query" parameter' + }], + isError: true + }; + } + + if (anchor && query) { + return { + content: [{ + type: 'text' as const, + text: 'Error: Cannot provide both "anchor" and "query" parameters. Use one or the other.' + }], + isError: true + }; + } + + let anchorId: string | number; + let anchorEpoch: number; + let timeline: any; + + // MODE 1: Query-based timeline + if (query) { + // Step 1: Search for observations + let results: ObservationSearchResult[] = []; + + if (chromaClient) { + try { + console.error('[search-server] Using hybrid semantic search for timeline query'); + const chromaResults = await queryChroma(query, 100); + console.error(`[search-server] Chroma returned ${chromaResults.ids.length} semantic matches`); + + if (chromaResults.ids.length > 0) { + const ninetyDaysAgo = Date.now() - (90 * 24 * 60 * 60 * 1000); + const recentIds = chromaResults.ids.filter((_id, idx) => { + const meta = chromaResults.metadatas[idx]; + return meta && meta.created_at_epoch > ninetyDaysAgo; + }); + + if (recentIds.length > 0) { + results = store.getObservationsByIds(recentIds, { orderBy: 'date_desc', limit: 1 }); + } + } + } catch (chromaError: any) { + console.error('[search-server] Chroma query failed - no results (FTS5 fallback removed):', chromaError.message); + } + } + + if (results.length === 0) { + return { + content: [{ + type: 'text' as const, + text: `No observations found matching "${query}". Try a different search query.` + }] + }; + } + + // Use top result as anchor + const topResult = results[0]; + anchorId = topResult.id; + anchorEpoch = topResult.created_at_epoch; + console.error(`[search-server] Query mode: Using observation #${topResult.id} as timeline anchor`); + timeline = store.getTimelineAroundObservation(topResult.id, topResult.created_at_epoch, depth_before, depth_after, project); + } + // MODE 2: Anchor-based timeline + else if (typeof anchor === 'number') { + // Observation ID + const obs = store.getObservationById(anchor); + if (!obs) { + return { + content: [{ + type: 'text' as const, + text: `Observation #${anchor} not found` + }], + isError: true + }; + } + anchorId = anchor; + anchorEpoch = obs.created_at_epoch; + timeline = store.getTimelineAroundObservation(anchor, anchorEpoch, depth_before, depth_after, project); + } else if (typeof anchor === 'string') { + // Session ID or ISO timestamp + if (anchor.startsWith('S') || anchor.startsWith('#S')) { + const sessionId = anchor.replace(/^#?S/, ''); + const sessionNum = parseInt(sessionId, 10); + const sessions = store.getSessionSummariesByIds([sessionNum]); + if (sessions.length === 0) { + return { + content: [{ + type: 'text' as const, + text: `Session #${sessionNum} not found` + }], + isError: true + }; + } + anchorEpoch = sessions[0].created_at_epoch; + anchorId = `S${sessionNum}`; + timeline = store.getTimelineAroundTimestamp(anchorEpoch, depth_before, depth_after, project); + } else { + // ISO timestamp + const date = new Date(anchor); + if (isNaN(date.getTime())) { + return { + content: [{ + type: 'text' as const, + text: `Invalid timestamp: ${anchor}` + }], + isError: true + }; + } + anchorEpoch = date.getTime(); + anchorId = anchor; + timeline = store.getTimelineAroundTimestamp(anchorEpoch, depth_before, depth_after, project); + } + } else { + return { + content: [{ + type: 'text' as const, + text: 'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp' + }], + isError: true + }; + } + + // Combine and sort all items chronologically + interface TimelineItem { + type: 'observation' | 'session' | 'prompt'; + data: any; + epoch: number; + } + + const items: TimelineItem[] = [ + ...timeline.observations.map((obs: any) => ({ type: 'observation' as const, data: obs, epoch: obs.created_at_epoch })), + ...timeline.sessions.map((sess: any) => ({ type: 'session' as const, data: sess, epoch: sess.created_at_epoch })), + ...timeline.prompts.map((prompt: any) => ({ type: 'prompt' as const, data: prompt, epoch: prompt.created_at_epoch })) + ]; + + items.sort((a, b) => a.epoch - b.epoch); + + if (items.length === 0) { + return { + content: [{ + type: 'text' as const, + text: query + ? `Found observation matching "${query}", but no timeline context available (${depth_before} records before, ${depth_after} records after).` + : `No context found around anchor (${depth_before} records before, ${depth_after} records after)` + }] + }; + } + + // Format timeline (helper functions) + function formatDate(epochMs: number): string { + const date = new Date(epochMs); + return date.toLocaleString('en-US', { + month: 'short', + day: 'numeric', + year: 'numeric' + }); + } + + function formatTime(epochMs: number): string { + const date = new Date(epochMs); + return date.toLocaleString('en-US', { + hour: 'numeric', + minute: '2-digit', + hour12: true + }); + } + + function formatDateTime(epochMs: number): string { + const date = new Date(epochMs); + return date.toLocaleString('en-US', { + month: 'short', + day: 'numeric', + hour: 'numeric', + minute: '2-digit', + hour12: true + }); + } + + function estimateTokens(text: string | null): number { + if (!text) return 0; + return Math.ceil(text.length / 4); + } + + // Format results + const lines: string[] = []; + + // Header + if (query) { + const anchorObs = items.find(item => item.type === 'observation' && item.data.id === anchorId); + const anchorTitle = anchorObs ? (anchorObs.data.title || 'Untitled') : 'Unknown'; + lines.push(`# Timeline for query: "${query}"`); + lines.push(`**Anchor:** Observation #${anchorId} - ${anchorTitle}`); + } else { + lines.push(`# Timeline around anchor: ${anchorId}`); + } + + lines.push(`**Window:** ${depth_before} records before → ${depth_after} records after | **Items:** ${items.length} (${timeline.observations.length} obs, ${timeline.sessions.length} sessions, ${timeline.prompts.length} prompts)`); + lines.push(''); + + // Legend + lines.push(`**Legend:** 🎯 session-request | 🔴 bugfix | 🟣 feature | 🔄 refactor | ✅ change | 🔵 discovery | 🧠 decision`); + lines.push(''); + + // Group by day + const dayMap = new Map(); + for (const item of items) { + const day = formatDate(item.epoch); + if (!dayMap.has(day)) { + dayMap.set(day, []); + } + dayMap.get(day)!.push(item); + } + + // Sort days chronologically + const sortedDays = Array.from(dayMap.entries()).sort((a, b) => { + const aDate = new Date(a[0]).getTime(); + const bDate = new Date(b[0]).getTime(); + return aDate - bDate; + }); + + // Render each day + for (const [day, dayItems] of sortedDays) { + lines.push(`### ${day}`); + lines.push(''); + + let currentFile: string | null = null; + let lastTime = ''; + let tableOpen = false; + + for (const item of dayItems) { + const isAnchor = ( + (typeof anchorId === 'number' && item.type === 'observation' && item.data.id === anchorId) || + (typeof anchorId === 'string' && anchorId.startsWith('S') && item.type === 'session' && `S${item.data.id}` === anchorId) + ); + + if (item.type === 'session') { + if (tableOpen) { + lines.push(''); + tableOpen = false; + currentFile = null; + lastTime = ''; + } + + const sess = item.data; + const title = sess.request || 'Session summary'; + const link = `claude-mem://session-summary/${sess.id}`; + const marker = isAnchor ? ' ← **ANCHOR**' : ''; + + lines.push(`**🎯 #S${sess.id}** ${title} (${formatDateTime(item.epoch)}) [→](${link})${marker}`); + lines.push(''); + } else if (item.type === 'prompt') { + if (tableOpen) { + lines.push(''); + tableOpen = false; + currentFile = null; + lastTime = ''; + } + + const prompt = item.data; + const truncated = prompt.prompt.length > 100 ? prompt.prompt.substring(0, 100) + '...' : prompt.prompt; + + lines.push(`**💬 User Prompt #${prompt.prompt_number}** (${formatDateTime(item.epoch)})`); + lines.push(`> ${truncated}`); + lines.push(''); + } else if (item.type === 'observation') { + const obs = item.data; + const file = 'General'; + + if (file !== currentFile) { + if (tableOpen) { + lines.push(''); + } + + lines.push(`**${file}**`); + lines.push(`| ID | Time | T | Title | Tokens |`); + lines.push(`|----|------|---|-------|--------|`); + + currentFile = file; + tableOpen = true; + lastTime = ''; + } + + let icon = '•'; + switch (obs.type) { + case 'bugfix': icon = '🔴'; break; + case 'feature': icon = '🟣'; break; + case 'refactor': icon = '🔄'; break; + case 'change': icon = '✅'; break; + case 'discovery': icon = '🔵'; break; + case 'decision': icon = '🧠'; break; + } + + const time = formatTime(item.epoch); + const title = obs.title || 'Untitled'; + const tokens = estimateTokens(obs.narrative); + + const showTime = time !== lastTime; + const timeDisplay = showTime ? time : '″'; + lastTime = time; + + const anchorMarker = isAnchor ? ' ← **ANCHOR**' : ''; + lines.push(`| #${obs.id} | ${timeDisplay} | ${icon} | ${title}${anchorMarker} | ~${tokens} |`); + } + } + + if (tableOpen) { + lines.push(''); + } + } + + return { + content: [{ + type: 'text' as const, + text: lines.join('\n') + }] + }; + } catch (error: any) { + return { + content: [{ + type: 'text' as const, + text: `Timeline query failed: ${error.message}` + }], + isError: true + }; + } + } + }, + { + name: 'decisions', + description: 'Semantic shortcut to find decision-type observations. Returns observations where important architectural, technical, or process decisions were made. Equivalent to find_by_type with type="decision".', + inputSchema: z.object({ + format: z.enum(['index', 'full']).default('index').describe('Output format: "index" for titles/dates only (default), "full" for complete details'), + project: z.string().optional().describe('Filter by project name'), + dateRange: z.object({ + start: z.union([z.string(), z.number()]).optional(), + end: z.union([z.string(), z.number()]).optional() + }).optional().describe('Filter by date range'), + limit: z.number().min(1).max(100).default(20).describe('Maximum number of results'), + offset: z.number().min(0).default(0).describe('Number of results to skip'), + orderBy: z.enum(['relevance', 'date_desc', 'date_asc']).default('date_desc').describe('Sort order') + }), + handler: async (args: any) => { + try { + const { format = 'index', ...filters } = args; + let results: ObservationSearchResult[] = []; + + // Search for decision-type observations + if (chromaClient) { + try { + console.error('[search-server] Using metadata-first + semantic ranking for decisions'); + const metadataResults = search.findByType('decision', filters); + + if (metadataResults.length > 0) { + const ids = metadataResults.map(obs => obs.id); + const chromaResults = await queryChroma('decision', Math.min(ids.length, 100)); + + const rankedIds: number[] = []; + for (const chromaId of chromaResults.ids) { + if (ids.includes(chromaId) && !rankedIds.includes(chromaId)) { + rankedIds.push(chromaId); + } + } + + if (rankedIds.length > 0) { + results = store.getObservationsByIds(rankedIds, { limit: filters.limit || 20 }); + results.sort((a, b) => rankedIds.indexOf(a.id) - rankedIds.indexOf(b.id)); + } + } + } catch (chromaError: any) { + console.error('[search-server] Chroma ranking failed, using SQLite order:', chromaError.message); + } + } + + if (results.length === 0) { + results = search.findByType('decision', filters); + } + + if (results.length === 0) { + return { + content: [{ + type: 'text' as const, + text: 'No decision observations found' + }] + }; + } + + let combinedText: string; + if (format === 'index') { + const header = `Found ${results.length} decision(s):\n\n`; + const formattedResults = results.map((obs, i) => formatObservationIndex(obs, i)); + combinedText = header + formattedResults.join('\n\n'); + } else { + const formattedResults = results.map((obs) => formatObservationResult(obs)); + combinedText = formattedResults.join('\n\n---\n\n'); + } + + return { + content: [{ + type: 'text' as const, + text: combinedText + }] + }; + } catch (error: any) { + return { + content: [{ + type: 'text' as const, + text: `Search failed: ${error.message}` + }], + isError: true + }; + } + } + }, + { + name: 'changes', + description: 'Semantic shortcut to find change-related observations. Returns observations documenting what changed in the codebase, system behavior, or project state. Searches for type="change" OR concept="change" OR concept="what-changed".', + inputSchema: z.object({ + format: z.enum(['index', 'full']).default('index').describe('Output format: "index" for titles/dates only (default), "full" for complete details'), + project: z.string().optional().describe('Filter by project name'), + dateRange: z.object({ + start: z.union([z.string(), z.number()]).optional(), + end: z.union([z.string(), z.number()]).optional() + }).optional().describe('Filter by date range'), + limit: z.number().min(1).max(100).default(20).describe('Maximum number of results'), + offset: z.number().min(0).default(0).describe('Number of results to skip'), + orderBy: z.enum(['relevance', 'date_desc', 'date_asc']).default('date_desc').describe('Sort order') + }), + handler: async (args: any) => { + try { + const { format = 'index', ...filters } = args; + let results: ObservationSearchResult[] = []; + + // Search for change-type observations and change-related concepts + if (chromaClient) { + try { + console.error('[search-server] Using hybrid search for change-related observations'); + + // Get all observations with type="change" or concepts containing change + const typeResults = search.findByType('change', filters); + const conceptChangeResults = search.findByConcept('change', filters); + const conceptWhatChangedResults = search.findByConcept('what-changed', filters); + + // Combine and deduplicate + const allIds = new Set(); + [...typeResults, ...conceptChangeResults, ...conceptWhatChangedResults].forEach(obs => allIds.add(obs.id)); + + if (allIds.size > 0) { + const idsArray = Array.from(allIds); + const chromaResults = await queryChroma('what changed', Math.min(idsArray.length, 100)); + + const rankedIds: number[] = []; + for (const chromaId of chromaResults.ids) { + if (idsArray.includes(chromaId) && !rankedIds.includes(chromaId)) { + rankedIds.push(chromaId); + } + } + + if (rankedIds.length > 0) { + results = store.getObservationsByIds(rankedIds, { limit: filters.limit || 20 }); + results.sort((a, b) => rankedIds.indexOf(a.id) - rankedIds.indexOf(b.id)); + } + } + } catch (chromaError: any) { + console.error('[search-server] Chroma ranking failed, using SQLite order:', chromaError.message); + } + } + + if (results.length === 0) { + const typeResults = search.findByType('change', filters); + const conceptResults = search.findByConcept('change', filters); + const whatChangedResults = search.findByConcept('what-changed', filters); + + const allIds = new Set(); + [...typeResults, ...conceptResults, ...whatChangedResults].forEach(obs => allIds.add(obs.id)); + + results = Array.from(allIds).map(id => + typeResults.find(obs => obs.id === id) || + conceptResults.find(obs => obs.id === id) || + whatChangedResults.find(obs => obs.id === id) + ).filter(Boolean) as ObservationSearchResult[]; + + results.sort((a, b) => b.created_at_epoch - a.created_at_epoch); + results = results.slice(0, filters.limit || 20); + } + + if (results.length === 0) { + return { + content: [{ + type: 'text' as const, + text: 'No change-related observations found' + }] + }; + } + + let combinedText: string; + if (format === 'index') { + const header = `Found ${results.length} change-related observation(s):\n\n`; + const formattedResults = results.map((obs, i) => formatObservationIndex(obs, i)); + combinedText = header + formattedResults.join('\n\n'); + } else { + const formattedResults = results.map((obs) => formatObservationResult(obs)); + combinedText = formattedResults.join('\n\n---\n\n'); + } + + return { + content: [{ + type: 'text' as const, + text: combinedText + }] + }; + } catch (error: any) { + return { + content: [{ + type: 'text' as const, + text: `Search failed: ${error.message}` + }], + isError: true + }; + } + } + }, + { + name: 'how_it_works', + description: 'Semantic shortcut to find "how it works" explanations. Returns observations documenting system architecture, component interactions, data flow, and technical mechanisms. Searches for concept="how-it-works".', + inputSchema: z.object({ + format: z.enum(['index', 'full']).default('index').describe('Output format: "index" for titles/dates only (default), "full" for complete details'), + project: z.string().optional().describe('Filter by project name'), + dateRange: z.object({ + start: z.union([z.string(), z.number()]).optional(), + end: z.union([z.string(), z.number()]).optional() + }).optional().describe('Filter by date range'), + limit: z.number().min(1).max(100).default(20).describe('Maximum number of results'), + offset: z.number().min(0).default(0).describe('Number of results to skip'), + orderBy: z.enum(['relevance', 'date_desc', 'date_asc']).default('date_desc').describe('Sort order') + }), + handler: async (args: any) => { + try { + const { format = 'index', ...filters } = args; + let results: ObservationSearchResult[] = []; + + // Search for how-it-works concept observations + if (chromaClient) { + try { + console.error('[search-server] Using metadata-first + semantic ranking for how-it-works'); + const metadataResults = search.findByConcept('how-it-works', filters); + + if (metadataResults.length > 0) { + const ids = metadataResults.map(obs => obs.id); + const chromaResults = await queryChroma('how it works architecture', Math.min(ids.length, 100)); + + const rankedIds: number[] = []; + for (const chromaId of chromaResults.ids) { + if (ids.includes(chromaId) && !rankedIds.includes(chromaId)) { + rankedIds.push(chromaId); + } + } + + if (rankedIds.length > 0) { + results = store.getObservationsByIds(rankedIds, { limit: filters.limit || 20 }); + results.sort((a, b) => rankedIds.indexOf(a.id) - rankedIds.indexOf(b.id)); + } + } + } catch (chromaError: any) { + console.error('[search-server] Chroma ranking failed, using SQLite order:', chromaError.message); + } + } + + if (results.length === 0) { + results = search.findByConcept('how-it-works', filters); + } + + if (results.length === 0) { + return { + content: [{ + type: 'text' as const, + text: 'No "how it works" observations found' + }] + }; + } + + let combinedText: string; + if (format === 'index') { + const header = `Found ${results.length} "how it works" observation(s):\n\n`; + const formattedResults = results.map((obs, i) => formatObservationIndex(obs, i)); + combinedText = header + formattedResults.join('\n\n'); + } else { + const formattedResults = results.map((obs) => formatObservationResult(obs)); + combinedText = formattedResults.join('\n\n---\n\n'); + } + + return { + content: [{ + type: 'text' as const, + text: combinedText + }] + }; + } catch (error: any) { + return { + content: [{ + type: 'text' as const, + text: `Search failed: ${error.message}` + }], + isError: true + }; + } + } + }, + { + name: 'search_observations', + description: 'DEPRECATED: Use the unified "search" tool instead. Search observations using vector-first semantic search (ChromaDB). IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.', + inputSchema: z.object({ + query: z.string().describe('Natural language search query for semantic ranking via ChromaDB vector search'), format: z.enum(['index', 'full']).default('index').describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'), ...filterSchema.shape }), @@ -357,7 +1221,7 @@ const tools = [ const { query, format = 'index', ...options } = args; let results: ObservationSearchResult[] = []; - // Hybrid search: Try Chroma semantic search first, fall back to FTS5 + // Vector-first search via ChromaDB if (chromaClient) { try { console.error('[search-server] Using hybrid semantic search (Chroma + SQLite)'); @@ -384,17 +1248,10 @@ const tools = [ } } } catch (chromaError: any) { - console.error('[search-server] Chroma query failed, falling back to FTS5:', chromaError.message); - // Fall through to FTS5 fallback + console.error('[search-server] Chroma query failed - no results (FTS5 fallback removed):', chromaError.message); } } - // Fall back to FTS5 if Chroma unavailable or returned no results - if (results.length === 0) { - console.error('[search-server] Using FTS5 keyword search'); - results = search.searchObservations(query, options); - } - if (results.length === 0) { return { content: [{ @@ -434,9 +1291,9 @@ const tools = [ }, { name: 'search_sessions', - description: 'Search session summaries using hybrid semantic + full-text search (ChromaDB primary, SQLite FTS5 fallback). IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.', + description: 'DEPRECATED: Use the unified "search" tool instead. Search session summaries using vector-first semantic search (ChromaDB). IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.', inputSchema: z.object({ - query: z.string().describe('Natural language search query (semantic ranking via ChromaDB, FTS5 fallback)'), + query: z.string().describe('Natural language search query for semantic ranking via ChromaDB vector search'), format: z.enum(['index', 'full']).default('index').describe('Output format: "index" for titles/dates only (default, RECOMMENDED for initial search), "full" for complete details (use only after reviewing index results)'), project: z.string().optional().describe('Filter by project name'), dateRange: z.object({ @@ -452,7 +1309,7 @@ const tools = [ const { query, format = 'index', ...options } = args; let results: SessionSummarySearchResult[] = []; - // Hybrid search: Try Chroma semantic search first, fall back to FTS5 + // Vector-first search via ChromaDB if (chromaClient) { try { console.error('[search-server] Using hybrid semantic search for sessions'); @@ -479,16 +1336,10 @@ const tools = [ } } } catch (chromaError: any) { - console.error('[search-server] Chroma query failed, falling back to FTS5:', chromaError.message); + console.error('[search-server] Chroma query failed - no results (FTS5 fallback removed):', chromaError.message); } } - // Fall back to FTS5 if Chroma unavailable or returned no results - if (results.length === 0) { - console.error('[search-server] Using FTS5 keyword search'); - results = search.searchSessions(query, options); - } - if (results.length === 0) { return { content: [{ @@ -1000,9 +1851,9 @@ const tools = [ }, { name: 'search_user_prompts', - description: 'Search raw user prompts using hybrid semantic + full-text search (ChromaDB primary, SQLite FTS5 fallback). Use this to find what the user actually said/requested across all sessions. IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.', + description: 'DEPRECATED: Use the unified "search" tool instead. Search raw user prompts using vector-first semantic search (ChromaDB). Use this to find what the user actually said/requested across all sessions. IMPORTANT: Always use index format first (default) to get an overview with minimal token usage, then use format: "full" only for specific items of interest.', inputSchema: z.object({ - query: z.string().describe('Natural language search query (semantic ranking via ChromaDB, FTS5 fallback)'), + query: z.string().describe('Natural language search query for semantic ranking via ChromaDB vector search'), format: z.enum(['index', 'full']).default('index').describe('Output format: "index" for truncated prompts/dates (default, RECOMMENDED for initial search), "full" for complete prompt text (use only after reviewing index results)'), project: z.string().optional().describe('Filter by project name'), dateRange: z.object({ @@ -1018,7 +1869,7 @@ const tools = [ const { query, format = 'index', ...options } = args; let results: UserPromptSearchResult[] = []; - // Hybrid search: Try Chroma semantic search first, fall back to FTS5 + // Vector-first search via ChromaDB if (chromaClient) { try { console.error('[search-server] Using hybrid semantic search for user prompts'); @@ -1045,16 +1896,10 @@ const tools = [ } } } catch (chromaError: any) { - console.error('[search-server] Chroma query failed, falling back to FTS5:', chromaError.message); + console.error('[search-server] Chroma query failed - no results (FTS5 fallback removed):', chromaError.message); } } - // Fall back to FTS5 if Chroma unavailable or returned no results - if (results.length === 0) { - console.error('[search-server] Using FTS5 keyword search'); - results = search.searchUserPrompts(query, options); - } - if (results.length === 0) { return { content: [{ @@ -1416,20 +2261,10 @@ const tools = [ } } } catch (chromaError: any) { - console.error('[search-server] Chroma query failed, falling back to FTS5:', chromaError.message); + console.error('[search-server] Chroma query failed - no results (FTS5 fallback removed):', chromaError.message); } } - // Fall back to FTS5 - if (results.length === 0) { - console.error('[search-server] Using FTS5 keyword search'); - results = search.searchObservations(query, { - orderBy: 'relevance', - limit: mode === 'auto' ? 1 : limit, - project - }); - } - if (results.length === 0) { return { content: [{ @@ -1810,7 +2645,8 @@ async function main() { console.error('[search-server] Chroma client connected successfully'); } catch (error: any) { console.error('[search-server] Failed to initialize Chroma client:', error.message); - console.error('[search-server] Falling back to FTS5-only search'); + console.error('[search-server] Vector search unavailable - text queries will return empty results (FTS5 fallback removed)'); + console.error('[search-server] Install UVX/Python to enable vector search: https://docs.astral.sh/uv/getting-started/installation/'); chromaClient = null; } }, 0); diff --git a/src/services/sqlite/SessionSearch.ts b/src/services/sqlite/SessionSearch.ts index 0a3df4fa..1fd86bd9 100644 --- a/src/services/sqlite/SessionSearch.ts +++ b/src/services/sqlite/SessionSearch.ts @@ -13,7 +13,8 @@ import { /** * Search interface for session-based memory - * Provides FTS5 full-text search and structured queries for sessions, observations, and summaries + * Provides filter-only structured queries for sessions, observations, and user prompts + * Vector search is handled by ChromaDB - this class only supports filtering without query text */ export class SessionSearch { private db: Database.Database; @@ -31,7 +32,18 @@ export class SessionSearch { } /** - * Ensure FTS5 tables exist (inline migration) + * Ensure FTS5 tables exist (backward compatibility only - no longer used for search) + * + * FTS5 tables are maintained for backward compatibility but not used for search. + * Vector search (Chroma) is now the primary search mechanism. + * + * Retention Rationale: + * - Prevents breaking existing installations with FTS5 tables + * - Allows graceful migration path for users + * - Tables maintained but search paths removed + * - Triggers still fire to keep tables synchronized + * + * TODO: Remove FTS5 infrastructure in future major version (v7.0.0) */ private ensureFTSTables(): void { try { @@ -134,22 +146,6 @@ export class SessionSearch { } } - /** - * Escape FTS5 special characters in user input - * - * FTS5 uses double quotes for phrase searches and treats certain characters - * as operators (*, AND, OR, NOT, parentheses, etc.). To prevent injection, - * we wrap user input in double quotes and escape internal quotes by doubling them. - * This converts any user input into a safe phrase search. - * - * @param text - User input to escape for FTS5 MATCH queries - * @returns Safely escaped FTS5 query string - */ - private escapeFTS5(text: string): string { - // Escape internal double quotes by doubling them (FTS5 standard) - // Then wrap the entire string in double quotes for phrase search - return `"${text.replace(/"/g, '""')}"`; - } /** * Build WHERE clause for structured filters @@ -243,118 +239,78 @@ export class SessionSearch { } /** - * Search observations using FTS5 full-text search + * Search observations using filter-only direct SQLite query. + * Vector search is handled by ChromaDB - this only supports filtering without query text. */ - searchObservations(query: string, options: SearchOptions = {}): ObservationSearchResult[] { + searchObservations(query: string | undefined, options: SearchOptions = {}): ObservationSearchResult[] { const params: any[] = []; const { limit = 50, offset = 0, orderBy = 'relevance', ...filters } = options; - // Build FTS5 match query - const ftsQuery = this.escapeFTS5(query); - params.push(ftsQuery); + // FILTER-ONLY PATH: When no query text, query table directly + // This enables date filtering which Chroma cannot do (requires direct SQLite access) + if (!query) { + const filterClause = this.buildFilterClause(filters, params, 'o'); + if (!filterClause) { + throw new Error('Either query or filters required for search'); + } - // Build filter conditions - const filterClause = this.buildFilterClause(filters, params, 'o'); - const whereClause = filterClause ? `AND ${filterClause}` : ''; + const orderClause = this.buildOrderClause(orderBy, false); - // Build ORDER BY - const orderClause = this.buildOrderClause(orderBy, true); + const sql = ` + SELECT o.*, o.discovery_tokens + FROM observations o + WHERE ${filterClause} + ${orderClause} + LIMIT ? OFFSET ? + `; - // Main query with FTS5 - const sql = ` - SELECT - o.*, - o.discovery_tokens, - observations_fts.rank as rank - FROM observations o - JOIN observations_fts ON o.id = observations_fts.rowid - WHERE observations_fts MATCH ? - ${whereClause} - ${orderClause} - LIMIT ? OFFSET ? - `; - - params.push(limit, offset); - - const results = this.db.prepare(sql).all(...params) as ObservationSearchResult[]; - - // Normalize rank to score (0-1, higher is better) - if (results.length > 0) { - const minRank = Math.min(...results.map(r => r.rank || 0)); - const maxRank = Math.max(...results.map(r => r.rank || 0)); - const range = maxRank - minRank || 1; - - results.forEach(r => { - if (r.rank !== undefined) { - // Invert rank (lower rank = better match) and normalize to 0-1 - r.score = 1 - ((r.rank - minRank) / range); - } - }); + params.push(limit, offset); + return this.db.prepare(sql).all(...params) as ObservationSearchResult[]; } - return results; + // Vector search with query text should be handled by ChromaDB + // This method only supports filter-only queries (query=undefined) + console.warn('[SessionSearch] Text search not supported - use ChromaDB for vector search'); + return []; } /** - * Search session summaries using FTS5 full-text search + * Search session summaries using filter-only direct SQLite query. + * Vector search is handled by ChromaDB - this only supports filtering without query text. */ - searchSessions(query: string, options: SearchOptions = {}): SessionSummarySearchResult[] { + searchSessions(query: string | undefined, options: SearchOptions = {}): SessionSummarySearchResult[] { const params: any[] = []; const { limit = 50, offset = 0, orderBy = 'relevance', ...filters } = options; - // Build FTS5 match query - const ftsQuery = this.escapeFTS5(query); - params.push(ftsQuery); + // FILTER-ONLY PATH: When no query text, query session_summaries table directly + if (!query) { + const filterOptions = { ...filters }; + delete filterOptions.type; + const filterClause = this.buildFilterClause(filterOptions, params, 's'); + if (!filterClause) { + throw new Error('Either query or filters required for search'); + } - // Build filter conditions (without type filter - not applicable to summaries) - const filterOptions = { ...filters }; - delete filterOptions.type; - const filterClause = this.buildFilterClause(filterOptions, params, 's'); - const whereClause = filterClause ? `AND ${filterClause}` : ''; + const orderClause = orderBy === 'date_asc' + ? 'ORDER BY s.created_at_epoch ASC' + : 'ORDER BY s.created_at_epoch DESC'; - // Note: session_summaries don't have files_read/files_modified in the same way - // We'll need to adjust the filter clause - const adjustedWhereClause = whereClause.replace(/files_read/g, 'files_read').replace(/files_modified/g, 'files_edited'); + const sql = ` + SELECT s.*, s.discovery_tokens + FROM session_summaries s + WHERE ${filterClause} + ${orderClause} + LIMIT ? OFFSET ? + `; - // Build ORDER BY - const orderClause = orderBy === 'relevance' - ? 'ORDER BY session_summaries_fts.rank ASC' - : orderBy === 'date_asc' - ? 'ORDER BY s.created_at_epoch ASC' - : 'ORDER BY s.created_at_epoch DESC'; - - // Main query with FTS5 - const sql = ` - SELECT - s.*, - s.discovery_tokens, - session_summaries_fts.rank as rank - FROM session_summaries s - JOIN session_summaries_fts ON s.id = session_summaries_fts.rowid - WHERE session_summaries_fts MATCH ? - ${adjustedWhereClause} - ${orderClause} - LIMIT ? OFFSET ? - `; - - params.push(limit, offset); - - const results = this.db.prepare(sql).all(...params) as SessionSummarySearchResult[]; - - // Normalize rank to score - if (results.length > 0) { - const minRank = Math.min(...results.map(r => r.rank || 0)); - const maxRank = Math.max(...results.map(r => r.rank || 0)); - const range = maxRank - minRank || 1; - - results.forEach(r => { - if (r.rank !== undefined) { - r.score = 1 - ((r.rank - minRank) / range); - } - }); + params.push(limit, offset); + return this.db.prepare(sql).all(...params) as SessionSummarySearchResult[]; } - return results; + // Vector search with query text should be handled by ChromaDB + // This method only supports filter-only queries (query=undefined) + console.warn('[SessionSearch] Text search not supported - use ChromaDB for vector search'); + return []; } /** @@ -485,16 +441,13 @@ export class SessionSearch { } /** - * Search user prompts with full-text search + * Search user prompts using filter-only direct SQLite query. + * Vector search is handled by ChromaDB - this only supports filtering without query text. */ - searchUserPrompts(query: string, options: SearchOptions = {}): UserPromptSearchResult[] { + searchUserPrompts(query: string | undefined, options: SearchOptions = {}): UserPromptSearchResult[] { const params: any[] = []; const { limit = 20, offset = 0, orderBy = 'relevance', ...filters } = options; - // Build FTS5 match query - const ftsQuery = this.escapeFTS5(query); - params.push(ftsQuery); - // Build filter conditions (join with sdk_sessions for project filtering) const baseConditions: string[] = []; if (filters.project) { @@ -516,47 +469,34 @@ export class SessionSearch { } } - const whereClause = baseConditions.length > 0 ? `AND ${baseConditions.join(' AND ')}` : ''; + // FILTER-ONLY PATH: When no query text, query user_prompts table directly + if (!query) { + if (baseConditions.length === 0) { + throw new Error('Either query or filters required for search'); + } - // Build ORDER BY - const orderClause = orderBy === 'relevance' - ? 'ORDER BY user_prompts_fts.rank ASC' - : orderBy === 'date_asc' - ? 'ORDER BY up.created_at_epoch ASC' - : 'ORDER BY up.created_at_epoch DESC'; + const whereClause = `WHERE ${baseConditions.join(' AND ')}`; + const orderClause = orderBy === 'date_asc' + ? 'ORDER BY up.created_at_epoch ASC' + : 'ORDER BY up.created_at_epoch DESC'; - // Main query with FTS5 (join sdk_sessions for project filtering) - const sql = ` - SELECT - up.*, - user_prompts_fts.rank as rank - FROM user_prompts up - JOIN user_prompts_fts ON up.id = user_prompts_fts.rowid - JOIN sdk_sessions s ON up.claude_session_id = s.claude_session_id - WHERE user_prompts_fts MATCH ? - ${whereClause} - ${orderClause} - LIMIT ? OFFSET ? - `; + const sql = ` + SELECT up.* + FROM user_prompts up + JOIN sdk_sessions s ON up.claude_session_id = s.claude_session_id + ${whereClause} + ${orderClause} + LIMIT ? OFFSET ? + `; - params.push(limit, offset); - - const results = this.db.prepare(sql).all(...params) as UserPromptSearchResult[]; - - // Normalize rank to score - if (results.length > 0) { - const minRank = Math.min(...results.map(r => r.rank || 0)); - const maxRank = Math.max(...results.map(r => r.rank || 0)); - const range = maxRank - minRank || 1; - - results.forEach(r => { - if (r.rank !== undefined) { - r.score = 1 - ((r.rank - minRank) / range); - } - }); + params.push(limit, offset); + return this.db.prepare(sql).all(...params) as UserPromptSearchResult[]; } - return results; + // Vector search with query text should be handled by ChromaDB + // This method only supports filter-only queries (query=undefined) + console.warn('[SessionSearch] Text search not supported - use ChromaDB for vector search'); + return []; } /** diff --git a/src/services/worker-service.ts b/src/services/worker-service.ts index 755a4e37..f61bf6bf 100644 --- a/src/services/worker-service.ts +++ b/src/services/worker-service.ts @@ -155,6 +155,12 @@ export class WorkerService { this.app.get('/api/observations', this.handleGetObservations.bind(this)); this.app.get('/api/summaries', this.handleGetSummaries.bind(this)); this.app.get('/api/prompts', this.handleGetPrompts.bind(this)); + + // Fetch by ID + this.app.get('/api/observation/:id', this.handleGetObservationById.bind(this)); + this.app.get('/api/session/:id', this.handleGetSessionById.bind(this)); + this.app.get('/api/prompt/:id', this.handleGetPromptById.bind(this)); + this.app.get('/api/stats', this.handleGetStats.bind(this)); this.app.get('/api/processing-status', this.handleGetProcessingStatus.bind(this)); this.app.post('/api/processing', this.handleSetProcessing.bind(this)); @@ -168,6 +174,14 @@ export class WorkerService { this.app.post('/api/mcp/toggle', this.handleToggleMcp.bind(this)); // Search API endpoints (for skill-based search) + // Unified endpoints (new consolidated API) + this.app.get('/api/search', this.handleUnifiedSearch.bind(this)); + this.app.get('/api/timeline', this.handleUnifiedTimeline.bind(this)); + this.app.get('/api/decisions', this.handleDecisions.bind(this)); + this.app.get('/api/changes', this.handleChanges.bind(this)); + this.app.get('/api/how-it-works', this.handleHowItWorks.bind(this)); + + // Backward compatibility endpoints (use /api/search with type param instead) this.app.get('/api/search/observations', this.handleSearchObservations.bind(this)); this.app.get('/api/search/sessions', this.handleSearchSessions.bind(this)); this.app.get('/api/search/prompts', this.handleSearchPrompts.bind(this)); @@ -223,7 +237,7 @@ export class WorkerService { await this.dbManager.initialize(); // Connect to MCP search server - const searchServerPath = path.join(__dirname, '..', '..', 'plugin', 'scripts', 'search-server.mjs'); + const searchServerPath = path.join(__dirname, '..', '..', 'plugin', 'scripts', 'search-server.cjs'); const transport = new StdioClientTransport({ command: 'node', args: [searchServerPath], @@ -659,6 +673,87 @@ export class WorkerService { } } + /** + * Get observation by ID + * GET /api/observation/:id + */ + private handleGetObservationById(req: Request, res: Response): void { + try { + const id = parseInt(req.params.id, 10); + if (isNaN(id)) { + res.status(400).json({ error: 'Invalid observation ID' }); + return; + } + + const store = this.dbManager.getSessionStore(); + const observation = store.getObservationById(id); + + if (!observation) { + res.status(404).json({ error: `Observation #${id} not found` }); + return; + } + + res.json(observation); + } catch (error) { + logger.failure('WORKER', 'Get observation by ID failed', {}, error as Error); + res.status(500).json({ error: (error as Error).message }); + } + } + + /** + * Get session by ID + * GET /api/session/:id + */ + private handleGetSessionById(req: Request, res: Response): void { + try { + const id = parseInt(req.params.id, 10); + if (isNaN(id)) { + res.status(400).json({ error: 'Invalid session ID' }); + return; + } + + const store = this.dbManager.getSessionStore(); + const sessions = store.getSessionSummariesByIds([id]); + + if (sessions.length === 0) { + res.status(404).json({ error: `Session #${id} not found` }); + return; + } + + res.json(sessions[0]); + } catch (error) { + logger.failure('WORKER', 'Get session by ID failed', {}, error as Error); + res.status(500).json({ error: (error as Error).message }); + } + } + + /** + * Get user prompt by ID + * GET /api/prompt/:id + */ + private handleGetPromptById(req: Request, res: Response): void { + try { + const id = parseInt(req.params.id, 10); + if (isNaN(id)) { + res.status(400).json({ error: 'Invalid prompt ID' }); + return; + } + + const store = this.dbManager.getSessionStore(); + const prompts = store.getUserPromptsByIds([id]); + + if (prompts.length === 0) { + res.status(404).json({ error: `Prompt #${id} not found` }); + return; + } + + res.json(prompts[0]); + } catch (error) { + logger.failure('WORKER', 'Get prompt by ID failed', {}, error as Error); + res.status(500).json({ error: (error as Error).message }); + } + } + /** * Get database statistics (with worker metadata) */ @@ -944,8 +1039,102 @@ export class WorkerService { // Search API Handlers (for skill-based search) // ============================================================================ + // ============================================================================ + // Unified Search API Handlers (New Consolidated API) + // ============================================================================ + /** - * Search observations + * Unified search across all memory types (observations, sessions, prompts) + * GET /api/search?query=...&format=index&limit=20 + */ + private async handleUnifiedSearch(req: Request, res: Response): Promise { + try { + const result = await this.mcpClient.callTool({ + name: 'search', + arguments: req.query + }); + res.json(result.content); + } catch (error) { + logger.failure('WORKER', 'Unified search failed', {}, error as Error); + res.status(500).json({ error: (error as Error).message }); + } + } + + /** + * Unified timeline (anchor or query-based) + * GET /api/timeline?anchor=123 OR GET /api/timeline?query=... + */ + private async handleUnifiedTimeline(req: Request, res: Response): Promise { + try { + const result = await this.mcpClient.callTool({ + name: 'timeline', + arguments: req.query + }); + res.json(result.content); + } catch (error) { + logger.failure('WORKER', 'Unified timeline failed', {}, error as Error); + res.status(500).json({ error: (error as Error).message }); + } + } + + /** + * Semantic shortcut for finding decision observations + * GET /api/decisions?format=index&limit=20 + */ + private async handleDecisions(req: Request, res: Response): Promise { + try { + const result = await this.mcpClient.callTool({ + name: 'decisions', + arguments: req.query + }); + res.json(result.content); + } catch (error) { + logger.failure('WORKER', 'Decisions search failed', {}, error as Error); + res.status(500).json({ error: (error as Error).message }); + } + } + + /** + * Semantic shortcut for finding change-related observations + * GET /api/changes?format=index&limit=20 + */ + private async handleChanges(req: Request, res: Response): Promise { + try { + const result = await this.mcpClient.callTool({ + name: 'changes', + arguments: req.query + }); + res.json(result.content); + } catch (error) { + logger.failure('WORKER', 'Changes search failed', {}, error as Error); + res.status(500).json({ error: (error as Error).message }); + } + } + + /** + * Semantic shortcut for finding "how it works" explanations + * GET /api/how-it-works?format=index&limit=20 + */ + private async handleHowItWorks(req: Request, res: Response): Promise { + try { + const result = await this.mcpClient.callTool({ + name: 'how_it_works', + arguments: req.query + }); + res.json(result.content); + } catch (error) { + logger.failure('WORKER', 'How it works search failed', {}, error as Error); + res.status(500).json({ error: (error as Error).message }); + } + } + + // ============================================================================ + // Backward Compatibility API Handlers + // All functionality available via /api/search with type/obs_type/concepts/files params + // ============================================================================ + + /** + * Search observations (use /api/search?type=observations instead) * GET /api/search/observations?query=...&format=index&limit=20&project=... */ private async handleSearchObservations(req: Request, res: Response): Promise { diff --git a/test-results/run-search-tests.sh b/test-results/run-search-tests.sh new file mode 100755 index 00000000..e1601fcd --- /dev/null +++ b/test-results/run-search-tests.sh @@ -0,0 +1,86 @@ +#!/bin/bash + +# Comprehensive Search API Test Suite +# Tests all endpoints and parameter combinations + +API_URL="http://localhost:37777" +RESULTS_DIR="test-results" + +echo "🔍 Starting comprehensive search API tests..." +echo "" + +# SEMANTIC QUERIES - Understanding how things work +echo "📚 Running semantic queries..." +curl -s "$API_URL/api/search?type=observations&query=worker%20service%20startup&format=full&limit=5&orderBy=relevance" > "$RESULTS_DIR/test-01-worker-service-startup.json" +curl -s "$API_URL/api/search?type=observations&query=SQLite%20FTS5%20implementation&format=full&limit=5&orderBy=relevance" > "$RESULTS_DIR/test-02-sqlite-fts5-implementation.json" +curl -s "$API_URL/api/search?type=observations&query=hook%20lifecycle%20flow&format=full&limit=5&orderBy=relevance" > "$RESULTS_DIR/test-03-hook-lifecycle-flow.json" +curl -s "$API_URL/api/search?type=observations&query=build%20pipeline%20process&format=full&limit=5&orderBy=relevance" > "$RESULTS_DIR/test-04-build-pipeline-process.json" +echo "✅ Semantic queries complete (4 tests)" + +# DECISION QUERIES - Architectural choices +echo "⚖️ Running decision queries..." +curl -s "$API_URL/api/search?type=observations&obs_type=decision&query=PM2%20instead%20of%20direct%20process&format=full&limit=5&orderBy=relevance" > "$RESULTS_DIR/test-05-pm2-decision.json" +curl -s "$API_URL/api/search?type=observations&obs_type=decision&query=search%20architecture%20guidelines&format=full&limit=5&orderBy=relevance" > "$RESULTS_DIR/test-06-search-architecture-decision.json" +curl -s "$API_URL/api/search?type=observations&obs_type=decision&query=MCP%20as%20DRY%20source&format=full&limit=5&orderBy=relevance" > "$RESULTS_DIR/test-07-mcp-dry-decision.json" +echo "✅ Decision queries complete (3 tests)" + +# TROUBLESHOOTING QUERIES - Finding bugfixes +echo "🔴 Running troubleshooting queries..." +curl -s "$API_URL/api/search?type=observations&obs_type=bugfix&query=worker%20service%20debugging&format=full&limit=5&orderBy=relevance" > "$RESULTS_DIR/test-08-worker-debugging.json" +curl -s "$API_URL/api/search?type=observations&query=hook%20timeout%20problems&format=full&limit=5&orderBy=relevance" > "$RESULTS_DIR/test-09-hook-timeout.json" +curl -s "$API_URL/api/search?type=observations&query=database%20migration%20issues&format=full&limit=5&orderBy=relevance" > "$RESULTS_DIR/test-10-database-migration.json" +echo "✅ Troubleshooting queries complete (3 tests)" + +# FILE-SPECIFIC QUERIES - Tracking file changes +echo "📁 Running file-specific queries..." +curl -s "$API_URL/api/search?type=observations&files=search-server.ts&format=full&limit=5&orderBy=date_desc" > "$RESULTS_DIR/test-11-search-server-changes.json" +curl -s "$API_URL/api/search?type=observations&files=context-hook&format=full&limit=5&orderBy=date_desc" > "$RESULTS_DIR/test-12-context-hook-changes.json" +curl -s "$API_URL/api/search?type=observations&files=worker-service&format=full&limit=5&orderBy=date_desc" > "$RESULTS_DIR/test-13-worker-service-changes.json" +echo "✅ File-specific queries complete (3 tests)" + +# CONCEPT-BASED QUERIES - Patterns, gotchas, discoveries +echo "🏷️ Running concept-based queries..." +curl -s "$API_URL/api/search?type=observations&concepts=pattern&format=full&limit=5&orderBy=date_desc" > "$RESULTS_DIR/test-14-patterns.json" +curl -s "$API_URL/api/search?type=observations&concepts=gotcha&format=full&limit=5&orderBy=date_desc" > "$RESULTS_DIR/test-15-gotchas.json" +curl -s "$API_URL/api/search?type=observations&concepts=discovery&format=full&limit=5&orderBy=date_desc" > "$RESULTS_DIR/test-16-discoveries.json" +echo "✅ Concept-based queries complete (3 tests)" + +# TYPE-FILTERED QUERIES - Bugfixes, features, decisions +echo "🔖 Running type-filtered queries..." +curl -s "$API_URL/api/search?type=observations&obs_type=bugfix&format=full&limit=5&orderBy=date_desc" > "$RESULTS_DIR/test-17-all-bugfixes.json" +curl -s "$API_URL/api/search?type=observations&obs_type=feature&format=full&limit=5&orderBy=date_desc" > "$RESULTS_DIR/test-18-all-features.json" +curl -s "$API_URL/api/search?type=observations&obs_type=decision&format=full&limit=5&orderBy=date_desc" > "$RESULTS_DIR/test-19-all-decisions.json" +echo "✅ Type-filtered queries complete (3 tests)" + +# SESSION QUERIES - Testing session search +echo "📝 Running session queries..." +curl -s "$API_URL/api/search?type=sessions&query=search%20architecture&format=full&limit=5&orderBy=relevance" > "$RESULTS_DIR/test-20-session-search.json" +echo "✅ Session queries complete (1 test)" + +# USER PROMPT QUERIES - Testing prompt search +echo "💬 Running user prompt queries..." +curl -s "$API_URL/api/search?type=prompts&query=build%20and%20deploy&format=full&limit=5&orderBy=relevance" > "$RESULTS_DIR/test-21-prompt-search.json" +echo "✅ User prompt queries complete (1 test)" + +# DEDICATED ENDPOINTS - Timeline and semantic shortcuts +echo "🎯 Running dedicated endpoint tests..." +curl -s "$API_URL/api/decisions?format=full&limit=5" > "$RESULTS_DIR/test-22-decisions-endpoint.json" +curl -s "$API_URL/api/changes?format=full&limit=5" > "$RESULTS_DIR/test-23-changes-endpoint.json" +curl -s "$API_URL/api/how-it-works?format=full&limit=5" > "$RESULTS_DIR/test-24-how-it-works-endpoint.json" +curl -s "$API_URL/api/contextualize?format=full" > "$RESULTS_DIR/test-25-contextualize-endpoint.json" +echo "✅ Dedicated endpoint tests complete (4 tests)" + +# TIMELINE QUERY - Get context around a specific observation +echo "⏱️ Running timeline query..." +curl -s "$API_URL/api/timeline?anchor=10630&depth_before=3&depth_after=3&format=full" > "$RESULTS_DIR/test-26-timeline-around-observation.json" +echo "✅ Timeline query complete (1 test)" + +# MULTI-PARAMETER COMBO - Test complex query combinations +echo "🎛️ Running multi-parameter combination tests..." +curl -s "$API_URL/api/search?type=observations&obs_type=decision&concepts=pattern&query=search&format=full&limit=5&orderBy=relevance" > "$RESULTS_DIR/test-27-multi-param-combo.json" +curl -s "$API_URL/api/search?type=observations&files=search-server&obs_type=feature&format=full&limit=5&orderBy=date_desc" > "$RESULTS_DIR/test-28-file-type-combo.json" +echo "✅ Multi-parameter tests complete (2 tests)" + +echo "" +echo "✨ All tests complete! 28 total queries executed." +echo "📊 Results saved to $RESULTS_DIR/" diff --git a/test-results/test-01-worker-service-startup.json b/test-results/test-01-worker-service-startup.json new file mode 100644 index 00000000..2d13cdbb --- /dev/null +++ b/test-results/test-01-worker-service-startup.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Search Results Return Structured Observation Content with Rich Metadata\n*Source: claude-mem://observation/10695*\n\n**Worker service query returned six observations with complete narratives, facts, concepts, and source links**\n\nExamination of test-01-worker-service-startup.json reveals the structure and quality of search API responses. The worker service startup query successfully retrieved six relevant observations demonstrating that FTS5 keyword search provides meaningful results. Each observation includes comprehensive metadata: title, subtitle (one-line summary), full narrative text explaining the context, structured facts list with specific details, concept tags (what-changed, how-it-works, problem-solution, gotcha), associated file paths, creation dates, and observation type classification. Results are formatted with source links using the claude-mem://observation/ID format for easy reference. The retrieved observations span multiple aspects of worker service startup including port file handling migration to plugin data directory, getPackageRoot path resolution dependencies, comprehensive production failure analysis documenting 8 critical issues causing 100% failure rate, and ChromaSync initialization timing problems. The diversity of observation types and relevance to the search query demonstrates the search system's ability to provide rich, contextual results for SessionStart injection.\n\n---\nType: discovery | Facts: Search API returns observations with title, subtitle, full narrative, structured facts list, concept tags, file paths, creation dates, and observation type; Results tagged with source links using claude-mem://observation/ID format for reference; Worker service startup query retrieved six relevant observations spanning October 18 to November 17, 2025; Retrieved observations include diverse types (change, discovery, bugfix) covering port file handling, getPackageRoot issues, production failures, and ChromaSync initialization; Test result format stores array of observation objects with type and text fields containing formatted markdown content | Concepts: how-it-works, pattern | Files: test-results/test-05-pm2-decision.json, test-results/test-01-worker-service-startup.json\n\n---\nDate: 11/17/2025, 9:52:44 PM\n\n---\n\n## Test Results Return Full Observation Content with Metadata\n*Source: claude-mem://observation/10649*\n\n**Worker service startup query retrieved six relevant observations with complete details, context, and source links**\n\nThe first test result file revealed the structure and quality of search API responses. The worker service startup query successfully retrieved six relevant observations with comprehensive details. Each result includes the observation title, subtitle (one-line summary), full narrative text, structured facts list, concept tags (what-changed, how-it-works, problem-solution, gotcha), associated file paths, and creation dates. Results are tagged with source links using the claude-mem://observation/ID format. The retrieved observations span multiple aspects of worker service startup including port file handling migration, getPackageRoot path resolution issues, production failure analysis, and ChromaSync initialization timing. The diversity of observation types (change, discovery, bugfix) and the relevance to the search query demonstrate that FTS5 keyword search is providing meaningful results despite Chroma semantic search failures.\n\n---\nType: discovery | Facts: Test result contains array of observation objects with type and text fields; Each observation includes title, subtitle, narrative, facts list, concepts, files, and dates; First test query retrieved six observations about worker service startup and configuration; Results include observations about port file writing, getPackageRoot dependencies, production failures, and ChromaSync initialization; Each observation tagged with source link format claude-mem://observation/ID; Observations span date range from October 18, 2025 to November 17, 2025; Results include diverse observation types: change, discovery, and bugfix; Metadata includes observation type, facts list, concepts tags, and file paths | Concepts: how-it-works | Files: test-results/test-01-worker-service-startup.json\n\n---\nDate: 11/17/2025, 9:31:24 PM\n\n---\n\n## Build and Deployment Pipeline Executed\n*Source: claude-mem://observation/10634*\n\n**Built all hooks, worker service, search server, synced to marketplace, and restarted worker.**\n\nA complete build and deployment pipeline was executed for the claude-mem plugin version 6.0.9. The build process compiled all TypeScript hooks (context-hook, new-hook, save-hook, summary-hook, cleanup-hook, user-message-hook), the worker service, and the search server into their final JavaScript distributions. The React-based viewer UI was also bundled with its associated assets including fonts and icons. After successful compilation, the entire plugin directory was synchronized to the Claude marketplace location using rsync, transferring 11,751 files while excluding .git directories. The deployment concluded with an npm install to refresh dependencies and a worker service restart to activate the newly built code. This pipeline ensures that all code changes are properly compiled, deployed, and running in the Claude environment.\n\n---\nType: change | Facts: Package claude-mem version 6.0.9 successfully built all components; Built components include worker-service.cjs (1337.16 KB), search-server.mjs (332.02 KB), and seven hooks ranging from 2.24 KB to 38.29 KB; React viewer bundle built with viewer-bundle.js, viewer.html, fonts, and 4 SVG icon files; Files synced from /Users/alexnewman/Scripts/claude-mem to ~/.claude/plugins/marketplaces/thedotmack/ using rsync with 11,751 files transferred; npm install executed in marketplace directory to ensure dependencies are current; Worker service restarted after successful build and sync | Concepts: what-changed, how-it-works, pattern | Files: plugin/scripts/worker-service.cjs, plugin/scripts/search-server.mjs, plugin/scripts/context-hook.js, plugin/scripts/new-hook.js, plugin/scripts/save-hook.js, plugin/scripts/summary-hook.js, plugin/scripts/cleanup-hook.js, plugin/scripts/user-message-hook.js, plugin/ui/viewer-bundle.js, plugin/ui/viewer.html\n\n---\nDate: 11/17/2025, 9:22:48 PM\n\n---\n\n## Build, Sync, and Worker Restart Executed\n*Source: claude-mem://observation/10622*\n\n**Project built successfully with all hooks and services, synced to marketplace directory, and worker service restarted.**\n\nA complete build, sync, and restart operation was executed for the claude-mem project version 6.0.9. The build process compiled all hook scripts, the worker service, the search server, and the React viewer UI with associated assets. The build system used scripts/build-hooks.js to bundle all components, producing optimized output in the plugin/scripts/ directory. After successful compilation, rsync transferred the entire project to the Claude marketplace plugin directory (~/.claude/plugins/marketplaces/thedotmack/), removing any files not present in the source with the --delete flag. The operation concluded with npm install to ensure all dependencies were properly installed in the marketplace location, preparing the plugin for use.\n\n---\nType: change | Facts: Project version is 6.0.9; Build output includes context-hook (38.29 KB), new-hook (32.14 KB), save-hook (32.49 KB), summary-hook (34.61 KB), cleanup-hook (31.38 KB), and user-message-hook (2.24 KB); Worker service built at 1337.16 KB; Search server built at 331.02 KB; React viewer built successfully with viewer-bundle.js, viewer.html, font assets, and 4 icon SVG files; Project synced from /Users/alexnewman/Scripts/claude-mem to ~/.claude/plugins/marketplaces/thedotmack/ using rsync with delete flag; Transfer included 11751 files with npm install executed in target directory | Concepts: what-changed, how-it-works | Files: plugin/scripts/context-hook.js, plugin/scripts/new-hook.js, plugin/scripts/save-hook.js, plugin/scripts/summary-hook.js, plugin/scripts/cleanup-hook.js, plugin/scripts/user-message-hook.js, plugin/scripts/worker-service.cjs, plugin/scripts/search-server.mjs, plugin/ui/viewer-bundle.js, plugin/ui/viewer.html\n\n---\nDate: 11/17/2025, 9:16:40 PM\n\n---\n\n## Phase 3 Testing Initiated\n*Source: claude-mem://observation/10528*\n\n**Beginning phase 3 testing with the feature enabled and worker process running.**\n\nPhase 3 testing has begun with the necessary components in place. The phase 3 feature has been enabled in the system configuration, and the associated worker process is confirmed to be running. This represents a transition from development/configuration to active testing of phase 3 functionality. The testing phase will validate that the enabled feature and running worker interact correctly and perform as expected.\n\n---\nType: change | Facts: Phase 3 testing has been initiated; Phase 3 feature is currently enabled; Worker process is running and operational | Concepts: what-changed, how-it-works\n\n---\nDate: 11/17/2025, 7:02:59 PM"}] \ No newline at end of file diff --git a/test-results/test-02-sqlite-fts5-implementation.json b/test-results/test-02-sqlite-fts5-implementation.json new file mode 100644 index 00000000..2733fb34 --- /dev/null +++ b/test-results/test-02-sqlite-fts5-implementation.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Query Routing Architecture: ChromaDB, SQLite, and FTS5 Fallback Strategy\n*Source: claude-mem://observation/10736*\n\n**Defined three distinct query paths based on query presence and ChromaDB availability to prevent incorrect fallback logic.**\n\nThe proper query routing architecture requires three distinct paths based on query presence and ChromaDB availability. Path 1: When a semantic query exists and ChromaDB is available, route to queryChroma with both query and filters. If ChromaDB errors (service failure), fall back to FTS5. However, if ChromaDB successfully returns zero results, accept that as the final answer without falling back - empty results indicate no semantic match, which is more accurate than FTS5. Path 2: When the query parameter is undefined (filter-only operations), skip ChromaDB entirely and route directly to SQLite filtering using SessionStore, not SessionSearch. This path handles metadata queries like retrieving last decisions. Path 3: When a query exists but ChromaDB is unavailable, use FTS5 as a degraded fallback. The current implementation incorrectly mixes these paths, leading to inappropriate fallback behavior and inefficient routing of filter-only queries through vector search systems.\n\n---\nType: decision | Facts: When query exists and ChromaDB is available, call queryChroma with query and filters; ChromaDB errors should trigger FTS5 fallback, but ChromaDB returning zero results is final and should not trigger fallback; Filter-only queries (undefined query parameter) should skip ChromaDB entirely and use direct SQLite filtering via SessionStore; Filter-only queries should use SessionStore for direct SQLite access, not SessionSearch which involves vector operations; When query exists but ChromaDB is unavailable, FTS5 serves as degraded fallback mode; The current code incorrectly mixes these three query routing paths | Concepts: pattern, how-it-works, problem-solution, trade-off\n\n---\nDate: 11/17/2025, 11:41:54 PM\n\n---\n\n## Chroma requires query text; FTS5 fallback logic is incorrect\n*Source: claude-mem://observation/10735*\n\n**Chroma cannot do filter-only queries, and FTS5 fallback on zero results is pointless.**\n\nTwo critical insights emerge about the search architecture. First, Chroma cannot perform filter-only queries without query text because it fundamentally operates on semantic search via vector embeddings. When query is undefined, the system must bypass Chroma entirely and proceed directly to SQLite structured filtering. Second, the current FTS5 fallback logic at line 472 is fundamentally flawed - it triggers when Chroma returns zero results. However, since FTS5 maintains a 1:1 copy of the SQLite data that Chroma also indexes, if Chroma returns zero results, FTS5 will also return zero results. FTS5 fallback should only activate when Chroma is unavailable or encounters an error, not when it successfully returns an empty result set.\n\n---\nType: discovery | Facts: Chroma vector database requires query text for semantic search operations; Filter-only queries must skip Chroma and use SQLite structured filtering directly; FTS5 fallback at line 472 triggers on zero results, not on Chroma errors; FTS5 contains 1:1 copy of SQLite data, so zero Chroma results means zero FTS5 results; FTS5 fallback should only activate when Chroma is unavailable or errors, not on empty results | Concepts: problem-solution, gotcha, how-it-works, why-it-exists | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 11:41:43 PM\n\n---\n\n## ChromaDB Cannot Perform Filter-Only Queries Without Vector Search\n*Source: claude-mem://observation/10734*\n\n**ChromaDB requires vector search; filter-only queries return zero results, necessitating the hybrid store architecture.**\n\nThe hybrid store architecture using both ChromaDB and SQLite exists because of a fundamental limitation in ChromaDB: it cannot perform filter-only queries without vector search. This revelation clarifies the intended query routing strategy. Metadata queries (like retrieving last decisions) should go directly to SQLite, not ChromaDB. When ChromaDB is running and returns no results, this represents an accurate answer based on vector similarity - the data simply doesn't exist or doesn't match the semantic query. The FTS5 fallback mechanism should only activate when the ChromaDB service itself fails, not when it returns empty results. If ChromaDB returns no results, SQLite will also return no results because the stores maintain a 1:1 relationship. Using FTS5 when ChromaDB returns empty results would provide less accurate results than accepting ChromaDB's empty response, since FTS5 would also return nothing but through a less sophisticated search mechanism.\n\n---\nType: discovery | Facts: ChromaDB cannot execute filter-only queries without vector search components; The hybrid store architecture exists specifically because ChromaDB lacks filter-only query capability; Queries for last decisions or metadata should query SQLite directly instead of ChromaDB; When ChromaDB returns no results, SQLite will also have no results due to 1:1 relationship between stores; FTS5 fallback should only activate if ChromaDB service fails, not when ChromaDB returns empty results; Empty results from ChromaDB are more accurate than FTS5 results when ChromaDB is operational | Concepts: how-it-works, why-it-exists, gotcha, pattern\n\n---\nDate: 11/17/2025, 11:41:32 PM\n\n---\n\n## Three-tier search architecture hierarchy revealed\n*Source: claude-mem://observation/10730*\n\n**System uses Chroma vector search primarily, FTS5 as fallback, direct SQLite for structured filtering.**\n\nThe complete search architecture operates as a three-tier hierarchy based on capability and availability. Chroma vector database provides the primary semantic search mechanism, storing vector embeddings that represent a 1:1 copy of all SQLite data. When Python dependencies are unavailable, the system falls back to FTS5 full-text search, which provides keyword matching but with inferior results compared to semantic search. Direct SQLite queries handle structured filtering operations when no text query is involved. This reveals that FTS5 was previously misunderstood as a core feature when it actually exists only as a degraded fallback mode for environments lacking Python support.\n\n---\nType: discovery | Facts: Chroma provides primary semantic search using vector embeddings of SQLite data; FTS5 serves as degraded keyword search fallback when Python dependencies unavailable; Direct SQLite queries handle structured filtering when no text query present; Search architecture forms hierarchy: Chroma (best) → FTS5 (fallback) → SQLite (filtering only); Chroma maintains complete 1:1 vector embedding copy of SQLite database | Concepts: how-it-works, why-it-exists, pattern, trade-off\n\n---\nDate: 11/17/2025, 11:37:53 PM\n\n---\n\n## Found SessionStore class structure and initialization\n*Source: claude-mem://observation/10723*\n\n**SessionStore manages database and schema, likely contains methods for direct observation retrieval without FTS5.**\n\nThe SessionStore class was located, confirming its role as the database management layer. This class initializes and maintains the SQLite database schema including observations, session summaries, and user prompts tables. Unlike SessionSearch which uses FTS5 for full-text search, SessionStore should provide methods for direct table access using structured WHERE clauses based on filters like type, concepts, files, and dates. The next step is to find existing methods in SessionStore that can retrieve observations using filters alone, without requiring FTS5 text search.\n\n---\nType: discovery | Facts: SessionStore class defined at line 9 in src/services/sqlite/SessionStore.ts; SessionStore manages SQLite database with WAL mode and foreign keys enabled; Class handles schema initialization and migrations; Database contains sdk_sessions, observations, and session_summaries tables; SessionStore provides direct access to these tables for structured queries | Concepts: how-it-works, pattern | Files: src/services/sqlite/SessionStore.ts\n\n---\nDate: 11/17/2025, 10:08:37 PM"}] \ No newline at end of file diff --git a/test-results/test-03-hook-lifecycle-flow.json b/test-results/test-03-hook-lifecycle-flow.json new file mode 100644 index 00000000..746bf735 --- /dev/null +++ b/test-results/test-03-hook-lifecycle-flow.json @@ -0,0 +1 @@ +[{"type":"text","text":"## claude-mem plugin built and deployed to marketplace\n*Source: claude-mem://observation/10605*\n\n**Complete build pipeline executed: React viewer, worker service, search server, hooks compiled and synced to Claude marketplace directory**\n\nThe claude-mem plugin underwent a complete build and deployment cycle. The build system compiled all components including the React-based viewer UI, a CommonJS worker service, an ES module search server, and six specialized hooks for different lifecycle events (context, new session, save, summary, cleanup, and user messages). All compiled outputs were placed in the plugin/scripts/ directory. The build process then used rsync to synchronize the entire project to the Claude marketplace directory at ~/.claude/plugins/marketplaces/thedotmack/, transferring thousands of files including all node_modules dependencies. This deployment makes version 6.0.9 of the plugin available through the Claude marketplace with all required dependencies installed.\n\n---\nType: change | Facts: Build process compiled 6 hooks: context-hook, new-hook, save-hook, summary-hook, cleanup-hook, user-message-hook; Worker service built as worker-service.cjs (1337.16 KB) and search server as search-server.mjs (331.02 KB); React viewer built with bundled JavaScript, HTML template, font assets, and 4 SVG icon files; Plugin synced via rsync to ~/.claude/plugins/marketplaces/thedotmack/ with 11,751 files transferred; Package version 6.0.9 deployed with dependencies auto-installed in marketplace directory | Concepts: what-changed, how-it-works | Files: scripts/build-hooks.js, package.json, plugin/scripts/worker-service.cjs, plugin/scripts/search-server.mjs, plugin/scripts/context-hook.js, plugin/scripts/new-hook.js, plugin/scripts/save-hook.js, plugin/scripts/summary-hook.js, plugin/scripts/cleanup-hook.js, plugin/scripts/user-message-hook.js, plugin/ui/viewer-bundle.js, plugin/ui/viewer.html\n\n---\nDate: 11/17/2025, 9:03:34 PM\n\n---\n\n## Session Context Review for Endless Mode Phase 3\n*Source: claude-mem://observation/10554*\n\n**Reviewing progress on Phase 3 endless mode implementation with PreToolUse hook and SKIP_TOOLS optimization.**\n\nA context review was initiated to understand the current state of the endless mode implementation. Phase 3 work includes a PreToolUse hook with SKIP_TOOLS optimization that was created in a previous session (#S1937) but remains unbuilt and untested. This discovery phase aims to gather full observations from prior work to determine the next steps needed to complete the endless mode feature.\n\n---\nType: discovery | Facts: Session #S1937 previously created a PreToolUse hook with SKIP_TOOLS optimization; The PreToolUse hook has not yet been built or tested; Work is currently in Phase 3 of an endless mode implementation; Project located at /Users/alexnewman/Scripts/claude-mem | Concepts: how-it-works, what-changed\n\n---\nDate: 11/17/2025, 7:30:21 PM\n\n---\n\n## Added PreToolUse hook to lifecycle configuration\n*Source: claude-mem://observation/10541*\n\n**New PreToolUse hook executes pre-tool-use-hook.js before any tool is invoked by Claude.**\n\nA new PreToolUse lifecycle hook was added to the claude-mem plugin configuration to enable capturing state before tools are executed. This complements the existing PostToolUse hook that runs save-hook.js after tool execution. By adding pre-tool-use-hook.js with the same wildcard matcher and timeout settings as PostToolUse, the system can now monitor and potentially intercept or prepare for tool invocations before they occur. This creates a complete before/after hook pattern for tool usage tracking.\n\n---\nType: feature | Facts: Added PreToolUse hook section to plugin/hooks/hooks.json before the existing PostToolUse hook; PreToolUse hook runs pre-tool-use-hook.js script with 120s timeout; PreToolUse hook uses matcher \"*\" to trigger on all tool invocations; The hook system now captures both before and after states of tool usage | Concepts: what-changed, pattern, why-it-exists | Files: plugin/hooks/hooks.json\n\n---\nDate: 11/17/2025, 7:16:47 PM\n\n---\n\n## PreToolUse Hook Implementation for Transcript Transformation\n*Source: claude-mem://observation/10540*\n\n**Created hook that transforms previous tool results into observation references before each tool execution.**\n\nA new PreToolUse hook was implemented to handle the transformation of tool results into observation references in the transcript. The hook executes before each tool use, ensuring that the previous tool's result has already been written to the transcript file. It searches the transcript backwards to find the most recent tool_result that hasn't been transformed yet (identified by not containing \"[Observation #\"). When found, it sends a synchronous POST request to the worker's transform endpoint with the tool_use_id. If the worker successfully creates an observation, the hook modifies the transcript file in-place, replacing the full tool result content with a compact reference like \"[Observation #123: Title]\". The implementation elegantly handles edge cases: first tool use (no previous tool), already-transformed results, disabled endless mode, and worker failures—all by simply returning success and continuing. This design fulfills the architectural decision to consolidate logic in PreToolUse while avoiding YAGNI violations.\n\n---\nType: feature | Facts: Pre-tool-use hook processes the PREVIOUS tool's result, guaranteeing it's already in transcript; Hook searches transcript backwards to find most recent untransformed tool_result entry; Transformed tool_result content becomes compact reference format: \"[Observation #ID: Title]\"; Hook communicates with worker via POST to /sessions/{id}/observations/transform endpoint; SKIP_TOOLS set filters out low-value tools: ListMcpResourcesTool, SlashCommand, Skill, TodoWrite, AskUserQuestion; Hook gracefully handles first tool use case by checking if previousTool is null; Transformation only occurs when EndlessModeConfig.enabled is true and transcript_path exists; Worker returns ObservationEndpointResponse with status: queued, completed, or timeout | Concepts: how-it-works, pattern, problem-solution | Files: src/hooks/pre-tool-use-hook.ts\n\n---\nDate: 11/17/2025, 7:16:07 PM\n\n---\n\n## Moving All Logic to PreToolUse Hook\n*Source: claude-mem://observation/10538*\n\n**Decision to implement all functionality in PreToolUse hook to guarantee previous tool use is available.**\n\nA new architectural decision was made to consolidate all functionality into the PreToolUse hook. This approach was chosen because PreToolUse guarantees that the previous tool use will be available in the context, which is essential for the intended functionality. The decision explicitly avoids over-engineering (YAGNI - You Aren't Gonna Need It) while acknowledging that the first tool use scenario may require smart handling since there would be no previous tool use at that point. This represents a simplification of the architecture by using a single hook point rather than distributing logic across multiple hooks.\n\n---\nType: decision | Facts: All logic will be moved to the PreToolUse hook instead of other lifecycle hooks; PreToolUse hook guarantees that the previous tool use is in context; The approach avoids YAGNI (You Aren't Gonna Need It) principle violations; Special handling may be needed for the first tool use edge case | Concepts: pattern, why-it-exists, trade-off\n\n---\nDate: 11/17/2025, 7:13:35 PM"}] \ No newline at end of file diff --git a/test-results/test-04-build-pipeline-process.json b/test-results/test-04-build-pipeline-process.json new file mode 100644 index 00000000..a7ff40aa --- /dev/null +++ b/test-results/test-04-build-pipeline-process.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Build and Deployment of Unified Search API\n*Source: claude-mem://observation/10682*\n\n**Successfully built all hooks, worker service, and search server, then synced to marketplace and restarted worker.**\n\nThe unified search API implementation was successfully built and deployed. The build process generated all necessary components including the worker service, search server, and various hooks, with the search server weighing in at 332.97 KB. The React viewer UI was also compiled with all required assets. After building, the entire project (11,781 files) was synced to the Claude marketplace plugins directory using rsync, followed by npm install to ensure all dependencies were properly installed. Finally, the worker service was restarted to activate the new unified search endpoints. This deployment marks the completion of the unified search API architecture with its six public-facing endpoints and backward-compatible granular routing.\n\n---\nType: change | Facts: Build process compiled 8 components: worker-service (1337.16 KB), search-server (332.97 KB), context-hook (38.29 KB), new-hook (32.14 KB), save-hook (32.49 KB), summary-hook (34.61 KB), cleanup-hook (31.38 KB), and user-message-hook (2.24 KB); React viewer built successfully with viewer-bundle.js, viewer.html, font assets, and 4 icon SVG files; Project synced to ~/.claude/plugins/marketplaces/thedotmack/ using rsync with 11,781 files transferred; npm install executed in marketplace directory to ensure dependencies are current; Worker service restarted to activate the newly deployed unified search API endpoints | Concepts: what-changed, how-it-works | Files: plugin/scripts/worker-service.cjs, plugin/scripts/search-server.mjs, plugin/scripts/context-hook.js, plugin/scripts/new-hook.js, plugin/scripts/save-hook.js, plugin/scripts/summary-hook.js, plugin/scripts/cleanup-hook.js, plugin/scripts/user-message-hook.js, plugin/ui/viewer-bundle.js, plugin/ui/viewer.html\n\n---\nDate: 11/17/2025, 9:43:18 PM\n\n---\n\n## Build and Deployment Pipeline Execution\n*Source: claude-mem://observation/10663*\n\n**Successfully built all hooks, worker service, search server, synced to marketplace, and restarted Cloudflare worker.**\n\nThe complete build and deployment pipeline executed successfully for claude-mem version 6.0.9. The build process first prepared output directories, then compiled the React viewer bundle along with all necessary UI assets including fonts and icons. Next, it built the worker service and search server components followed by all six hook modules (context, new, save, summary, cleanup, and user-message). After successful compilation, the rsync operation transferred all 11,781 project files to the marketplace plugin directory, removing any obsolete files with the --delete flag. Finally, npm install ensured all dependencies were current in the deployment location. This deployment follows the implementation of the unified search API architecture and prepares the system for comprehensive testing of the new search capabilities.\n\n---\nType: change | Facts: Build process compiled 8 components: worker-service (1337.16 KB), search-server (332.08 KB), context-hook (38.29 KB), new-hook (32.14 KB), save-hook (32.49 KB), summary-hook (34.61 KB), cleanup-hook (31.38 KB), and user-message-hook (2.24 KB); React viewer was built successfully with viewer-bundle.js, viewer.html template, font assets, and 4 icon SVG files in plugin/ui directory; Project synced 11,781 files from /Users/alexnewman/Scripts/claude-mem to ~/.claude/plugins/marketplaces/thedotmack/ using rsync with --delete flag; npm install ran in marketplace directory after sync to update dependencies; Build outputs placed in plugin/scripts/ directory for hooks and worker service, plugin/skills/ for skills components | Concepts: how-it-works, what-changed | Files: plugin/ui/viewer-bundle.js, plugin/ui/viewer.html, plugin/scripts/worker-service.cjs, plugin/scripts/search-server.mjs, plugin/scripts/context-hook.js, plugin/scripts/new-hook.js, plugin/scripts/save-hook.js, plugin/scripts/summary-hook.js, plugin/scripts/cleanup-hook.js, plugin/scripts/user-message-hook.js\n\n---\nDate: 11/17/2025, 9:36:22 PM\n\n---\n\n## Twenty Specific Test Queries for Search API Coverage\n*Source: claude-mem://observation/10636*\n\n**Designed concrete test cases covering worker services, architecture decisions, troubleshooting, file tracking, and concept filtering**\n\nTwenty specific test queries were designed to comprehensively validate the unified search API functionality. The queries span all major categories: semantic queries focus on understanding system components (worker startup, SQLite FTS5, hooks, build pipeline), decision queries target architectural rationale (PM2 choice, search architecture, MCP principles), troubleshooting queries seek solutions (worker debugging, hook timeouts, migrations), file-specific queries track evolution (search-server.ts, context-hook, worker-service), concept-based queries filter by knowledge type (patterns, gotchas, discoveries), type-filtered queries segment by observation type (bugfixes, features, decisions), and timeline queries provide contextual history. Each query maps to specific API capabilities including unified search parameters (type, obs_type, concepts, files) and specialized endpoints (/api/decisions, /api/timeline, /api/how-it-works).\n\n---\nType: decision | Facts: Semantic queries test understanding of worker service startup, SQLite FTS5 implementation, hook lifecycle flow, and build pipeline process; Decision queries test retrieval of PM2 architectural choice, search architecture guidelines, and MCP as DRY source principle; Troubleshooting queries test finding bugfixes for worker service debugging, hook timeout problems, and database migration issues; File-specific queries test tracking changes to search-server.ts, context-hook modifications, and worker-service updates; Concept-based queries test filtering by pattern, gotcha, and discovery observation types; Type-filtered queries test filtering all bugfixes, features, and decisions independently; Timeline queries test contextual history retrieval around search architecture work | Concepts: pattern, how-it-works\n\n---\nDate: 11/17/2025, 9:26:45 PM\n\n---\n\n## claude-mem plugin built and deployed to marketplace\n*Source: claude-mem://observation/10605*\n\n**Complete build pipeline executed: React viewer, worker service, search server, hooks compiled and synced to Claude marketplace directory**\n\nThe claude-mem plugin underwent a complete build and deployment cycle. The build system compiled all components including the React-based viewer UI, a CommonJS worker service, an ES module search server, and six specialized hooks for different lifecycle events (context, new session, save, summary, cleanup, and user messages). All compiled outputs were placed in the plugin/scripts/ directory. The build process then used rsync to synchronize the entire project to the Claude marketplace directory at ~/.claude/plugins/marketplaces/thedotmack/, transferring thousands of files including all node_modules dependencies. This deployment makes version 6.0.9 of the plugin available through the Claude marketplace with all required dependencies installed.\n\n---\nType: change | Facts: Build process compiled 6 hooks: context-hook, new-hook, save-hook, summary-hook, cleanup-hook, user-message-hook; Worker service built as worker-service.cjs (1337.16 KB) and search server as search-server.mjs (331.02 KB); React viewer built with bundled JavaScript, HTML template, font assets, and 4 SVG icon files; Plugin synced via rsync to ~/.claude/plugins/marketplaces/thedotmack/ with 11,751 files transferred; Package version 6.0.9 deployed with dependencies auto-installed in marketplace directory | Concepts: what-changed, how-it-works | Files: scripts/build-hooks.js, package.json, plugin/scripts/worker-service.cjs, plugin/scripts/search-server.mjs, plugin/scripts/context-hook.js, plugin/scripts/new-hook.js, plugin/scripts/save-hook.js, plugin/scripts/summary-hook.js, plugin/scripts/cleanup-hook.js, plugin/scripts/user-message-hook.js, plugin/ui/viewer-bundle.js, plugin/ui/viewer.html\n\n---\nDate: 11/17/2025, 9:03:34 PM\n\n---\n\n## Postmortem documentation for failed worker service debug attempt\n*Source: claude-mem://observation/10581*\n\n**Documented debugging anti-patterns and root cause analysis failures from worker crash loop investigation.**\n\nCreated comprehensive postmortem analyzing why worker service debugging failed. The investigation identified five critical mistakes: jumping to symptoms instead of root cause, ignoring the build pipeline, attempting to fix by disabling functionality, not comparing working vs broken state early, and overcomplicating the investigation. The core issue was \"symptom chasing\" - following MCP error messages instead of asking why code that previously worked was suddenly broken. Git diff revealed worker code was unchanged from main branch, strongly suggesting a build or environment issue rather than code bug. The attempted fix violated KISS/YAGNI by adding defensive complexity (commenting out features) instead of finding the actual problem. Postmortem establishes correct debug sequence: compare working/broken states, verify build artifacts, test simplest hypothesis first, and never disable features as a \"fix\". Action items for next attempt emphasize verifying build pipeline health before modifying any source code.\n\n---\nType: decision | Facts: Worker service was in crash loop with 225 restarts failing with \"MCP error -32000: Connection closed\"; Debug attempt chased symptoms (MCP connection errors) instead of investigating root cause (why suddenly broken); Build pipeline was never investigated despite worker file location mismatch and corrupted search-server.mjs output; Git diff showed core worker code was UNCHANGED from main branch, only search-everything additions present; Attempted fix by disabling Chroma and search server features violated KISS/YAGNI principles; Likely root causes identified as corrupted build artifacts, missing node_modules, or ESM/CJS bundling issues; Correct debug sequence should start with comparing main vs current branch and verifying build artifacts | Concepts: problem-solution, gotcha, pattern, why-it-exists | Files: POSTMORTEM-worker-debug-failure.md\n\n---\nDate: 11/17/2025, 8:09:26 PM"}] \ No newline at end of file diff --git a/test-results/test-05-pm2-decision.json b/test-results/test-05-pm2-decision.json new file mode 100644 index 00000000..18ed63cf --- /dev/null +++ b/test-results/test-05-pm2-decision.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Package script worker:logs includes automatic log flushing\n*Source: claude-mem://observation/10658*\n\n**The worker:logs npm script now flushes PM2 logs before displaying them automatically.**\n\nThe worker:logs npm script has been implemented with automatic log flushing as the default behavior. This addresses the recurring issue where logs were frequently forgotten to be flushed before viewing. The script now chains two PM2 commands: first flushing the claude-mem-worker logs, then displaying the last 100 lines without streaming. This automation ensures users always see fresh logs without needing to remember the manual flush step, improving the debugging workflow reliability.\n\n---\nType: feature | Facts: The worker:logs script runs 'pm2 flush claude-mem-worker' before showing logs; After flushing, the script displays the last 100 lines using 'pm2 logs claude-mem-worker --lines 100 --nostream'; PM2 flushes both stdout and stderr log files located at /Users/alexnewman/.pm2/logs/ | Concepts: how-it-works, problem-solution, pattern\n\n---\nDate: 11/17/2025, 9:34:27 PM\n\n---\n\n## PM2 Decision Query Returns No Results\n*Source: claude-mem://observation/10651*\n\n**Search for \"PM2 instead of direct process\" found no matching records in memory.**\n\nA test query searching for architectural decision documentation about \"PM2 instead of direct process\" returned no results from the memory system. The test file test-05-pm2-decision.json captured this search result, indicating that while the system may be using PM2 for process management, no observation has been recorded explaining the rationale for choosing PM2 over direct process management. This suggests either the decision predates the memory system, wasn't documented as an observation, or uses different terminology that doesn't match this search query.\n\n---\nType: discovery | Facts: Test file test-05-pm2-decision.json contains search results for query \"PM2 instead of direct process\"; Search returned \"No results found\" indicating no observations or records document this architectural decision; Query appears to target a decision about using PM2 for process management versus direct process execution | Concepts: problem-solution, gotcha | Files: test-results/test-05-pm2-decision.json\n\n---\nDate: 11/17/2025, 9:33:24 PM\n\n---\n\n## PM2 Worker Service Restarted\n*Source: claude-mem://observation/10598*\n\n**Restarted claude-mem-worker process managed by PM2 process manager**\n\nThe claude-mem-worker background service was restarted using PM2 process manager via npm script. The worker process (version 6.0.9) is now running with a fresh instance (PID 86354) and shows online status. The restart counter indicates this service has been restarted 136 times, suggesting active development or iterative deployment. The worker is running in fork mode with file watching disabled.\n\n---\nType: change | Facts: PM2 process claude-mem-worker (ID: 1) restarted successfully; Worker process running as version 6.0.9 with PID 86354; Process has been restarted 136 times total; Worker process status is online with 912.0kb memory usage | Concepts: how-it-works, what-changed\n\n---\nDate: 11/17/2025, 8:38:22 PM\n\n---\n\n## PM2 Worker Logs Flushed\n*Source: claude-mem://observation/10532*\n\n**Cleared claude-mem-worker stdout and error logs to prepare for clean debugging session.**\n\nThe PM2 logs for the claude-mem-worker process were flushed to clear accumulated debugging output. This removes old log entries from both the stdout log (claude-mem-worker-out.log) and error log (claude-mem-worker-error.log) in the ~/.pm2/logs directory. Flushing logs before starting fresh debugging ensures that subsequent testing will produce clean, unambiguous output that clearly shows whether the synchronous endpoint is being called with the wait_until_obs_is_saved parameter and whether UNIQUE constraint errors still occur with the updated implementation.\n\n---\nType: change | Facts: PM2 logs flushed for claude-mem-worker process; Flushed log files: ~/.pm2/logs/claude-mem-worker-out.log and claude-mem-worker-error.log; Log flush prepares clean slate for testing synchronous endpoint and UNIQUE constraint issues | Concepts: pattern, why-it-exists\n\n---\nDate: 11/17/2025, 7:05:00 PM\n\n---\n\n## Worker Process Restarted for Phase 3 Testing\n*Source: claude-mem://observation/10492*\n\n**claude-mem-worker restarted via PM2 to apply changes for testing phase 3**\n\nThe claude-mem-worker background process was restarted via PM2 to apply configuration or code changes for phase 3 testing. The worker is running version 6.0.9 of the claude-mem application and is managed by PM2 in fork mode with file watching enabled. The process successfully came online with a new process ID of 17916, indicating a clean restart. This restart was performed as part of initiating phase 3 testing, ensuring the worker is running with the latest changes.\n\n---\nType: change | Facts: claude-mem-worker process restarted using PM2 process manager; Worker running as version 6.0.9 with process ID 17916; Worker status is online with watching enabled in fork mode; Process has restarted 2 times total since initial deployment | Concepts: how-it-works, what-changed\n\n---\nDate: 11/17/2025, 6:44:21 PM"}] \ No newline at end of file diff --git a/test-results/test-06-search-architecture-decision.json b/test-results/test-06-search-architecture-decision.json new file mode 100644 index 00000000..a4c2a085 --- /dev/null +++ b/test-results/test-06-search-architecture-decision.json @@ -0,0 +1 @@ +[{"type":"text","text":"## FTS5 Method Renamed to Indicate Fallback Status\n*Source: claude-mem://observation/10747*\n\n**Renamed escapeFTS5 to escapeFTS5_fallback_when_chroma_unavailable across all search methods to clarify temporary usage.**\n\nThe FTS5 query escaping method was renamed from escapeFTS5 to escapeFTS5_fallback_when_chroma_unavailable to align with the newly established naming convention for FTS5-related code. This change was applied across all three search methods in SessionSearch: searchObservations, searchSessions, and searchUserPrompts. The rename makes explicit that FTS5 is only being used as a temporary fallback solution when ChromaDB (which requires UVX) is unavailable, rather than being a permanent part of the architecture. The method's existing documentation already stated that FTS5 provides degraded search capability with no semantic understanding and is only used when uvx/Python/ChromaDB is disabled. This refactoring follows the pattern established in CLAUDE.md where FTS5-related functions are given semantic names indicating their temporary nature pending UVX availability.\n\n---\nType: refactor | Facts: File modified: /Users/alexnewman/Scripts/claude-mem/src/services/sqlite/SessionSearch.ts; Method escapeFTS5 renamed to escapeFTS5_fallback_when_chroma_unavailable throughout the file; Three search methods updated: searchObservations, searchSessions, and searchUserPrompts; All calls to escapeFTS5 replaced with escapeFTS5_fallback_when_chroma_unavailable using replace_all; Method already had documentation indicating FTS5 is degraded fallback when ChromaDB unavailable | Concepts: what-changed, why-it-exists, pattern | Files: /Users/alexnewman/Scripts/claude-mem/src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:48:30 PM\n\n---\n\n## Three-tier search architecture hierarchy revealed\n*Source: claude-mem://observation/10730*\n\n**System uses Chroma vector search primarily, FTS5 as fallback, direct SQLite for structured filtering.**\n\nThe complete search architecture operates as a three-tier hierarchy based on capability and availability. Chroma vector database provides the primary semantic search mechanism, storing vector embeddings that represent a 1:1 copy of all SQLite data. When Python dependencies are unavailable, the system falls back to FTS5 full-text search, which provides keyword matching but with inferior results compared to semantic search. Direct SQLite queries handle structured filtering operations when no text query is involved. This reveals that FTS5 was previously misunderstood as a core feature when it actually exists only as a degraded fallback mode for environments lacking Python support.\n\n---\nType: discovery | Facts: Chroma provides primary semantic search using vector embeddings of SQLite data; FTS5 serves as degraded keyword search fallback when Python dependencies unavailable; Direct SQLite queries handle structured filtering when no text query present; Search architecture forms hierarchy: Chroma (best) → FTS5 (fallback) → SQLite (filtering only); Chroma maintains complete 1:1 vector embedding copy of SQLite database | Concepts: how-it-works, why-it-exists, pattern, trade-off\n\n---\nDate: 11/17/2025, 11:37:53 PM\n\n---\n\n## Final solution synthesis: separate text search from structured filtering\n*Source: claude-mem://observation/10728*\n\n**Root cause is architectural: FTS5 text search and structured filtering conflated; fix separates them into independent query paths.**\n\nThe sequential thinking process concluded with a clear architectural understanding and implementation plan. The root cause is a design assumption that text search and structured filtering always occur together, leading to FTS5 being required even when users only want to filter by type, concepts, or files. The proper fix has two implementation parts: make the query parameter optional in the schema, and add conditional logic to the search methods that branches based on query presence. When query exists, use the full-text search path; when absent, use direct table querying with filters. This architectural separation allows text search and structured filtering to work independently or in combination, fixing the immediate bug while enabling more flexible query patterns. The sequential thinking reached thought 12 of 12 with complete problem analysis and solution design.\n\n---\nType: decision | Facts: Bug exists because system forces FTS5 search even for filter-only queries; Fix part 1: Change line 366 schema from query: z.string() to query: z.string().optional(); Fix part 2: Add conditional branching in searchObservations, searchSessions, searchUserPrompts; When query exists: use FTS5 path with JOIN observations_fts and MATCH clause; When query undefined: skip FTS5, query base table directly with filter WHERE clause only; Architecture separates concerns: text search (FTS5) independent from structured filtering (SQL WHERE); Original error occurred because code assumed text search and filtering always work together | Concepts: problem-solution, how-it-works, why-it-exists, pattern, trade-off\n\n---\nDate: 11/17/2025, 10:09:25 PM\n\n---\n\n## Architectural insight: use SessionStore for filter-only, SessionSearch for text search\n*Source: claude-mem://observation/10722*\n\n**SessionSearch class handles FTS5 text search; SessionStore class should handle structured filter queries without text.**\n\nA key architectural insight emerged: the system already has appropriate separation of concerns between SessionSearch and SessionStore classes. SessionSearch is designed for full-text search using FTS5, which inherently requires search text. SessionStore should handle structured queries based purely on filters (type, concepts, files, dates) without requiring full-text search. The real fix isn't to patch escapeFTS5 or make FTS5 work without a query - it's to route filter-only queries to SessionStore methods instead of SessionSearch methods. This preserves the architectural integrity where each class serves its intended purpose.\n\n---\nType: decision | Facts: SessionSearch.searchObservations always uses FTS5 with WHERE observations_fts MATCH ?; FTS5 fundamentally requires search term, cannot MATCH against nothing; SessionStore class likely contains methods for structured queries without FTS5; Proper architecture: SessionSearch for full-text search, SessionStore for filter-based retrieval; Sequential thinking at thought 8 of 12 | Concepts: pattern, how-it-works, trade-off, why-it-exists\n\n---\nDate: 11/17/2025, 10:08:29 PM\n\n---\n\n## Root cause identified: required query parameter vs filter-only queries\n*Source: claude-mem://observation/10717*\n\n**Schema defines query as required but filter-only queries need query to be optional.**\n\nThe root cause has been identified: a mismatch between the schema definition and actual usage patterns. The Zod schema defines query as z.string(), marking it as required, yet the system appears to receive requests without a query parameter for filter-only searches. This creates two possibilities: either (1) the schema should allow optional queries to support filtering by type/concepts/files without search text, or (2) query should truly be required and filter-only requests should be rejected. The investigation now shifts to understanding whether the search functions can meaningfully operate without a query parameter, which will determine the correct fix approach.\n\n---\nType: discovery | Facts: Line 366 defines query: z.string() as required, not optional; Runtime errors show requests without query are passing through validation; Filter-only queries (using type, obs_type, concepts, files) should be valid use cases; Schema should likely be z.string().optional() to support filter-only retrieval; Sequential thinking extended from 10 to 12 total thoughts; Next investigation examines search.searchObservations to determine if query is truly required | Concepts: problem-solution, gotcha, trade-off\n\n---\nDate: 11/17/2025, 10:07:36 PM"}] \ No newline at end of file diff --git a/test-results/test-07-mcp-dry-decision.json b/test-results/test-07-mcp-dry-decision.json new file mode 100644 index 00000000..d74a8130 --- /dev/null +++ b/test-results/test-07-mcp-dry-decision.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Session Search Successfully Retrieves Full Session Summaries\n*Source: claude-mem://observation/10654*\n\n**Search query for search architecture returns complete session records with request, investigated, learned, completed, and next steps fields**\n\nThe session search test demonstrated successful functionality, contrasting sharply with the failed observation searches. Using type=sessions, the query retrieved 57 semantic matches from Chroma and returned comprehensive session summaries. Each result includes the full session structure: completed (what was accomplished), learned (key insights), investigated (what was explored), next steps (planned actions), and notes (additional context). The first result details a session reviewing search architecture guidelines and the MCP-as-DRY-source principle, including specifics about the build pipeline, unified search API design with catch-all parameters, and the layered architecture pattern. This successful session search, combined with earlier log evidence showing prompt searches also working, confirms that Chroma's failures are isolated to observation queries specifically.\n\n---\nType: discovery | Facts: Session search query succeeded with 57 semantic matches from Chroma; Results include full session summary format with completed, learned, investigated, next steps, and notes sections; First result shows session about MCP architecture review from November 17, 2025; Session records tagged with source link format claude-mem://session/UUID; Sessions contain detailed context about build pipeline, search architecture decisions, and unified API design; Session search uses type=sessions parameter successfully unlike observation searches | Concepts: how-it-works | Files: test-results/test-20-session-search.json\n\n---\nDate: 11/17/2025, 9:33:37 PM\n\n---\n\n## Architecture Guidelines for Search Established\n*Source: claude-mem://observation/10633*\n\n**Code review requested to verify commit follows MCP-based search architecture with specific DRY principles.**\n\nA commit review was requested to ensure compliance with established architecture guidelines for the search functionality. The architecture mandates that MCP (Model Context Protocol) acts as the single, authoritative search source following DRY principles. All HTTP API search requests must route through MCP rather than implementing parallel search logic. This architectural decision confirms that MCP is the active, non-deprecated component for search operations, establishing clear boundaries between API layers and preventing code duplication across the search infrastructure.\n\n---\nType: decision | Facts: MCP serves as the DRY (Don't Repeat Yourself) search source in the architecture; HTTP API is designed to route through MCP for search functionality; MCP is confirmed as not deprecated and remains the canonical search implementation | Concepts: pattern, why-it-exists, how-it-works\n\n---\nDate: 11/17/2025, 9:22:30 PM\n\n---\n\n## Search Architecture Guidelines Enforcement\n*Source: claude-mem://observation/10629*\n\n**Architecture review requested to validate commit follows search design: MCP as dry source, HTTP routes through MCP.**\n\nA commit review was requested to validate compliance with established search architecture guidelines. The architecture mandates that MCP (Model Context Protocol) functions as the DRY (Don't Repeat Yourself) search source, with HTTP API routes required to route through MCP rather than implementing search logic independently. This ensures centralized search implementation and prevents code duplication. The review specifically aims to confirm MCP remains the canonical, non-deprecated search implementation approach.\n\n---\nType: decision | Facts: MCP serves as the dry search source in the system architecture; HTTP API routes must go through MCP rather than implementing search directly; MCP is the active, non-deprecated approach for search functionality | Concepts: pattern, why-it-exists, how-it-works\n\n---\nDate: 11/17/2025, 9:21:29 PM\n\n---\n\n## Search Architecture Guidelines Validation Requested\n*Source: claude-mem://observation/10621*\n\n**Commit review requested to verify adherence to search architecture: MCP as dry source, HTTP through MCP, MCP not deprecated.**\n\nA commit review was requested to ensure compliance with established search architecture guidelines. The architecture mandates that MCP (Model Context Protocol) functions as the canonical dry search source, with HTTP API endpoints routing through MCP rather than implementing search logic directly. This design decision maintains MCP as the active, non-deprecated integration layer for search functionality, ensuring consistency and avoiding duplication of search logic across different access methods.\n\n---\nType: decision | Facts: Architecture guideline: MCP serves as the dry search source; Architecture guideline: HTTP API routes search requests through MCP; Architecture guideline: MCP is not deprecated and remains the primary search integration layer | Concepts: why-it-exists, pattern, how-it-works\n\n---\nDate: 11/17/2025, 9:16:24 PM\n\n---\n\n## Search server contains no deprecation warnings or plans to remove MCP\n*Source: claude-mem://observation/10617*\n\n**Zero matches for deprecated, legacy, TODO, FIXME, replace MCP, or remove MCP in search-server.ts**\n\nThe absence of any deprecation warnings, legacy markers, or plans to remove MCP functionality confirms that the search server refactoring treats MCP as a first-class, actively maintained interface rather than a deprecated feature. This aligns with the architectural guideline that MCP should not be deprecated. The implementation invests in MCP with comprehensive tool definitions, schema validation, and feature parity with HTTP APIs, indicating it's the preferred interface rather than a transitional technology.\n\n---\nType: discovery | Facts: Case-insensitive search for deprecation-related terms returned zero matches in src/servers/search-server.ts; No comments indicating MCP is deprecated or will be replaced; No TODO or FIXME items suggesting future removal of MCP functionality; Search server implementation treats MCP as the primary, actively maintained interface | Concepts: pattern, why-it-exists | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 9:10:45 PM"}] \ No newline at end of file diff --git a/test-results/test-08-worker-debugging.json b/test-results/test-08-worker-debugging.json new file mode 100644 index 00000000..aeba2c24 --- /dev/null +++ b/test-results/test-08-worker-debugging.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Search API crashes with \"Cannot read properties of undefined (reading 'replace')\" error\n*Source: claude-mem://observation/10705*\n\n**9 of 12 failed tests show identical JavaScript error accessing undefined property, 3 show no results.**\n\nFresh test results reveal a critical JavaScript error in the search API. Nine tests crash with \"Cannot read properties of undefined (reading 'replace')\", indicating that some code is attempting to call .replace() on an undefined value. This error affects three distinct query categories: file-specific change queries (tests 11-13), concept-based queries (tests 14-15), and type-filtered queries (tests 16-19), plus multi-parameter file-type combinations (test 28). The pattern suggests that when the search API processes queries with file parameters, concept parameters, or type filters, it encounters an undefined value where it expects a string. The remaining three failures (tests 05, 08, 21) return clean \"No results found\" messages without crashing, indicating they may be legitimate empty result sets or different search code paths that don't trigger the bug.\n\n---\nType: discovery | Facts: 9 tests fail with error \"Cannot read properties of undefined (reading 'replace')\"; Tests 11, 12, 13 fail with replace error on file-specific change queries; Tests 14, 15 fail with replace error on concept-based queries for patterns and gotchas; Tests 16, 17, 18, 19 fail with replace error on type-filtered queries for discoveries, bugfixes, features, decisions; Test 28 fails with replace error on file-type combination query; Test 05 returns \"No results found matching 'PM2 instead of direct process'\" without crashing; Test 08 returns \"No results found matching 'worker service debugging'\" without crashing; Test 21 returns \"No results found matching 'build and deploy'\" without crashing; The replace error suggests undefined variable being passed to a string replace operation; All file-specific queries trigger the replace error; All concept-based queries trigger the replace error; All type-filtered queries trigger the replace error | Concepts: problem-solution, gotcha, pattern | Files: test-results/test-05-pm2-decision.json, test-results/test-08-worker-debugging.json, test-results/test-11-search-server-changes.json, test-results/test-12-context-hook-changes.json, test-results/test-13-worker-service-changes.json, test-results/test-14-patterns.json, test-results/test-15-gotchas.json, test-results/test-16-discoveries.json, test-results/test-17-all-bugfixes.json, test-results/test-18-all-features.json, test-results/test-19-all-decisions.json, test-results/test-21-prompt-search.json, test-results/test-28-file-type-combo.json\n\n---\nDate: 11/17/2025, 10:04:43 PM\n\n---\n\n## Twenty Specific Test Queries for Search API Coverage\n*Source: claude-mem://observation/10636*\n\n**Designed concrete test cases covering worker services, architecture decisions, troubleshooting, file tracking, and concept filtering**\n\nTwenty specific test queries were designed to comprehensively validate the unified search API functionality. The queries span all major categories: semantic queries focus on understanding system components (worker startup, SQLite FTS5, hooks, build pipeline), decision queries target architectural rationale (PM2 choice, search architecture, MCP principles), troubleshooting queries seek solutions (worker debugging, hook timeouts, migrations), file-specific queries track evolution (search-server.ts, context-hook, worker-service), concept-based queries filter by knowledge type (patterns, gotchas, discoveries), type-filtered queries segment by observation type (bugfixes, features, decisions), and timeline queries provide contextual history. Each query maps to specific API capabilities including unified search parameters (type, obs_type, concepts, files) and specialized endpoints (/api/decisions, /api/timeline, /api/how-it-works).\n\n---\nType: decision | Facts: Semantic queries test understanding of worker service startup, SQLite FTS5 implementation, hook lifecycle flow, and build pipeline process; Decision queries test retrieval of PM2 architectural choice, search architecture guidelines, and MCP as DRY source principle; Troubleshooting queries test finding bugfixes for worker service debugging, hook timeout problems, and database migration issues; File-specific queries test tracking changes to search-server.ts, context-hook modifications, and worker-service updates; Concept-based queries test filtering by pattern, gotcha, and discovery observation types; Type-filtered queries test filtering all bugfixes, features, and decisions independently; Timeline queries test contextual history retrieval around search architecture work | Concepts: pattern, how-it-works\n\n---\nDate: 11/17/2025, 9:26:45 PM\n\n---\n\n## Build, Sync, and Worker Restart Executed\n*Source: claude-mem://observation/10622*\n\n**Project built successfully with all hooks and services, synced to marketplace directory, and worker service restarted.**\n\nA complete build, sync, and restart operation was executed for the claude-mem project version 6.0.9. The build process compiled all hook scripts, the worker service, the search server, and the React viewer UI with associated assets. The build system used scripts/build-hooks.js to bundle all components, producing optimized output in the plugin/scripts/ directory. After successful compilation, rsync transferred the entire project to the Claude marketplace plugin directory (~/.claude/plugins/marketplaces/thedotmack/), removing any files not present in the source with the --delete flag. The operation concluded with npm install to ensure all dependencies were properly installed in the marketplace location, preparing the plugin for use.\n\n---\nType: change | Facts: Project version is 6.0.9; Build output includes context-hook (38.29 KB), new-hook (32.14 KB), save-hook (32.49 KB), summary-hook (34.61 KB), cleanup-hook (31.38 KB), and user-message-hook (2.24 KB); Worker service built at 1337.16 KB; Search server built at 331.02 KB; React viewer built successfully with viewer-bundle.js, viewer.html, font assets, and 4 icon SVG files; Project synced from /Users/alexnewman/Scripts/claude-mem to ~/.claude/plugins/marketplaces/thedotmack/ using rsync with delete flag; Transfer included 11751 files with npm install executed in target directory | Concepts: what-changed, how-it-works | Files: plugin/scripts/context-hook.js, plugin/scripts/new-hook.js, plugin/scripts/save-hook.js, plugin/scripts/summary-hook.js, plugin/scripts/cleanup-hook.js, plugin/scripts/user-message-hook.js, plugin/scripts/worker-service.cjs, plugin/scripts/search-server.mjs, plugin/ui/viewer-bundle.js, plugin/ui/viewer.html\n\n---\nDate: 11/17/2025, 9:16:40 PM\n\n---\n\n## Phase 3 Testing Initiated\n*Source: claude-mem://observation/10528*\n\n**Beginning phase 3 testing with the feature enabled and worker process running.**\n\nPhase 3 testing has begun with the necessary components in place. The phase 3 feature has been enabled in the system configuration, and the associated worker process is confirmed to be running. This represents a transition from development/configuration to active testing of phase 3 functionality. The testing phase will validate that the enabled feature and running worker interact correctly and perform as expected.\n\n---\nType: change | Facts: Phase 3 testing has been initiated; Phase 3 feature is currently enabled; Worker process is running and operational | Concepts: what-changed, how-it-works\n\n---\nDate: 11/17/2025, 7:02:59 PM\n\n---\n\n## Worker Service REST API Endpoints\n*Source: claude-mem://observation/10068*\n\n**Worker service exposes 28 REST endpoints for session management, observations, search, and context retrieval.**\n\nThe worker service implements a comprehensive REST API surface for the claude-mem system. The endpoints are organized into logical groupings: basic health/status (3), session management (5), data retrieval (5), configuration (2), MCP integration (2), search capabilities (6), and context/timeline queries (4). Each endpoint uses explicit method binding (this.handleXxx.bind(this)) for request handling. The API supports both observation-level operations and session-level aggregations, enabling the SDK integration to push memories during execution and retrieve contextual information on demand. The presence of multiple search and context endpoints suggests sophisticated querying capabilities for finding relevant historical information during agent execution.\n\n---\nType: discovery | Facts: Worker service file located at /Users/alexnewman/Scripts/claude-mem/src/services/worker-service.ts; Three GET endpoints for basic service info: /health, / (viewer UI), /stream (SSE); Five POST/GET endpoints for session lifecycle: /sessions/:sessionDbId/{init, observations, summarize, status, complete}; Five GET endpoints for data retrieval: /api/{observations, summaries, prompts, stats, processing-status}; Two POST endpoints for configuration: /api/processing and /api/settings; Two GET endpoints for MCP integration: /api/mcp/{status, toggle}; Six GET endpoints for search functionality: /api/search/{observations, sessions, prompts, by-concept, by-file, by-type}; Four GET endpoints for context and timeline: /api/context/{recent, timeline}, /api/timeline/by-query, /api/search/help | Concepts: how-it-works, why-it-exists | Files: /Users/alexnewman/Scripts/claude-mem/src/services/worker-service.ts\n\n---\nDate: 11/17/2025, 12:42:24 AM"}] \ No newline at end of file diff --git a/test-results/test-09-hook-timeout.json b/test-results/test-09-hook-timeout.json new file mode 100644 index 00000000..f0f0dfc9 --- /dev/null +++ b/test-results/test-09-hook-timeout.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Added PreToolUse hook to lifecycle configuration\n*Source: claude-mem://observation/10541*\n\n**New PreToolUse hook executes pre-tool-use-hook.js before any tool is invoked by Claude.**\n\nA new PreToolUse lifecycle hook was added to the claude-mem plugin configuration to enable capturing state before tools are executed. This complements the existing PostToolUse hook that runs save-hook.js after tool execution. By adding pre-tool-use-hook.js with the same wildcard matcher and timeout settings as PostToolUse, the system can now monitor and potentially intercept or prepare for tool invocations before they occur. This creates a complete before/after hook pattern for tool usage tracking.\n\n---\nType: feature | Facts: Added PreToolUse hook section to plugin/hooks/hooks.json before the existing PostToolUse hook; PreToolUse hook runs pre-tool-use-hook.js script with 120s timeout; PreToolUse hook uses matcher \"*\" to trigger on all tool invocations; The hook system now captures both before and after states of tool usage | Concepts: what-changed, pattern, why-it-exists | Files: plugin/hooks/hooks.json\n\n---\nDate: 11/17/2025, 7:16:47 PM\n\n---\n\n## Claude-mem plugin hooks configuration structure\n*Source: claude-mem://observation/10539*\n\n**The hooks.json file defines five lifecycle hooks that trigger Node.js scripts at different session stages.**\n\nThe hooks.json configuration file reveals the complete lifecycle management system for the claude-mem plugin. It defines five distinct lifecycle events with corresponding Node.js scripts. At session start, the system performs installation checks and loads context. During the session, it captures user prompts and saves tool usage data. At session stop and end, it generates summaries and performs cleanup. All scripts are referenced using ${CLAUDE_PLUGIN_ROOT} environment variable for portability, and each has defined timeout limits to prevent hanging operations.\n\n---\nType: discovery | Facts: File plugin/hooks/hooks.json configures SessionStart, UserPromptSubmit, PostToolUse, Stop, and SessionEnd hooks; SessionStart hook runs smart-install.js, context-hook.js, and user-message-hook.js with timeouts of 300s and 10s; UserPromptSubmit hook executes new-hook.js with 120s timeout on every user prompt submission; PostToolUse hook runs save-hook.js with 120s timeout after any tool use (matcher: \"*\"); Stop hook triggers summary-hook.js and SessionEnd triggers cleanup-hook.js, both with 120s timeouts; SessionStart hooks use matcher \"startup|clear|compact\" to control when they execute | Concepts: how-it-works, why-it-exists, pattern | Files: plugin/hooks/hooks.json\n\n---\nDate: 11/17/2025, 7:13:54 PM\n\n---\n\n## Phase 3: Conditional Blocking Logic Implemented in Save Hook\n*Source: claude-mem://observation/10478*\n\n**Save hook now conditionally blocks based on Endless Mode configuration, waits for observations, and transforms transcripts.**\n\nPhase 3 of the Endless Mode implementation has been completed in the save-hook.ts file. The hook now implements conditional blocking logic based on the EndlessModeConfig.enabled flag. When Endless Mode is enabled (and tool_use_id and transcript_path are available), the hook switches to synchronous mode by appending wait_until_obs_is_saved=true to the endpoint URL and increasing the timeout from 2 to 90 seconds. After sending the observation request, the hook awaits the JSON response and handles three possible states. On 'completed' status, it receives the observation data and calls transformTranscript() to replace the tool output in the JSONL file with compressed observation markdown. On 'timeout' status, it logs a warning and falls back to using the full output while the observation continues processing in the background. On 'queued' status (async mode), it simply logs success. The implementation includes error handling for transcript transformation failures that allows execution to continue even if compression fails. This completes the integration of all three phases: synchronous observation endpoint (Phase 1), transcript transformation logic (Phase 2), and conditional blocking behavior (Phase 3).\n\n---\nType: feature | Facts: Save hook checks EndlessModeConfig.getConfig().enabled to determine blocking behavior; Blocking mode requires enabled flag, tool_use_id, and transcript_path to all be present; Endpoint URL conditionally includes query parameter wait_until_obs_is_saved=true for synchronous mode; Timeout increased from 2 seconds to 90 seconds when Endless Mode is enabled; Hook awaits response JSON and handles three states: completed, timeout, and queued; On status 'completed', hook calls transformTranscript() to replace tool output with compressed observation; On status 'timeout', hook logs warning and falls back to full output while observation completes asynchronously; Transcript transformation errors are caught and logged but don't fail the hook execution; Async mode behavior remains unchanged when Endless Mode is disabled | Concepts: how-it-works, what-changed, pattern | Files: src/hooks/save-hook.ts\n\n---\nDate: 11/17/2025, 6:36:54 PM\n\n---\n\n## Endless Mode Implementation Plan Documentation Created\n*Source: claude-mem://observation/10420*\n\n**Comprehensive four-phase plan documented for completing Endless Mode with blocking observation creation and transcript transformation.**\n\nA comprehensive implementation plan was documented to complete the Endless Mode feature. The plan acknowledges that infrastructure components (TransformLayer.ts, EndlessModeConfig.ts, tool_use_id tracking) are already in place on the experiment/endless-mode branch, but critical components are missing. The implementation is divided into four phases: Phase 1 creates a synchronous observation endpoint that blocks until observation creation completes (with timeout fallback), Phase 2 implements transcript file transformation to replace full tool outputs with compressed observations on disk, Phase 3 adds conditional blocking behavior to the save-hook based on configuration, and Phase 4 defines comprehensive testing procedures. The plan includes specific success criteria for each phase and overall success metrics targeting 80-95% token reduction while maintaining sub-120s hook execution times. This completes the architecture described in endless-mode-blocking-hooks-plan.md and supersedes the earlier UserPromptSubmit hook approach.\n\n---\nType: decision | Facts: Created endless-mode-implementation-plan.md in docs/context directory; Infrastructure is complete including TransformLayer.ts, EndlessModeConfig.ts, and tool_use_id tracking; Missing components identified: synchronous observation endpoint, transcript file transformation, and blocking save-hook behavior; Phase 1 focuses on creating synchronous observation endpoint in worker-service.ts with 60-90s wait time; Phase 2 implements transcript transformation in save-hook.ts to replace full tool results with compressed observation markdown; Phase 3 adds conditional blocking logic to save-hook based on EndlessModeConfig with timeout fallback; Phase 4 defines testing and validation procedures targeting 80-95% token reduction; TransformLayer.ts currently only handles in-memory SDK transformation, not on-disk transcript transformation | Concepts: pattern, trade-off, how-it-works, problem-solution | Files: docs/context/endless-mode-implementation-plan.md\n\n---\nDate: 11/17/2025, 4:00:05 PM\n\n---\n\n## Save-hook sends tool_use_id to worker observation endpoint\n*Source: claude-mem://observation/10406*\n\n**Modified POST request body to include extracted tool_use_id alongside tool data for observation storage**\n\nThe final portion of the save-hook changes completes the tool_use_id integration by including it in the HTTP request body sent to the worker service. After extracting the tool_use_id from the transcript via getLatestToolUseId, the hook adds it to the observation data payload alongside the tool name, inputs, outputs, prompt number, and working directory. This ensures the worker service receives the linking information needed to store observations with their corresponding tool_use_id in the database. The logging also captures this ID for debugging, displaying either the actual ID or '(none)' when extraction fails. This completes the data flow from transcript parsing through observation storage, establishing the foundation for EndlessMode's later retrieval and compression operations.\n\n---\nType: feature | Facts: POST request to worker observations endpoint now includes tool_use_id field in body; Tool_use_id added alongside existing fields: tool_name, tool_input, tool_response, prompt_number, cwd; Request maintains 2-second timeout via AbortSignal; Logger output includes toolUseId field showing extracted ID or '(none)' if not found | Concepts: what-changed, how-it-works | Files: src/hooks/save-hook.ts\n\n---\nDate: 11/17/2025, 3:49:43 PM"}] \ No newline at end of file diff --git a/test-results/test-10-database-migration.json b/test-results/test-10-database-migration.json new file mode 100644 index 00000000..de953554 --- /dev/null +++ b/test-results/test-10-database-migration.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Enhanced CLAUDE.md with semantic naming guidelines and evergreen context reminder\n*Source: claude-mem://observation/10389*\n\n**Development documentation updated with LLM-focused naming conventions and context management best practices.**\n\nThe CLAUDE.md development documentation was enhanced with two significant additions. First, a header comment was added reminding Claude to keep only evergreen context in the file, since claude-mem handles working context separately. Second, a new coding principle (#6) was added establishing semantic naming as a core practice: all variables, parameters, and API endpoints should use verbose, self-documenting names that optimize for comprehension by both humans and LLMs rather than brevity. The example provided contrasts `wait_until_obs_is_saved=true` with the overly terse `wait=true`. Additionally, the database migration strategy documentation was refined to clarify the distinction between alpha phase behavior (schema recreation) and future production requirements (proper migration handling). These changes reflect the project's commitment to LLM-friendly code and clear separation between working and evergreen context.\n\n---\nType: change | Facts: Added header comment instructing Claude to maintain only evergreen context in CLAUDE.md; New coding principle #6 mandates semantic naming optimized for human and LLM comprehension over brevity; Semantic naming example provided: `wait_until_obs_is_saved=true` preferred over `wait=true`; Database migration strategy documentation clarified for alpha vs production phases; Documentation emphasizes verbose, self-documenting names for variables, parameters, and API endpoints | Concepts: what-changed, pattern, why-it-exists | Files: CLAUDE.md\n\n---\nDate: 11/17/2025, 3:45:08 PM\n\n---\n\n## Improved Documentation Clarity for Database Migration Strategy\n*Source: claude-mem://observation/10387*\n\n**Refined migration strategy documentation from TODO item to clear phase-based statement about production requirements.**\n\nThe database schema modification documentation in CLAUDE.md was revised to improve clarity and remove TODO-style language. The previous version used separate numbered items for the current migration strategy and a future TODO, which created ambiguity about the project's maturity and requirements. The updated version consolidates this into a single, clear statement that explicitly describes the current alpha-phase approach (database recreation on schema changes) while acknowledging the future requirement for proper migration handling in production deployments. This change makes the documentation more evergreen and professional while maintaining the same technical information.\n\n---\nType: change | Facts: CLAUDE.md database schema section was updated to improve documentation clarity; Removed TODO item \"Add proper migrations for production\" from schema modification steps; Consolidated migration strategy from two lines into one clear statement describing alpha and production phases; New wording clarifies that database recreation is acceptable for alpha phase while production deployments will require proper migration handling | Concepts: what-changed, why-it-exists | Files: CLAUDE.md\n\n---\nDate: 11/17/2025, 3:42:03 PM\n\n---\n\n## Database Schema Modification Process and Worker Debugging Procedures\n*Source: claude-mem://observation/10386*\n\n**Documentation review revealed schema update workflow and worker troubleshooting commands for claude-mem plugin.**\n\nThe CLAUDE.md documentation file was reviewed, revealing critical operational procedures for the claude-mem plugin. The database schema modification process requires coordinated updates across the schema definition file and data access classes, with a known TODO item to implement proper migrations before production. Worker process management relies on pm2 with custom npm scripts for monitoring, restarting, and force-cleaning the worker. The local development cycle follows a build-and-sync pattern to test changes. Additionally, the documentation clarifies that smart-install.js serves as a dependency checker that precedes the context-hook rather than being a hook itself.\n\n---\nType: discovery | Facts: Schema modifications require updates in src/services/sqlite/schema.ts and SessionStore/SessionSearch classes; The plugin currently recreates database on schema changes, which is acceptable for alpha but needs proper migrations for production; Worker debugging uses pm2 commands including list, worker:logs, worker:restart, and delete claude-mem-worker for clean restart; Local testing workflow involves making changes in src/, then running npm run build && npm run sync-marketplace; smart-install.js is a pre-hook dependency checker that runs before context-hook via command chaining, not a hook itself | Concepts: how-it-works, pattern, gotcha | Files: CLAUDE.md\n\n---\nDate: 11/17/2025, 3:41:50 PM\n\n---\n\n## Issue 121 Documents SQLite Database Migration Bug in Plugin v6.0.5\n*Source: claude-mem://observation/10286*\n\n**Plugin v6.0.5 broke with missing discovery_tokens column in SQLite database schema**\n\nIssue 121 documents a critical bug introduced in plugin version 6.0.5 where the plugin fails to start due to a missing database column. The error trace shows that when the context-hook.js script attempts to prepare a SQL statement, it fails because the discovery_tokens column does not exist in the SQLite database schema. This appears to be a database migration that was not properly executed during the upgrade to version 6.0.5, causing the plugin to crash on startup and preventing users from loading the context display functionality.\n\n---\nType: discovery | Facts: Issue 121 titled \"6.0.5 - broke the plugin - looks like a db migration miss\" reports plugin failure; SqliteError occurs at Database.prepare() with message \"no such column: discovery_tokens\"; Error originates in context-hook.js at line 400:1864 within the thedotmack marketplace plugin; Plugin hook error prevents context display from loading successfully | Concepts: problem-solution, what-changed, gotcha\n\n---\nDate: 11/17/2025, 2:45:15 PM\n\n---\n\n## Hotfix Release Announced on GitHub Issue #121\n*Source: claude-mem://observation/10202*\n\n**Release notification posted to issue tracker informing users of v6.0.7 availability and upgrade instructions.**\n\nA comment was posted on GitHub issue #121 announcing the release of v6.0.7 hotfix to the users who reported the database migration error. The announcement includes a link to the GitHub Release page with full details, upgrade instructions for both fresh and existing installations, and acknowledgment of the users' detailed error reports. The comment explains that fresh installations will work correctly, and existing installations can either manually add the missing columns or delete the database to trigger recreation. By posting this directly on the issue, the notification reaches the original issue reporters and provides them with clear path-forward instructions. This closes the communication loop between the development team and users affected by the bug.\n\n---\nType: change | Facts: GitHub issue comment posted at 2025-11-17T18:47:53.434Z on issue #121.; Comment URL: https://github.com/thedotmack/claude-mem/issues/121#issuecomment-3543383965.; Comment announces v6.0.7 hotfix release with link to GitHub Release page.; Upgrade instructions provided for both fresh and existing installations.; Comment acknowledges user reports and thanks for detailed error logs.; Instructions direct users to either manually add columns or delete/recreate database.; Comment requests users to close issue or report if problems persist. | Concepts: what-changed, problem-solution\n\n---\nDate: 11/17/2025, 1:47:58 PM"}] \ No newline at end of file diff --git a/test-results/test-11-search-server-changes.json b/test-results/test-11-search-server-changes.json new file mode 100644 index 00000000..ea5c0a5f --- /dev/null +++ b/test-results/test-11-search-server-changes.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Unified search handler implements Chroma-first with FTS5 fallback on zero results\n*Source: claude-mem://observation/10757*\n\n**Lines 403-489 show current implementation attempts Chroma first, falls back to FTS5 when empty.**\n\nThe unified search handler in search-server.ts (lines 390-489) reveals the current implementation architecture. The handler first attempts Chroma semantic search when chromaClient is available, calling queryChroma with the query parameter at line 419. If Chroma throws an error, it catches at line 465 and falls through to FTS5. However, the problematic FTS5 fallback logic at line 470 triggers when all result arrays are empty, not just on errors. This contradicts the insight that FTS5 contains identical data to Chroma, making zero-result fallback pointless. Additionally, lines 476-483 call search methods (searchObservations, searchSessions, searchUserPrompts) with the query parameter without checking if it's undefined, which will cause failures when query is not provided. The handler needs modification to skip Chroma when query is undefined and only fall back to FTS5 on Chroma errors.\n\n---\nType: discovery | Facts: Line 403 checks `if (chromaClient)` to attempt Chroma semantic search first; Line 419 calls `queryChroma(query, 100, whereFilter)` with query parameter as required; Lines 465-467 catch Chroma errors and fall through to FTS5 fallback; Line 470 triggers FTS5 fallback when all result arrays have zero length; Lines 476-483 call SessionSearch methods with query parameter without checking if undefined; Hybrid search applies 90-day recency filter at lines 424-431 | Concepts: how-it-works, problem-solution, gotcha | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 11:50:29 PM\n\n---\n\n## Search Query Parameter Made Optional for Filter-Only Queries\n*Source: claude-mem://observation/10744*\n\n**Unified search tool now supports filter-only queries by making query parameter optional.**\n\nThe unified search tool was updated to support filter-only query patterns by making the 'query' parameter optional. Previously, the search tool required a natural language query string, but now users can perform searches using only metadata filters such as observation type, date ranges, concepts, or file paths. The parameter description was enhanced to explicitly indicate that the query is optional and should be omitted for filter-only queries. Additionally, the description was clarified to state that ChromaDB is used for semantic ranking when available, with FTS5 serving as a fallback when ChromaDB is unavailable, making the system's fallback behavior more transparent. This change increases the flexibility of the search interface and better aligns with use cases where users want to browse or filter by specific criteria without performing text-based search.\n\n---\nType: change | Facts: The 'query' parameter in the search tool's inputSchema changed from required to optional; File modified: /Users/alexnewman/Scripts/claude-mem/src/servers/search-server.ts; Updated description clarifies query is optional and can be omitted for filter-only queries; Description now explicitly states ChromaDB is used when available, FTS5 as fallback when unavailable; Change enables searching by filters (type, dateRange, concepts, files) without providing search text | Concepts: what-changed, how-it-works, pattern | Files: /Users/alexnewman/Scripts/claude-mem/src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 11:47:49 PM\n\n---\n\n## Search Tool Requires Query Parameter as Non-Optional String\n*Source: claude-mem://observation/10743*\n\n**The search tool schema defines query as mandatory string parameter, preventing filter-only queries through current interface.**\n\nThe search tool definition in src/servers/search-server.ts reveals that the query parameter is currently defined as a mandatory string using z.string(), which prevents filter-only queries from being submitted through the MCP interface. The tool is described as providing unified search across observations, sessions, and user prompts using hybrid semantic and full-text search, with ChromaDB as primary and SQLite FTS5 as fallback. While the schema includes optional filters like type (for document type filtering), the query parameter itself cannot be omitted. To support the newly identified filter-only query pattern where queries go directly to SQLite instead of ChromaDB, this schema will need modification to make the query parameter optional using z.string().optional(), allowing users to submit filter-only requests.\n\n---\nType: discovery | Facts: The search tool is defined at line 363 in src/servers/search-server.ts; The query parameter is defined as z.string() without optional modifier, making it mandatory; The query parameter description states it enables semantic ranking via ChromaDB with FTS5 fallback; The inputSchema includes optional type filter for observations, sessions, or prompts; The search tool provides index and full output format options with index as default | Concepts: how-it-works, problem-solution | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 11:47:33 PM\n\n---\n\n## Unified search handler fix requires five-step query routing logic\n*Source: claude-mem://observation/10739*\n\n**Route by query presence, error-based FTS5 fallback only, remove zero-results fallback check.**\n\nThe fix for the unified search handler requires restructuring the query routing logic into five distinct steps. First, check whether the query parameter exists at the top of the handler. If query is undefined, bypass Chroma entirely and invoke a new filter-only path in SessionSearch that performs direct SQLite filtering. If query exists, proceed with Chroma semantic search. The FTS5 fallback logic must change fundamentally - it should only trigger when Chroma throws an error (caught at line 465), not when Chroma successfully returns zero results. When Chroma returns zero results, that is the correct answer since FTS5 contains identical data and would also return zero. This requires removing the zero-results check from line 472's fallback condition, fixing the current incorrect fallback behavior.\n\n---\nType: decision | Facts: Step 1: Check if query parameter exists at beginning of unified search handler; Step 2: If query is undefined, skip Chroma and call new filter-only path in SessionSearch; Step 3: If query exists, attempt Chroma semantic search; Step 4: If Chroma throws error (line 465 catch block), fall back to FTS5; Step 5: If Chroma succeeds with zero results, accept zero as correct answer without FTS5 fallback; Line 472 condition must be modified to remove zero-results check | Concepts: problem-solution, how-it-works, pattern, trade-off | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 11:42:18 PM\n\n---\n\n## Chroma requires query text; FTS5 fallback logic is incorrect\n*Source: claude-mem://observation/10735*\n\n**Chroma cannot do filter-only queries, and FTS5 fallback on zero results is pointless.**\n\nTwo critical insights emerge about the search architecture. First, Chroma cannot perform filter-only queries without query text because it fundamentally operates on semantic search via vector embeddings. When query is undefined, the system must bypass Chroma entirely and proceed directly to SQLite structured filtering. Second, the current FTS5 fallback logic at line 472 is fundamentally flawed - it triggers when Chroma returns zero results. However, since FTS5 maintains a 1:1 copy of the SQLite data that Chroma also indexes, if Chroma returns zero results, FTS5 will also return zero results. FTS5 fallback should only activate when Chroma is unavailable or encounters an error, not when it successfully returns an empty result set.\n\n---\nType: discovery | Facts: Chroma vector database requires query text for semantic search operations; Filter-only queries must skip Chroma and use SQLite structured filtering directly; FTS5 fallback at line 472 triggers on zero results, not on Chroma errors; FTS5 contains 1:1 copy of SQLite data, so zero Chroma results means zero FTS5 results; FTS5 fallback should only activate when Chroma is unavailable or errors, not on empty results | Concepts: problem-solution, gotcha, how-it-works, why-it-exists | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 11:41:43 PM"}] \ No newline at end of file diff --git a/test-results/test-12-context-hook-changes.json b/test-results/test-12-context-hook-changes.json new file mode 100644 index 00000000..20e6b57d --- /dev/null +++ b/test-results/test-12-context-hook-changes.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Build and sync claude-mem plugin to marketplace location\n*Source: claude-mem://observation/10758*\n\n**Built all hooks and services, synced to marketplace directory, and installed dependencies successfully.**\n\nThe claude-mem plugin was fully built and deployed to the marketplace directory. The build process compiled all React components, bundled the worker service and search server, and built each individual hook. The build script used scripts/build-hooks.js to generate production-ready bundles in the plugin/scripts/ directory. After building, rsync transferred all 11781 files to the marketplace directory at ~/.claude/plugins/marketplaces/thedotmack/, removing the .git directory and .install-version file in the process. The sync command used --delete flag to ensure the marketplace directory perfectly mirrors the development directory. Finally, npm install ran in the marketplace directory to ensure all dependencies are available for the deployed plugin.\n\n---\nType: change | Facts: Built claude-mem version 6.0.9 including React viewer, worker service, search server, and all hooks; Worker service built to 1338.75 KB, search server to 335.14 KB; Synced 11781 files from development directory to ~/.claude/plugins/marketplaces/thedotmack/; All hooks built successfully: context-hook (38.29 KB), new-hook (32.14 KB), save-hook (32.49 KB), summary-hook (34.61 KB), cleanup-hook (31.38 KB), user-message-hook (2.24 KB); Dependencies auto-installed in marketplace location after sync | Concepts: what-changed, how-it-works | Files: scripts/build-hooks.js, package.json, plugin/scripts/worker-service.cjs, plugin/scripts/search-server.mjs, plugin/scripts/context-hook.js, plugin/scripts/new-hook.js, plugin/scripts/save-hook.js, plugin/scripts/summary-hook.js, plugin/scripts/cleanup-hook.js, plugin/scripts/user-message-hook.js, plugin/ui/viewer-bundle.js, plugin/ui/viewer.html\n\n---\nDate: 11/17/2025, 11:51:51 PM\n\n---\n\n## Search API crashes with \"Cannot read properties of undefined (reading 'replace')\" error\n*Source: claude-mem://observation/10705*\n\n**9 of 12 failed tests show identical JavaScript error accessing undefined property, 3 show no results.**\n\nFresh test results reveal a critical JavaScript error in the search API. Nine tests crash with \"Cannot read properties of undefined (reading 'replace')\", indicating that some code is attempting to call .replace() on an undefined value. This error affects three distinct query categories: file-specific change queries (tests 11-13), concept-based queries (tests 14-15), and type-filtered queries (tests 16-19), plus multi-parameter file-type combinations (test 28). The pattern suggests that when the search API processes queries with file parameters, concept parameters, or type filters, it encounters an undefined value where it expects a string. The remaining three failures (tests 05, 08, 21) return clean \"No results found\" messages without crashing, indicating they may be legitimate empty result sets or different search code paths that don't trigger the bug.\n\n---\nType: discovery | Facts: 9 tests fail with error \"Cannot read properties of undefined (reading 'replace')\"; Tests 11, 12, 13 fail with replace error on file-specific change queries; Tests 14, 15 fail with replace error on concept-based queries for patterns and gotchas; Tests 16, 17, 18, 19 fail with replace error on type-filtered queries for discoveries, bugfixes, features, decisions; Test 28 fails with replace error on file-type combination query; Test 05 returns \"No results found matching 'PM2 instead of direct process'\" without crashing; Test 08 returns \"No results found matching 'worker service debugging'\" without crashing; Test 21 returns \"No results found matching 'build and deploy'\" without crashing; The replace error suggests undefined variable being passed to a string replace operation; All file-specific queries trigger the replace error; All concept-based queries trigger the replace error; All type-filtered queries trigger the replace error | Concepts: problem-solution, gotcha, pattern | Files: test-results/test-05-pm2-decision.json, test-results/test-08-worker-debugging.json, test-results/test-11-search-server-changes.json, test-results/test-12-context-hook-changes.json, test-results/test-13-worker-service-changes.json, test-results/test-14-patterns.json, test-results/test-15-gotchas.json, test-results/test-16-discoveries.json, test-results/test-17-all-bugfixes.json, test-results/test-18-all-features.json, test-results/test-19-all-decisions.json, test-results/test-21-prompt-search.json, test-results/test-28-file-type-combo.json\n\n---\nDate: 11/17/2025, 10:04:43 PM\n\n---\n\n## Fresh test results reveal 12 failing tests with empty or no results\n*Source: claude-mem://observation/10704*\n\n**28 search API tests show 16 successes and 12 failures, all failures return empty or no results.**\n\nAfter clearing old logs and running fresh tests, a summary analysis reveals significant issues with the search API. Out of 28 tests, 12 are failing by returning empty results or no results at all. The failures appear to cluster around specific query types: PM2 decision search, worker debugging troubleshooting, file-specific change queries (search-server, context-hook, worker-service), concept-based queries (patterns, gotchas), type-filtered queries (discoveries, bugfixes, features, decisions), user prompt search, and multi-parameter combinations involving files and types. The successful tests (16 total) all returned exactly one result each and cover semantic queries, some decision queries, some troubleshooting queries, session search, dedicated endpoint tests, timeline queries, and some multi-parameter tests. This pattern suggests potential issues with certain search filters, concept matching, or type filtering functionality in the search API.\n\n---\nType: discovery | Facts: 16 tests returned SUCCESS with results: tests 01, 02, 03, 04, 06, 07, 09, 10, 20, 22, 23, 24, 25, 26, 27; 12 tests returned FAIL/EMPTY with no results: tests 05, 08, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 28; Test 05 pm2-decision query failed to return results; Test 08 worker-debugging query failed to return results; Test 11 search-server-changes query failed to return results; Test 12 context-hook-changes query failed to return results; Test 13 worker-service-changes query failed to return results; Test 14 patterns concept query failed to return results; Test 15 gotchas concept query failed to return results; Test 16 discoveries type filter query failed to return results; Test 17 all-bugfixes type filter query failed to return results; Test 18 all-features type filter query failed to return results; Test 19 all-decisions type filter query failed to return results; Test 21 prompt-search query failed to return results; Test 28 file-type-combo multi-parameter query failed to return results; All successful tests returned exactly 1 result each | Concepts: problem-solution, pattern, how-it-works | Files: test-results/test-01-worker-service-startup.json, test-results/test-02-sqlite-fts5-implementation.json, test-results/test-03-hook-lifecycle-flow.json, test-results/test-04-build-pipeline-process.json, test-results/test-05-pm2-decision.json, test-results/test-06-search-architecture-decision.json, test-results/test-07-mcp-dry-decision.json, test-results/test-08-worker-debugging.json, test-results/test-09-hook-timeout.json, test-results/test-10-database-migration.json, test-results/test-11-search-server-changes.json, test-results/test-12-context-hook-changes.json, test-results/test-13-worker-service-changes.json, test-results/test-14-patterns.json, test-results/test-15-gotchas.json, test-results/test-16-discoveries.json, test-results/test-17-all-bugfixes.json, test-results/test-18-all-features.json, test-results/test-19-all-decisions.json, test-results/test-20-session-search.json, test-results/test-21-prompt-search.json, test-results/test-22-decisions-endpoint.json, test-results/test-23-changes-endpoint.json, test-results/test-24-how-it-works-endpoint.json, test-results/test-25-contextualize-endpoint.json, test-results/test-26-timeline-around-observation.json, test-results/test-27-multi-param-combo.json, test-results/test-28-file-type-combo.json\n\n---\nDate: 11/17/2025, 10:04:28 PM\n\n---\n\n## Build and Deployment Cycle Completed\n*Source: claude-mem://observation/10689*\n\n**Successfully built all hooks, worker service, search server, synced to marketplace, and restarted worker.**\n\nThe complete build and deployment cycle executed successfully for claude-mem version 6.0.9. The build process compiled all components including the React viewer bundle with associated assets, the worker service (1.3 MB), search server (333 KB), and six hooks ranging from 2-38 KB each. After building, rsync synchronized 11,781 files to the marketplace plugin directory and ran npm install to ensure dependencies were up to date. The worker was then restarted to load the new code. This deployment includes all the newly implemented unified search API features with catch-all parameters, preparing the system for comprehensive testing of the search endpoints.\n\n---\nType: change | Facts: Build process compiled React viewer bundle and HTML template with font assets and icon files; Worker service built to 1337.16 KB at plugin/scripts/worker-service.cjs; Search server built to 332.92 KB at plugin/scripts/search-server.mjs; All hooks built: context-hook (38.29 KB), new-hook (32.14 KB), save-hook (32.49 KB), summary-hook (34.61 KB), cleanup-hook (31.38 KB), user-message-hook (2.24 KB); Rsync transferred 11781 files to ~/.claude/plugins/marketplaces/thedotmack/ with npm install executed; Build version 6.0.9 deployed successfully | Concepts: how-it-works, what-changed | Files: plugin/ui/viewer-bundle.js, plugin/ui/viewer.html, plugin/scripts/worker-service.cjs, plugin/scripts/search-server.mjs, plugin/scripts/context-hook.js, plugin/scripts/new-hook.js, plugin/scripts/save-hook.js, plugin/scripts/summary-hook.js, plugin/scripts/cleanup-hook.js, plugin/scripts/user-message-hook.js\n\n---\nDate: 11/17/2025, 9:48:29 PM\n\n---\n\n## Build and Deployment of Unified Search API\n*Source: claude-mem://observation/10682*\n\n**Successfully built all hooks, worker service, and search server, then synced to marketplace and restarted worker.**\n\nThe unified search API implementation was successfully built and deployed. The build process generated all necessary components including the worker service, search server, and various hooks, with the search server weighing in at 332.97 KB. The React viewer UI was also compiled with all required assets. After building, the entire project (11,781 files) was synced to the Claude marketplace plugins directory using rsync, followed by npm install to ensure all dependencies were properly installed. Finally, the worker service was restarted to activate the new unified search endpoints. This deployment marks the completion of the unified search API architecture with its six public-facing endpoints and backward-compatible granular routing.\n\n---\nType: change | Facts: Build process compiled 8 components: worker-service (1337.16 KB), search-server (332.97 KB), context-hook (38.29 KB), new-hook (32.14 KB), save-hook (32.49 KB), summary-hook (34.61 KB), cleanup-hook (31.38 KB), and user-message-hook (2.24 KB); React viewer built successfully with viewer-bundle.js, viewer.html, font assets, and 4 icon SVG files; Project synced to ~/.claude/plugins/marketplaces/thedotmack/ using rsync with 11,781 files transferred; npm install executed in marketplace directory to ensure dependencies are current; Worker service restarted to activate the newly deployed unified search API endpoints | Concepts: what-changed, how-it-works | Files: plugin/scripts/worker-service.cjs, plugin/scripts/search-server.mjs, plugin/scripts/context-hook.js, plugin/scripts/new-hook.js, plugin/scripts/save-hook.js, plugin/scripts/summary-hook.js, plugin/scripts/cleanup-hook.js, plugin/scripts/user-message-hook.js, plugin/ui/viewer-bundle.js, plugin/ui/viewer.html\n\n---\nDate: 11/17/2025, 9:43:18 PM"}] \ No newline at end of file diff --git a/test-results/test-13-worker-service-changes.json b/test-results/test-13-worker-service-changes.json new file mode 100644 index 00000000..3807d8c6 --- /dev/null +++ b/test-results/test-13-worker-service-changes.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Build and sync claude-mem plugin to marketplace location\n*Source: claude-mem://observation/10758*\n\n**Built all hooks and services, synced to marketplace directory, and installed dependencies successfully.**\n\nThe claude-mem plugin was fully built and deployed to the marketplace directory. The build process compiled all React components, bundled the worker service and search server, and built each individual hook. The build script used scripts/build-hooks.js to generate production-ready bundles in the plugin/scripts/ directory. After building, rsync transferred all 11781 files to the marketplace directory at ~/.claude/plugins/marketplaces/thedotmack/, removing the .git directory and .install-version file in the process. The sync command used --delete flag to ensure the marketplace directory perfectly mirrors the development directory. Finally, npm install ran in the marketplace directory to ensure all dependencies are available for the deployed plugin.\n\n---\nType: change | Facts: Built claude-mem version 6.0.9 including React viewer, worker service, search server, and all hooks; Worker service built to 1338.75 KB, search server to 335.14 KB; Synced 11781 files from development directory to ~/.claude/plugins/marketplaces/thedotmack/; All hooks built successfully: context-hook (38.29 KB), new-hook (32.14 KB), save-hook (32.49 KB), summary-hook (34.61 KB), cleanup-hook (31.38 KB), user-message-hook (2.24 KB); Dependencies auto-installed in marketplace location after sync | Concepts: what-changed, how-it-works | Files: scripts/build-hooks.js, package.json, plugin/scripts/worker-service.cjs, plugin/scripts/search-server.mjs, plugin/scripts/context-hook.js, plugin/scripts/new-hook.js, plugin/scripts/save-hook.js, plugin/scripts/summary-hook.js, plugin/scripts/cleanup-hook.js, plugin/scripts/user-message-hook.js, plugin/ui/viewer-bundle.js, plugin/ui/viewer.html\n\n---\nDate: 11/17/2025, 11:51:51 PM\n\n---\n\n## Search API crashes with \"Cannot read properties of undefined (reading 'replace')\" error\n*Source: claude-mem://observation/10705*\n\n**9 of 12 failed tests show identical JavaScript error accessing undefined property, 3 show no results.**\n\nFresh test results reveal a critical JavaScript error in the search API. Nine tests crash with \"Cannot read properties of undefined (reading 'replace')\", indicating that some code is attempting to call .replace() on an undefined value. This error affects three distinct query categories: file-specific change queries (tests 11-13), concept-based queries (tests 14-15), and type-filtered queries (tests 16-19), plus multi-parameter file-type combinations (test 28). The pattern suggests that when the search API processes queries with file parameters, concept parameters, or type filters, it encounters an undefined value where it expects a string. The remaining three failures (tests 05, 08, 21) return clean \"No results found\" messages without crashing, indicating they may be legitimate empty result sets or different search code paths that don't trigger the bug.\n\n---\nType: discovery | Facts: 9 tests fail with error \"Cannot read properties of undefined (reading 'replace')\"; Tests 11, 12, 13 fail with replace error on file-specific change queries; Tests 14, 15 fail with replace error on concept-based queries for patterns and gotchas; Tests 16, 17, 18, 19 fail with replace error on type-filtered queries for discoveries, bugfixes, features, decisions; Test 28 fails with replace error on file-type combination query; Test 05 returns \"No results found matching 'PM2 instead of direct process'\" without crashing; Test 08 returns \"No results found matching 'worker service debugging'\" without crashing; Test 21 returns \"No results found matching 'build and deploy'\" without crashing; The replace error suggests undefined variable being passed to a string replace operation; All file-specific queries trigger the replace error; All concept-based queries trigger the replace error; All type-filtered queries trigger the replace error | Concepts: problem-solution, gotcha, pattern | Files: test-results/test-05-pm2-decision.json, test-results/test-08-worker-debugging.json, test-results/test-11-search-server-changes.json, test-results/test-12-context-hook-changes.json, test-results/test-13-worker-service-changes.json, test-results/test-14-patterns.json, test-results/test-15-gotchas.json, test-results/test-16-discoveries.json, test-results/test-17-all-bugfixes.json, test-results/test-18-all-features.json, test-results/test-19-all-decisions.json, test-results/test-21-prompt-search.json, test-results/test-28-file-type-combo.json\n\n---\nDate: 11/17/2025, 10:04:43 PM\n\n---\n\n## Fresh test results reveal 12 failing tests with empty or no results\n*Source: claude-mem://observation/10704*\n\n**28 search API tests show 16 successes and 12 failures, all failures return empty or no results.**\n\nAfter clearing old logs and running fresh tests, a summary analysis reveals significant issues with the search API. Out of 28 tests, 12 are failing by returning empty results or no results at all. The failures appear to cluster around specific query types: PM2 decision search, worker debugging troubleshooting, file-specific change queries (search-server, context-hook, worker-service), concept-based queries (patterns, gotchas), type-filtered queries (discoveries, bugfixes, features, decisions), user prompt search, and multi-parameter combinations involving files and types. The successful tests (16 total) all returned exactly one result each and cover semantic queries, some decision queries, some troubleshooting queries, session search, dedicated endpoint tests, timeline queries, and some multi-parameter tests. This pattern suggests potential issues with certain search filters, concept matching, or type filtering functionality in the search API.\n\n---\nType: discovery | Facts: 16 tests returned SUCCESS with results: tests 01, 02, 03, 04, 06, 07, 09, 10, 20, 22, 23, 24, 25, 26, 27; 12 tests returned FAIL/EMPTY with no results: tests 05, 08, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 28; Test 05 pm2-decision query failed to return results; Test 08 worker-debugging query failed to return results; Test 11 search-server-changes query failed to return results; Test 12 context-hook-changes query failed to return results; Test 13 worker-service-changes query failed to return results; Test 14 patterns concept query failed to return results; Test 15 gotchas concept query failed to return results; Test 16 discoveries type filter query failed to return results; Test 17 all-bugfixes type filter query failed to return results; Test 18 all-features type filter query failed to return results; Test 19 all-decisions type filter query failed to return results; Test 21 prompt-search query failed to return results; Test 28 file-type-combo multi-parameter query failed to return results; All successful tests returned exactly 1 result each | Concepts: problem-solution, pattern, how-it-works | Files: test-results/test-01-worker-service-startup.json, test-results/test-02-sqlite-fts5-implementation.json, test-results/test-03-hook-lifecycle-flow.json, test-results/test-04-build-pipeline-process.json, test-results/test-05-pm2-decision.json, test-results/test-06-search-architecture-decision.json, test-results/test-07-mcp-dry-decision.json, test-results/test-08-worker-debugging.json, test-results/test-09-hook-timeout.json, test-results/test-10-database-migration.json, test-results/test-11-search-server-changes.json, test-results/test-12-context-hook-changes.json, test-results/test-13-worker-service-changes.json, test-results/test-14-patterns.json, test-results/test-15-gotchas.json, test-results/test-16-discoveries.json, test-results/test-17-all-bugfixes.json, test-results/test-18-all-features.json, test-results/test-19-all-decisions.json, test-results/test-20-session-search.json, test-results/test-21-prompt-search.json, test-results/test-22-decisions-endpoint.json, test-results/test-23-changes-endpoint.json, test-results/test-24-how-it-works-endpoint.json, test-results/test-25-contextualize-endpoint.json, test-results/test-26-timeline-around-observation.json, test-results/test-27-multi-param-combo.json, test-results/test-28-file-type-combo.json\n\n---\nDate: 11/17/2025, 10:04:28 PM\n\n---\n\n## Search Results Return Structured Observation Content with Rich Metadata\n*Source: claude-mem://observation/10695*\n\n**Worker service query returned six observations with complete narratives, facts, concepts, and source links**\n\nExamination of test-01-worker-service-startup.json reveals the structure and quality of search API responses. The worker service startup query successfully retrieved six relevant observations demonstrating that FTS5 keyword search provides meaningful results. Each observation includes comprehensive metadata: title, subtitle (one-line summary), full narrative text explaining the context, structured facts list with specific details, concept tags (what-changed, how-it-works, problem-solution, gotcha), associated file paths, creation dates, and observation type classification. Results are formatted with source links using the claude-mem://observation/ID format for easy reference. The retrieved observations span multiple aspects of worker service startup including port file handling migration to plugin data directory, getPackageRoot path resolution dependencies, comprehensive production failure analysis documenting 8 critical issues causing 100% failure rate, and ChromaSync initialization timing problems. The diversity of observation types and relevance to the search query demonstrates the search system's ability to provide rich, contextual results for SessionStart injection.\n\n---\nType: discovery | Facts: Search API returns observations with title, subtitle, full narrative, structured facts list, concept tags, file paths, creation dates, and observation type; Results tagged with source links using claude-mem://observation/ID format for reference; Worker service startup query retrieved six relevant observations spanning October 18 to November 17, 2025; Retrieved observations include diverse types (change, discovery, bugfix) covering port file handling, getPackageRoot issues, production failures, and ChromaSync initialization; Test result format stores array of observation objects with type and text fields containing formatted markdown content | Concepts: how-it-works, pattern | Files: test-results/test-05-pm2-decision.json, test-results/test-01-worker-service-startup.json\n\n---\nDate: 11/17/2025, 9:52:44 PM\n\n---\n\n## Build and Deployment Cycle Completed\n*Source: claude-mem://observation/10689*\n\n**Successfully built all hooks, worker service, search server, synced to marketplace, and restarted worker.**\n\nThe complete build and deployment cycle executed successfully for claude-mem version 6.0.9. The build process compiled all components including the React viewer bundle with associated assets, the worker service (1.3 MB), search server (333 KB), and six hooks ranging from 2-38 KB each. After building, rsync synchronized 11,781 files to the marketplace plugin directory and ran npm install to ensure dependencies were up to date. The worker was then restarted to load the new code. This deployment includes all the newly implemented unified search API features with catch-all parameters, preparing the system for comprehensive testing of the search endpoints.\n\n---\nType: change | Facts: Build process compiled React viewer bundle and HTML template with font assets and icon files; Worker service built to 1337.16 KB at plugin/scripts/worker-service.cjs; Search server built to 332.92 KB at plugin/scripts/search-server.mjs; All hooks built: context-hook (38.29 KB), new-hook (32.14 KB), save-hook (32.49 KB), summary-hook (34.61 KB), cleanup-hook (31.38 KB), user-message-hook (2.24 KB); Rsync transferred 11781 files to ~/.claude/plugins/marketplaces/thedotmack/ with npm install executed; Build version 6.0.9 deployed successfully | Concepts: how-it-works, what-changed | Files: plugin/ui/viewer-bundle.js, plugin/ui/viewer.html, plugin/scripts/worker-service.cjs, plugin/scripts/search-server.mjs, plugin/scripts/context-hook.js, plugin/scripts/new-hook.js, plugin/scripts/save-hook.js, plugin/scripts/summary-hook.js, plugin/scripts/cleanup-hook.js, plugin/scripts/user-message-hook.js\n\n---\nDate: 11/17/2025, 9:48:29 PM"}] \ No newline at end of file diff --git a/test-results/test-14-patterns.json b/test-results/test-14-patterns.json new file mode 100644 index 00000000..fa0406c6 --- /dev/null +++ b/test-results/test-14-patterns.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Add filter-only query path to searchUserPrompts method\n*Source: claude-mem://observation/10755*\n\n**Method accepts undefined query and handles dual-path logic with separate parameter arrays for clarity.**\n\nThe searchUserPrompts method has been enhanced with filter-only query support, completing the pattern established in searchObservations and searchSessions. The method signature now accepts optional query parameter. The implementation builds base filter conditions once for project and date range filters, then diverges into two paths. The filter-only path (when query is undefined) validates that at least some filters exist, then queries the user_prompts table directly with a WHERE clause, joining sdk_sessions for project filtering. The FTS5 path rebuilds filter conditions into a separate ftsParams array to avoid parameter ordering conflicts between the two paths. This dual-path approach enables both semantic/keyword search via FTS5 and pure metadata filtering via direct SQLite queries, completing the architectural pattern across all three search methods.\n\n---\nType: feature | Facts: searchUserPrompts signature changed to accept `query: string | undefined` at line 541; Filter conditions built once and shared between filter-only and FTS5 paths at lines 546-563; Filter-only path at lines 566-588 validates filters exist and queries user_prompts table directly; FTS5 path at lines 591-616 rebuilds filter conditions with separate ftsParams array to avoid parameter conflicts; Filter-only path joins sdk_sessions table for project filtering support; Documentation updated to clarify dual-mode operation matching searchObservations and searchSessions patterns | Concepts: what-changed, how-it-works, pattern, gotcha | Files: src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:50:08 PM\n\n---\n\n## searchUserPrompts Uses Custom ORDER BY Logic Instead of buildOrderClause\n*Source: claude-mem://observation/10754*\n\n**Unlike searchObservations, searchUserPrompts implements inline ORDER BY construction with hard-coded table aliases rather than using buildOrderClause helper.**\n\nThe searchUserPrompts method implements its ORDER BY logic inline rather than using the buildOrderClause helper method used by searchObservations and searchSessions. Lines 619-623 show a ternary expression that constructs the ORDER BY clause with hard-coded references to user_prompts_fts.rank for relevance ordering and up.created_at_epoch for date-based sorting. The main SQL query joins three tables: user_prompts, user_prompts_fts, and sdk_sessions, with the sdk_sessions join enabling project-based filtering. When implementing the filter-only path for this method, the code will need to construct a query that joins only user_prompts and sdk_sessions (skipping user_prompts_fts), and the ORDER BY logic will need to handle the absence of FTS5 rank data, defaulting to date-based ordering when query is undefined.\n\n---\nType: discovery | Facts: searchUserPrompts constructs ORDER BY clause inline at lines 619-623 instead of calling buildOrderClause; The inline ORDER BY uses hard-coded table alias user_prompts_fts.rank for relevance ordering; Date-based ordering uses up.created_at_epoch for both ascending and descending sorts; The SQL query joins user_prompts, user_prompts_fts, and sdk_sessions tables; searchUserPrompts will need filter-only path to query user_prompts without user_prompts_fts JOIN when query is undefined | Concepts: how-it-works, pattern | Files: src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:50:07 PM\n\n---\n\n## User Prompts Search Joins Three Tables for Filtering\n*Source: claude-mem://observation/10753*\n\n**searchUserPrompts method joins user_prompts, user_prompts_fts, and sdk_sessions tables to enable project-based filtering.**\n\nThe searchUserPrompts method demonstrates a more complex query structure than searchObservations or searchSessions due to the need for project filtering. Since user_prompts don't directly store project information, the method joins with the sdk_sessions table using claude_session_id as the key, which allows filtering by the project field from sdk_sessions. The query structure follows the same FTS5 pattern seen in other search methods: it joins the base table (user_prompts) with its FTS5 virtual table (user_prompts_fts) via rowid, uses the MATCH operator for full-text search, and orders by rank for relevance-based results. The default limit is set to 20 rather than 50, suggesting user prompts are typically returned in smaller batches. Like the other search methods, rank values are normalized to a 0-1 score scale where higher values indicate better matches, inverting FTS5's native lower-is-better ranking.\n\n---\nType: discovery | Facts: searchUserPrompts method joins three tables: user_prompts, user_prompts_fts, and sdk_sessions; sdk_sessions table joined via claude_session_id to enable project filtering on user prompts; user_prompts table aliased as 'up' and uses MATCH operator on user_prompts_fts virtual table; Default limit for user prompts is 20, compared to 50 for observations and sessions; Method supports dateRange filtering using created_at_epoch column from user_prompts table; Rank normalization converts FTS5 rank scores to 0-1 scale where higher values indicate better matches | Concepts: how-it-works, pattern | Files: /Users/alexnewman/Scripts/claude-mem/src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:49:42 PM\n\n---\n\n## Add filter-only query path to searchSessions method\n*Source: claude-mem://observation/10751*\n\n**Method now accepts undefined query and queries session_summaries table directly for metadata-only filtering.**\n\nThe searchSessions method in SessionSearch.ts has been enhanced to support filter-only queries without query text. The method signature now accepts `query: string | undefined`, enabling two distinct code paths. When query is undefined, a new filter-only path (lines 331-352) bypasses FTS5 entirely and queries the session_summaries table directly using metadata filters like project or date range. This path validates that at least some filters exist, throwing an error if both query and filters are missing. When query text is provided, the existing FTS5 search path executes as before. This dual-mode approach allows the system to handle both semantic/keyword search and pure metadata filtering, addressing the architectural requirement that filter-only queries skip text search mechanisms.\n\n---\nType: feature | Facts: searchSessions signature changed to accept `query: string | undefined` at line 327; New filter-only path added at lines 331-352 that bypasses FTS5 when query is undefined; Filter-only path throws error if neither query nor filters provided at line 336; Direct SQLite query on session_summaries table uses WHERE clause built from metadata filters; FTS5 path at line 355 only executes when query text exists; Documentation updated to clarify dual-mode operation: FTS5 fallback vs filter-only direct query | Concepts: what-changed, how-it-works, pattern | Files: src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:49:23 PM\n\n---\n\n## SessionSearch Methods Use FTS5 for Full-Text Search\n*Source: claude-mem://observation/10750*\n\n**Observed searchSessions method implementation showing FTS5 virtual table usage with rank-based relevance scoring.**\n\nThe SessionSearch.searchSessions method demonstrates the FTS5 full-text search implementation for session summaries. The method builds a SQL query that joins the session_summaries table with its corresponding session_summaries_fts virtual table, using the MATCH operator for full-text search. The query construction includes filter support (excluding type filters which aren't applicable to sessions), and adjusts column names to account for session_summaries using files_edited instead of files_modified. When orderBy is set to 'relevance', the query orders by session_summaries_fts.rank in ascending order, where lower rank values indicate better matches (FTS5 convention). The method then normalizes these ranks into 0-1 scores where higher is better. This pattern is consistent with searchObservations and searchUserPrompts methods, all using the same FTS5-based approach as a fallback when ChromaDB semantic search is unavailable.\n\n---\nType: discovery | Facts: searchSessions method in SessionSearch.ts performs FTS5 full-text search on session summaries; Method queries session_summaries_fts virtual table and joins with session_summaries table; FTS5 relevance ranking uses rank ASC ordering where lower rank values indicate better matches; Method supports three order modes: relevance (FTS5 rank), date_asc, and date_desc; Files_modified column name is replaced with files_edited for session_summaries table compatibility; Method uses escapeFTS5_fallback_when_chroma_unavailable to sanitize query input | Concepts: how-it-works, pattern | Files: /Users/alexnewman/Scripts/claude-mem/src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:49:09 PM"}] \ No newline at end of file diff --git a/test-results/test-15-gotchas.json b/test-results/test-15-gotchas.json new file mode 100644 index 00000000..1d5f1b23 --- /dev/null +++ b/test-results/test-15-gotchas.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Unified search handler implements Chroma-first with FTS5 fallback on zero results\n*Source: claude-mem://observation/10757*\n\n**Lines 403-489 show current implementation attempts Chroma first, falls back to FTS5 when empty.**\n\nThe unified search handler in search-server.ts (lines 390-489) reveals the current implementation architecture. The handler first attempts Chroma semantic search when chromaClient is available, calling queryChroma with the query parameter at line 419. If Chroma throws an error, it catches at line 465 and falls through to FTS5. However, the problematic FTS5 fallback logic at line 470 triggers when all result arrays are empty, not just on errors. This contradicts the insight that FTS5 contains identical data to Chroma, making zero-result fallback pointless. Additionally, lines 476-483 call search methods (searchObservations, searchSessions, searchUserPrompts) with the query parameter without checking if it's undefined, which will cause failures when query is not provided. The handler needs modification to skip Chroma when query is undefined and only fall back to FTS5 on Chroma errors.\n\n---\nType: discovery | Facts: Line 403 checks `if (chromaClient)` to attempt Chroma semantic search first; Line 419 calls `queryChroma(query, 100, whereFilter)` with query parameter as required; Lines 465-467 catch Chroma errors and fall through to FTS5 fallback; Line 470 triggers FTS5 fallback when all result arrays have zero length; Lines 476-483 call SessionSearch methods with query parameter without checking if undefined; Hybrid search applies 90-day recency filter at lines 424-431 | Concepts: how-it-works, problem-solution, gotcha | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 11:50:29 PM\n\n---\n\n## Fixed Incorrect Parameter Array in searchUserPrompts FTS5 Path\n*Source: claude-mem://observation/10756*\n\n**Changed params to ftsParams in FTS5 query execution to use correct parameter array with ftsQuery.**\n\nA parameter array mismatch bug was fixed in the searchUserPrompts method's FTS5 code path. The method creates two separate parameter arrays: 'params' for the filter-only path and 'ftsParams' for the FTS5 path. The FTS5 path correctly initialized ftsParams with the escaped query and rebuilt all filter conditions into this new array, but then incorrectly used the 'params' array when executing the SQL query. This would have caused a parameter binding mismatch where the SQL query expected parameters in one order (starting with ftsQuery) but received them in a different order or with missing values. The fix ensures that when the FTS5 path is taken (query text provided), the query uses ftsParams.push() for limit/offset and passes ftsParams to the db.prepare().all() call, maintaining correct parameter alignment throughout the FTS5 execution path.\n\n---\nType: bugfix | Facts: File modified: /Users/alexnewman/Scripts/claude-mem/src/services/sqlite/SessionSearch.ts; Bug was in searchUserPrompts method's FTS5 execution path using wrong parameter array; Changed params.push(limit, offset) to ftsParams.push(limit, offset); Changed this.db.prepare(sql).all(...params) to this.db.prepare(sql).all(...ftsParams); The ftsParams array was created separately for FTS5 path but not being used in query execution; Bug would have caused SQL parameter binding mismatch in FTS5 search path for user prompts | Concepts: problem-solution, what-changed, gotcha | Files: /Users/alexnewman/Scripts/claude-mem/src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:50:17 PM\n\n---\n\n## Add filter-only query path to searchUserPrompts method\n*Source: claude-mem://observation/10755*\n\n**Method accepts undefined query and handles dual-path logic with separate parameter arrays for clarity.**\n\nThe searchUserPrompts method has been enhanced with filter-only query support, completing the pattern established in searchObservations and searchSessions. The method signature now accepts optional query parameter. The implementation builds base filter conditions once for project and date range filters, then diverges into two paths. The filter-only path (when query is undefined) validates that at least some filters exist, then queries the user_prompts table directly with a WHERE clause, joining sdk_sessions for project filtering. The FTS5 path rebuilds filter conditions into a separate ftsParams array to avoid parameter ordering conflicts between the two paths. This dual-path approach enables both semantic/keyword search via FTS5 and pure metadata filtering via direct SQLite queries, completing the architectural pattern across all three search methods.\n\n---\nType: feature | Facts: searchUserPrompts signature changed to accept `query: string | undefined` at line 541; Filter conditions built once and shared between filter-only and FTS5 paths at lines 546-563; Filter-only path at lines 566-588 validates filters exist and queries user_prompts table directly; FTS5 path at lines 591-616 rebuilds filter conditions with separate ftsParams array to avoid parameter conflicts; Filter-only path joins sdk_sessions table for project filtering support; Documentation updated to clarify dual-mode operation matching searchObservations and searchSessions patterns | Concepts: what-changed, how-it-works, pattern, gotcha | Files: src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:50:08 PM\n\n---\n\n## Line 472 Incorrectly Falls Back to FTS5 on Empty ChromaDB Results\n*Source: claude-mem://observation/10740*\n\n**The condition checks for zero results instead of ChromaDB failure, causing inappropriate FTS5 fallback on valid empty responses.**\n\nLine 472 in the current code contains the bug causing inappropriate FTS5 fallback behavior. The condition `if (observations.length === 0 && sessions.length === 0 && prompts.length === 0)` checks whether ChromaDB returned empty result arrays, but this check cannot distinguish between two scenarios: ChromaDB erroring (caught at line 465) versus ChromaDB successfully returning no matching results. The catch block at line 465 handles ChromaDB errors and execution falls through to line 472, where the empty arrays condition triggers FTS5 fallback. However, when ChromaDB succeeds but finds no semantic matches, it also returns empty arrays, incorrectly triggering the same FTS5 fallback. The solution is to introduce a chromaFailed boolean flag that is set to true only within the catch block when ChromaDB actually errors. Line 472 should then check this flag instead of checking array lengths, ensuring FTS5 fallback only occurs on actual ChromaDB failures, not on valid empty results.\n\n---\nType: discovery | Facts: Line 472 contains condition checking if observations, sessions, and prompts arrays are all empty; The catch block at line 465 handles ChromaDB errors and falls through to line 472; Line 472's zero-length check triggers FTS5 fallback both when ChromaDB errors AND when ChromaDB successfully returns empty results; ChromaDB returning zero results is a valid answer that should not trigger FTS5 fallback; The fix requires introducing a chromaFailed flag set only in the catch block, not on successful empty results; Line 472 condition should check the chromaFailed flag instead of checking result array lengths | Concepts: problem-solution, gotcha, how-it-works\n\n---\nDate: 11/17/2025, 11:42:30 PM\n\n---\n\n## Chroma requires query text; FTS5 fallback logic is incorrect\n*Source: claude-mem://observation/10735*\n\n**Chroma cannot do filter-only queries, and FTS5 fallback on zero results is pointless.**\n\nTwo critical insights emerge about the search architecture. First, Chroma cannot perform filter-only queries without query text because it fundamentally operates on semantic search via vector embeddings. When query is undefined, the system must bypass Chroma entirely and proceed directly to SQLite structured filtering. Second, the current FTS5 fallback logic at line 472 is fundamentally flawed - it triggers when Chroma returns zero results. However, since FTS5 maintains a 1:1 copy of the SQLite data that Chroma also indexes, if Chroma returns zero results, FTS5 will also return zero results. FTS5 fallback should only activate when Chroma is unavailable or encounters an error, not when it successfully returns an empty result set.\n\n---\nType: discovery | Facts: Chroma vector database requires query text for semantic search operations; Filter-only queries must skip Chroma and use SQLite structured filtering directly; FTS5 fallback at line 472 triggers on zero results, not on Chroma errors; FTS5 contains 1:1 copy of SQLite data, so zero Chroma results means zero FTS5 results; FTS5 fallback should only activate when Chroma is unavailable or errors, not on empty results | Concepts: problem-solution, gotcha, how-it-works, why-it-exists | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 11:41:43 PM"}] \ No newline at end of file diff --git a/test-results/test-16-discoveries.json b/test-results/test-16-discoveries.json new file mode 100644 index 00000000..a73d5f90 --- /dev/null +++ b/test-results/test-16-discoveries.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Finalized TOMORROW.md with consolidated priorities and success criteria\n*Source: claude-mem://observation/2571*\n\n**Updated focus areas and success criteria to reflect settings merge, UI porting, subscription setup, and landing page launch.**\n\nThe TOMORROW.md file was finalized with four consolidated priorities that align with the original request. Focus areas were reorganized from documentation-heavy tasks to feature-delivery focused work: (1) merging the settings branch and applying the SessionStart hotfix, (2) porting the v3.0 memory-stream UI to v4.0, (3) setting up the $10/month subscription tier, and (4) launching the landing page. The file now includes a key observation that Claude-Mem successfully retained critical architectural context (v4.3.1 SessionStart hotfix, recent changes) even after a `/clear` command, validating the system's persistent memory capabilities.\n\n---\nType: change | Facts: Priority 1 for tomorrow: merge settings branch with SessionStart hotfix; Priority 2: integrate v3.0 memory-stream UI with v4.0 worker service; Priority 3: design and implement $10/month subscription system for web access; Priority 4: complete and deploy landing page from ~/Scripts/claude-mem-4-lp/; System demonstrated persistent memory across session boundaries after /clear command | Concepts: what-changed, discovery | Files: /Users/alexnewman/Scripts/claude-mem/private/TOMORROW.md\n\n---\nDate: 10/26/2025, 12:39:42 AM\n\n---\n\n## Corrected database location documentation\n*Source: claude-mem://observation/2127*\n\n**Updated database.md to reflect actual implementation after README claim validation.**\n\nDuring README validation against the codebase, a discrepancy was discovered: the README claimed the database was moved to the plugin directory in v4.0.0+, but the actual implementation continues using ~/.claude-mem/. The database.md documentation was corrected to reflect the actual current implementation location while noting the discrepancy with the README claim. This is part of the validation process to ensure documentation accuracy.\n\n---\nType: change | Facts: database.md updated: database location claim in README contradicted actual implementation; README claimed v4.0.0+ moved database to ${CLAUDE_PLUGIN_ROOT}/data/claude-mem.db; Actual implementation still uses ~/.claude-mem/claude-mem.db; Documentation now shows current location with note about README claim discrepancy | Concepts: discovery, what-changed | Files: docs/architecture/database.md\n\n---\nDate: 10/23/2025, 11:20:41 PM\n\n---\n\n## Evaluation Data Integration Verified - No Code Changes Required\n*Source: claude-mem://observation/2058*\n\n**MCP tool and API route working correctly; system fully integrated with Kipu patient evaluation data**\n\nAfter testing both the MCP tool and underlying REST API, the user discovered that the evaluation data integration is already working correctly. The GetPatientsPatientEvaluations tool successfully retrieves patient evaluation records from Kipu, and the API route properly handles the MCP response. The earlier empty responses during testing were likely due to testing methodology rather than system defects. The user documented this finding in EVALUATION_DATA_FIX_PLAN.md, clarifying that if the UI shows no data, the issue is likely invalid patient IDs, missing casefile format, or patients without evaluations rather than system misconfiguration. A working test patient ID (7993:e772aaad-3267-4903-be54-333cee663fbd) was identified for UI validation.\n\n---\nType: decision | Facts: MCP tool GetPatientsPatientEvaluations returns structured evaluation data successfully; API route /api/patient-qa/patient-evaluations/[patientId] correctly extracts and returns evaluations; Response structure: success boolean, evaluations array with id, name, enabled, patient_process_id, timestamps; Test patient 7993:e772aaad-3267-4903-be54-333cee663fbd has 3 evaluations (1 completed, 2 open); No code modifications needed; system already correctly configured and functional | Concepts: how-it-works, discovery, why-it-exists | Files: /Users/alexnewman/Scripts/clean-kit/EVALUATION_DATA_FIX_PLAN.md\n\n---\nDate: 10/23/2025, 9:48:06 PM\n\n---\n\n## Git Pull in Plugin Directory\n*Source: claude-mem://observation/1342*\n\n**Executed git pull in plugin marketplace directory; no output returned**\n\nExecuted a git pull command in a different directory (~/.claude/plugins/marketplaces/thedotmack/). This appears to be unrelated to the session validation fixes being made in the claude-mem project. The command returned no output, which typically indicates either the repository is already up to date or the command executed without standard output. This may indicate a context switch or separate task being performed.\n\n---\nType: change | Facts: Command executed: cd ~/.claude/plugins/marketplaces/thedotmack/ && git pull; Directory: ~/.claude/plugins/marketplaces/thedotmack/; No output returned from git pull; This appears to be a different project/directory from the claude-mem session fixes | Concepts: discovery\n\n---\nDate: 10/21/2025, 9:44:47 PM\n\n---\n\n## Test search for \"SessionStore.ts\" file with limit=3 returned no results\n*Source: claude-mem://observation/1071*\n\n**Test query for SessionStore.ts file references with limit 3 returned empty, consistent with empty database state.**\n\nThe second test search was performed using find_by_file with a limit of 3 for \"SessionStore.ts\". The query returned no results, which is again expected given the empty database. The critical aspect of this test is that the tool executed successfully and accepted the limit parameter. The fix for the findByFile method to respect limit/offset is working - the tool is accepting and processing the pagination parameters correctly, which proves the critical bug has been addressed. The empty result is due to the empty database state, not a tool malfunction.\n\n---\nType: discovery | Facts: Tool: find_by_file (MCP plugin); File path: \"SessionStore.ts\"; Limit: 3; Output: Empty (no observations found); Tool executed successfully without errors, confirming deployment is working | Concepts: discovery, how-it-works\n\n---\nDate: 10/21/2025, 6:39:30 PM"}] \ No newline at end of file diff --git a/test-results/test-17-all-bugfixes.json b/test-results/test-17-all-bugfixes.json new file mode 100644 index 00000000..8982281c --- /dev/null +++ b/test-results/test-17-all-bugfixes.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Fixed Incorrect Parameter Array in searchUserPrompts FTS5 Path\n*Source: claude-mem://observation/10756*\n\n**Changed params to ftsParams in FTS5 query execution to use correct parameter array with ftsQuery.**\n\nA parameter array mismatch bug was fixed in the searchUserPrompts method's FTS5 code path. The method creates two separate parameter arrays: 'params' for the filter-only path and 'ftsParams' for the FTS5 path. The FTS5 path correctly initialized ftsParams with the escaped query and rebuilt all filter conditions into this new array, but then incorrectly used the 'params' array when executing the SQL query. This would have caused a parameter binding mismatch where the SQL query expected parameters in one order (starting with ftsQuery) but received them in a different order or with missing values. The fix ensures that when the FTS5 path is taken (query text provided), the query uses ftsParams.push() for limit/offset and passes ftsParams to the db.prepare().all() call, maintaining correct parameter alignment throughout the FTS5 execution path.\n\n---\nType: bugfix | Facts: File modified: /Users/alexnewman/Scripts/claude-mem/src/services/sqlite/SessionSearch.ts; Bug was in searchUserPrompts method's FTS5 execution path using wrong parameter array; Changed params.push(limit, offset) to ftsParams.push(limit, offset); Changed this.db.prepare(sql).all(...params) to this.db.prepare(sql).all(...ftsParams); The ftsParams array was created separately for FTS5 path but not being used in query execution; Bug would have caused SQL parameter binding mismatch in FTS5 search path for user prompts | Concepts: problem-solution, what-changed, gotcha | Files: /Users/alexnewman/Scripts/claude-mem/src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:50:17 PM\n\n---\n\n## Diagnosing undefined replace() error in search endpoint\n*Source: claude-mem://observation/10709*\n\n**Sequential thinking initiated to locate source of undefined variable causing replace() method failure in search-server.ts.**\n\nA systematic debugging approach using sequential thinking was initiated to diagnose and fix a runtime error in the search functionality. The error occurs when the replace() method is called on an undefined variable within the search endpoint handler in search-server.ts. Rather than applying a null check workaround, the investigation aims to identify the root cause of why the variable is undefined in the first place. This represents the first thought in a planned 10-step sequential analysis to properly resolve the issue.\n\n---\nType: bugfix | Facts: Error message indicates \"Cannot read properties of undefined (reading 'replace')\" in search code; Sequential thinking process started with thought 1 of 10 planned thoughts; Investigation focuses on query processing in search-server.ts file; The replace() method is being called on an undefined variable in the search endpoint handler; Working directory is /Users/alexnewman/Scripts/claude-mem | Concepts: problem-solution, how-it-works, pattern\n\n---\nDate: 11/17/2025, 10:06:23 PM\n\n---\n\n## Patterns Concept Query Failing with Undefined Replace Error\n*Source: claude-mem://observation/10698*\n\n**Test 14 concept-based query for patterns returns search failure with undefined replace error**\n\nThe concept-based query test for patterns revealed a runtime error in the search API. When querying /api/search with concepts=pattern parameter, the server returns \"Cannot read properties of undefined (reading 'replace')\" instead of observation results. This error pattern typically indicates that a string manipulation operation (replace) is being called on a null or undefined value, likely during query parameter processing or result formatting in search-server.ts. The failure occurs specifically with concept-based filtering, suggesting the concepts parameter handling code path has a bug where an expected string value is missing or undefined. This is a critical issue as concept-based queries are essential for retrieving observations by knowledge category (pattern, gotcha, trade-off, etc.).\n\n---\nType: bugfix | Facts: Test query /api/search?type=observations&concepts=pattern&format=full&limit=5&orderBy=date_desc fails with error \"Cannot read properties of undefined (reading 'replace')\"; Error suggests null or undefined value being passed to string replace operation in search-server.ts; Test file test-results/test-14-patterns.json contains error response instead of observation results | Concepts: problem-solution, gotcha | Files: test-results/test-14-patterns.json\n\n---\nDate: 11/17/2025, 9:53:47 PM\n\n---\n\n## Chroma Internal Error Detection During Testing\n*Source: claude-mem://observation/10669*\n\n**Seven Chroma query failures detected with \"Error finding id\" internal errors requiring investigation despite test suite completion.**\n\nWhile the search test suite reported successful completion of all 28 queries, worker logs reveal that 7 Chroma semantic search queries failed with internal errors. The error pattern indicates Chroma's MCP tool is encountering an \"Error finding id\" issue when querying the 'cm__claude-mem' collection. This manifests as unparseable responses where Chroma returns error text instead of JSON, causing the search server's JSON.parse() to fail. The specific error \"Error executing plan: Internal error: Error finding id\" suggests a data integrity issue within the Chroma vector database, possibly corrupted document IDs or missing metadata. Despite these failures, the search system appears to have gracefully degraded - tests completed and likely fell back to non-semantic results. This issue needs investigation to determine if certain documents have malformed IDs, if the collection needs rebuilding, or if there's a deeper compatibility issue between the Chroma MCP server and the current data schema.\n\n---\nType: bugfix | Facts: Seven instances of \"Failed to parse Chroma response as JSON\" errors found in worker logs; Chroma error message shows: \"Error executing tool chroma_query_documents: Failed to query documents from collection 'cm__claude-mem': Error executing plan: Internal error: Error finding id\"; Errors occurred during test suite execution despite all 28 tests reporting as complete; JSON parsing fails because Chroma returns error text starting with \"Error exec\" instead of valid JSON; Test suite continued execution and completed successfully despite these internal Chroma failures | Concepts: problem-solution, gotcha\n\n---\nDate: 11/17/2025, 9:38:06 PM\n\n---\n\n## Chroma Semantic Search Fix Validated\n*Source: claude-mem://observation/10667*\n\n**Chroma integration now successfully returns 92 semantic matches for worker service query after fixing response parsing.**\n\nThe Chroma semantic search integration was validated as working correctly following the earlier fix for response parsing. A test query searching for \"worker service\" within observations successfully triggered Chroma's semantic search, which identified 92 semantically relevant matches from the vector database. The system correctly limited results to the top 2 matches as requested. The absence of parsing errors in the logs confirms that the fix for handling Chroma's response format is working properly. Both returned observations are contextually relevant to worker service topics - one about build and restart workflows, another about testing phases. This validation confirms that the unified search API can now leverage Chroma's semantic capabilities to find conceptually related content beyond simple keyword matching, significantly enhancing search quality for the testing phase ahead.\n\n---\nType: bugfix | Facts: Test query for \"worker service\" with type=observations and limit=2 executed against localhost:37777/api/search; Chroma returned 92 semantic matches for the query, demonstrating successful semantic search functionality; Search results correctly returned 2 observations: \"Build, Sync, and Worker Restart Executed\" and \"Phase 3 Testing Initiated\"; Worker logs show \"Chroma returned 92 semantic matches\" with no \"Failed to parse\" errors; Response properly formatted with metadata including observation type, date, and claude-mem:// source URIs | Concepts: problem-solution, how-it-works\n\n---\nDate: 11/17/2025, 9:37:40 PM"}] \ No newline at end of file diff --git a/test-results/test-18-all-features.json b/test-results/test-18-all-features.json new file mode 100644 index 00000000..8958499c --- /dev/null +++ b/test-results/test-18-all-features.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Add filter-only query path to searchUserPrompts method\n*Source: claude-mem://observation/10755*\n\n**Method accepts undefined query and handles dual-path logic with separate parameter arrays for clarity.**\n\nThe searchUserPrompts method has been enhanced with filter-only query support, completing the pattern established in searchObservations and searchSessions. The method signature now accepts optional query parameter. The implementation builds base filter conditions once for project and date range filters, then diverges into two paths. The filter-only path (when query is undefined) validates that at least some filters exist, then queries the user_prompts table directly with a WHERE clause, joining sdk_sessions for project filtering. The FTS5 path rebuilds filter conditions into a separate ftsParams array to avoid parameter ordering conflicts between the two paths. This dual-path approach enables both semantic/keyword search via FTS5 and pure metadata filtering via direct SQLite queries, completing the architectural pattern across all three search methods.\n\n---\nType: feature | Facts: searchUserPrompts signature changed to accept `query: string | undefined` at line 541; Filter conditions built once and shared between filter-only and FTS5 paths at lines 546-563; Filter-only path at lines 566-588 validates filters exist and queries user_prompts table directly; FTS5 path at lines 591-616 rebuilds filter conditions with separate ftsParams array to avoid parameter conflicts; Filter-only path joins sdk_sessions table for project filtering support; Documentation updated to clarify dual-mode operation matching searchObservations and searchSessions patterns | Concepts: what-changed, how-it-works, pattern, gotcha | Files: src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:50:08 PM\n\n---\n\n## Add filter-only query path to searchSessions method\n*Source: claude-mem://observation/10751*\n\n**Method now accepts undefined query and queries session_summaries table directly for metadata-only filtering.**\n\nThe searchSessions method in SessionSearch.ts has been enhanced to support filter-only queries without query text. The method signature now accepts `query: string | undefined`, enabling two distinct code paths. When query is undefined, a new filter-only path (lines 331-352) bypasses FTS5 entirely and queries the session_summaries table directly using metadata filters like project or date range. This path validates that at least some filters exist, throwing an error if both query and filters are missing. When query text is provided, the existing FTS5 search path executes as before. This dual-mode approach allows the system to handle both semantic/keyword search and pure metadata filtering, addressing the architectural requirement that filter-only queries skip text search mechanisms.\n\n---\nType: feature | Facts: searchSessions signature changed to accept `query: string | undefined` at line 327; New filter-only path added at lines 331-352 that bypasses FTS5 when query is undefined; Filter-only path throws error if neither query nor filters provided at line 336; Direct SQLite query on session_summaries table uses WHERE clause built from metadata filters; FTS5 path at line 355 only executes when query text exists; Documentation updated to clarify dual-mode operation: FTS5 fallback vs filter-only direct query | Concepts: what-changed, how-it-works, pattern | Files: src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:49:23 PM\n\n---\n\n## Implemented Filter-Only Query Path in searchObservations Method\n*Source: claude-mem://observation/10749*\n\n**Added conditional logic to route filter-only queries directly to observations table, bypassing FTS5 when query parameter is undefined.**\n\nThe searchObservations method in SessionSearch.ts now supports two distinct query paths based on whether a query string is provided. The method signature was updated to accept query as string | undefined, enabling filter-only queries. When query is undefined, the new filter-only path executes: it builds filter conditions using buildFilterClause, validates that at least some filters exist (throwing an error if neither query nor filters are present), constructs a direct SQL query against the observations table without joining observations_fts, and returns results ordered by the specified criteria (with hasFTS: false passed to buildOrderClause since no FTS5 rank is available). When query text exists, the original FTS5 path executes, now explicitly documented as fallback mode for ChromaDB unavailability. This dual-path implementation allows metadata queries to go directly to SQLite without the overhead of FTS5, while preserving FTS5 functionality for text search when ChromaDB is unavailable.\n\n---\nType: feature | Facts: The searchObservations method signature changed to accept query parameter as string | undefined; Added filter-only code path that executes when query parameter is undefined or empty; Filter-only path queries observations table directly without JOIN to observations_fts table; Filter-only path throws error if no filters are provided, requiring either query or filters; Filter-only path passes false to buildOrderClause to indicate FTS5 rank is unavailable; FTS5 path only executes when query text exists, serving as fallback for ChromaDB unavailability; Both paths reuse the same buildFilterClause method for consistent filter handling | Concepts: how-it-works, pattern, what-changed | Files: src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:48:59 PM\n\n---\n\n## Unified Search API with Catch-All Parameters\n*Source: claude-mem://observation/10681*\n\n**Six public-facing endpoints with backward-compatible granular routing through MCP for comprehensive project searching.**\n\nA comprehensive unified search API was completed with six public-facing endpoints to query project knowledge. The core /api/search endpoint accepts catch-all parameters including type (observations/sessions/prompts), obs_type (decision/bugfix/feature), concepts (concept tags), and files (file path filter), along with common query parameters like format, dateRange, limit, and orderBy. This unified approach can replace all granular endpoints with appropriate query parameters. Backward compatibility is maintained by keeping granular endpoints functional and routing them through the same MCP infrastructure as public endpoints. The implementation was built, synced, and the worker restarted to deploy the changes. A testing phase will follow where common codebase action scenarios are queried, with results saved to organized files for comprehensive analysis of search quality and coverage.\n\n---\nType: feature | Facts: /api/search endpoint supports catch-all parameters: type, obs_type, concepts, files, query, format, project, dateRange, limit, offset, orderBy; Six public endpoints deployed: /api/search, /api/timeline, /api/decisions, /api/changes, /api/how-it-works, /api/contextualize; Granular endpoints like /api/search/observations and /api/search/sessions maintained for backward compatibility; All granular endpoints route through MCP infrastructure alongside public endpoints; Unified search replaces granular endpoints: /api/search?type=observations replaces /api/search/observations, /api/search?obs_type=decision replaces /api/search/by-type?type=decision; Testing strategy involves running common codebase action queries, saving results to organized files by test query title for collective analysis | Concepts: how-it-works, pattern, what-changed, trade-off\n\n---\nDate: 11/17/2025, 9:43:02 PM\n\n---\n\n## Comprehensive Search API Test Suite Executed Successfully\n*Source: claude-mem://observation/10668*\n\n**28 search queries across 11 test categories completed successfully with 17 Chroma semantic search invocations detected.**\n\nA comprehensive automated test suite for the unified search API was executed successfully, validating all search functionality across diverse query patterns. The test script systematically tested 28 different search scenarios organized into 11 functional categories. Semantic queries test conceptual search capabilities, decision and troubleshooting queries validate observation type filtering, file-specific and concept-based queries test targeted filtering, type-filtered queries ensure proper categorization, session and prompt queries validate non-observation search, dedicated endpoint tests verify specialized API routes, timeline tests validate temporal context queries, and multi-parameter tests ensure complex filter combinations work correctly. The 17 Chroma invocations detected in logs indicate that semantic search was appropriately triggered for relevant queries while simpler queries likely used direct filtering. All tests passed without errors, and results were persisted to the test-results/ directory, setting up the next phase where these results will be analyzed collectively to assess search quality and relevance.\n\n---\nType: feature | Facts: Test suite executed 28 total queries organized into 11 categories via test-results/run-search-tests.sh script; Test categories include semantic queries (4), decisions (3), troubleshooting (3), file-specific (3), concept-based (3), type-filtered (3), sessions (1), prompts (1), dedicated endpoints (4), timeline (1), and multi-parameter combinations (2); All 28 tests completed successfully with checkmarks indicating no test failures; Worker logs show 17 instances of \"Chroma returned\" or \"Failed\" patterns, indicating semantic search was triggered 17 times; Test results saved to test-results/ directory for subsequent analysis | Concepts: how-it-works, pattern | Files: test-results/run-search-tests.sh\n\n---\nDate: 11/17/2025, 9:37:52 PM"}] \ No newline at end of file diff --git a/test-results/test-19-all-decisions.json b/test-results/test-19-all-decisions.json new file mode 100644 index 00000000..ca8732cc --- /dev/null +++ b/test-results/test-19-all-decisions.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Apply semantic naming principle to clarify FTS5 as degraded fallback\n*Source: claude-mem://observation/10742*\n\n**Rename FTS5 functions to explicitly communicate fallback status per CLAUDE.md semantic naming guidelines.**\n\nThe fix requires applying the semantic naming principle from CLAUDE.md to all FTS5-related code. Instead of ambiguous names like `escapeFTS5()` that hide architectural intent, functions should use verbose descriptive names like `escapeFTS5_fallback_for_missing_chroma()` that explicitly communicate FTS5's role as a degraded fallback mode for users without Python/uvx/Chroma dependencies. This naming strategy extends to all search functions - they should reveal whether they use Chroma semantic search, FTS5 keyword fallback, or direct SQLite filtering. The semantic naming approach ensures that anyone reading the code immediately understands FTS5 is not a primary feature but exists only as a backup when the preferred Chroma system is unavailable. This prevents future developers from treating FTS5 as an equal alternative to Chroma.\n\n---\nType: decision | Facts: CLAUDE.md semantic naming principle requires verbose names that reveal intent; Current name `escapeFTS5()` hides that FTS5 is fallback for missing Chroma; Proposed naming like `escapeFTS5_fallback_for_missing_chroma()` makes degraded mode explicit; All FTS5-related functions need renaming to state \"degraded fallback for users without Python\"; Search function names should reveal which mechanism they use: Chroma, FTS5, or direct filtering; Semantic naming prevents future confusion about FTS5 architectural role | Concepts: pattern, why-it-exists, how-it-works, trade-off | Files: CLAUDE.md\n\n---\nDate: 11/17/2025, 11:47:00 PM\n\n---\n\n## Semantic Naming Strategy for FTS5 Functions Due to UVX Dependency\n*Source: claude-mem://observation/10741*\n\n**FTS5-related functions, variables renamed to indicate temporary usage pending UVX availability for semantic search.**\n\nThe team has decided to implement a semantic naming convention for all FTS5-related code to clearly communicate that FTS5 is a temporary workaround. The naming pattern \"fts5_only_because_uvx_is_disabled\" will be applied to functions and variables that currently implement full-text search using FTS5. This decision stems from the understanding that UVX (which would enable proper semantic search) is currently disabled, forcing reliance on SQLite's FTS5 for text search capabilities. By embedding this context directly in function names, the codebase self-documents the temporary nature of the implementation and the intended migration path. This naming strategy was recently documented in CLAUDE.md and represents a deliberate choice to maintain clarity about technical debt and future refactoring needs despite the increased verbosity.\n\n---\nType: decision | Facts: FTS5 is being used as a temporary solution because UVX is currently disabled; Functions related to FTS5 will be renamed with semantic suffix \"_only_because_uvx_is_disabled\"; The naming convention makes the temporary nature of FTS5 usage explicit in the codebase; This decision was recently added to CLAUDE.md documentation; The renaming applies to all FTS5 functions and related variables throughout the codebase | Concepts: why-it-exists, pattern, trade-off, what-changed\n\n---\nDate: 11/17/2025, 11:46:49 PM\n\n---\n\n## Unified search handler fix requires five-step query routing logic\n*Source: claude-mem://observation/10739*\n\n**Route by query presence, error-based FTS5 fallback only, remove zero-results fallback check.**\n\nThe fix for the unified search handler requires restructuring the query routing logic into five distinct steps. First, check whether the query parameter exists at the top of the handler. If query is undefined, bypass Chroma entirely and invoke a new filter-only path in SessionSearch that performs direct SQLite filtering. If query exists, proceed with Chroma semantic search. The FTS5 fallback logic must change fundamentally - it should only trigger when Chroma throws an error (caught at line 465), not when Chroma successfully returns zero results. When Chroma returns zero results, that is the correct answer since FTS5 contains identical data and would also return zero. This requires removing the zero-results check from line 472's fallback condition, fixing the current incorrect fallback behavior.\n\n---\nType: decision | Facts: Step 1: Check if query parameter exists at beginning of unified search handler; Step 2: If query is undefined, skip Chroma and call new filter-only path in SessionSearch; Step 3: If query exists, attempt Chroma semantic search; Step 4: If Chroma throws error (line 465 catch block), fall back to FTS5; Step 5: If Chroma succeeds with zero results, accept zero as correct answer without FTS5 fallback; Line 472 condition must be modified to remove zero-results check | Concepts: problem-solution, how-it-works, pattern, trade-off | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 11:42:18 PM\n\n---\n\n## Query Routing Architecture: ChromaDB, SQLite, and FTS5 Fallback Strategy\n*Source: claude-mem://observation/10736*\n\n**Defined three distinct query paths based on query presence and ChromaDB availability to prevent incorrect fallback logic.**\n\nThe proper query routing architecture requires three distinct paths based on query presence and ChromaDB availability. Path 1: When a semantic query exists and ChromaDB is available, route to queryChroma with both query and filters. If ChromaDB errors (service failure), fall back to FTS5. However, if ChromaDB successfully returns zero results, accept that as the final answer without falling back - empty results indicate no semantic match, which is more accurate than FTS5. Path 2: When the query parameter is undefined (filter-only operations), skip ChromaDB entirely and route directly to SQLite filtering using SessionStore, not SessionSearch. This path handles metadata queries like retrieving last decisions. Path 3: When a query exists but ChromaDB is unavailable, use FTS5 as a degraded fallback. The current implementation incorrectly mixes these paths, leading to inappropriate fallback behavior and inefficient routing of filter-only queries through vector search systems.\n\n---\nType: decision | Facts: When query exists and ChromaDB is available, call queryChroma with query and filters; ChromaDB errors should trigger FTS5 fallback, but ChromaDB returning zero results is final and should not trigger fallback; Filter-only queries (undefined query parameter) should skip ChromaDB entirely and use direct SQLite filtering via SessionStore; Filter-only queries should use SessionStore for direct SQLite access, not SessionSearch which involves vector operations; When query exists but ChromaDB is unavailable, FTS5 serves as degraded fallback mode; The current code incorrectly mixes these three query routing paths | Concepts: pattern, how-it-works, problem-solution, trade-off\n\n---\nDate: 11/17/2025, 11:41:54 PM\n\n---\n\n## FTS5 demoted to fallback-only search mechanism\n*Source: claude-mem://observation/10729*\n\n**FTS5 search recognized as redundant when Chroma vector database contains 1:1 SQLite copy.**\n\nThe architectural decision clarifies that FTS5 full-text search, while technically implemented, is essentially redundant in normal operation. Since Chroma vector database maintains a complete 1:1 copy of the SQLite data and provides superior search results, FTS5 exists only as a degraded fallback mode for users who cannot install Python dependencies. In practical deployment, the application requires Chroma to function properly, making FTS5 a legacy accommodation rather than a primary feature. This understanding positions FTS5 as \"Chroma search with shitty results\" - functional but not the intended search mechanism.\n\n---\nType: decision | Facts: FTS5 full-text search produces inferior results compared to Chroma vector search; Chroma database maintains a 1:1 copy of all SQLite data; FTS5 serves only as fallback for users without Python dependencies; Application functionality depends primarily on Chroma, making FTS5 nearly vestigial | Concepts: why-it-exists, trade-off, pattern, how-it-works\n\n---\nDate: 11/17/2025, 11:37:41 PM"}] \ No newline at end of file diff --git a/test-results/test-20-session-search.json b/test-results/test-20-session-search.json new file mode 100644 index 00000000..2cfca8dc --- /dev/null +++ b/test-results/test-20-session-search.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Deep sequential analysis to find root cause of undefined replace() error in search functionality instead of applying null check workaround\n*Source: claude-mem://session/56378ffe-eab5-4ec5-a7c4-ae6af977bb8f*\n\n**Completed:** Completed 12-step sequential thinking analysis identifying the bug location, understanding the architectural issue, and designing a three-part solution: (1) make query parameter optional in Zod schema, (2) add conditional SQL paths in searchObservations/searchSessions/searchUserPrompts that branch on query presence - use FTS5 JOIN when query exists, use direct table SELECT when query undefined, (3) preserve composability allowing text search and filters to work independently or together.\n\n**Learned:** Root cause is architectural assumption conflating FTS5 text search with structured filtering. Current implementation always requires FTS5 MATCH clause even for filter-only queries (type, concepts, files). FTS5 fundamentally cannot MATCH against undefined/empty query. SessionSearch class is for full-text search; SessionStore is for structured queries. The buildFilterClause method already constructs WHERE conditions independently of FTS5, enabling separate query paths. TypeScript type annotations provide no runtime protection against undefined values.\n\n**Investigated:** Traced error through multiple layers: search-server.ts unified endpoint → queryChroma function → SessionSearch.searchObservations → escapeFTS5 method. Examined Zod schema validation, parameter extraction, FTS5 full-text search architecture, and SessionStore vs SessionSearch separation of concerns. Located exact error at line 151 of SessionSearch.ts where text.replace() is called without undefined check.\n\n**Next Steps:** Ready to implement the three-part fix across src/servers/search-server.ts (schema change) and src/services/sqlite/SessionSearch.ts (conditional query logic in three search methods). Implementation will enable filter-only queries like \"show all bugfixes\" or \"show all changes to search-server.ts\" without requiring FTS5 text search.\n\n**Notes:** This represents proper root cause fixing versus superficial workarounds. The solution maintains architectural integrity by separating concerns between text search (FTS5) and structured filtering (direct SQL), making them independently functional and composable. This unlocks precision context retrieval patterns that were previously impossible due to the forced FTS5 requirement.\n\n---\nDate: 11/17/2025\n\n---\n\n## Review commit against architecture guidelines: MCP as DRY search source, HTTP API routes through MCP, MCP not deprecated\n*Source: claude-mem://session/b1a1c481-6560-41bf-a0d3-23e448584f08*\n\n**Completed:** Build and deployment pipeline executed successfully for claude-mem version 6.0.9. All components compiled including worker-service.cjs (1337.16 KB), search-server.mjs (332.02 KB), seven hooks (context, new, save, summary, cleanup, user-message), and React viewer UI bundle. All 11,751 files synced to marketplace location (~/.claude/plugins/marketplaces/thedotmack/), dependencies refreshed via npm install, and worker service restarted to activate new code.\n\n**Learned:** The search architecture follows a clear layered pattern: MCP contains the single source of truth for search logic, HTTP API endpoints act as a thin routing layer that delegates to MCP, and this prevents code duplication. The system maintains 6 public-facing endpoints (/api/search, /api/timeline, /api/decisions, /api/changes, /api/how-it-works, /api/contextualize) with granular endpoints preserved for backward compatibility. The unified /api/search endpoint accepts catch-all parameters (type, obs_type, concepts, files) that replace the need for specialized endpoints.\n\n**Investigated:** A commit review was requested to verify compliance with established search architecture principles. The architecture mandates that MCP (Model Context Protocol) serves as the canonical, DRY search implementation with HTTP API routing through it.\n\n**Next Steps:** Awaiting confirmation that the commit passes architecture review or identification of any violations of the MCP-as-DRY-source principle where HTTP API might be duplicating search logic instead of routing through MCP.\n\n**Notes:** The unified search API design demonstrates strong architectural discipline by consolidating multiple specialized endpoints into a single parameterized endpoint while maintaining backward compatibility. The build output shows healthy file sizes with the worker service as the largest component at ~1.3 MB, which is reasonable for a service handling search, MCP integration, and worker orchestration.\n\n---\nDate: 11/17/2025\n\n---\n\n## Clarifying whether semantic shortcuts should return simple search results or contextual timelines\n*Source: claude-mem://session/b1a1c481-6560-41bf-a0d3-23e448584f08*\n\n**Completed:** The primary Claude identified the architectural decision point and presented two clear options to the user with concrete examples showing the difference between search-based responses (returning flat lists) versus timeline-based responses (returning anchor observations with contextual timelines).\n\n**Learned:** Semantic shortcuts like `/api/decisions`, `/api/changes`, and `/api/how-it-works` currently function as search shortcuts that filter observations by concept tags. The user's question suggested they might expect timeline functionality, prompting architectural clarification about whether these endpoints should evolve from simple filtered lists into richer timeline-based responses that provide chronological context around concept evolution.\n\n**Investigated:** The primary Claude session explored two architectural options for semantic shortcuts: Option A keeps them as simple search endpoints returning lists of observations filtered by concept type, while Option B transforms them into timeline-generating endpoints that return anchor observations with surrounding temporal context.\n\n**Next Steps:** Awaiting user decision on whether to keep semantic shortcuts as simple search endpoints (Option A) or enhance them to return timeline context (Option B), which will determine the implementation approach for the semantic shortcut API architecture.\n\n**Notes:** This represents a key architectural fork in the memory system design: balancing simplicity of search shortcuts against the richer context provided by timelines. The decision will impact how users interact with concept-filtered observations and whether they get isolated results or chronological narratives.\n\n---\nDate: 11/17/2025\n\n---\n\n## Clarify exposed search endpoints and investigate unified search parameters\n*Source: claude-mem://session/b1a1c481-6560-41bf-a0d3-23e448584f08*\n\n**Completed:** Identified the gap between current unified search capabilities and the catch-all parameters needed to fully replace granular search endpoints. Clarified that the 6 desired public-facing endpoints are: /api/search, /api/timeline, /api/decisions, /api/changes, /api/how-it-works, and /api/contextualize.\n\n**Learned:** The unified /api/search tool currently supports query, format, project, dateRange, limit, offset, and orderBy parameters, but lacks catch-all filtering parameters like type (document type filter), concept (observation concept tags), file (file path filter), and obs_type (observation type filter). The search implementation uses hybrid ChromaDB semantic search with SQLite FTS5 fallback, searches across all document types simultaneously, filters to a 90-day recency window, and defaults to 'index' format for token efficiency. The user wants only 6 specific search endpoints exposed publicly despite the potential for broader parameter combinations.\n\n**Investigated:** The unified search tool definition in src/servers/search-server.ts was examined to understand its current parameter structure and hybrid search implementation. The search tool's inputSchema was reviewed to identify which filtering parameters are currently available.\n\n**Next Steps:** The session is awaiting user decision on whether to add the missing catch-all parameters (type, concept, file, obs_type) to the unified search MCP tool to enable full replacement of granular endpoints while maintaining backward compatibility.\n\n**Notes:** The discovery revealed that while the unified search has sophisticated hybrid semantic search capabilities, it still needs additional filtering parameters to fully consolidate all search functionality into the 6 intended public endpoints. The granular endpoints would remain for backward compatibility but not be documented for end users.\n\n---\nDate: 11/17/2025\n\n---\n\n## Clarifying whether granular search endpoints are deprecated given the unified search endpoint has parameters\n*Source: claude-mem://session/b1a1c481-6560-41bf-a0d3-23e448584f08*\n\n**Completed:** No code changes have been made. The discussion clarified that the granular endpoints are not actually deprecated in the current implementation because they provide type-specific filtering that the unified endpoint lacks.\n\n**Learned:** The unified search endpoint accepts parameters like query, format, project, dateRange, limit, offset, and orderBy, but does NOT have a type filter parameter. It returns mixed results from all document types (observations, sessions, prompts). The granular endpoints (/api/search/observations, /api/search/sessions, /api/search/prompts) serve a complementary purpose by returning only specific document types. The search uses hybrid ChromaDB semantic search with SQLite FTS5 fallback, and implements an index/full format pattern to optimize token usage.\n\n**Investigated:** The search-server.ts file was examined to understand the unified search tool implementation and its parameters, specifically looking at whether the search parameters make the granular type-specific endpoints redundant\n\n**Next Steps:** Awaiting user decision on whether to add a type parameter to the unified search endpoint, which would make it truly replace the granular endpoints and allow them to be deprecated as backward-compatible legacy endpoints\n\n**Notes:** This represents a potential architecture decision point: whether to consolidate all search functionality into a single parameterized endpoint (DRY principle) versus maintaining separate endpoints for different document types (explicit API design). The current hybrid approach exists because the type filter was never added to the unified search.\n\n---\nDate: 11/17/2025"}] \ No newline at end of file diff --git a/test-results/test-21-prompt-search.json b/test-results/test-21-prompt-search.json new file mode 100644 index 00000000..5f4a5d28 --- /dev/null +++ b/test-results/test-21-prompt-search.json @@ -0,0 +1 @@ +[{"type":"text","text":"## User Prompt #5\n*Source: claude-mem://user-prompt/2735*\n\nAre you ok? You seem a little excited and it's hard to do this project. Can you tell me what's going on?\n\n---\nDate: 11/17/2025, 9:38:06 PM\n\n---\n\n## User Prompt #2\n*Source: claude-mem://user-prompt/2719*\n\nedit the build script, we need it to always do this.\n\n---\nDate: 11/17/2025, 7:49:17 PM\n\n---\n\n## User Prompt #3\n*Source: claude-mem://user-prompt/2662*\n\nthose built files, the js, the cjs, if the source files don't have merge issues, then these are just way outdated build files.... is that the case?\n\n---\nDate: 11/17/2025, 3:03:13 PM\n\n---\n\n## User Prompt #12\n*Source: claude-mem://user-prompt/2651*\n\nI FUCKING DID BUILD AND SYNC AND DELETE. I would not have told you to fucking check pm2 info had I not done that\n\n---\nDate: 11/17/2025, 2:25:18 PM\n\n---\n\n## User Prompt #7\n*Source: claude-mem://user-prompt/2646*\n\nCan you fix it so that it runs from the marketplace folder so it doesn't break on EVERYONES SYSTEM WHO DOESNT FUCKING BUILD MANUALLY\n\n---\nDate: 11/17/2025, 2:19:29 PM"}] \ No newline at end of file diff --git a/test-results/test-22-decisions-endpoint.json b/test-results/test-22-decisions-endpoint.json new file mode 100644 index 00000000..ca8732cc --- /dev/null +++ b/test-results/test-22-decisions-endpoint.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Apply semantic naming principle to clarify FTS5 as degraded fallback\n*Source: claude-mem://observation/10742*\n\n**Rename FTS5 functions to explicitly communicate fallback status per CLAUDE.md semantic naming guidelines.**\n\nThe fix requires applying the semantic naming principle from CLAUDE.md to all FTS5-related code. Instead of ambiguous names like `escapeFTS5()` that hide architectural intent, functions should use verbose descriptive names like `escapeFTS5_fallback_for_missing_chroma()` that explicitly communicate FTS5's role as a degraded fallback mode for users without Python/uvx/Chroma dependencies. This naming strategy extends to all search functions - they should reveal whether they use Chroma semantic search, FTS5 keyword fallback, or direct SQLite filtering. The semantic naming approach ensures that anyone reading the code immediately understands FTS5 is not a primary feature but exists only as a backup when the preferred Chroma system is unavailable. This prevents future developers from treating FTS5 as an equal alternative to Chroma.\n\n---\nType: decision | Facts: CLAUDE.md semantic naming principle requires verbose names that reveal intent; Current name `escapeFTS5()` hides that FTS5 is fallback for missing Chroma; Proposed naming like `escapeFTS5_fallback_for_missing_chroma()` makes degraded mode explicit; All FTS5-related functions need renaming to state \"degraded fallback for users without Python\"; Search function names should reveal which mechanism they use: Chroma, FTS5, or direct filtering; Semantic naming prevents future confusion about FTS5 architectural role | Concepts: pattern, why-it-exists, how-it-works, trade-off | Files: CLAUDE.md\n\n---\nDate: 11/17/2025, 11:47:00 PM\n\n---\n\n## Semantic Naming Strategy for FTS5 Functions Due to UVX Dependency\n*Source: claude-mem://observation/10741*\n\n**FTS5-related functions, variables renamed to indicate temporary usage pending UVX availability for semantic search.**\n\nThe team has decided to implement a semantic naming convention for all FTS5-related code to clearly communicate that FTS5 is a temporary workaround. The naming pattern \"fts5_only_because_uvx_is_disabled\" will be applied to functions and variables that currently implement full-text search using FTS5. This decision stems from the understanding that UVX (which would enable proper semantic search) is currently disabled, forcing reliance on SQLite's FTS5 for text search capabilities. By embedding this context directly in function names, the codebase self-documents the temporary nature of the implementation and the intended migration path. This naming strategy was recently documented in CLAUDE.md and represents a deliberate choice to maintain clarity about technical debt and future refactoring needs despite the increased verbosity.\n\n---\nType: decision | Facts: FTS5 is being used as a temporary solution because UVX is currently disabled; Functions related to FTS5 will be renamed with semantic suffix \"_only_because_uvx_is_disabled\"; The naming convention makes the temporary nature of FTS5 usage explicit in the codebase; This decision was recently added to CLAUDE.md documentation; The renaming applies to all FTS5 functions and related variables throughout the codebase | Concepts: why-it-exists, pattern, trade-off, what-changed\n\n---\nDate: 11/17/2025, 11:46:49 PM\n\n---\n\n## Unified search handler fix requires five-step query routing logic\n*Source: claude-mem://observation/10739*\n\n**Route by query presence, error-based FTS5 fallback only, remove zero-results fallback check.**\n\nThe fix for the unified search handler requires restructuring the query routing logic into five distinct steps. First, check whether the query parameter exists at the top of the handler. If query is undefined, bypass Chroma entirely and invoke a new filter-only path in SessionSearch that performs direct SQLite filtering. If query exists, proceed with Chroma semantic search. The FTS5 fallback logic must change fundamentally - it should only trigger when Chroma throws an error (caught at line 465), not when Chroma successfully returns zero results. When Chroma returns zero results, that is the correct answer since FTS5 contains identical data and would also return zero. This requires removing the zero-results check from line 472's fallback condition, fixing the current incorrect fallback behavior.\n\n---\nType: decision | Facts: Step 1: Check if query parameter exists at beginning of unified search handler; Step 2: If query is undefined, skip Chroma and call new filter-only path in SessionSearch; Step 3: If query exists, attempt Chroma semantic search; Step 4: If Chroma throws error (line 465 catch block), fall back to FTS5; Step 5: If Chroma succeeds with zero results, accept zero as correct answer without FTS5 fallback; Line 472 condition must be modified to remove zero-results check | Concepts: problem-solution, how-it-works, pattern, trade-off | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 11:42:18 PM\n\n---\n\n## Query Routing Architecture: ChromaDB, SQLite, and FTS5 Fallback Strategy\n*Source: claude-mem://observation/10736*\n\n**Defined three distinct query paths based on query presence and ChromaDB availability to prevent incorrect fallback logic.**\n\nThe proper query routing architecture requires three distinct paths based on query presence and ChromaDB availability. Path 1: When a semantic query exists and ChromaDB is available, route to queryChroma with both query and filters. If ChromaDB errors (service failure), fall back to FTS5. However, if ChromaDB successfully returns zero results, accept that as the final answer without falling back - empty results indicate no semantic match, which is more accurate than FTS5. Path 2: When the query parameter is undefined (filter-only operations), skip ChromaDB entirely and route directly to SQLite filtering using SessionStore, not SessionSearch. This path handles metadata queries like retrieving last decisions. Path 3: When a query exists but ChromaDB is unavailable, use FTS5 as a degraded fallback. The current implementation incorrectly mixes these paths, leading to inappropriate fallback behavior and inefficient routing of filter-only queries through vector search systems.\n\n---\nType: decision | Facts: When query exists and ChromaDB is available, call queryChroma with query and filters; ChromaDB errors should trigger FTS5 fallback, but ChromaDB returning zero results is final and should not trigger fallback; Filter-only queries (undefined query parameter) should skip ChromaDB entirely and use direct SQLite filtering via SessionStore; Filter-only queries should use SessionStore for direct SQLite access, not SessionSearch which involves vector operations; When query exists but ChromaDB is unavailable, FTS5 serves as degraded fallback mode; The current code incorrectly mixes these three query routing paths | Concepts: pattern, how-it-works, problem-solution, trade-off\n\n---\nDate: 11/17/2025, 11:41:54 PM\n\n---\n\n## FTS5 demoted to fallback-only search mechanism\n*Source: claude-mem://observation/10729*\n\n**FTS5 search recognized as redundant when Chroma vector database contains 1:1 SQLite copy.**\n\nThe architectural decision clarifies that FTS5 full-text search, while technically implemented, is essentially redundant in normal operation. Since Chroma vector database maintains a complete 1:1 copy of the SQLite data and provides superior search results, FTS5 exists only as a degraded fallback mode for users who cannot install Python dependencies. In practical deployment, the application requires Chroma to function properly, making FTS5 a legacy accommodation rather than a primary feature. This understanding positions FTS5 as \"Chroma search with shitty results\" - functional but not the intended search mechanism.\n\n---\nType: decision | Facts: FTS5 full-text search produces inferior results compared to Chroma vector search; Chroma database maintains a 1:1 copy of all SQLite data; FTS5 serves only as fallback for users without Python dependencies; Application functionality depends primarily on Chroma, making FTS5 nearly vestigial | Concepts: why-it-exists, trade-off, pattern, how-it-works\n\n---\nDate: 11/17/2025, 11:37:41 PM"}] \ No newline at end of file diff --git a/test-results/test-23-changes-endpoint.json b/test-results/test-23-changes-endpoint.json new file mode 100644 index 00000000..282bba42 --- /dev/null +++ b/test-results/test-23-changes-endpoint.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Build and sync claude-mem plugin to marketplace location\n*Source: claude-mem://observation/10758*\n\n**Built all hooks and services, synced to marketplace directory, and installed dependencies successfully.**\n\nThe claude-mem plugin was fully built and deployed to the marketplace directory. The build process compiled all React components, bundled the worker service and search server, and built each individual hook. The build script used scripts/build-hooks.js to generate production-ready bundles in the plugin/scripts/ directory. After building, rsync transferred all 11781 files to the marketplace directory at ~/.claude/plugins/marketplaces/thedotmack/, removing the .git directory and .install-version file in the process. The sync command used --delete flag to ensure the marketplace directory perfectly mirrors the development directory. Finally, npm install ran in the marketplace directory to ensure all dependencies are available for the deployed plugin.\n\n---\nType: change | Facts: Built claude-mem version 6.0.9 including React viewer, worker service, search server, and all hooks; Worker service built to 1338.75 KB, search server to 335.14 KB; Synced 11781 files from development directory to ~/.claude/plugins/marketplaces/thedotmack/; All hooks built successfully: context-hook (38.29 KB), new-hook (32.14 KB), save-hook (32.49 KB), summary-hook (34.61 KB), cleanup-hook (31.38 KB), user-message-hook (2.24 KB); Dependencies auto-installed in marketplace location after sync | Concepts: what-changed, how-it-works | Files: scripts/build-hooks.js, package.json, plugin/scripts/worker-service.cjs, plugin/scripts/search-server.mjs, plugin/scripts/context-hook.js, plugin/scripts/new-hook.js, plugin/scripts/save-hook.js, plugin/scripts/summary-hook.js, plugin/scripts/cleanup-hook.js, plugin/scripts/user-message-hook.js, plugin/ui/viewer-bundle.js, plugin/ui/viewer.html\n\n---\nDate: 11/17/2025, 11:51:51 PM\n\n---\n\n## Fixed Incorrect Parameter Array in searchUserPrompts FTS5 Path\n*Source: claude-mem://observation/10756*\n\n**Changed params to ftsParams in FTS5 query execution to use correct parameter array with ftsQuery.**\n\nA parameter array mismatch bug was fixed in the searchUserPrompts method's FTS5 code path. The method creates two separate parameter arrays: 'params' for the filter-only path and 'ftsParams' for the FTS5 path. The FTS5 path correctly initialized ftsParams with the escaped query and rebuilt all filter conditions into this new array, but then incorrectly used the 'params' array when executing the SQL query. This would have caused a parameter binding mismatch where the SQL query expected parameters in one order (starting with ftsQuery) but received them in a different order or with missing values. The fix ensures that when the FTS5 path is taken (query text provided), the query uses ftsParams.push() for limit/offset and passes ftsParams to the db.prepare().all() call, maintaining correct parameter alignment throughout the FTS5 execution path.\n\n---\nType: bugfix | Facts: File modified: /Users/alexnewman/Scripts/claude-mem/src/services/sqlite/SessionSearch.ts; Bug was in searchUserPrompts method's FTS5 execution path using wrong parameter array; Changed params.push(limit, offset) to ftsParams.push(limit, offset); Changed this.db.prepare(sql).all(...params) to this.db.prepare(sql).all(...ftsParams); The ftsParams array was created separately for FTS5 path but not being used in query execution; Bug would have caused SQL parameter binding mismatch in FTS5 search path for user prompts | Concepts: problem-solution, what-changed, gotcha | Files: /Users/alexnewman/Scripts/claude-mem/src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:50:17 PM\n\n---\n\n## Add filter-only query path to searchUserPrompts method\n*Source: claude-mem://observation/10755*\n\n**Method accepts undefined query and handles dual-path logic with separate parameter arrays for clarity.**\n\nThe searchUserPrompts method has been enhanced with filter-only query support, completing the pattern established in searchObservations and searchSessions. The method signature now accepts optional query parameter. The implementation builds base filter conditions once for project and date range filters, then diverges into two paths. The filter-only path (when query is undefined) validates that at least some filters exist, then queries the user_prompts table directly with a WHERE clause, joining sdk_sessions for project filtering. The FTS5 path rebuilds filter conditions into a separate ftsParams array to avoid parameter ordering conflicts between the two paths. This dual-path approach enables both semantic/keyword search via FTS5 and pure metadata filtering via direct SQLite queries, completing the architectural pattern across all three search methods.\n\n---\nType: feature | Facts: searchUserPrompts signature changed to accept `query: string | undefined` at line 541; Filter conditions built once and shared between filter-only and FTS5 paths at lines 546-563; Filter-only path at lines 566-588 validates filters exist and queries user_prompts table directly; FTS5 path at lines 591-616 rebuilds filter conditions with separate ftsParams array to avoid parameter conflicts; Filter-only path joins sdk_sessions table for project filtering support; Documentation updated to clarify dual-mode operation matching searchObservations and searchSessions patterns | Concepts: what-changed, how-it-works, pattern, gotcha | Files: src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:50:08 PM\n\n---\n\n## Add filter-only query path to searchSessions method\n*Source: claude-mem://observation/10751*\n\n**Method now accepts undefined query and queries session_summaries table directly for metadata-only filtering.**\n\nThe searchSessions method in SessionSearch.ts has been enhanced to support filter-only queries without query text. The method signature now accepts `query: string | undefined`, enabling two distinct code paths. When query is undefined, a new filter-only path (lines 331-352) bypasses FTS5 entirely and queries the session_summaries table directly using metadata filters like project or date range. This path validates that at least some filters exist, throwing an error if both query and filters are missing. When query text is provided, the existing FTS5 search path executes as before. This dual-mode approach allows the system to handle both semantic/keyword search and pure metadata filtering, addressing the architectural requirement that filter-only queries skip text search mechanisms.\n\n---\nType: feature | Facts: searchSessions signature changed to accept `query: string | undefined` at line 327; New filter-only path added at lines 331-352 that bypasses FTS5 when query is undefined; Filter-only path throws error if neither query nor filters provided at line 336; Direct SQLite query on session_summaries table uses WHERE clause built from metadata filters; FTS5 path at line 355 only executes when query text exists; Documentation updated to clarify dual-mode operation: FTS5 fallback vs filter-only direct query | Concepts: what-changed, how-it-works, pattern | Files: src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:49:23 PM\n\n---\n\n## Implemented Filter-Only Query Path in searchObservations Method\n*Source: claude-mem://observation/10749*\n\n**Added conditional logic to route filter-only queries directly to observations table, bypassing FTS5 when query parameter is undefined.**\n\nThe searchObservations method in SessionSearch.ts now supports two distinct query paths based on whether a query string is provided. The method signature was updated to accept query as string | undefined, enabling filter-only queries. When query is undefined, the new filter-only path executes: it builds filter conditions using buildFilterClause, validates that at least some filters exist (throwing an error if neither query nor filters are present), constructs a direct SQL query against the observations table without joining observations_fts, and returns results ordered by the specified criteria (with hasFTS: false passed to buildOrderClause since no FTS5 rank is available). When query text exists, the original FTS5 path executes, now explicitly documented as fallback mode for ChromaDB unavailability. This dual-path implementation allows metadata queries to go directly to SQLite without the overhead of FTS5, while preserving FTS5 functionality for text search when ChromaDB is unavailable.\n\n---\nType: feature | Facts: The searchObservations method signature changed to accept query parameter as string | undefined; Added filter-only code path that executes when query parameter is undefined or empty; Filter-only path queries observations table directly without JOIN to observations_fts table; Filter-only path throws error if no filters are provided, requiring either query or filters; Filter-only path passes false to buildOrderClause to indicate FTS5 rank is unavailable; FTS5 path only executes when query text exists, serving as fallback for ChromaDB unavailability; Both paths reuse the same buildFilterClause method for consistent filter handling | Concepts: how-it-works, pattern, what-changed | Files: src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:48:59 PM"}] \ No newline at end of file diff --git a/test-results/test-24-how-it-works-endpoint.json b/test-results/test-24-how-it-works-endpoint.json new file mode 100644 index 00000000..a7300406 --- /dev/null +++ b/test-results/test-24-how-it-works-endpoint.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Build and sync claude-mem plugin to marketplace location\n*Source: claude-mem://observation/10758*\n\n**Built all hooks and services, synced to marketplace directory, and installed dependencies successfully.**\n\nThe claude-mem plugin was fully built and deployed to the marketplace directory. The build process compiled all React components, bundled the worker service and search server, and built each individual hook. The build script used scripts/build-hooks.js to generate production-ready bundles in the plugin/scripts/ directory. After building, rsync transferred all 11781 files to the marketplace directory at ~/.claude/plugins/marketplaces/thedotmack/, removing the .git directory and .install-version file in the process. The sync command used --delete flag to ensure the marketplace directory perfectly mirrors the development directory. Finally, npm install ran in the marketplace directory to ensure all dependencies are available for the deployed plugin.\n\n---\nType: change | Facts: Built claude-mem version 6.0.9 including React viewer, worker service, search server, and all hooks; Worker service built to 1338.75 KB, search server to 335.14 KB; Synced 11781 files from development directory to ~/.claude/plugins/marketplaces/thedotmack/; All hooks built successfully: context-hook (38.29 KB), new-hook (32.14 KB), save-hook (32.49 KB), summary-hook (34.61 KB), cleanup-hook (31.38 KB), user-message-hook (2.24 KB); Dependencies auto-installed in marketplace location after sync | Concepts: what-changed, how-it-works | Files: scripts/build-hooks.js, package.json, plugin/scripts/worker-service.cjs, plugin/scripts/search-server.mjs, plugin/scripts/context-hook.js, plugin/scripts/new-hook.js, plugin/scripts/save-hook.js, plugin/scripts/summary-hook.js, plugin/scripts/cleanup-hook.js, plugin/scripts/user-message-hook.js, plugin/ui/viewer-bundle.js, plugin/ui/viewer.html\n\n---\nDate: 11/17/2025, 11:51:51 PM\n\n---\n\n## Unified search handler implements Chroma-first with FTS5 fallback on zero results\n*Source: claude-mem://observation/10757*\n\n**Lines 403-489 show current implementation attempts Chroma first, falls back to FTS5 when empty.**\n\nThe unified search handler in search-server.ts (lines 390-489) reveals the current implementation architecture. The handler first attempts Chroma semantic search when chromaClient is available, calling queryChroma with the query parameter at line 419. If Chroma throws an error, it catches at line 465 and falls through to FTS5. However, the problematic FTS5 fallback logic at line 470 triggers when all result arrays are empty, not just on errors. This contradicts the insight that FTS5 contains identical data to Chroma, making zero-result fallback pointless. Additionally, lines 476-483 call search methods (searchObservations, searchSessions, searchUserPrompts) with the query parameter without checking if it's undefined, which will cause failures when query is not provided. The handler needs modification to skip Chroma when query is undefined and only fall back to FTS5 on Chroma errors.\n\n---\nType: discovery | Facts: Line 403 checks `if (chromaClient)` to attempt Chroma semantic search first; Line 419 calls `queryChroma(query, 100, whereFilter)` with query parameter as required; Lines 465-467 catch Chroma errors and fall through to FTS5 fallback; Line 470 triggers FTS5 fallback when all result arrays have zero length; Lines 476-483 call SessionSearch methods with query parameter without checking if undefined; Hybrid search applies 90-day recency filter at lines 424-431 | Concepts: how-it-works, problem-solution, gotcha | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 11:50:29 PM\n\n---\n\n## Add filter-only query path to searchUserPrompts method\n*Source: claude-mem://observation/10755*\n\n**Method accepts undefined query and handles dual-path logic with separate parameter arrays for clarity.**\n\nThe searchUserPrompts method has been enhanced with filter-only query support, completing the pattern established in searchObservations and searchSessions. The method signature now accepts optional query parameter. The implementation builds base filter conditions once for project and date range filters, then diverges into two paths. The filter-only path (when query is undefined) validates that at least some filters exist, then queries the user_prompts table directly with a WHERE clause, joining sdk_sessions for project filtering. The FTS5 path rebuilds filter conditions into a separate ftsParams array to avoid parameter ordering conflicts between the two paths. This dual-path approach enables both semantic/keyword search via FTS5 and pure metadata filtering via direct SQLite queries, completing the architectural pattern across all three search methods.\n\n---\nType: feature | Facts: searchUserPrompts signature changed to accept `query: string | undefined` at line 541; Filter conditions built once and shared between filter-only and FTS5 paths at lines 546-563; Filter-only path at lines 566-588 validates filters exist and queries user_prompts table directly; FTS5 path at lines 591-616 rebuilds filter conditions with separate ftsParams array to avoid parameter conflicts; Filter-only path joins sdk_sessions table for project filtering support; Documentation updated to clarify dual-mode operation matching searchObservations and searchSessions patterns | Concepts: what-changed, how-it-works, pattern, gotcha | Files: src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:50:08 PM\n\n---\n\n## searchUserPrompts Uses Custom ORDER BY Logic Instead of buildOrderClause\n*Source: claude-mem://observation/10754*\n\n**Unlike searchObservations, searchUserPrompts implements inline ORDER BY construction with hard-coded table aliases rather than using buildOrderClause helper.**\n\nThe searchUserPrompts method implements its ORDER BY logic inline rather than using the buildOrderClause helper method used by searchObservations and searchSessions. Lines 619-623 show a ternary expression that constructs the ORDER BY clause with hard-coded references to user_prompts_fts.rank for relevance ordering and up.created_at_epoch for date-based sorting. The main SQL query joins three tables: user_prompts, user_prompts_fts, and sdk_sessions, with the sdk_sessions join enabling project-based filtering. When implementing the filter-only path for this method, the code will need to construct a query that joins only user_prompts and sdk_sessions (skipping user_prompts_fts), and the ORDER BY logic will need to handle the absence of FTS5 rank data, defaulting to date-based ordering when query is undefined.\n\n---\nType: discovery | Facts: searchUserPrompts constructs ORDER BY clause inline at lines 619-623 instead of calling buildOrderClause; The inline ORDER BY uses hard-coded table alias user_prompts_fts.rank for relevance ordering; Date-based ordering uses up.created_at_epoch for both ascending and descending sorts; The SQL query joins user_prompts, user_prompts_fts, and sdk_sessions tables; searchUserPrompts will need filter-only path to query user_prompts without user_prompts_fts JOIN when query is undefined | Concepts: how-it-works, pattern | Files: src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:50:07 PM\n\n---\n\n## User Prompts Search Joins Three Tables for Filtering\n*Source: claude-mem://observation/10753*\n\n**searchUserPrompts method joins user_prompts, user_prompts_fts, and sdk_sessions tables to enable project-based filtering.**\n\nThe searchUserPrompts method demonstrates a more complex query structure than searchObservations or searchSessions due to the need for project filtering. Since user_prompts don't directly store project information, the method joins with the sdk_sessions table using claude_session_id as the key, which allows filtering by the project field from sdk_sessions. The query structure follows the same FTS5 pattern seen in other search methods: it joins the base table (user_prompts) with its FTS5 virtual table (user_prompts_fts) via rowid, uses the MATCH operator for full-text search, and orders by rank for relevance-based results. The default limit is set to 20 rather than 50, suggesting user prompts are typically returned in smaller batches. Like the other search methods, rank values are normalized to a 0-1 score scale where higher values indicate better matches, inverting FTS5's native lower-is-better ranking.\n\n---\nType: discovery | Facts: searchUserPrompts method joins three tables: user_prompts, user_prompts_fts, and sdk_sessions; sdk_sessions table joined via claude_session_id to enable project filtering on user prompts; user_prompts table aliased as 'up' and uses MATCH operator on user_prompts_fts virtual table; Default limit for user prompts is 20, compared to 50 for observations and sessions; Method supports dateRange filtering using created_at_epoch column from user_prompts table; Rank normalization converts FTS5 rank scores to 0-1 scale where higher values indicate better matches | Concepts: how-it-works, pattern | Files: /Users/alexnewman/Scripts/claude-mem/src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:49:42 PM"}] \ No newline at end of file diff --git a/test-results/test-25-contextualize-endpoint.json b/test-results/test-25-contextualize-endpoint.json new file mode 100644 index 00000000..6b9dd602 --- /dev/null +++ b/test-results/test-25-contextualize-endpoint.json @@ -0,0 +1 @@ +[{"type":"text","text":"# Project Context: claude-mem\n\nNo activity found for this project."}] \ No newline at end of file diff --git a/test-results/test-26-timeline-around-observation.json b/test-results/test-26-timeline-around-observation.json new file mode 100644 index 00000000..f5a13db4 --- /dev/null +++ b/test-results/test-26-timeline-around-observation.json @@ -0,0 +1 @@ +[{"type":"text","text":"# Timeline around anchor: 10630\n**Window:** 3 records before → 3 records after | **Items:** 3 (3 obs, 0 sessions, 0 prompts)\n\n**Legend:** 🎯 session-request | 🔴 bugfix | 🟣 feature | 🔄 refactor | ✅ change | 🔵 discovery | 🧠 decision\n\n### Nov 17, 2025\n\n**General**\n| ID | Time | T | Title | Tokens |\n|----|------|---|-------|--------|\n| #10756 | 11:50 PM | 🔴 | Fixed Incorrect Parameter Array in searchUserPrompts FTS5 Path | ~213 |\n| #10757 | ″ | 🔵 | Unified search handler implements Chroma-first with FTS5 fallback on zero results | ~224 |\n| #10758 | 11:51 PM | ✅ | Build and sync claude-mem plugin to marketplace location | ~189 |\n"}] \ No newline at end of file diff --git a/test-results/test-27-multi-param-combo.json b/test-results/test-27-multi-param-combo.json new file mode 100644 index 00000000..cdaa0045 --- /dev/null +++ b/test-results/test-27-multi-param-combo.json @@ -0,0 +1 @@ +[{"type":"text","text":"## FTS5 Method Renamed to Indicate Fallback Status\n*Source: claude-mem://observation/10747*\n\n**Renamed escapeFTS5 to escapeFTS5_fallback_when_chroma_unavailable across all search methods to clarify temporary usage.**\n\nThe FTS5 query escaping method was renamed from escapeFTS5 to escapeFTS5_fallback_when_chroma_unavailable to align with the newly established naming convention for FTS5-related code. This change was applied across all three search methods in SessionSearch: searchObservations, searchSessions, and searchUserPrompts. The rename makes explicit that FTS5 is only being used as a temporary fallback solution when ChromaDB (which requires UVX) is unavailable, rather than being a permanent part of the architecture. The method's existing documentation already stated that FTS5 provides degraded search capability with no semantic understanding and is only used when uvx/Python/ChromaDB is disabled. This refactoring follows the pattern established in CLAUDE.md where FTS5-related functions are given semantic names indicating their temporary nature pending UVX availability.\n\n---\nType: refactor | Facts: File modified: /Users/alexnewman/Scripts/claude-mem/src/services/sqlite/SessionSearch.ts; Method escapeFTS5 renamed to escapeFTS5_fallback_when_chroma_unavailable throughout the file; Three search methods updated: searchObservations, searchSessions, and searchUserPrompts; All calls to escapeFTS5 replaced with escapeFTS5_fallback_when_chroma_unavailable using replace_all; Method already had documentation indicating FTS5 is degraded fallback when ChromaDB unavailable | Concepts: what-changed, why-it-exists, pattern | Files: /Users/alexnewman/Scripts/claude-mem/src/services/sqlite/SessionSearch.ts\n\n---\nDate: 11/17/2025, 11:48:30 PM\n\n---\n\n## Architectural insight: use SessionStore for filter-only, SessionSearch for text search\n*Source: claude-mem://observation/10722*\n\n**SessionSearch class handles FTS5 text search; SessionStore class should handle structured filter queries without text.**\n\nA key architectural insight emerged: the system already has appropriate separation of concerns between SessionSearch and SessionStore classes. SessionSearch is designed for full-text search using FTS5, which inherently requires search text. SessionStore should handle structured queries based purely on filters (type, concepts, files, dates) without requiring full-text search. The real fix isn't to patch escapeFTS5 or make FTS5 work without a query - it's to route filter-only queries to SessionStore methods instead of SessionSearch methods. This preserves the architectural integrity where each class serves its intended purpose.\n\n---\nType: decision | Facts: SessionSearch.searchObservations always uses FTS5 with WHERE observations_fts MATCH ?; FTS5 fundamentally requires search term, cannot MATCH against nothing; SessionStore class likely contains methods for structured queries without FTS5; Proper architecture: SessionSearch for full-text search, SessionStore for filter-based retrieval; Sequential thinking at thought 8 of 12 | Concepts: pattern, how-it-works, trade-off, why-it-exists\n\n---\nDate: 11/17/2025, 10:08:29 PM\n\n---\n\n## Root cause identified: required query parameter vs filter-only queries\n*Source: claude-mem://observation/10717*\n\n**Schema defines query as required but filter-only queries need query to be optional.**\n\nThe root cause has been identified: a mismatch between the schema definition and actual usage patterns. The Zod schema defines query as z.string(), marking it as required, yet the system appears to receive requests without a query parameter for filter-only searches. This creates two possibilities: either (1) the schema should allow optional queries to support filtering by type/concepts/files without search text, or (2) query should truly be required and filter-only requests should be rejected. The investigation now shifts to understanding whether the search functions can meaningfully operate without a query parameter, which will determine the correct fix approach.\n\n---\nType: discovery | Facts: Line 366 defines query: z.string() as required, not optional; Runtime errors show requests without query are passing through validation; Filter-only queries (using type, obs_type, concepts, files) should be valid use cases; Schema should likely be z.string().optional() to support filter-only retrieval; Sequential thinking extended from 10 to 12 total thoughts; Next investigation examines search.searchObservations to determine if query is truly required | Concepts: problem-solution, gotcha, trade-off\n\n---\nDate: 11/17/2025, 10:07:36 PM\n\n---\n\n## Session Search Returns Multi-Session Summaries with Structured Format\n*Source: claude-mem://observation/10696*\n\n**Search retrieved five session summaries about hybrid search architecture work with completed tasks and learnings**\n\nExamination of test-20-session-search.json reveals how session-level search provides comprehensive work history context. The query retrieved five sessions related to hybrid search architecture work, demonstrating the value of session summaries for understanding project evolution. Each session result follows a structured format with five sections: Completed (what was accomplished), Learned (technical insights gained), Investigated (what was examined), Next Steps (planned follow-up), and Notes (additional context). Sessions are tagged with claude-mem://session/UUID source links for reference. The retrieved sessions trace the complete lifecycle of the hybrid search architecture documentation fix: initial creation of the fix document, relocation between projects, implementation of documentation updates, PR creation and merging, and final comment corrections for architectural accuracy. This demonstrates how session-level search complements observation search by providing narrative flow and project history context rather than atomic technical facts.\n\n---\nType: discovery | Facts: Session search results return summaries with Completed, Learned, Investigated, Next Steps, and Notes sections; Session summaries tagged with source links using claude-mem://session/UUID format; Search query about hybrid search architecture retrieved five relevant sessions from November 15-17, 2025; Session results include session date and comprehensive context about what was accomplished in each session; Retrieved sessions document the evolution of hybrid search architecture fixes across multiple work sessions | Concepts: how-it-works, pattern, why-it-exists | Files: test-results/test-20-session-search.json\n\n---\nDate: 11/17/2025, 9:52:57 PM\n\n---\n\n## Context Retrieval System Architecture Analysis\n*Source: claude-mem://observation/10694*\n\n**Three-layer hybrid semantic search enables precision context injection for SessionStart**\n\nAnalysis of the 28 passing test queries reveals a production-grade context retrieval system designed for precision over bulk context injection. The architecture operates on three distinct layers: observations (AI-compressed insights), sessions (overall summaries), and prompts (exact user language), allowing retrieval strategies tailored to different needs. The hybrid Chroma + FTS5 search enables both semantic matching (finding conceptually related content) and keyword matching (exact term searches). Multi-parameter filter composability transforms broad queries like \"authentication\" into precise requests like \"bugfix observations about authentication in auth.ts from last week\". Timeline functionality provides chronological context to understand why decisions were made and how features evolved. The dual endpoint strategy separates ad-hoc session queries from optimized SessionStart injection patterns. This design philosophy prioritizes targeted, relevant context delivery over simply dumping recent observations.\n\n---\nType: discovery | Facts: Search system implements three-layer architecture: AI-compressed observations, session-level summaries, and verbatim user prompts; Hybrid search combines Chroma semantic embeddings with SQLite FTS5 keyword search for both conceptual and exact matching; Multi-parameter filtering allows stacking filters (type+query+file+dateRange+concept+project) for precision retrieval; Timeline queries (get_context_timeline and get_timeline_by_query) provide chronological context around specific events; Dual endpoint approach: unified /api/search for ad-hoc queries and dedicated endpoints (by-type, by-file, by-concept) for optimized SessionStart context injection; Test categories validate real-world context retrieval patterns: semantic (conceptual similarity), decision (architectural choices), troubleshooting (past bug fixes), file-specific (code history) | Concepts: how-it-works, pattern, why-it-exists\n\n---\nDate: 11/17/2025, 9:52:24 PM"}] \ No newline at end of file diff --git a/test-results/test-28-file-type-combo.json b/test-results/test-28-file-type-combo.json new file mode 100644 index 00000000..362b18bd --- /dev/null +++ b/test-results/test-28-file-type-combo.json @@ -0,0 +1 @@ +[{"type":"text","text":"## Enhanced MCP Search Tool with Document Type and Metadata Filters\n*Source: claude-mem://observation/10631*\n\n**Added type-specific filtering to unified search tool supporting observations, sessions, prompts with metadata filters.**\n\nThe unified search tool in the MCP search server was enhanced with granular filtering capabilities. Four new optional parameters were added to the search tool's input schema: a 'type' parameter to filter by document type (observations/sessions/prompts), an 'obs_type' parameter to filter observations by their observation type, a 'concepts' parameter to filter by concept tags, and a 'files' parameter to filter by file paths. The obs_type, concepts, and files filters are observation-specific and only take effect when the type parameter is set to \"observations\". This enhancement allows clients to perform more targeted searches through the MCP interface while maintaining backward compatibility since all new parameters are optional.\n\n---\nType: feature | Facts: File src/servers/search-server.ts search tool inputSchema extended with new filter parameters; New type parameter filters by document type: observations, sessions, or prompts; New obs_type parameter filters observations by type (decision, bugfix, feature, refactor, discovery, change); New concepts parameter filters observations by concept tags, accepts string or array; New files parameter filters observations by file paths with partial matching, accepts string or array; Type-specific filters (obs_type, concepts, files) only apply when type equals observations | Concepts: what-changed, how-it-works, pattern | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 9:21:49 PM\n\n---\n\n## Contextualize Tool for Comprehensive Project Overview\n*Source: claude-mem://observation/10597*\n\n**New tool provides one-stop project context with recent activity summaries and timeline visualization.**\n\nA comprehensive 'contextualize' tool was added to provide a quick project overview in a single request. The tool fetches recent observations (default 7), sessions (default 7), and user prompts (default 3), then identifies the newest activity across all types to use as a timeline anchor. The output is structured in sections: header with overview statistics and latest activity timestamp, followed by summaries of recent observations (top 3 with type emoji icons), recent sessions (top 3), and recent user prompts (all, truncated to 60 chars). The timeline section shows the last 3 days of activity around the newest item, displaying up to 5 entries per day with timestamps and type-specific icons. All activity is pulled using configurable limits, and timeline depth defaults to 5 records before/after the newest item. The tool is designed as a starting point for exploration, with footer text suggesting more specialized tools for deeper investigation. This addresses the \"what's been happening\" use case with minimal token overhead.\n\n---\nType: feature | Facts: Added 'contextualize' tool that fetches recent observations (7), sessions (7), and user prompts (3) in configurable quantities; Tool identifies newest activity across all memory types and builds timeline centered around it; Output includes three summary sections showing top 3 items from each category with type icons; Timeline section displays last 3 days of activity with up to 5 items per day in reverse chronological order; All limits configurable via parameters: observations_limit, sessions_limit, prompts_limit, timeline_depth; Defaults to current working directory basename for project filtering; Footer suggests other tools for deeper exploration (search, timeline, decisions, changes, how_it_works) | Concepts: what-changed, how-it-works, pattern | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 8:36:23 PM\n\n---\n\n## Semantic Shortcut Tools for Common Search Patterns\n*Source: claude-mem://observation/10596*\n\n**Added three convenience tools for frequently accessed observation categories: decisions, changes, and how-it-works.**\n\nThree semantic shortcut tools were added to the MCP search server to provide convenient access to commonly searched observation patterns. The 'decisions' tool is equivalent to find_by_type with type=\"decision\", filtering for observations where important architectural, technical, or process decisions were made. The 'changes' tool provides a broader search by combining results from type=\"change\", concept=\"change\", and concept=\"what-changed\", deduplicating IDs before applying semantic ranking with a \"what changed\" query. The 'how_it_works' tool searches for concept=\"how-it-works\" observations and applies semantic ranking with \"how it works architecture\" to surface the most relevant architectural documentation. All three tools use the metadata-first, semantic-enhanced search pattern where SQLite filters by type/concept first, then ChromaDB ranks results by semantic relevance. They support the same index/full format options as other search tools, defaulting to index format for token efficiency. When ChromaDB is unavailable, they fall back to SQLite-only searches with chronological ordering.\n\n---\nType: feature | Facts: Added 'decisions' tool as shortcut for finding decision-type observations with semantic ranking; Added 'changes' tool that searches type=change OR concept=change OR concept=what-changed with deduplication; Added 'how_it_works' tool for finding how-it-works concept observations with architecture-focused semantic queries; All three tools support index and full output formats with same token-efficiency guidelines as other search tools; Semantic shortcuts use metadata-first filtering followed by ChromaDB semantic ranking for relevance; Changes tool combines results from multiple filters (type and concepts) before semantic ranking; Tools fall back to SQLite-only search when ChromaDB unavailable | Concepts: what-changed, how-it-works, pattern | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 8:35:32 PM\n\n---\n\n## Unified Timeline Tool Combining Anchor and Query Modes\n*Source: claude-mem://observation/10595*\n\n**New timeline tool supports both anchor-based and query-based timeline exploration in single interface.**\n\nA new unified 'timeline' tool was added to the MCP search server that combines the capabilities of get_context_timeline and get_timeline_by_query into a single interface. The tool accepts either an anchor parameter for anchor-based timeline exploration or a query parameter for search-based timeline discovery, but not both. Input validation ensures exactly one parameter is provided with helpful error messages guiding proper usage. In query mode, the tool performs a hybrid semantic search (ChromaDB with FTS5 fallback) to find the most relevant observation matching the query, then uses that observation as the timeline anchor. In anchor mode, it supports three anchor types: numeric observation IDs, session ID strings (format \"S123\" or \"#S123\"), and ISO timestamp strings. Both modes use the same timeline rendering logic with observations, sessions, and prompts interleaved chronologically, grouped by day, and formatted with tables for observations and standalone entries for sessions/prompts. The header adapts to the mode, showing the query and matched anchor for query-based searches or just the anchor identifier for anchor-based searches.\n\n---\nType: feature | Facts: Added new 'timeline' tool that consolidates get_context_timeline and get_timeline_by_query functionality; Timeline tool accepts either anchor parameter (observation ID, session ID, or ISO timestamp) or query parameter (natural language search); Tool validates that exactly one of anchor or query is provided with clear error messages; Query mode performs hybrid semantic search to find best matching observation and uses it as timeline anchor; Anchor mode supports three anchor types: numeric observation ID, session ID string (S123), or ISO timestamp string; Timeline rendering identical for both modes with chronologically sorted observations, sessions, and prompts grouped by day; Header changes based on mode showing either \"Timeline for query\" or \"Timeline around anchor\" | Concepts: what-changed, how-it-works, pattern | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 8:34:35 PM\n\n---\n\n## Unified Search Tool Added to MCP Server\n*Source: claude-mem://observation/10594*\n\n**New unified search tool queries all memory types simultaneously with combined chronological results.**\n\nA new unified 'search' tool was added to the MCP search server that queries all memory types (observations, sessions, and user prompts) in a single operation. Unlike the existing type-specific tools (search_observations, search_sessions, search_user_prompts), this unified tool performs a single ChromaDB query without doc_type filtering, then categorizes results based on metadata and hydrates each type from SQLite. All results are combined into a single array with type discriminators, sorted chronologically according to the orderBy parameter, and then limited. The output format distinguishes between types when rendering results, using the appropriate formatter (formatObservationIndex, formatSessionIndex, formatUserPromptIndex) based on the item type. This provides a more efficient search workflow when users want to see all relevant context across different memory types without running multiple separate searches.\n\n---\nType: feature | Facts: Added new 'search' tool that queries observations, sessions, and user prompts in a single operation; Unified search categorizes ChromaDB results by doc_type metadata field (observation, session_summary, user_prompt); Results from all document types combined and sorted chronologically by epoch timestamp; Limit applies across all document types after merging results; Index format header shows breakdown of result counts by type (e.g., \"5 obs, 3 sessions, 2 prompts\"); Unified search uses same hybrid ChromaDB + FTS5 fallback strategy as type-specific search tools | Concepts: what-changed, how-it-works, pattern | Files: src/servers/search-server.ts\n\n---\nDate: 11/17/2025, 8:33:18 PM"}] \ No newline at end of file