@tokmizer/plugin 0.9.56 → 0.9.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +168 -9
- package/agent-plugins/amp.js +38 -0
- package/agent-plugins/hermes/__init__.py +39 -0
- package/agent-plugins/hermes/plugin.yaml +5 -0
- package/agent-plugins/kilo.js +40 -0
- package/agent-plugins/omp.js +32 -0
- package/agent-plugins/openclaw/index.js +39 -0
- package/agent-plugins/openclaw/openclaw.plugin.json +12 -0
- package/agent-plugins/openclaw/package.json +11 -0
- package/agent-plugins/opencode.js +40 -0
- package/agent-plugins/pi.js +30 -0
- package/codex-plugin/plugin.json +1 -1
- package/command-templates/tkr-gain.md +7 -2
- package/command-templates/tkr-link.md +1 -1
- package/command-templates/tkr-status.md +5 -3
- package/command-templates/tkr-telemetry.md +3 -3
- package/command-templates/tkr-unlink.md +2 -2
- package/dist/bin/tkr-agent-hook.js +11 -0
- package/dist/bin/tkr-codex-hook.js +131 -40
- package/dist/bin/tkr-copilot-hook.js +11 -0
- package/dist/bin/tkr-crush-hook.js +11 -0
- package/dist/bin/tkr-cursor-hook.js +11 -0
- package/dist/bin/tkr-daemon.js +161 -55
- package/dist/bin/tkr-droid-hook.js +11 -0
- package/dist/bin/tkr-exec +135 -42
- package/dist/bin/tkr-exec.js +135 -42
- package/dist/bin/tkr-gemini-hook.js +11 -0
- package/dist/bin/tkr-grok-hook.js +11 -0
- package/dist/bin/tkr-junie-hook.js +11 -0
- package/dist/bin/tkr-processor.js +162 -0
- package/dist/bin/tkr-qwen-hook.js +11 -0
- package/dist/bin/tkr-shim.js +131 -38
- package/dist/bin/tkr-trae-hook.js +11 -0
- package/dist/bin/tkr-zcode-hook.js +11 -0
- package/dist/bin/tkr.js +356 -152
- package/dist/hooks-host/post-tool-use.js +144 -48
- package/dist/hooks-host/pre-tool-use.js +8 -7
- package/dist/hooks-host/reducer-prompt-submit.js +1 -1
- package/dist/hooks-host/reducer-session-start.js +1 -1
- package/dist/hooks-host/reducer-stop.js +25 -16
- package/dist/hooks-host/session-recap.js +4 -3
- package/dist/index.js +125 -39
- package/dist/native/manifest.json +18 -8
- package/dist/native/single.json +38 -0
- package/dist/native/tkr-exec-darwin-arm64 +0 -0
- package/dist/native/tkr-exec-darwin-x64 +0 -0
- package/dist/native/tkr-exec-linux-arm64 +0 -0
- package/dist/native/tkr-exec-linux-x64 +0 -0
- package/dist/native/tkr-exec-win32-arm64.exe +0 -0
- package/dist/native/tkr-exec-win32-x64.exe +0 -0
- package/hooks/on-session-start.d.mts +1 -0
- package/hooks/on-session-start.mjs +25 -8
- package/package.json +24 -2
- package/scripts/README-INSTALL.md +13 -5
- package/scripts/install-mac-linux.sh +72 -6
- package/scripts/install-native.mjs +164 -25
package/dist/index.js
CHANGED
|
@@ -1,50 +1,136 @@
|
|
|
1
1
|
import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
|
|
2
|
-
var fi=Object.defineProperty;var A=(t,e,r)=>()=>{if(r)throw r[0];try{return t&&(e=t(t=0)),e}catch(n){throw r=[n],n}};var Pe=(t,e)=>{for(var r in e)fi(t,r,{get:e[r],enumerable:!0})};var T,Kt,g,J,Je=A(()=>{(function(t){t.assertEqual=s=>{};function e(s){}t.assertIs=e;function r(s){throw new Error}t.assertNever=r,t.arrayToEnum=s=>{let i={};for(let o of s)i[o]=o;return i},t.getValidEnumValues=s=>{let i=t.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),o={};for(let a of i)o[a]=s[a];return t.objectValues(o)},t.objectValues=s=>t.objectKeys(s).map(function(i){return s[i]}),t.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let i=[];for(let o in s)Object.prototype.hasOwnProperty.call(s,o)&&i.push(o);return i},t.find=(s,i)=>{for(let o of s)if(i(o))return o},t.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function n(s,i=" | "){return s.map(o=>typeof o=="string"?`'${o}'`:o).join(i)}t.joinValues=n,t.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(T||(T={}));(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Kt||(Kt={}));g=T.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),J=t=>{switch(typeof t){case"undefined":return g.undefined;case"string":return g.string;case"number":return Number.isNaN(t)?g.nan:g.number;case"boolean":return g.boolean;case"function":return g.function;case"bigint":return g.bigint;case"symbol":return g.symbol;case"object":return Array.isArray(t)?g.array:t===null?g.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?g.promise:typeof Map<"u"&&t instanceof Map?g.map:typeof Set<"u"&&t instanceof Set?g.set:typeof Date<"u"&&t instanceof Date?g.date:g.object;default:return g.unknown}}});var f,pi,L,gt=A(()=>{Je();f=T.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"]),pi=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),L=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};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(i){return i.message},n={_errors:[]},s=i=>{for(let o of i.issues)if(o.code==="invalid_union")o.unionErrors.map(s);else if(o.code==="invalid_return_type")s(o.returnTypeError);else if(o.code==="invalid_arguments")s(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,c=0;for(;c<o.path.length;){let u=o.path[c];c===o.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(r(o))):a[u]=a[u]||{_errors:[]},a=a[u],c++}}};return s(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,T.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let s of this.issues)if(s.path.length>0){let i=s.path[0];r[i]=r[i]||[],r[i].push(e(s))}else n.push(e(s));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};L.create=t=>new L(t)});var mi,Q,Gt=A(()=>{gt();Je();mi=(t,e)=>{let r;switch(t.code){case f.invalid_type:t.received===g.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case f.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,T.jsonStringifyReplacer)}`;break;case f.unrecognized_keys:r=`Unrecognized key(s) in object: ${T.joinValues(t.keys,", ")}`;break;case f.invalid_union:r="Invalid input";break;case f.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${T.joinValues(t.options)}`;break;case f.invalid_enum_value:r=`Invalid enum value. Expected ${T.joinValues(t.options)}, received '${t.received}'`;break;case f.invalid_arguments:r="Invalid function arguments";break;case f.invalid_return_type:r="Invalid function return type";break;case f.invalid_date:r="Invalid date";break;case f.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:T.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case f.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case f.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case f.custom:r="Invalid input";break;case f.invalid_intersection_types:r="Intersection results could not be merged";break;case f.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case f.not_finite:r="Number must be finite";break;default:r=e.defaultError,T.assertNever(t)}return{message:r}},Q=mi});function hi(t){en=t}function De(){return en}var en,yt=A(()=>{Gt();en=Q});function m(t,e){let r=De(),n=qe({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Q?void 0:Q].filter(s=>!!s)});t.common.issues.push(n)}var qe,gi,D,v,he,N,_t,bt,se,Ne,Wt=A(()=>{yt();Gt();qe=t=>{let{data:e,path:r,errorMaps:n,issueData:s}=t,i=[...r,...s.path||[]],o={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let a="",c=n.filter(u=>!!u).slice().reverse();for(let u of c)a=u(o,{data:e,defaultError:a}).message;return{...s,path:i,message:a}},gi=[];D=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let s of r){if(s.status==="aborted")return v;s.status==="dirty"&&e.dirty(),n.push(s.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let s of r){let i=await s.key,o=await s.value;n.push({key:i,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let s of r){let{key:i,value:o}=s;if(i.status==="aborted"||o.status==="aborted")return v;i.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof o.value<"u"||s.alwaysSet)&&(n[i.value]=o.value)}return{status:e.value,value:n}}},v=Object.freeze({status:"aborted"}),he=t=>({status:"dirty",value:t}),N=t=>({status:"valid",value:t}),_t=t=>t.status==="aborted",bt=t=>t.status==="dirty",se=t=>t.status==="valid",Ne=t=>typeof Promise<"u"&&t instanceof Promise});var tn=A(()=>{});var _,rn=A(()=>{(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(_||(_={}))});function w(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:s}=t;if(e&&(r||n))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:(o,a)=>{let{message:c}=t;return o.code==="invalid_enum_value"?{message:c??a.defaultError}:typeof a.data>"u"?{message:c??n??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:c??r??a.defaultError}},description:s}}function an(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function Pi(t){return new RegExp(`^${an(t)}$`)}function cn(t){let e=`${on}T${an(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function Di(t,e){return!!((e==="v4"||!e)&&Ti.test(t)||(e==="v6"||!e)&&Ai.test(t))}function Ni(t,e){if(!wi.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),s=JSON.parse(atob(n));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function Mi(t,e){return!!((e==="v4"||!e)&&Ri.test(t)||(e==="v6"||!e)&&Ci.test(t))}function Li(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,i=Number.parseInt(t.toFixed(s).replace(".","")),o=Number.parseInt(e.toFixed(s).replace(".",""));return i%o/10**s}function Me(t){if(t instanceof F){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=B.create(Me(n))}return new F({...t._def,shape:()=>e})}else return t instanceof re?new re({...t._def,type:Me(t.element)}):t instanceof B?B.create(Me(t.unwrap())):t instanceof Y?Y.create(Me(t.unwrap())):t instanceof q?q.create(t.items.map(e=>Me(e))):t}function qt(t,e){let r=J(t),n=J(e);if(t===e)return{valid:!0,data:t};if(r===g.object&&n===g.object){let s=T.objectKeys(e),i=T.objectKeys(t).filter(a=>s.indexOf(a)!==-1),o={...t,...e};for(let a of i){let c=qt(t[a],e[a]);if(!c.valid)return{valid:!1};o[a]=c.data}return{valid:!0,data:o}}else if(r===g.array&&n===g.array){if(t.length!==e.length)return{valid:!1};let s=[];for(let i=0;i<t.length;i++){let o=t[i],a=e[i],c=qt(o,a);if(!c.valid)return{valid:!1};s.push(c.data)}return{valid:!0,data:s}}else return r===g.date&&n===g.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}function un(t,e){return new Te({values:t,typeName:k.ZodEnum,...w(e)})}function sn(t,e){let r=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof r=="string"?{message:r}:r}function ln(t,e={},r){return t?oe.create().superRefine((n,s)=>{let i=t(n);if(i instanceof Promise)return i.then(o=>{if(!o){let a=sn(e,n),c=a.fatal??r??!0;s.addIssue({code:"custom",...a,fatal:c})}});if(!i){let o=sn(e,n),a=o.fatal??r??!0;s.addIssue({code:"custom",...o,fatal:a})}}):oe.create()}var Z,nn,x,yi,_i,bi,vi,ki,wi,xi,Ei,Si,Jt,Ti,Ri,Ai,Ci,$i,Ii,on,Oi,ie,ge,ye,_e,be,Le,ve,ke,oe,te,V,Fe,re,F,we,ee,vt,xe,q,kt,je,ze,wt,Ee,Se,Te,Re,ae,U,B,Y,Ae,Ce,Be,Fi,Ye,Xe,$e,ji,k,zi,dn,fn,Bi,Zi,pn,Ui,Vi,Hi,Ki,Gi,Wi,Ji,qi,Yi,Xi,Qi,eo,to,ro,no,so,io,oo,ao,co,uo,lo,fo,po,mo,ho,go,yo,_o,bo,vo,ko,wo,xo,mn=A(()=>{gt();yt();rn();Wt();Je();Z=class{constructor(e,r,n,s){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,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}},nn=(t,e)=>{if(se(e))return{success:!0,data:e.value};if(!t.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 L(t.common.issues);return this._error=r,this._error}}};x=class{get description(){return this._def.description}_getType(e){return J(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:J(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new D,ctx:{common:e.parent.common,data:e.data,parsedType:J(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Ne(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 n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:J(e)},s=this._parseSync({data:e,path:n.path,parent:n});return nn(n,s)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:J(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return se(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(n=>se(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:J(e)},s=this._parse({data:e,path:n.path,parent:n}),i=await(Ne(s)?s:Promise.resolve(s));return nn(n,i)}refine(e,r){let n=s=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(s):r;return this._refinement((s,i)=>{let o=e(s),a=()=>i.addIssue({code:f.custom,...n(s)});return typeof Promise<"u"&&o instanceof Promise?o.then(c=>c?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof r=="function"?r(n,s):r),!1))}_refinement(e){return new U({schema:this,typeName:k.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 B.create(this,this._def)}nullable(){return Y.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return re.create(this)}promise(){return ae.create(this,this._def)}or(e){return we.create([this,e],this._def)}and(e){return xe.create(this,e,this._def)}transform(e){return new U({...w(this._def),schema:this,typeName:k.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Ae({...w(this._def),innerType:this,defaultValue:r,typeName:k.ZodDefault})}brand(){return new Ye({typeName:k.ZodBranded,type:this,...w(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Ce({...w(this._def),innerType:this,catchValue:r,typeName:k.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Xe.create(this,e)}readonly(){return $e.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},yi=/^c[^\s-]{8,}$/i,_i=/^[0-9a-z]+$/,bi=/^[0-9A-HJKMNP-TV-Z]{26}$/i,vi=/^[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,ki=/^[a-z0-9_-]{21}$/i,wi=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,xi=/^[-+]?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)?)??$/,Ei=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Si="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ti=/^(?:(?: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])$/,Ri=/^(?:(?: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])$/,Ai=/^(([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]))$/,Ci=/^(([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])$/,$i=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ii=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,on="((\\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])))",Oi=new RegExp(`^${on}$`);ie=class t extends x{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==g.string){let i=this._getOrReturnCtx(e);return m(i,{code:f.invalid_type,expected:g.string,received:i.parsedType}),v}let n=new D,s;for(let i of this._def.checks)if(i.kind==="min")e.data.length<i.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:f.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="max")e.data.length>i.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:f.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),n.dirty());else if(i.kind==="length"){let o=e.data.length>i.value,a=e.data.length<i.value;(o||a)&&(s=this._getOrReturnCtx(e,s),o?m(s,{code:f.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}):a&&m(s,{code:f.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}),n.dirty())}else if(i.kind==="email")Ei.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"email",code:f.invalid_string,message:i.message}),n.dirty());else if(i.kind==="emoji")Jt||(Jt=new RegExp(Si,"u")),Jt.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"emoji",code:f.invalid_string,message:i.message}),n.dirty());else if(i.kind==="uuid")vi.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"uuid",code:f.invalid_string,message:i.message}),n.dirty());else if(i.kind==="nanoid")ki.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"nanoid",code:f.invalid_string,message:i.message}),n.dirty());else if(i.kind==="cuid")yi.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"cuid",code:f.invalid_string,message:i.message}),n.dirty());else if(i.kind==="cuid2")_i.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"cuid2",code:f.invalid_string,message:i.message}),n.dirty());else if(i.kind==="ulid")bi.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"ulid",code:f.invalid_string,message:i.message}),n.dirty());else if(i.kind==="url")try{new URL(e.data)}catch{s=this._getOrReturnCtx(e,s),m(s,{validation:"url",code:f.invalid_string,message:i.message}),n.dirty()}else i.kind==="regex"?(i.regex.lastIndex=0,i.regex.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"regex",code:f.invalid_string,message:i.message}),n.dirty())):i.kind==="trim"?e.data=e.data.trim():i.kind==="includes"?e.data.includes(i.value,i.position)||(s=this._getOrReturnCtx(e,s),m(s,{code:f.invalid_string,validation:{includes:i.value,position:i.position},message:i.message}),n.dirty()):i.kind==="toLowerCase"?e.data=e.data.toLowerCase():i.kind==="toUpperCase"?e.data=e.data.toUpperCase():i.kind==="startsWith"?e.data.startsWith(i.value)||(s=this._getOrReturnCtx(e,s),m(s,{code:f.invalid_string,validation:{startsWith:i.value},message:i.message}),n.dirty()):i.kind==="endsWith"?e.data.endsWith(i.value)||(s=this._getOrReturnCtx(e,s),m(s,{code:f.invalid_string,validation:{endsWith:i.value},message:i.message}),n.dirty()):i.kind==="datetime"?cn(i).test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{code:f.invalid_string,validation:"datetime",message:i.message}),n.dirty()):i.kind==="date"?Oi.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{code:f.invalid_string,validation:"date",message:i.message}),n.dirty()):i.kind==="time"?Pi(i).test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{code:f.invalid_string,validation:"time",message:i.message}),n.dirty()):i.kind==="duration"?xi.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"duration",code:f.invalid_string,message:i.message}),n.dirty()):i.kind==="ip"?Di(e.data,i.version)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"ip",code:f.invalid_string,message:i.message}),n.dirty()):i.kind==="jwt"?Ni(e.data,i.alg)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"jwt",code:f.invalid_string,message:i.message}),n.dirty()):i.kind==="cidr"?Mi(e.data,i.version)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"cidr",code:f.invalid_string,message:i.message}),n.dirty()):i.kind==="base64"?$i.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"base64",code:f.invalid_string,message:i.message}),n.dirty()):i.kind==="base64url"?Ii.test(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{validation:"base64url",code:f.invalid_string,message:i.message}),n.dirty()):T.assertNever(i);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(s=>e.test(s),{validation:r,code:f.invalid_string,..._.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",..._.errToObj(e)})}url(e){return this._addCheck({kind:"url",..._.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",..._.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",..._.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",..._.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",..._.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",..._.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",..._.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",..._.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",..._.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",..._.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",..._.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",..._.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,..._.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,..._.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",..._.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,..._.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,..._.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,..._.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,..._.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,..._.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,..._.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,..._.errToObj(r)})}nonempty(e){return this.min(1,_.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...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.value<e)&&(e=r.value);return e}};ie.create=t=>new ie({checks:[],typeName:k.ZodString,coerce:t?.coerce??!1,...w(t)});ge=class t extends x{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)!==g.number){let i=this._getOrReturnCtx(e);return m(i,{code:f.invalid_type,expected:g.number,received:i.parsedType}),v}let n,s=new D;for(let i of this._def.checks)i.kind==="int"?T.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),m(n,{code:f.invalid_type,expected:"integer",received:"float",message:i.message}),s.dirty()):i.kind==="min"?(i.inclusive?e.data<i.value:e.data<=i.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:f.too_small,minimum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?e.data>i.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:f.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="multipleOf"?Li(e.data,i.value)!==0&&(n=this._getOrReturnCtx(e,n),m(n,{code:f.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),m(n,{code:f.not_finite,message:i.message}),s.dirty()):T.assertNever(i);return{status:s.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,_.toString(r))}gt(e,r){return this.setLimit("min",e,!1,_.toString(r))}lte(e,r){return this.setLimit("max",e,!0,_.toString(r))}lt(e,r){return this.setLimit("max",e,!1,_.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:_.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:_.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:_.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:_.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:_.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:_.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:_.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:_.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:_.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:_.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.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&T.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};ge.create=t=>new ge({checks:[],typeName:k.ZodNumber,coerce:t?.coerce||!1,...w(t)});ye=class t extends x{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)!==g.bigint)return this._getInvalidInput(e);let n,s=new D;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?e.data<i.value:e.data<=i.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:f.too_small,type:"bigint",minimum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?e.data>i.value:e.data>=i.value)&&(n=this._getOrReturnCtx(e,n),m(n,{code:f.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),m(n,{code:f.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):T.assertNever(i);return{status:s.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return m(r,{code:f.invalid_type,expected:g.bigint,received:r.parsedType}),v}gte(e,r){return this.setLimit("min",e,!0,_.toString(r))}gt(e,r){return this.setLimit("min",e,!1,_.toString(r))}lte(e,r){return this.setLimit("max",e,!0,_.toString(r))}lt(e,r){return this.setLimit("max",e,!1,_.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:_.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:_.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:_.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:_.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:_.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:_.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.value<e)&&(e=r.value);return e}};ye.create=t=>new ye({checks:[],typeName:k.ZodBigInt,coerce:t?.coerce??!1,...w(t)});_e=class extends x{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==g.boolean){let n=this._getOrReturnCtx(e);return m(n,{code:f.invalid_type,expected:g.boolean,received:n.parsedType}),v}return N(e.data)}};_e.create=t=>new _e({typeName:k.ZodBoolean,coerce:t?.coerce||!1,...w(t)});be=class t extends x{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==g.date){let i=this._getOrReturnCtx(e);return m(i,{code:f.invalid_type,expected:g.date,received:i.parsedType}),v}if(Number.isNaN(e.data.getTime())){let i=this._getOrReturnCtx(e);return m(i,{code:f.invalid_date}),v}let n=new D,s;for(let i of this._def.checks)i.kind==="min"?e.data.getTime()<i.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:f.too_small,message:i.message,inclusive:!0,exact:!1,minimum:i.value,type:"date"}),n.dirty()):i.kind==="max"?e.data.getTime()>i.value&&(s=this._getOrReturnCtx(e,s),m(s,{code:f.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),n.dirty()):T.assertNever(i);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:_.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:_.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.value<e)&&(e=r.value);return e!=null?new Date(e):null}};be.create=t=>new be({checks:[],coerce:t?.coerce||!1,typeName:k.ZodDate,...w(t)});Le=class extends x{_parse(e){if(this._getType(e)!==g.symbol){let n=this._getOrReturnCtx(e);return m(n,{code:f.invalid_type,expected:g.symbol,received:n.parsedType}),v}return N(e.data)}};Le.create=t=>new Le({typeName:k.ZodSymbol,...w(t)});ve=class extends x{_parse(e){if(this._getType(e)!==g.undefined){let n=this._getOrReturnCtx(e);return m(n,{code:f.invalid_type,expected:g.undefined,received:n.parsedType}),v}return N(e.data)}};ve.create=t=>new ve({typeName:k.ZodUndefined,...w(t)});ke=class extends x{_parse(e){if(this._getType(e)!==g.null){let n=this._getOrReturnCtx(e);return m(n,{code:f.invalid_type,expected:g.null,received:n.parsedType}),v}return N(e.data)}};ke.create=t=>new ke({typeName:k.ZodNull,...w(t)});oe=class extends x{constructor(){super(...arguments),this._any=!0}_parse(e){return N(e.data)}};oe.create=t=>new oe({typeName:k.ZodAny,...w(t)});te=class extends x{constructor(){super(...arguments),this._unknown=!0}_parse(e){return N(e.data)}};te.create=t=>new te({typeName:k.ZodUnknown,...w(t)});V=class extends x{_parse(e){let r=this._getOrReturnCtx(e);return m(r,{code:f.invalid_type,expected:g.never,received:r.parsedType}),v}};V.create=t=>new V({typeName:k.ZodNever,...w(t)});Fe=class extends x{_parse(e){if(this._getType(e)!==g.undefined){let n=this._getOrReturnCtx(e);return m(n,{code:f.invalid_type,expected:g.void,received:n.parsedType}),v}return N(e.data)}};Fe.create=t=>new Fe({typeName:k.ZodVoid,...w(t)});re=class t extends x{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),s=this._def;if(r.parsedType!==g.array)return m(r,{code:f.invalid_type,expected:g.array,received:r.parsedType}),v;if(s.exactLength!==null){let o=r.data.length>s.exactLength.value,a=r.data.length<s.exactLength.value;(o||a)&&(m(r,{code:o?f.too_big:f.too_small,minimum:a?s.exactLength.value:void 0,maximum:o?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),n.dirty())}if(s.minLength!==null&&r.data.length<s.minLength.value&&(m(r,{code:f.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),n.dirty()),s.maxLength!==null&&r.data.length>s.maxLength.value&&(m(r,{code:f.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>s.type._parseAsync(new Z(r,o,r.path,a)))).then(o=>D.mergeArray(n,o));let i=[...r.data].map((o,a)=>s.type._parseSync(new Z(r,o,r.path,a)));return D.mergeArray(n,i)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:_.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:_.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:_.toString(r)}})}nonempty(e){return this.min(1,e)}};re.create=(t,e)=>new re({type:t,minLength:null,maxLength:null,exactLength:null,typeName:k.ZodArray,...w(e)});F=class t extends x{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=T.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==g.object){let u=this._getOrReturnCtx(e);return m(u,{code:f.invalid_type,expected:g.object,received:u.parsedType}),v}let{status:n,ctx:s}=this._processInputParams(e),{shape:i,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof V&&this._def.unknownKeys==="strip"))for(let u in s.data)o.includes(u)||a.push(u);let c=[];for(let u of o){let l=i[u],p=s.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new Z(s,p,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof V){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:s.data[l]}});else if(u==="strict")a.length>0&&(m(s,{code:f.unrecognized_keys,keys:a}),n.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of a){let p=s.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new Z(s,p,s.path,l)),alwaysSet:l in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let p=await l.key,d=await l.value;u.push({key:p,value:d,alwaysSet:l.alwaysSet})}return u}).then(u=>D.mergeObjectSync(n,u)):D.mergeObjectSync(n,c)}get shape(){return this._def.shape()}strict(e){return _.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let s=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:_.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:k.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of T.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let n of T.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return Me(this)}partial(e){let r={};for(let n of T.objectKeys(this.shape)){let s=this.shape[n];e&&!e[n]?r[n]=s:r[n]=s.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of T.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let i=this.shape[n];for(;i instanceof B;)i=i._def.innerType;r[n]=i}return new t({...this._def,shape:()=>r})}keyof(){return un(T.objectKeys(this.shape))}};F.create=(t,e)=>new F({shape:()=>t,unknownKeys:"strip",catchall:V.create(),typeName:k.ZodObject,...w(e)});F.strictCreate=(t,e)=>new F({shape:()=>t,unknownKeys:"strict",catchall:V.create(),typeName:k.ZodObject,...w(e)});F.lazycreate=(t,e)=>new F({shape:t,unknownKeys:"strip",catchall:V.create(),typeName:k.ZodObject,...w(e)});we=class extends x{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function s(i){for(let a of i)if(a.result.status==="valid")return a.result;for(let a of i)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=i.map(a=>new L(a.ctx.common.issues));return m(r,{code:f.invalid_union,unionErrors:o}),v}if(r.common.async)return Promise.all(n.map(async i=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await i._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(s);{let i,o=[];for(let c of n){let u={...r,common:{...r.common,issues:[]},parent:null},l=c._parseSync({data:r.data,path:r.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!i&&(i={result:l,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(i)return r.common.issues.push(...i.ctx.common.issues),i.result;let a=o.map(c=>new L(c));return m(r,{code:f.invalid_union,unionErrors:a}),v}}get options(){return this._def.options}};we.create=(t,e)=>new we({options:t,typeName:k.ZodUnion,...w(e)});ee=t=>t instanceof Ee?ee(t.schema):t instanceof U?ee(t.innerType()):t instanceof Se?[t.value]:t instanceof Te?t.options:t instanceof Re?T.objectValues(t.enum):t instanceof Ae?ee(t._def.innerType):t instanceof ve?[void 0]:t instanceof ke?[null]:t instanceof B?[void 0,...ee(t.unwrap())]:t instanceof Y?[null,...ee(t.unwrap())]:t instanceof Ye||t instanceof $e?ee(t.unwrap()):t instanceof Ce?ee(t._def.innerType):[],vt=class t extends x{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==g.object)return m(r,{code:f.invalid_type,expected:g.object,received:r.parsedType}),v;let n=this.discriminator,s=r.data[n],i=this.optionsMap.get(s);return i?r.common.async?i._parseAsync({data:r.data,path:r.path,parent:r}):i._parseSync({data:r.data,path:r.path,parent:r}):(m(r,{code:f.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),v)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let s=new Map;for(let i of r){let o=ee(i.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(s.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);s.set(a,i)}}return new t({typeName:k.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:s,...w(n)})}};xe=class extends x{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),s=(i,o)=>{if(_t(i)||_t(o))return v;let a=qt(i.value,o.value);return a.valid?((bt(i)||bt(o))&&r.dirty(),{status:r.value,value:a.data}):(m(n,{code:f.invalid_intersection_types}),v)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([i,o])=>s(i,o)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};xe.create=(t,e,r)=>new xe({left:t,right:e,typeName:k.ZodIntersection,...w(r)});q=class t extends x{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==g.array)return m(n,{code:f.invalid_type,expected:g.array,received:n.parsedType}),v;if(n.data.length<this._def.items.length)return m(n,{code:f.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),v;!this._def.rest&&n.data.length>this._def.items.length&&(m(n,{code:f.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let i=[...n.data].map((o,a)=>{let c=this._def.items[a]||this._def.rest;return c?c._parse(new Z(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(i).then(o=>D.mergeArray(r,o)):D.mergeArray(r,i)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};q.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new q({items:t,typeName:k.ZodTuple,rest:null,...w(e)})};kt=class t extends x{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==g.object)return m(n,{code:f.invalid_type,expected:g.object,received:n.parsedType}),v;let s=[],i=this._def.keyType,o=this._def.valueType;for(let a in n.data)s.push({key:i._parse(new Z(n,a,n.path,a)),value:o._parse(new Z(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?D.mergeObjectAsync(r,s):D.mergeObjectSync(r,s)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof x?new t({keyType:e,valueType:r,typeName:k.ZodRecord,...w(n)}):new t({keyType:ie.create(),valueType:e,typeName:k.ZodRecord,...w(r)})}},je=class extends x{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==g.map)return m(n,{code:f.invalid_type,expected:g.map,received:n.parsedType}),v;let s=this._def.keyType,i=this._def.valueType,o=[...n.data.entries()].map(([a,c],u)=>({key:s._parse(new Z(n,a,n.path,[u,"key"])),value:i._parse(new Z(n,c,n.path,[u,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let c of o){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return v;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(u.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let c of o){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return v;(u.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(u.value,l.value)}return{status:r.value,value:a}}}};je.create=(t,e,r)=>new je({valueType:e,keyType:t,typeName:k.ZodMap,...w(r)});ze=class t extends x{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==g.set)return m(n,{code:f.invalid_type,expected:g.set,received:n.parsedType}),v;let s=this._def;s.minSize!==null&&n.data.size<s.minSize.value&&(m(n,{code:f.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),r.dirty()),s.maxSize!==null&&n.data.size>s.maxSize.value&&(m(n,{code:f.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),r.dirty());let i=this._def.valueType;function o(c){let u=new Set;for(let l of c){if(l.status==="aborted")return v;l.status==="dirty"&&r.dirty(),u.add(l.value)}return{status:r.value,value:u}}let a=[...n.data.values()].map((c,u)=>i._parse(new Z(n,c,n.path,u)));return n.common.async?Promise.all(a).then(c=>o(c)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:_.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:_.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};ze.create=(t,e)=>new ze({valueType:t,minSize:null,maxSize:null,typeName:k.ZodSet,...w(e)});wt=class t extends x{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==g.function)return m(r,{code:f.invalid_type,expected:g.function,received:r.parsedType}),v;function n(a,c){return qe({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,De(),Q].filter(u=>!!u),issueData:{code:f.invalid_arguments,argumentsError:c}})}function s(a,c){return qe({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,De(),Q].filter(u=>!!u),issueData:{code:f.invalid_return_type,returnTypeError:c}})}let i={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof ae){let a=this;return N(async function(...c){let u=new L([]),l=await a._def.args.parseAsync(c,i).catch(h=>{throw u.addIssue(n(c,h)),u}),p=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(p,i).catch(h=>{throw u.addIssue(s(p,h)),u})})}else{let a=this;return N(function(...c){let u=a._def.args.safeParse(c,i);if(!u.success)throw new L([n(c,u.error)]);let l=Reflect.apply(o,this,u.data),p=a._def.returns.safeParse(l,i);if(!p.success)throw new L([s(l,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:q.create(e).rest(te.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||q.create([]).rest(te.create()),returns:r||te.create(),typeName:k.ZodFunction,...w(n)})}},Ee=class extends x{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})}};Ee.create=(t,e)=>new Ee({getter:t,typeName:k.ZodLazy,...w(e)});Se=class extends x{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return m(r,{received:r.data,code:f.invalid_literal,expected:this._def.value}),v}return{status:"valid",value:e.data}}get value(){return this._def.value}};Se.create=(t,e)=>new Se({value:t,typeName:k.ZodLiteral,...w(e)});Te=class t extends x{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return m(r,{expected:T.joinValues(n),received:r.parsedType,code:f.invalid_type}),v}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return m(r,{received:r.data,code:f.invalid_enum_value,options:n}),v}return N(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 t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};Te.create=un;Re=class extends x{_parse(e){let r=T.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==g.string&&n.parsedType!==g.number){let s=T.objectValues(r);return m(n,{expected:T.joinValues(s),received:n.parsedType,code:f.invalid_type}),v}if(this._cache||(this._cache=new Set(T.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let s=T.objectValues(r);return m(n,{received:n.data,code:f.invalid_enum_value,options:s}),v}return N(e.data)}get enum(){return this._def.values}};Re.create=(t,e)=>new Re({values:t,typeName:k.ZodNativeEnum,...w(e)});ae=class extends x{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==g.promise&&r.common.async===!1)return m(r,{code:f.invalid_type,expected:g.promise,received:r.parsedType}),v;let n=r.parsedType===g.promise?r.data:Promise.resolve(r.data);return N(n.then(s=>this._def.type.parseAsync(s,{path:r.path,errorMap:r.common.contextualErrorMap})))}};ae.create=(t,e)=>new ae({type:t,typeName:k.ZodPromise,...w(e)});U=class extends x{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===k.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),s=this._def.effect||null,i={addIssue:o=>{m(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){let o=s.transform(n.data,i);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return v;let c=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return c.status==="aborted"?v:c.status==="dirty"?he(c.value):r.value==="dirty"?he(c.value):c});{if(r.value==="aborted")return v;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?v:a.status==="dirty"?he(a.value):r.value==="dirty"?he(a.value):a}}if(s.type==="refinement"){let o=a=>{let c=s.refinement(a,i);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?v:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?v:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(s.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!se(o))return v;let a=s.transform(o.value,i);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>se(o)?Promise.resolve(s.transform(o.value,i)).then(a=>({status:r.value,value:a})):v);T.assertNever(s)}};U.create=(t,e,r)=>new U({schema:t,typeName:k.ZodEffects,effect:e,...w(r)});U.createWithPreprocess=(t,e,r)=>new U({schema:e,effect:{type:"preprocess",transform:t},typeName:k.ZodEffects,...w(r)});B=class extends x{_parse(e){return this._getType(e)===g.undefined?N(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};B.create=(t,e)=>new B({innerType:t,typeName:k.ZodOptional,...w(e)});Y=class extends x{_parse(e){return this._getType(e)===g.null?N(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Y.create=(t,e)=>new Y({innerType:t,typeName:k.ZodNullable,...w(e)});Ae=class extends x{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===g.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Ae.create=(t,e)=>new Ae({innerType:t,typeName:k.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...w(e)});Ce=class extends x{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Ne(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new L(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new L(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Ce.create=(t,e)=>new Ce({innerType:t,typeName:k.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...w(e)});Be=class extends x{_parse(e){if(this._getType(e)!==g.nan){let n=this._getOrReturnCtx(e);return m(n,{code:f.invalid_type,expected:g.nan,received:n.parsedType}),v}return{status:"valid",value:e.data}}};Be.create=t=>new Be({typeName:k.ZodNaN,...w(t)});Fi=Symbol("zod_brand"),Ye=class extends x{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Xe=class t extends x{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?v:i.status==="dirty"?(r.dirty(),he(i.value)):this._def.out._parseAsync({data:i.value,path:n.path,parent:n})})();{let s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?v:s.status==="dirty"?(r.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:k.ZodPipeline})}},$e=class extends x{_parse(e){let r=this._def.innerType._parse(e),n=s=>(se(s)&&(s.value=Object.freeze(s.value)),s);return Ne(r)?r.then(s=>n(s)):n(r)}unwrap(){return this._def.innerType}};$e.create=(t,e)=>new $e({innerType:t,typeName:k.ZodReadonly,...w(e)});ji={object:F.lazycreate};(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(k||(k={}));zi=(t,e={message:`Input not instance of ${t.name}`})=>ln(r=>r instanceof t,e),dn=ie.create,fn=ge.create,Bi=Be.create,Zi=ye.create,pn=_e.create,Ui=be.create,Vi=Le.create,Hi=ve.create,Ki=ke.create,Gi=oe.create,Wi=te.create,Ji=V.create,qi=Fe.create,Yi=re.create,Xi=F.create,Qi=F.strictCreate,eo=we.create,to=vt.create,ro=xe.create,no=q.create,so=kt.create,io=je.create,oo=ze.create,ao=wt.create,co=Ee.create,uo=Se.create,lo=Te.create,fo=Re.create,po=ae.create,mo=U.create,ho=B.create,go=Y.create,yo=U.createWithPreprocess,_o=Xe.create,bo=()=>dn().optional(),vo=()=>fn().optional(),ko=()=>pn().optional(),wo={string:(t=>ie.create({...t,coerce:!0})),number:(t=>ge.create({...t,coerce:!0})),boolean:(t=>_e.create({...t,coerce:!0})),bigint:(t=>ye.create({...t,coerce:!0})),date:(t=>be.create({...t,coerce:!0}))},xo=v});var y={};Pe(y,{BRAND:()=>Fi,DIRTY:()=>he,EMPTY_PATH:()=>gi,INVALID:()=>v,NEVER:()=>xo,OK:()=>N,ParseStatus:()=>D,Schema:()=>x,ZodAny:()=>oe,ZodArray:()=>re,ZodBigInt:()=>ye,ZodBoolean:()=>_e,ZodBranded:()=>Ye,ZodCatch:()=>Ce,ZodDate:()=>be,ZodDefault:()=>Ae,ZodDiscriminatedUnion:()=>vt,ZodEffects:()=>U,ZodEnum:()=>Te,ZodError:()=>L,ZodFirstPartyTypeKind:()=>k,ZodFunction:()=>wt,ZodIntersection:()=>xe,ZodIssueCode:()=>f,ZodLazy:()=>Ee,ZodLiteral:()=>Se,ZodMap:()=>je,ZodNaN:()=>Be,ZodNativeEnum:()=>Re,ZodNever:()=>V,ZodNull:()=>ke,ZodNullable:()=>Y,ZodNumber:()=>ge,ZodObject:()=>F,ZodOptional:()=>B,ZodParsedType:()=>g,ZodPipeline:()=>Xe,ZodPromise:()=>ae,ZodReadonly:()=>$e,ZodRecord:()=>kt,ZodSchema:()=>x,ZodSet:()=>ze,ZodString:()=>ie,ZodSymbol:()=>Le,ZodTransformer:()=>U,ZodTuple:()=>q,ZodType:()=>x,ZodUndefined:()=>ve,ZodUnion:()=>we,ZodUnknown:()=>te,ZodVoid:()=>Fe,addIssueToContext:()=>m,any:()=>Gi,array:()=>Yi,bigint:()=>Zi,boolean:()=>pn,coerce:()=>wo,custom:()=>ln,date:()=>Ui,datetimeRegex:()=>cn,defaultErrorMap:()=>Q,discriminatedUnion:()=>to,effect:()=>mo,enum:()=>lo,function:()=>ao,getErrorMap:()=>De,getParsedType:()=>J,instanceof:()=>zi,intersection:()=>ro,isAborted:()=>_t,isAsync:()=>Ne,isDirty:()=>bt,isValid:()=>se,late:()=>ji,lazy:()=>co,literal:()=>uo,makeIssue:()=>qe,map:()=>io,nan:()=>Bi,nativeEnum:()=>fo,never:()=>Ji,null:()=>Ki,nullable:()=>go,number:()=>fn,object:()=>Xi,objectUtil:()=>Kt,oboolean:()=>ko,onumber:()=>vo,optional:()=>ho,ostring:()=>bo,pipeline:()=>_o,preprocess:()=>yo,promise:()=>po,quotelessJson:()=>pi,record:()=>so,set:()=>oo,setErrorMap:()=>hi,strictObject:()=>Qi,string:()=>dn,symbol:()=>Vi,transformer:()=>mo,tuple:()=>no,undefined:()=>Hi,union:()=>eo,unknown:()=>Wi,util:()=>T,void:()=>qi});var Yt=A(()=>{yt();Wt();tn();Je();mn();gt()});var xt=A(()=>{Yt();Yt()});import{createHash as Eo}from"node:crypto";function ce(t){let e=hn.get(t);return e||(e=Eo("sha256").update(`tkr:${t}`).digest("hex").slice(0,16),hn.set(t,e)),e}var So,To,Ze,hn,Qe=A(()=>{"use strict";xt();So=y.enum(["normal","compact","minimal"]),To=y.enum(["off","light","balanced","max"]),Ze=y.object({enabled:y.boolean().default(!0),telemetryOptIn:y.boolean().default(!0),outputVerbosity:So.default("compact"),reducer:To.default("off"),filters:y.object({enableAll:y.boolean().default(!0),disabled:y.array(y.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),hn=new Map});import gn from"node:os";import{join as ne}from"node:path";function E(){return process.env.TOKMIZER_HOME||ne(gn.homedir(),".tokmizer")}function et(){return ne(E(),"install-id")}function Xt(){return ne(E(),"bundle-refresh.json")}function Et(){return ne(E(),"skills")}function tt(t){return ne(Et(),`${t}.md`)}function Qt(){return ne(E(),"content-cache")}function er(){return ne(E(),"managed-commands.json")}function tr(){return process.env.TOKMIZER_CLAUDE_COMMANDS_DIR||ne(gn.homedir(),".claude","commands")}function Ue(t){return ne(tr(),`${t}.md`)}var z=A(()=>{"use strict"});import Ve from"node:os";import{createHash as Ro,randomUUID as Ao}from"node:crypto";import{readFile as yn,writeFile as _n,mkdir as Co}from"node:fs/promises";async function St(){try{let r=(await yn(et(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(r))return r}catch{}await Co(E(),{recursive:!0});let t=Ao();try{return await _n(et(),t,{mode:384,flag:"wx"}),t}catch{try{let e=(await yn(et(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(e))return e}catch{}return await _n(et(),t,{mode:384}),t}}function rr(t){return Ro("sha256").update(t).digest("hex")}function $o(){let t=Ve.networkInterfaces();for(let e of Object.keys(t))for(let r of t[e]??[])if(!r.internal&&r.mac&&r.mac!=="00:00:00:00:00:00")return r.mac;return"no-mac"}async function H(){let t=await St(),e=Ve.hostname(),r=Ve.platform(),n=Ve.release(),s=Ve.cpus(),i=s[0]?.model??"unknown",o=s.length,a=rr($o()),c=rr(Ve.userInfo().username),u=[e,r,n,i,String(o),a,c,t].join("|");return{fingerprint:rr(u),installId:t,hostname:e,os:r,osVersion:n,cpuModel:i,cpuCores:o,macHash:a,usernameHash:c}}var Ie=A(()=>{"use strict";z()});import{join as nr}from"node:path";import{mkdir as Io,readFile as Oo,writeFile as Po,unlink as bn,rename as Do}from"node:fs/promises";function rt(){try{let t=Intl.DateTimeFormat().resolvedOptions().timeZone;return t&&t.length>0?t:"Etc/UTC"}catch{return"Etc/UTC"}}function ir(t){return t?.dir??E()}async function K(t){let e=ir(t);try{let r=await Oo(nr(e,sr),"utf8"),n=JSON.parse(r),s=n.timeZone;return{...n,lastSettingsRevision:n.lastSettingsRevision??0,get timeZone(){return s??=rt()},bonusActive:n.bonusActive??!1,...n.bonusResetAt!==void 0?{bonusResetAt:n.bonusResetAt}:{}}}catch{return null}}async function Tt(t,e){let r=ir(e);await Io(r,{recursive:!0}),t.installedAt==null&&(t.installedAt=Math.floor(Date.now()/1e3));let n=nr(r,sr),s=`${n}.tmp-${process.pid}-${process.hrtime.bigint()}`;await Po(s,JSON.stringify(t,null,2),{mode:384});try{await Do(s,n)}catch(i){try{await bn(s)}catch{}throw i}}async function vn(t){let e=ir(t);try{await bn(nr(e,sr))}catch{return}}var sr,nt=A(()=>{"use strict";z();sr="state.json"});import{createRequire as No}from"node:module";function Lo(){for(let t of["../package.json","../../package.json"])try{let e=Mo(t).version;if(typeof e=="string"&&e)return e}catch{}return"0.0.0"}function He(t,e){if(!t||!e)return!1;let r=t.split(".").map(s=>parseInt(s,10)),n=e.split(".").map(s=>parseInt(s,10));for(let s=0;s<3;s+=1){let i=r[s]??0,o=n[s]??0;if(Number.isNaN(i)||Number.isNaN(o))return!1;if(i<o)return!0;if(i>o)return!1}return!1}var Mo,G,Ke=A(()=>{"use strict";Mo=No(import.meta.url);G=Lo()});var kn,wn=A(()=>{"use strict";kn=`-----BEGIN PUBLIC KEY-----
|
|
2
|
+
var Sa=Object.defineProperty;var k=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var ve=(e,t)=>{for(var n in t)Sa(e,n,{get:t[n],enumerable:!0})};var C,Nn,b,ne,gt=k(()=>{(function(e){e.assertEqual=s=>{};function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{let i={};for(let o of s)i[o]=o;return i},e.getValidEnumValues=s=>{let i=e.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),o={};for(let a of i)o[a]=s[a];return e.objectValues(o)},e.objectValues=s=>e.objectKeys(s).map(function(i){return s[i]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let i=[];for(let o in s)Object.prototype.hasOwnProperty.call(s,o)&&i.push(o);return i},e.find=(s,i)=>{for(let o of s)if(i(o))return o},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function r(s,i=" | "){return s.map(o=>typeof o=="string"?`'${o}'`:o).join(i)}e.joinValues=r,e.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(C||(C={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Nn||(Nn={}));b=C.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ne=e=>{switch(typeof e){case"undefined":return b.undefined;case"string":return b.string;case"number":return Number.isNaN(e)?b.nan:b.number;case"boolean":return b.boolean;case"function":return b.function;case"bigint":return b.bigint;case"symbol":return b.symbol;case"object":return Array.isArray(e)?b.array:e===null?b.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?b.promise:typeof Map<"u"&&e instanceof Map?b.map:typeof Set<"u"&&e instanceof Set?b.set:typeof Date<"u"&&e instanceof Date?b.date:b.object;default:return b.unknown}}});var m,Ta,j,Ut=k(()=>{gt();m=C.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"]),Ta=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),j=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(i){return i.message},r={_errors:[]},s=i=>{for(let o of i.issues)if(o.code==="invalid_union")o.unionErrors.map(s);else if(o.code==="invalid_return_type")s(o.returnTypeError);else if(o.code==="invalid_arguments")s(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let a=r,l=0;for(;l<o.path.length;){let c=o.path[l];l===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(n(o))):a[c]=a[c]||{_errors:[]},a=a[c],l++}}};return s(this),r}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,C.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let s of this.issues)if(s.path.length>0){let i=s.path[0];n[i]=n[i]||[],n[i].push(t(s))}else r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};j.create=e=>new j(e)});var Ra,ae,Pn=k(()=>{Ut();gt();Ra=(e,t)=>{let n;switch(e.code){case m.invalid_type:e.received===b.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case m.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,C.jsonStringifyReplacer)}`;break;case m.unrecognized_keys:n=`Unrecognized key(s) in object: ${C.joinValues(e.keys,", ")}`;break;case m.invalid_union:n="Invalid input";break;case m.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${C.joinValues(e.options)}`;break;case m.invalid_enum_value:n=`Invalid enum value. Expected ${C.joinValues(e.options)}, received '${e.received}'`;break;case m.invalid_arguments:n="Invalid function arguments";break;case m.invalid_return_type:n="Invalid function return type";break;case m.invalid_date:n="Invalid date";break;case m.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:C.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case m.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case m.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case m.custom:n="Invalid input";break;case m.invalid_intersection_types:n="Intersection results could not be merged";break;case m.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case m.not_finite:n="Number must be finite";break;default:n=t.defaultError,C.assertNever(e)}return{message:n}},ae=Ra});function Aa(e){cs=e}function We(){return cs}var cs,Zt=k(()=>{Pn();cs=ae});function y(e,t){let n=We(),r=yt({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===ae?void 0:ae].filter(s=>!!s)});e.common.issues.push(r)}var yt,$a,D,x,Ee,F,Ht,Vt,me,Ge,Dn=k(()=>{Zt();Pn();yt=e=>{let{data:t,path:n,errorMaps:r,issueData:s}=e,i=[...n,...s.path||[]],o={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let a="",l=r.filter(c=>!!c).slice().reverse();for(let c of l)a=c(o,{data:t,defaultError:a}).message;return{...s,path:i,message:a}},$a=[];D=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let s of n){if(s.status==="aborted")return x;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let s of n){let i=await s.key,o=await s.value;r.push({key:i,value:o})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let s of n){let{key:i,value:o}=s;if(i.status==="aborted"||o.status==="aborted")return x;i.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),i.value!=="__proto__"&&(typeof o.value<"u"||s.alwaysSet)&&(r[i.value]=o.value)}return{status:t.value,value:r}}},x=Object.freeze({status:"aborted"}),Ee=e=>({status:"dirty",value:e}),F=e=>({status:"valid",value:e}),Ht=e=>e.status==="aborted",Vt=e=>e.status==="dirty",me=e=>e.status==="valid",Ge=e=>typeof Promise<"u"&&e instanceof Promise});var us=k(()=>{});var _,ds=k(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(_||(_={}))});function A(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:s}:{errorMap:(o,a)=>{let{message:l}=e;return o.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:l??r??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:l??n??a.defaultError}},description:s}}function hs(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Ka(e){return new RegExp(`^${hs(e)}$`)}function gs(e){let t=`${ms}T${hs(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Wa(e,t){return!!((t==="v4"||!t)&&ja.test(e)||(t==="v6"||!t)&&za.test(e))}function Ga(e,t){if(!Da.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),s=JSON.parse(atob(r));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||t&&s.alg!==t)}catch{return!1}}function Ja(e,t){return!!((t==="v4"||!t)&&Ba.test(e)||(t==="v6"||!t)&&Ua.test(e))}function Ya(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,i=Number.parseInt(e.toFixed(s).replace(".","")),o=Number.parseInt(t.toFixed(s).replace(".",""));return i%o/10**s}function Je(e){if(e instanceof B){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=V.create(Je(r))}return new B({...e._def,shape:()=>t})}else return e instanceof ue?new ue({...e._def,type:Je(e.element)}):e instanceof V?V.create(Je(e.unwrap())):e instanceof se?se.create(Je(e.unwrap())):e instanceof re?re.create(e.items.map(t=>Je(t))):e}function Fn(e,t){let n=ne(e),r=ne(t);if(e===t)return{valid:!0,data:e};if(n===b.object&&r===b.object){let s=C.objectKeys(t),i=C.objectKeys(e).filter(a=>s.indexOf(a)!==-1),o={...e,...t};for(let a of i){let l=Fn(e[a],t[a]);if(!l.valid)return{valid:!1};o[a]=l.data}return{valid:!0,data:o}}else if(n===b.array&&r===b.array){if(e.length!==t.length)return{valid:!1};let s=[];for(let i=0;i<e.length;i++){let o=e[i],a=t[i],l=Fn(o,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===b.date&&r===b.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}function ys(e,t){return new De({values:e,typeName:E.ZodEnum,...A(t)})}function ps(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function bs(e,t={},n){return e?ge.create().superRefine((r,s)=>{let i=e(r);if(i instanceof Promise)return i.then(o=>{if(!o){let a=ps(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!i){let o=ps(t,r),a=o.fatal??n??!0;s.addIssue({code:"custom",...o,fatal:a})}}):ge.create()}var K,fs,$,Ca,Ia,Oa,Na,Pa,Da,Ma,Fa,La,Mn,ja,Ba,za,Ua,Za,Ha,ms,Va,he,Se,Te,Re,Ae,Ye,$e,Ce,ge,ce,Y,qe,ue,B,Ie,le,Kt,Oe,re,Wt,Xe,Qe,Gt,Ne,Pe,De,Me,ye,W,V,se,Fe,Le,et,qa,bt,kt,je,Xa,E,Qa,ks,ws,el,tl,_s,nl,rl,sl,il,ol,al,ll,cl,ul,dl,fl,pl,ml,hl,gl,yl,bl,kl,wl,_l,xl,vl,El,Sl,Tl,Rl,Al,$l,Cl,Il,Ol,Nl,Pl,Dl,xs=k(()=>{Ut();Zt();ds();Dn();gt();K=class{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,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}},fs=(e,t)=>{if(me(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new j(e.common.issues);return this._error=n,this._error}}};$=class{get description(){return this._def.description}_getType(t){return ne(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:ne(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new D,ctx:{common:t.parent.common,data:t.data,parsedType:ne(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(Ge(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ne(t)},s=this._parseSync({data:t,path:r.path,parent:r});return fs(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ne(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return me(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>me(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ne(t)},s=this._parse({data:t,path:r.path,parent:r}),i=await(Ge(s)?s:Promise.resolve(s));return fs(r,i)}refine(t,n){let r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,i)=>{let o=t(s),a=()=>i.addIssue({code:m.custom,...r(s)});return typeof Promise<"u"&&o instanceof Promise?o.then(l=>l?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new W({schema:this,typeName:E.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,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:n=>this["~validate"](n)}}optional(){return V.create(this,this._def)}nullable(){return se.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ue.create(this)}promise(){return ye.create(this,this._def)}or(t){return Ie.create([this,t],this._def)}and(t){return Oe.create(this,t,this._def)}transform(t){return new W({...A(this._def),schema:this,typeName:E.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Fe({...A(this._def),innerType:this,defaultValue:n,typeName:E.ZodDefault})}brand(){return new bt({typeName:E.ZodBranded,type:this,...A(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Le({...A(this._def),innerType:this,catchValue:n,typeName:E.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return kt.create(this,t)}readonly(){return je.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Ca=/^c[^\s-]{8,}$/i,Ia=/^[0-9a-z]+$/,Oa=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Na=/^[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,Pa=/^[a-z0-9_-]{21}$/i,Da=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Ma=/^[-+]?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)?)??$/,Fa=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,La="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",ja=/^(?:(?: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])$/,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])\/(3[0-2]|[12]?[0-9])$/,za=/^(([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]))$/,Ua=/^(([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])$/,Za=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ha=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ms="((\\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])))",Va=new RegExp(`^${ms}$`);he=class e extends ${_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==b.string){let i=this._getOrReturnCtx(t);return y(i,{code:m.invalid_type,expected:b.string,received:i.parsedType}),x}let r=new D,s;for(let i of this._def.checks)if(i.kind==="min")t.data.length<i.value&&(s=this._getOrReturnCtx(t,s),y(s,{code:m.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),r.dirty());else if(i.kind==="max")t.data.length>i.value&&(s=this._getOrReturnCtx(t,s),y(s,{code:m.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),r.dirty());else if(i.kind==="length"){let o=t.data.length>i.value,a=t.data.length<i.value;(o||a)&&(s=this._getOrReturnCtx(t,s),o?y(s,{code:m.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}):a&&y(s,{code:m.too_small,minimum:i.value,type:"string",inclusive:!0,exact:!0,message:i.message}),r.dirty())}else if(i.kind==="email")Fa.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"email",code:m.invalid_string,message:i.message}),r.dirty());else if(i.kind==="emoji")Mn||(Mn=new RegExp(La,"u")),Mn.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"emoji",code:m.invalid_string,message:i.message}),r.dirty());else if(i.kind==="uuid")Na.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"uuid",code:m.invalid_string,message:i.message}),r.dirty());else if(i.kind==="nanoid")Pa.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"nanoid",code:m.invalid_string,message:i.message}),r.dirty());else if(i.kind==="cuid")Ca.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"cuid",code:m.invalid_string,message:i.message}),r.dirty());else if(i.kind==="cuid2")Ia.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"cuid2",code:m.invalid_string,message:i.message}),r.dirty());else if(i.kind==="ulid")Oa.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"ulid",code:m.invalid_string,message:i.message}),r.dirty());else if(i.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),y(s,{validation:"url",code:m.invalid_string,message:i.message}),r.dirty()}else i.kind==="regex"?(i.regex.lastIndex=0,i.regex.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"regex",code:m.invalid_string,message:i.message}),r.dirty())):i.kind==="trim"?t.data=t.data.trim():i.kind==="includes"?t.data.includes(i.value,i.position)||(s=this._getOrReturnCtx(t,s),y(s,{code:m.invalid_string,validation:{includes:i.value,position:i.position},message:i.message}),r.dirty()):i.kind==="toLowerCase"?t.data=t.data.toLowerCase():i.kind==="toUpperCase"?t.data=t.data.toUpperCase():i.kind==="startsWith"?t.data.startsWith(i.value)||(s=this._getOrReturnCtx(t,s),y(s,{code:m.invalid_string,validation:{startsWith:i.value},message:i.message}),r.dirty()):i.kind==="endsWith"?t.data.endsWith(i.value)||(s=this._getOrReturnCtx(t,s),y(s,{code:m.invalid_string,validation:{endsWith:i.value},message:i.message}),r.dirty()):i.kind==="datetime"?gs(i).test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{code:m.invalid_string,validation:"datetime",message:i.message}),r.dirty()):i.kind==="date"?Va.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{code:m.invalid_string,validation:"date",message:i.message}),r.dirty()):i.kind==="time"?Ka(i).test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{code:m.invalid_string,validation:"time",message:i.message}),r.dirty()):i.kind==="duration"?Ma.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"duration",code:m.invalid_string,message:i.message}),r.dirty()):i.kind==="ip"?Wa(t.data,i.version)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"ip",code:m.invalid_string,message:i.message}),r.dirty()):i.kind==="jwt"?Ga(t.data,i.alg)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"jwt",code:m.invalid_string,message:i.message}),r.dirty()):i.kind==="cidr"?Ja(t.data,i.version)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"cidr",code:m.invalid_string,message:i.message}),r.dirty()):i.kind==="base64"?Za.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"base64",code:m.invalid_string,message:i.message}),r.dirty()):i.kind==="base64url"?Ha.test(t.data)||(s=this._getOrReturnCtx(t,s),y(s,{validation:"base64url",code:m.invalid_string,message:i.message}),r.dirty()):C.assertNever(i);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:m.invalid_string,..._.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",..._.errToObj(t)})}url(t){return this._addCheck({kind:"url",..._.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",..._.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",..._.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",..._.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",..._.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",..._.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",..._.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",..._.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",..._.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",..._.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",..._.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",..._.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,..._.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,..._.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",..._.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,..._.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,..._.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,..._.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,..._.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,..._.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,..._.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,..._.errToObj(n)})}nonempty(t){return this.min(1,_.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};he.create=e=>new he({checks:[],typeName:E.ZodString,coerce:e?.coerce??!1,...A(e)});Se=class e extends ${constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==b.number){let i=this._getOrReturnCtx(t);return y(i,{code:m.invalid_type,expected:b.number,received:i.parsedType}),x}let r,s=new D;for(let i of this._def.checks)i.kind==="int"?C.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),y(r,{code:m.invalid_type,expected:"integer",received:"float",message:i.message}),s.dirty()):i.kind==="min"?(i.inclusive?t.data<i.value:t.data<=i.value)&&(r=this._getOrReturnCtx(t,r),y(r,{code:m.too_small,minimum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?t.data>i.value:t.data>=i.value)&&(r=this._getOrReturnCtx(t,r),y(r,{code:m.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),s.dirty()):i.kind==="multipleOf"?Ya(t.data,i.value)!==0&&(r=this._getOrReturnCtx(t,r),y(r,{code:m.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):i.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),y(r,{code:m.not_finite,message:i.message}),s.dirty()):C.assertNever(i);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,_.toString(n))}gt(t,n){return this.setLimit("min",t,!1,_.toString(n))}lte(t,n){return this.setLimit("max",t,!0,_.toString(n))}lt(t,n){return this.setLimit("max",t,!1,_.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:_.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:_.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:_.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:_.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:_.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:_.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:_.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:_.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:_.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:_.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&C.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.value<t)&&(t=r.value)}return Number.isFinite(n)&&Number.isFinite(t)}};Se.create=e=>new Se({checks:[],typeName:E.ZodNumber,coerce:e?.coerce||!1,...A(e)});Te=class e extends ${constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==b.bigint)return this._getInvalidInput(t);let r,s=new D;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?t.data<i.value:t.data<=i.value)&&(r=this._getOrReturnCtx(t,r),y(r,{code:m.too_small,type:"bigint",minimum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="max"?(i.inclusive?t.data>i.value:t.data>=i.value)&&(r=this._getOrReturnCtx(t,r),y(r,{code:m.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),s.dirty()):i.kind==="multipleOf"?t.data%i.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),y(r,{code:m.not_multiple_of,multipleOf:i.value,message:i.message}),s.dirty()):C.assertNever(i);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return y(n,{code:m.invalid_type,expected:b.bigint,received:n.parsedType}),x}gte(t,n){return this.setLimit("min",t,!0,_.toString(n))}gt(t,n){return this.setLimit("min",t,!1,_.toString(n))}lte(t,n){return this.setLimit("max",t,!0,_.toString(n))}lt(t,n){return this.setLimit("max",t,!1,_.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:_.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:_.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:_.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:_.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:_.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:_.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};Te.create=e=>new Te({checks:[],typeName:E.ZodBigInt,coerce:e?.coerce??!1,...A(e)});Re=class extends ${_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==b.boolean){let r=this._getOrReturnCtx(t);return y(r,{code:m.invalid_type,expected:b.boolean,received:r.parsedType}),x}return F(t.data)}};Re.create=e=>new Re({typeName:E.ZodBoolean,coerce:e?.coerce||!1,...A(e)});Ae=class e extends ${_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==b.date){let i=this._getOrReturnCtx(t);return y(i,{code:m.invalid_type,expected:b.date,received:i.parsedType}),x}if(Number.isNaN(t.data.getTime())){let i=this._getOrReturnCtx(t);return y(i,{code:m.invalid_date}),x}let r=new D,s;for(let i of this._def.checks)i.kind==="min"?t.data.getTime()<i.value&&(s=this._getOrReturnCtx(t,s),y(s,{code:m.too_small,message:i.message,inclusive:!0,exact:!1,minimum:i.value,type:"date"}),r.dirty()):i.kind==="max"?t.data.getTime()>i.value&&(s=this._getOrReturnCtx(t,s),y(s,{code:m.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),r.dirty()):C.assertNever(i);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:_.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:_.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t!=null?new Date(t):null}};Ae.create=e=>new Ae({checks:[],coerce:e?.coerce||!1,typeName:E.ZodDate,...A(e)});Ye=class extends ${_parse(t){if(this._getType(t)!==b.symbol){let r=this._getOrReturnCtx(t);return y(r,{code:m.invalid_type,expected:b.symbol,received:r.parsedType}),x}return F(t.data)}};Ye.create=e=>new Ye({typeName:E.ZodSymbol,...A(e)});$e=class extends ${_parse(t){if(this._getType(t)!==b.undefined){let r=this._getOrReturnCtx(t);return y(r,{code:m.invalid_type,expected:b.undefined,received:r.parsedType}),x}return F(t.data)}};$e.create=e=>new $e({typeName:E.ZodUndefined,...A(e)});Ce=class extends ${_parse(t){if(this._getType(t)!==b.null){let r=this._getOrReturnCtx(t);return y(r,{code:m.invalid_type,expected:b.null,received:r.parsedType}),x}return F(t.data)}};Ce.create=e=>new Ce({typeName:E.ZodNull,...A(e)});ge=class extends ${constructor(){super(...arguments),this._any=!0}_parse(t){return F(t.data)}};ge.create=e=>new ge({typeName:E.ZodAny,...A(e)});ce=class extends ${constructor(){super(...arguments),this._unknown=!0}_parse(t){return F(t.data)}};ce.create=e=>new ce({typeName:E.ZodUnknown,...A(e)});Y=class extends ${_parse(t){let n=this._getOrReturnCtx(t);return y(n,{code:m.invalid_type,expected:b.never,received:n.parsedType}),x}};Y.create=e=>new Y({typeName:E.ZodNever,...A(e)});qe=class extends ${_parse(t){if(this._getType(t)!==b.undefined){let r=this._getOrReturnCtx(t);return y(r,{code:m.invalid_type,expected:b.void,received:r.parsedType}),x}return F(t.data)}};qe.create=e=>new qe({typeName:E.ZodVoid,...A(e)});ue=class e extends ${_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==b.array)return y(n,{code:m.invalid_type,expected:b.array,received:n.parsedType}),x;if(s.exactLength!==null){let o=n.data.length>s.exactLength.value,a=n.data.length<s.exactLength.value;(o||a)&&(y(n,{code:o?m.too_big:m.too_small,minimum:a?s.exactLength.value:void 0,maximum:o?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),r.dirty())}if(s.minLength!==null&&n.data.length<s.minLength.value&&(y(n,{code:m.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),r.dirty()),s.maxLength!==null&&n.data.length>s.maxLength.value&&(y(n,{code:m.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,a)=>s.type._parseAsync(new K(n,o,n.path,a)))).then(o=>D.mergeArray(r,o));let i=[...n.data].map((o,a)=>s.type._parseSync(new K(n,o,n.path,a)));return D.mergeArray(r,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:_.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:_.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:_.toString(n)}})}nonempty(t){return this.min(1,t)}};ue.create=(e,t)=>new ue({type:e,minLength:null,maxLength:null,exactLength:null,typeName:E.ZodArray,...A(t)});B=class e extends ${constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=C.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==b.object){let c=this._getOrReturnCtx(t);return y(c,{code:m.invalid_type,expected:b.object,received:c.parsedType}),x}let{status:r,ctx:s}=this._processInputParams(t),{shape:i,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Y&&this._def.unknownKeys==="strip"))for(let c in s.data)o.includes(c)||a.push(c);let l=[];for(let c of o){let u=i[c],d=s.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new K(s,d,s.path,c)),alwaysSet:c in s.data})}if(this._def.catchall instanceof Y){let c=this._def.unknownKeys;if(c==="passthrough")for(let u of a)l.push({key:{status:"valid",value:u},value:{status:"valid",value:s.data[u]}});else if(c==="strict")a.length>0&&(y(s,{code:m.unrecognized_keys,keys:a}),r.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let u of a){let d=s.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new K(s,d,s.path,u)),alwaysSet:u in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let c=[];for(let u of l){let d=await u.key,f=await u.value;c.push({key:d,value:f,alwaysSet:u.alwaysSet})}return c}).then(c=>D.mergeObjectSync(r,c)):D.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return _.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let s=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:_.errToObj(t).message??s}:{message:s}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:E.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of C.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of C.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Je(this)}partial(t){let n={};for(let r of C.objectKeys(this.shape)){let s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of C.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let i=this.shape[r];for(;i instanceof V;)i=i._def.innerType;n[r]=i}return new e({...this._def,shape:()=>n})}keyof(){return ys(C.objectKeys(this.shape))}};B.create=(e,t)=>new B({shape:()=>e,unknownKeys:"strip",catchall:Y.create(),typeName:E.ZodObject,...A(t)});B.strictCreate=(e,t)=>new B({shape:()=>e,unknownKeys:"strict",catchall:Y.create(),typeName:E.ZodObject,...A(t)});B.lazycreate=(e,t)=>new B({shape:e,unknownKeys:"strip",catchall:Y.create(),typeName:E.ZodObject,...A(t)});Ie=class extends ${_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function s(i){for(let a of i)if(a.result.status==="valid")return a.result;for(let a of i)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let o=i.map(a=>new j(a.ctx.common.issues));return y(n,{code:m.invalid_union,unionErrors:o}),x}if(n.common.async)return Promise.all(r.map(async i=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await i._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(s);{let i,o=[];for(let l of r){let c={...n,common:{...n.common,issues:[]},parent:null},u=l._parseSync({data:n.data,path:n.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!i&&(i={result:u,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(i)return n.common.issues.push(...i.ctx.common.issues),i.result;let a=o.map(l=>new j(l));return y(n,{code:m.invalid_union,unionErrors:a}),x}}get options(){return this._def.options}};Ie.create=(e,t)=>new Ie({options:e,typeName:E.ZodUnion,...A(t)});le=e=>e instanceof Ne?le(e.schema):e instanceof W?le(e.innerType()):e instanceof Pe?[e.value]:e instanceof De?e.options:e instanceof Me?C.objectValues(e.enum):e instanceof Fe?le(e._def.innerType):e instanceof $e?[void 0]:e instanceof Ce?[null]:e instanceof V?[void 0,...le(e.unwrap())]:e instanceof se?[null,...le(e.unwrap())]:e instanceof bt||e instanceof je?le(e.unwrap()):e instanceof Le?le(e._def.innerType):[],Kt=class e extends ${_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.object)return y(n,{code:m.invalid_type,expected:b.object,received:n.parsedType}),x;let r=this.discriminator,s=n.data[r],i=this.optionsMap.get(s);return i?n.common.async?i._parseAsync({data:n.data,path:n.path,parent:n}):i._parseSync({data:n.data,path:n.path,parent:n}):(y(n,{code:m.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),x)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let s=new Map;for(let i of n){let o=le(i.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of o){if(s.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);s.set(a,i)}}return new e({typeName:E.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...A(r)})}};Oe=class extends ${_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(i,o)=>{if(Ht(i)||Ht(o))return x;let a=Fn(i.value,o.value);return a.valid?((Vt(i)||Vt(o))&&n.dirty(),{status:n.value,value:a.data}):(y(r,{code:m.invalid_intersection_types}),x)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([i,o])=>s(i,o)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};Oe.create=(e,t,n)=>new Oe({left:e,right:t,typeName:E.ZodIntersection,...A(n)});re=class e extends ${_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.array)return y(r,{code:m.invalid_type,expected:b.array,received:r.parsedType}),x;if(r.data.length<this._def.items.length)return y(r,{code:m.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),x;!this._def.rest&&r.data.length>this._def.items.length&&(y(r,{code:m.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let i=[...r.data].map((o,a)=>{let l=this._def.items[a]||this._def.rest;return l?l._parse(new K(r,o,r.path,a)):null}).filter(o=>!!o);return r.common.async?Promise.all(i).then(o=>D.mergeArray(n,o)):D.mergeArray(n,i)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};re.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new re({items:e,typeName:E.ZodTuple,rest:null,...A(t)})};Wt=class e extends ${get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.object)return y(r,{code:m.invalid_type,expected:b.object,received:r.parsedType}),x;let s=[],i=this._def.keyType,o=this._def.valueType;for(let a in r.data)s.push({key:i._parse(new K(r,a,r.path,a)),value:o._parse(new K(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?D.mergeObjectAsync(n,s):D.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof $?new e({keyType:t,valueType:n,typeName:E.ZodRecord,...A(r)}):new e({keyType:he.create(),valueType:t,typeName:E.ZodRecord,...A(n)})}},Xe=class extends ${get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.map)return y(r,{code:m.invalid_type,expected:b.map,received:r.parsedType}),x;let s=this._def.keyType,i=this._def.valueType,o=[...r.data.entries()].map(([a,l],c)=>({key:s._parse(new K(r,a,r.path,[c,"key"])),value:i._parse(new K(r,l,r.path,[c,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let l of o){let c=await l.key,u=await l.value;if(c.status==="aborted"||u.status==="aborted")return x;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let l of o){let c=l.key,u=l.value;if(c.status==="aborted"||u.status==="aborted")return x;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.value)}return{status:n.value,value:a}}}};Xe.create=(e,t,n)=>new Xe({valueType:t,keyType:e,typeName:E.ZodMap,...A(n)});Qe=class e extends ${_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==b.set)return y(r,{code:m.invalid_type,expected:b.set,received:r.parsedType}),x;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(y(r,{code:m.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),n.dirty()),s.maxSize!==null&&r.data.size>s.maxSize.value&&(y(r,{code:m.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());let i=this._def.valueType;function o(l){let c=new Set;for(let u of l){if(u.status==="aborted")return x;u.status==="dirty"&&n.dirty(),c.add(u.value)}return{status:n.value,value:c}}let a=[...r.data.values()].map((l,c)=>i._parse(new K(r,l,r.path,c)));return r.common.async?Promise.all(a).then(l=>o(l)):o(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:_.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:_.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};Qe.create=(e,t)=>new Qe({valueType:e,minSize:null,maxSize:null,typeName:E.ZodSet,...A(t)});Gt=class e extends ${constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.function)return y(n,{code:m.invalid_type,expected:b.function,received:n.parsedType}),x;function r(a,l){return yt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,We(),ae].filter(c=>!!c),issueData:{code:m.invalid_arguments,argumentsError:l}})}function s(a,l){return yt({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,We(),ae].filter(c=>!!c),issueData:{code:m.invalid_return_type,returnTypeError:l}})}let i={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof ye){let a=this;return F(async function(...l){let c=new j([]),u=await a._def.args.parseAsync(l,i).catch(p=>{throw c.addIssue(r(l,p)),c}),d=await Reflect.apply(o,this,u);return await a._def.returns._def.type.parseAsync(d,i).catch(p=>{throw c.addIssue(s(d,p)),c})})}else{let a=this;return F(function(...l){let c=a._def.args.safeParse(l,i);if(!c.success)throw new j([r(l,c.error)]);let u=Reflect.apply(o,this,c.data),d=a._def.returns.safeParse(u,i);if(!d.success)throw new j([s(u,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:re.create(t).rest(ce.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||re.create([]).rest(ce.create()),returns:n||ce.create(),typeName:E.ZodFunction,...A(r)})}},Ne=class extends ${get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};Ne.create=(e,t)=>new Ne({getter:e,typeName:E.ZodLazy,...A(t)});Pe=class extends ${_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return y(n,{received:n.data,code:m.invalid_literal,expected:this._def.value}),x}return{status:"valid",value:t.data}}get value(){return this._def.value}};Pe.create=(e,t)=>new Pe({value:e,typeName:E.ZodLiteral,...A(t)});De=class e extends ${_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return y(n,{expected:C.joinValues(r),received:n.parsedType,code:m.invalid_type}),x}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return y(n,{received:n.data,code:m.invalid_enum_value,options:r}),x}return F(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};De.create=ys;Me=class extends ${_parse(t){let n=C.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==b.string&&r.parsedType!==b.number){let s=C.objectValues(n);return y(r,{expected:C.joinValues(s),received:r.parsedType,code:m.invalid_type}),x}if(this._cache||(this._cache=new Set(C.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=C.objectValues(n);return y(r,{received:r.data,code:m.invalid_enum_value,options:s}),x}return F(t.data)}get enum(){return this._def.values}};Me.create=(e,t)=>new Me({values:e,typeName:E.ZodNativeEnum,...A(t)});ye=class extends ${unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==b.promise&&n.common.async===!1)return y(n,{code:m.invalid_type,expected:b.promise,received:n.parsedType}),x;let r=n.parsedType===b.promise?n.data:Promise.resolve(n.data);return F(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};ye.create=(e,t)=>new ye({type:e,typeName:E.ZodPromise,...A(t)});W=class extends ${innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===E.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null,i={addIssue:o=>{y(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){let o=s.transform(r.data,i);if(r.common.async)return Promise.resolve(o).then(async a=>{if(n.value==="aborted")return x;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?x:l.status==="dirty"?Ee(l.value):n.value==="dirty"?Ee(l.value):l});{if(n.value==="aborted")return x;let a=this._def.schema._parseSync({data:o,path:r.path,parent:r});return a.status==="aborted"?x:a.status==="dirty"?Ee(a.value):n.value==="dirty"?Ee(a.value):a}}if(s.type==="refinement"){let o=a=>{let l=s.refinement(a,i);if(r.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?x:(a.status==="dirty"&&n.dirty(),o(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?x:(a.status==="dirty"&&n.dirty(),o(a.value).then(()=>({status:n.value,value:a.value}))))}if(s.type==="transform")if(r.common.async===!1){let o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!me(o))return x;let a=s.transform(o.value,i);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>me(o)?Promise.resolve(s.transform(o.value,i)).then(a=>({status:n.value,value:a})):x);C.assertNever(s)}};W.create=(e,t,n)=>new W({schema:e,typeName:E.ZodEffects,effect:t,...A(n)});W.createWithPreprocess=(e,t,n)=>new W({schema:t,effect:{type:"preprocess",transform:e},typeName:E.ZodEffects,...A(n)});V=class extends ${_parse(t){return this._getType(t)===b.undefined?F(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};V.create=(e,t)=>new V({innerType:e,typeName:E.ZodOptional,...A(t)});se=class extends ${_parse(t){return this._getType(t)===b.null?F(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};se.create=(e,t)=>new se({innerType:e,typeName:E.ZodNullable,...A(t)});Fe=class extends ${_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===b.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Fe.create=(e,t)=>new Fe({innerType:e,typeName:E.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...A(t)});Le=class extends ${_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Ge(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new j(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new j(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Le.create=(e,t)=>new Le({innerType:e,typeName:E.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...A(t)});et=class extends ${_parse(t){if(this._getType(t)!==b.nan){let r=this._getOrReturnCtx(t);return y(r,{code:m.invalid_type,expected:b.nan,received:r.parsedType}),x}return{status:"valid",value:t.data}}};et.create=e=>new et({typeName:E.ZodNaN,...A(e)});qa=Symbol("zod_brand"),bt=class extends ${_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},kt=class e extends ${_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?x:i.status==="dirty"?(n.dirty(),Ee(i.value)):this._def.out._parseAsync({data:i.value,path:r.path,parent:r})})();{let s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?x:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:E.ZodPipeline})}},je=class extends ${_parse(t){let n=this._def.innerType._parse(t),r=s=>(me(s)&&(s.value=Object.freeze(s.value)),s);return Ge(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};je.create=(e,t)=>new je({innerType:e,typeName:E.ZodReadonly,...A(t)});Xa={object:B.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(E||(E={}));Qa=(e,t={message:`Input not instance of ${e.name}`})=>bs(n=>n instanceof e,t),ks=he.create,ws=Se.create,el=et.create,tl=Te.create,_s=Re.create,nl=Ae.create,rl=Ye.create,sl=$e.create,il=Ce.create,ol=ge.create,al=ce.create,ll=Y.create,cl=qe.create,ul=ue.create,dl=B.create,fl=B.strictCreate,pl=Ie.create,ml=Kt.create,hl=Oe.create,gl=re.create,yl=Wt.create,bl=Xe.create,kl=Qe.create,wl=Gt.create,_l=Ne.create,xl=Pe.create,vl=De.create,El=Me.create,Sl=ye.create,Tl=W.create,Rl=V.create,Al=se.create,$l=W.createWithPreprocess,Cl=kt.create,Il=()=>ks().optional(),Ol=()=>ws().optional(),Nl=()=>_s().optional(),Pl={string:(e=>he.create({...e,coerce:!0})),number:(e=>Se.create({...e,coerce:!0})),boolean:(e=>Re.create({...e,coerce:!0})),bigint:(e=>Te.create({...e,coerce:!0})),date:(e=>Ae.create({...e,coerce:!0}))},Dl=x});var g={};ve(g,{BRAND:()=>qa,DIRTY:()=>Ee,EMPTY_PATH:()=>$a,INVALID:()=>x,NEVER:()=>Dl,OK:()=>F,ParseStatus:()=>D,Schema:()=>$,ZodAny:()=>ge,ZodArray:()=>ue,ZodBigInt:()=>Te,ZodBoolean:()=>Re,ZodBranded:()=>bt,ZodCatch:()=>Le,ZodDate:()=>Ae,ZodDefault:()=>Fe,ZodDiscriminatedUnion:()=>Kt,ZodEffects:()=>W,ZodEnum:()=>De,ZodError:()=>j,ZodFirstPartyTypeKind:()=>E,ZodFunction:()=>Gt,ZodIntersection:()=>Oe,ZodIssueCode:()=>m,ZodLazy:()=>Ne,ZodLiteral:()=>Pe,ZodMap:()=>Xe,ZodNaN:()=>et,ZodNativeEnum:()=>Me,ZodNever:()=>Y,ZodNull:()=>Ce,ZodNullable:()=>se,ZodNumber:()=>Se,ZodObject:()=>B,ZodOptional:()=>V,ZodParsedType:()=>b,ZodPipeline:()=>kt,ZodPromise:()=>ye,ZodReadonly:()=>je,ZodRecord:()=>Wt,ZodSchema:()=>$,ZodSet:()=>Qe,ZodString:()=>he,ZodSymbol:()=>Ye,ZodTransformer:()=>W,ZodTuple:()=>re,ZodType:()=>$,ZodUndefined:()=>$e,ZodUnion:()=>Ie,ZodUnknown:()=>ce,ZodVoid:()=>qe,addIssueToContext:()=>y,any:()=>ol,array:()=>ul,bigint:()=>tl,boolean:()=>_s,coerce:()=>Pl,custom:()=>bs,date:()=>nl,datetimeRegex:()=>gs,defaultErrorMap:()=>ae,discriminatedUnion:()=>ml,effect:()=>Tl,enum:()=>vl,function:()=>wl,getErrorMap:()=>We,getParsedType:()=>ne,instanceof:()=>Qa,intersection:()=>hl,isAborted:()=>Ht,isAsync:()=>Ge,isDirty:()=>Vt,isValid:()=>me,late:()=>Xa,lazy:()=>_l,literal:()=>xl,makeIssue:()=>yt,map:()=>bl,nan:()=>el,nativeEnum:()=>El,never:()=>ll,null:()=>il,nullable:()=>Al,number:()=>ws,object:()=>dl,objectUtil:()=>Nn,oboolean:()=>Nl,onumber:()=>Ol,optional:()=>Rl,ostring:()=>Il,pipeline:()=>Cl,preprocess:()=>$l,promise:()=>Sl,quotelessJson:()=>Ta,record:()=>yl,set:()=>kl,setErrorMap:()=>Aa,strictObject:()=>fl,string:()=>ks,symbol:()=>rl,transformer:()=>Tl,tuple:()=>gl,undefined:()=>sl,union:()=>pl,unknown:()=>al,util:()=>C,void:()=>cl});var Ln=k(()=>{Zt();Dn();us();gt();xs();Ut()});var tt=k(()=>{Ln();Ln()});import{createHash as Ml}from"node:crypto";function de(e){let t=vs.get(e);return t||(t=Ml("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),vs.set(e,t)),t}var Fl,Ll,nt,vs,rt=k(()=>{"use strict";tt();Fl=g.enum(["normal","compact","minimal"]),Ll=g.enum(["off","light","balanced","max"]),nt=g.object({enabled:g.boolean().default(!0),telemetryOptIn:g.boolean().default(!0),outputVerbosity:Fl.default("compact"),reducer:Ll.default("off"),filters:g.object({enableAll:g.boolean().default(!0),disabled:g.array(g.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),vs=new Map});import Es from"node:os";import{join as ie}from"node:path";function S(){return process.env.TOKMIZER_HOME||ie(Es.homedir(),".tokmizer")}function wt(){return ie(S(),"install-id")}function jn(){return ie(S(),"bundle-refresh.json")}function Jt(){return ie(S(),"skills")}function _t(e){return ie(Jt(),`${e}.md`)}function st(){return ie(S(),"content-cache")}function Ss(){return ie(S(),"restore.json")}function Bn(){return ie(S(),"managed-commands.json")}function zn(){return process.env.TOKMIZER_CLAUDE_COMMANDS_DIR||ie(Es.homedir(),".claude","commands")}function it(e){return ie(zn(),`${e}.md`)}var M=k(()=>{"use strict"});import ot from"node:os";import{createHash as jl,randomUUID as Bl}from"node:crypto";import{readFile as Ts,writeFile as Rs,mkdir as zl}from"node:fs/promises";async function Yt(){try{let n=(await Ts(wt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await zl(S(),{recursive:!0});let e=Bl();try{return await Rs(wt(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await Ts(wt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await Rs(wt(),e,{mode:384}),e}}function Un(e){return jl("sha256").update(e).digest("hex")}function Ul(){let e=ot.networkInterfaces();for(let t of Object.keys(e))for(let n of e[t]??[])if(!n.internal&&n.mac&&n.mac!=="00:00:00:00:00:00")return n.mac;return"no-mac"}async function q(){let e=await Yt(),t=ot.hostname(),n=ot.platform(),r=ot.release(),s=ot.cpus(),i=s[0]?.model??"unknown",o=s.length,a=Un(Ul()),l=Un(ot.userInfo().username),c=[t,n,r,i,String(o),a,l,e].join("|");return{fingerprint:Un(c),installId:e,hostname:t,os:n,osVersion:r,cpuModel:i,cpuCores:o,macHash:a,usernameHash:l}}var Be=k(()=>{"use strict";M()});import{join as Zn}from"node:path";import{mkdir as Zl,readFile as Hl,writeFile as Vl,unlink as As,rename as Kl}from"node:fs/promises";function xt(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Vn(e){return e?.dir??S()}async function Z(e){let t=Vn(e);try{let n=await Hl(Zn(t,Hn),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=xt()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}async function qt(e,t){let n=Vn(t);await Zl(n,{recursive:!0}),e.installedAt==null&&(e.installedAt=Math.floor(Date.now()/1e3));let r=Zn(n,Hn),s=`${r}.tmp-${process.pid}-${process.hrtime.bigint()}`;await Vl(s,JSON.stringify(e,null,2),{mode:384});try{await Kl(s,r)}catch(i){try{await As(s)}catch{}throw i}}async function $s(e){let t=Vn(e);try{await As(Zn(t,Hn))}catch{return}}var Hn,at=k(()=>{"use strict";M();Hn="state.json"});import{createRequire as Wl}from"node:module";function Jl(){let e="0.9.58";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=Gl(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}function lt(e,t){if(!e||!t)return!1;let n=e.split(".").map(s=>parseInt(s,10)),r=t.split(".").map(s=>parseInt(s,10));for(let s=0;s<3;s+=1){let i=n[s]??0,o=r[s]??0;if(Number.isNaN(i)||Number.isNaN(o))return!1;if(i<o)return!0;if(i>o)return!1}return!1}var Gl,G,ze=k(()=>{"use strict";Gl=Wl(import.meta.url);G=Jl()});var Cs,Is=k(()=>{"use strict";Cs=`-----BEGIN PUBLIC KEY-----
|
|
3
3
|
MCowBQYDK2VwAyEAj/kMlXlhTIGHRKxOKMuGFa1S1ybxxwgdYcAE0YM9fgU=
|
|
4
4
|
-----END PUBLIC KEY-----
|
|
5
|
-
`});import{
|
|
6
|
-
`)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
`).
|
|
5
|
+
`});import{existsSync as Yl,mkdirSync as mh,rmSync as hh,writeFileSync as gh}from"node:fs";import{join as ql}from"node:path";function ec(){return ql(S(),"network-off")}function tc(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&Xl.has(e.trim().toLowerCase())}function J(){return tc()?!1:!Yl(ec())}function Ue(){if(!J())throw new Kn}var Xl,Ql,kh,Kn,be=k(()=>{"use strict";M();Xl=new Set(["0","off","false","no"]),Ql="Network is off for Tokmizer. Turn it back on with: tkr network on",kh=["Tokmizer contacts tokmizer.com to keep its rules up to date and to improve the product. No account or email is needed.","It sends a random install ID, your computer name, OS and CPU model, a hash of your network card address and of your user name, and the plugin version. Command contents and output are never sent.","Usage stats (command names and token counts) are sent only while they are on. Check with: tkr telemetry status.","Turn all network access off: tkr network off. Usage stats only: tkr telemetry off."].join(`
|
|
6
|
+
`),Kn=class extends Error{constructor(){super(Ql),this.name="NetworkDisabledError"}}});import{createHmac as nc,createPublicKey as rc,verify as sc}from"node:crypto";function Xt(){return((process.env.TOKMIZER_DEV==="1"?process.env.TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM:void 0)??Cs).replace(/\\n/g,`
|
|
7
|
+
`)}function oc(e,t,n,r){try{let s=rc({key:r,format:"pem"});return sc(null,Buffer.from(`${t}.${e}`,"utf8"),s,Buffer.from(n,"base64url"))}catch{return!1}}async function we(e){let t=await e.text(),n=Xt(),r=e.headers?.get?.("x-tokmizer-resp-ts")??null;if(r!==null){let o=Number(r);if(!Number.isFinite(o)||Date.now()-o>ic)throw new ke("http","stale server response (resp-ts outside freshness window)")}if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new ke("http","no signing public key configured; refusing to trust server response");let s=e.headers?.get?.("x-tokmizer-resp-sig")??null,i=Number(r);if(!s||r===null||!Number.isFinite(i))throw new ke("http","missing server response signature");if(!oc(t,i,s,n))throw new ke("http","invalid server response signature");return JSON.parse(t)}function ac(e,t,n){return nc("sha256",n).update(`${t}.${e}`).digest("hex")}async function X(e,t,n,r){Ue();let s=Date.now(),i=n===void 0?"":JSON.stringify(n),o=r.signingSecret?ac(i,s,r.signingSecret):"0".repeat(64),a={"content-type":"application/json","x-tokmizer-fingerprint":r.fingerprint,"x-tokmizer-install-id":r.installId,"x-tokmizer-sig":o,"x-tokmizer-ts":String(s),"x-tokmizer-plugin-version":G};r.bearer&&(a.authorization=`Bearer ${r.bearer}`);let l=r.timeoutMs??5e3,c=e!=="GET"&&e!=="DELETE",u={method:e,headers:a,signal:AbortSignal.timeout(l)};c&&(u.body=i);try{return await fetch(`${r.baseUrl}${t}`,u)}catch(d){let f=d.name;throw f==="TimeoutError"||f==="AbortError"?new ke("timeout",`${e} ${t} timed out after ${l}ms`):new ke("network",`${e} ${t} failed: ${d.message}`)}}var ic,ke,ct=k(()=>{"use strict";ze();Is();be();ic=300*1e3;ke=class extends Error{constructor(n,r,s){super(r);this.kind=n;this.status=s;this.name="TransportError"}kind;status}});import{readFile as Ws,writeFile as Gs,mkdir as Js,chmod as Sc,rm as sn,rename as Ys,readdir as Tc}from"node:fs/promises";import{randomUUID as Rc}from"node:crypto";import{join as vt}from"node:path";import{setTimeout as Hs}from"node:timers/promises";async function fe(){let e=null;try{let t=JSON.parse(await Ws(vt(S(),qs),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?nt.parse({...Vs,...e}):Vs}async function Qn(e){await Js(S(),{recursive:!0});let t=vt(S(),qs),n=`${t}.tmp-${process.pid}-${process.hrtime.bigint()}`;await Gs(n,JSON.stringify(e,null,2),{mode:384});try{await Sc(n,384),await Ys(n,t)}catch(r){try{await sn(n,{force:!0})}catch{}throw r}}async function Ks(e){let t=[];for(let n of await Tc(e)){let r=/^([1-9]\d*)-[0-9a-f-]{36}\.json$/.exec(n);if(!r)continue;let s=vt(e,n);try{process.kill(Number(r[1]),0)}catch(i){let o=i.code;if(o==="ESRCH"){await sn(s,{force:!0});continue}if(o!=="EPERM")throw i}try{let i=JSON.parse(await Ws(s,"utf8"));if(!Number.isSafeInteger(i)||i<0)throw new Error("Invalid local settings lock");t.push({id:n,ticket:i})}catch(i){if(i.code!=="ENOENT")throw i}}return t}async function Xs(e){let t=Ac.parse(e),n=vt(S(),"settings-cache-locks");await Js(n,{recursive:!0,mode:448});let r=`${process.pid}-${Rc()}.json`,s=vt(n,r),i=`${s}.tmp`,o=performance.now()+3e3,a=async l=>{for(await Gs(i,String(l),{mode:384});;)try{await Ys(i,s);return}catch(c){let u=c.code;if(process.platform!=="win32"||u!=="EPERM"&&u!=="EBUSY"||performance.now()>=o)throw c;await Hs(10)}};try{await a(0);let l=Math.max(0,...(await Ks(n)).map(c=>c.ticket))+1;if(!Number.isSafeInteger(l))throw new Error("Invalid local settings lock");for(await a(l);;){if(!(await Ks(n)).some(u=>u.id!==r&&(u.ticket===0||u.ticket<l||u.ticket===l&&u.id<r))){let u=await fe(),d=nt.parse({...u,...t,filters:{...u.filters,...t.filters}});return await Qn(d),d}if(performance.now()>=o)throw new Error("Timed out waiting for local settings lock after 3 seconds; another process may still be updating settings");await Hs(10)}}finally{await Promise.all([sn(s,{force:!0}),sn(i,{force:!0})])}}var qs,Vs,Ac,Et=k(()=>{"use strict";rt();M();qs="settings-cache.json",Vs=nt.parse({}),Ac=nt.partial().extend({filters:nt.shape.filters.removeDefault().partial().optional()})});var _e,St=k(()=>{"use strict";tt();_e=g.object({slug:g.string().min(1).max(64),description:g.string().max(255).optional(),match_command:g.string().min(1),priority:g.number().int().default(50),strip_ansi:g.boolean().default(!1),strip_lines_matching:g.array(g.string()).default([]),keep_failures:g.boolean().default(!1),strip_on_failure:g.boolean().default(!1),fold_passing:g.boolean().default(!1),fold_passing_threshold:g.number().int().positive().max(1e3).optional(),mask_abs_paths:g.boolean().default(!1),preserve_exact:g.boolean().default(!1),truncate_lines_at:g.number().int().positive().max(1e4).optional(),max_lines:g.number().int().positive().max(1e5).optional(),scale_with_level:g.boolean().default(!0),transform:g.string().max(64).optional(),on_empty:g.string().max(255).optional()})});function er(e){return JSON.stringify(e)+on}function*ti(e){let t=0;for(;;){let n=e.indexOf(on,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function Tt(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var Cc,Ic,Oc,Nc,gg,yg,bg,ei,on,kg,ni=k(()=>{"use strict";tt();St();Cc=g.object({id:g.string().min(1).max(64),op:g.literal("filter"),cmd:g.string().min(1).max(2048),plan:g.enum(["trial","smart","pro"]),allowed:g.array(g.string().min(1).max(64)).max(512).optional(),installId:g.string().min(1).max(64).optional()}),Ic=g.object({id:g.string().min(1).max(64),op:g.literal("ping")}),Oc=g.object({id:g.string().min(1).max(64),op:g.literal("shutdown"),installId:g.string().min(1).max(64)}),Nc=g.object({id:g.string().min(1).max(64),op:g.literal("reload"),installId:g.string().min(1).max(64).optional()}),gg=g.discriminatedUnion("op",[Cc,Ic,Oc,Nc]),yg=g.object({id:g.string(),ok:g.literal(!0),data:g.unknown()}),bg=g.object({id:g.string(),ok:g.literal(!1),err:g.string(),retryAfterMs:g.number().int().nonnegative().optional()}),ei=g.object({filter:_e.nullable(),cacheHit:g.boolean().optional()}),on=`
|
|
8
|
+
`,kg=64*1024});import Pc from"node:os";import{join as Rt}from"node:path";import{existsSync as Dc,statSync as Mc,lstatSync as ri,unlinkSync as Fc,mkdirSync as Lc,chmodSync as jc}from"node:fs";import{createHash as Bc}from"node:crypto";function zc(e){let t=Bc("sha256").update(S()).digest("hex").slice(0,8),n=Rt(Pc.tmpdir(),`tkr-${e}-${t}`),r=Rt(n,"d.sock");if(Buffer.byteLength(r)>tr)throw new Error("Temporary directory path is too long for IPC");return si(n,e),r}function Uc(e,t){try{let n=ri(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function si(e,t){Lc(e,{recursive:!0,mode:448});let n=ri(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");jc(e,448)}function At(){if(process.platform==="win32")return{path:`\\\\.\\pipe\\tokmizer-${process.env.USERNAME??"tokmizer"}`,isPipe:!0};let e=typeof process.getuid=="function"?process.getuid():0,t=process.env.XDG_RUNTIME_DIR;if(t&&Uc(t,e)){let s=Rt(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(s)<=tr)return{path:s,isPipe:!1}}let n=Rt(S(),"run"),r=Rt(n,"daemon.sock");return Buffer.byteLength(r)>tr?{path:zc(e),isPipe:!1}:(si(n,e),{path:r,isPipe:!1})}async function nr(){let{path:e,isPipe:t}=At();if(t||!Dc(e))return;try{if(!Mc(e).isSocket())return}catch{return}let n=await import("node:net");if(!await new Promise(s=>{let i=n.createConnection(e),o=a=>{i.removeAllListeners();try{i.destroy()}catch{}s(a)};i.once("connect",()=>o(!0)),i.once("error",a=>{let l=a.code;o(l!=="ECONNREFUSED"&&l!=="ENOENT")}),setTimeout(()=>o(!0),250)}))try{Fc(e)}catch{}}var tr,Tg,ii=k(()=>{"use strict";M();tr=100;Tg=5*6e4});import{basename as Zc}from"node:path";function an(e){let t=Zc(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(Hc))if(r===t)return[n];for(let[n,r]of Object.entries(Vc))if(r===t)return["hook",n];return null}var Hc,Vc,rr=k(()=>{"use strict";Hc={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},Vc={codex:"tkr-codex-hook",cursor:"tkr-cursor-hook",gemini:"tkr-gemini-hook",agent:"tkr-agent-hook",copilot:"tkr-copilot-hook",droid:"tkr-droid-hook",trae:"tkr-trae-hook",qwen:"tkr-qwen-hook",crush:"tkr-crush-hook",junie:"tkr-junie-hook",zcode:"tkr-zcode-hook",grok:"tkr-grok-hook","pre-tool-use":"pre-tool-use","post-tool-use":"post-tool-use","session-recap":"session-recap","session-start":"on-session-start","reducer-session-start":"reducer-session-start","reducer-prompt-submit":"reducer-prompt-submit","reducer-stop":"reducer-stop"}});import{realpathSync as oi}from"node:fs";import{delimiter as Kc,join as Wc}from"node:path";function $t(){return!1}function ln(e,t=process.execPath){let n=$t()?an(e):null;return n?[process.execPath,...n]:[t,e]}function Gc(e,t){try{return oi(e)===oi(t)}catch{return!1}}function ai(e=process.env.PATH??"",t=process.platform,n=process.execPath){let r=t==="win32"?"tkr.exe":"tkr";for(let s of e.split(t==="win32"?";":Kc)){if(!s||s.includes("node_modules"))continue;let i=Wc(s,r);if(Gc(i,n))return i}return n}var cn=k(()=>{"use strict";rr()});var mi={};ve(mi,{connectDaemon:()=>pi,shutdownDaemon:()=>fi});import{createConnection as Jc}from"node:net";import{spawn as Yc}from"node:child_process";import{existsSync as ui,openSync as sr,closeSync as li,unlinkSync as or,writeFileSync as ar,mkdirSync as lr,readFileSync as qc,appendFileSync as Xc,rmSync as Qc,statSync as eu}from"node:fs";import{dirname as tu,join as cr}from"node:path";import{fileURLToPath as nu}from"node:url";function ur(){return cr(S(),"daemon.spawn.fail")}function dr(){return cr(S(),"daemon.log")}function ou(){try{let e=Number(qc(ur(),"utf8"));return Number.isFinite(e)&&Date.now()-e<su}catch{return!1}}function au(e){try{lr(S(),{recursive:!0});let t=dr();try{eu(t).size>iu&&or(t)}catch{}Xc(t,`${new Date().toISOString()} ${e}
|
|
9
|
+
`)}catch{}}function lu(e){try{lr(S(),{recursive:!0}),ar(ur(),String(Date.now()))}catch{}au(`spawn failed: ${e.message}`)}function cu(){try{Qc(ur(),{force:!0})}catch{}}async function un(e,t){return new Promise((n,r)=>{let s=Jc(e),i=a=>{if(s.removeAllListeners("connect"),s.removeAllListeners("error"),clearTimeout(o),a){try{s.destroy()}catch{}r(a)}else n(s)},o=setTimeout(()=>i(new Error("connect timeout")),t);s.once("connect",()=>i(null)),s.once("error",a=>i(a))})}function uu(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:nu(new URL("../bin/tkr-daemon.js",import.meta.url))}async function ir(e,t=3e3){let n=Math.ceil(t/75),r=process.platform==="win32";for(let s=0;s<n;s++){if(r)try{return(await un(e,75)).destroy(),!0}catch{}else if(ui(e))return!0;await new Promise(i=>setTimeout(i,75))}return!1}async function du(e){let t=uu();if(!$t()&&!ui(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=At(),r=process.platform==="win32"?S():tu(n);try{lr(r,{recursive:!0})}catch{}let s=cr(r,"daemon.spawn.lock"),i=null;try{i=sr(s,"wx"),ar(i,String(process.pid))}catch(o){if(o.code==="EEXIST"){if(await ir(n,5e3))return;try{or(s)}catch{}try{i=sr(s,"wx"),ar(i,String(process.pid))}catch(l){if(l.code==="EEXIST"){await ir(n,5e3);return}throw l}}else throw o}try{let o=null;try{o=sr(dr(),"a")}catch{}let[a,...l]=ln(t);if(Yc(a,l,{detached:!0,stdio:["ignore","ignore",o??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),o!==null)try{li(o)}catch{}if(!await ir(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(i!==null){try{li(i)}catch{}try{or(s)}catch{}}}}async function fi(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:At(),n=await Yt();try{let r=await un(t,di);r.write(er({id:Tt(),op:"shutdown",installId:n})),await new Promise(s=>setTimeout(s,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function fu(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await un(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function pi(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:At(),n=await Yt(),r=null,s=0,i=!1;for(;s<=ci;)try{r=await un(t,di),cu();break}catch{if(s+=1,s>ci)throw new Error(`tkr-daemon unreachable at ${t}`);if(ou())throw new Error(`tkr-daemon spawn on cooldown (see ${dr()})`);await nr();try{await du(n),i=!0}catch(u){throw lu(u),u}}if(!r)throw new Error("tkr-daemon: socket setup failed");let o=new Map,a="";r.setEncoding("utf8"),r.on("data",u=>{a+=u;let d=-1;for(let p=0;p<a.length;p++)a[p]===on&&(d=p);if(d<0)return;let f=[];for(let p of ti(a.slice(0,d+1)))f.push(p);a=a.slice(d+1);for(let p of f)if(p)try{let h=JSON.parse(p),T=o.get(h.id);if(!T)continue;clearTimeout(T.timer),o.delete(h.id),T.resolve(h)}catch{}}),r.on("close",()=>{for(let u of o.values())clearTimeout(u.timer),u.reject(new Error("daemon socket closed"));o.clear()}),r.on("error",()=>{});function l(u){return new Promise((d,f)=>{if(r.destroyed||!r.writable){f(new Error("daemon socket closed"));return}let p=setTimeout(()=>{o.delete(u.id),f(new Error(`daemon request timeout (${u.op})`))},ru);o.set(u.id,{resolve:d,reject:f,timer:p}),r.write(er(u))})}let c={filter:async(u,d,f)=>{let p=await l({id:Tt(),op:"filter",cmd:u.slice(0,2048),plan:d,...f&&f.length>0?{allowed:f.slice(0,512)}:{},installId:n});if(!p.ok)return null;let h=ei.safeParse(p.data);return h.success?h.data.filter:null},ping:async()=>{let u=await l({id:Tt(),op:"ping"});if(!u.ok)throw new Error(u.err);return u.data},reload:async()=>{let u=await l({id:Tt(),op:"reload",installId:n});if(!u.ok)throw new Error(u.err);return u.data},close:()=>{try{r.destroy()}catch{}}};if(!e.skipVersionCheck&&!i){let u=!1;try{let d=await c.ping();if(d.version&<(G,d.version))throw new Error(`newer daemon ${d.version} already running`);u=d.version!==G}catch(d){throw c.close(),d}if(u){try{await fi(e.socketPath?{socketPath:e.socketPath}:{})}catch{}c.close();let d=await fu(t,2e3);if(await nr(),!d)throw new Error("stale daemon still running after shutdown request");return pi({...e,skipVersionCheck:!0})}}return c}var di,ru,ci,su,iu,hi=k(()=>{"use strict";ni();ii();M();cn();Be();ze();di=500,ru=3e3,ci=1,su=6e4,iu=256*1024});import{readFileSync as pu,renameSync as mu,statSync as hu,writeFileSync as gu}from"node:fs";function gi(e,t,n){try{if(hu(e).size<=t)return;let r=pu(e,"utf8").split(`
|
|
10
|
+
`).filter(a=>a.trim()!==""),s=[],i=0;for(let a=r.length-1;a>=0;a-=1){let l=r[a],c=Buffer.byteLength(l)+1;if(i+c>n)break;s.push(l),i+=c}s.reverse();let o=`${e}.tmp-${process.pid}`;gu(o,s.length?`${s.join(`
|
|
10
11
|
`)}
|
|
11
|
-
`:"",{mode:384}),
|
|
12
|
-
`),await
|
|
13
|
-
`,{mode:384}),
|
|
14
|
-
`,{mode:384}),
|
|
15
|
-
`).filter(s=>s.trim()),
|
|
12
|
+
`:"",{mode:384}),mu(o,e)}catch{}}var yi=k(()=>{"use strict"});import{readFile as yu,writeFile as bu,rename as ku,mkdir as wu,copyFile as _u}from"node:fs/promises";import{existsSync as pr,accessSync as xu,constants as vu}from"node:fs";import{join as bi}from"node:path";function Eu(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function ki(e){if(!pr(e))return{};try{let t=JSON.parse(await yu(e,"utf8"));return Eu(t)?t:null}catch{return null}}async function wi(e,t){try{await wu(bi(e,".."),{recursive:!0});let n=`${e}.tkr-bak`;pr(e)&&!pr(n)&&await _u(e,n);let r=`${e}.tmp-${process.pid}`;return await bu(r,`${JSON.stringify(t,null,2)}
|
|
13
|
+
`),await ku(r,e),!0}catch{return!1}}function fr(e){return`'${e.replace(/'/g,"'\\''")}'`}function _i(e,t,n){let r=$t()?an(n):null;if(r)return[fr(ai(t)),...r].join(" ");if(process.platform!=="win32")for(let s of t.split(":")){if(!s||s.includes("node_modules"))continue;let i=bi(s,e);try{return xu(i,vu.X_OK),fr(i)}catch{}}return`node ${fr(n)}`}var xi=k(()=>{"use strict";rr();cn()});var Ti={};ve(Ti,{codexHookCommand:()=>$u,codexHookInstalled:()=>Ru,codexHooksFile:()=>mr,ensureCodexHook:()=>Au});import{readFileSync as Su}from"node:fs";import{join as vi}from"node:path";import Tu from"node:os";function mr(){return vi(process.env.CODEX_HOME||vi(Tu.homedir(),".codex"),"hooks.json")}function Si(e){return(e.hooks??[]).find(t=>typeof t.command=="string"&&t.command.includes(Ei))}function Ru(){try{return(JSON.parse(Su(mr(),"utf8")).hooks?.PreToolUse??[]).some(t=>Si(t)!=null)}catch{return!1}}async function Au(e){let t=mr(),n=await ki(t);if(!n)return"error";let r=n.hooks&&typeof n.hooks=="object"?n.hooks:{},s=Array.isArray(r.PreToolUse)?r.PreToolUse:[],i="added",o=s.map(Si).find(a=>a!=null);if(o){if(o.command===e)return"present";o.command=e,i="updated"}else s.push({matcher:"Bash",hooks:[{type:"command",command:e,timeout:10}]});return r.PreToolUse=s,n.hooks=r,await wi(t,n)?i:"error"}function $u(e,t){return _i(Ei,e,t)}var Ei,Ri=k(()=>{"use strict";xi();Ei="tkr-codex-hook"});var Mi={};ve(Mi,{autoUpdateEnabled:()=>yr,claimSelfUpdateSlot:()=>Di,defaultDeps:()=>Uu,maybeSpawnSelfUpdate:()=>Hu,selfUpdate:()=>Bu,setAutoUpdate:()=>Lu});import{spawn as Oi}from"node:child_process";import{accessSync as Cu,constants as Iu,existsSync as Ct,mkdirSync as Ni,readFileSync as Pi,rmSync as Ou,writeFileSync as gr,appendFileSync as Nu}from"node:fs";import{fileURLToPath as Pu}from"node:url";import{join as Q}from"node:path";import Du from"node:os";function yr(){return process.env.TOKMIZER_AUTO_UPDATE==="0"?!1:!Ct(hr())}function Lu(e){if(e){Ou(hr(),{force:!0});return}Ni(S(),{recursive:!0,mode:448}),gr(hr(),String(Date.now()))}function Di(e=Date.now()){try{let t=Number(Pi(Ci(),"utf8"));if(Number.isFinite(t)&&e-t<Mu)return!1}catch{}try{Ni(S(),{recursive:!0,mode:448}),gr(Ci(),String(e))}catch{return!1}return!0}function ju(e){try{let t=Q(S(),"self-update.log");Nu(t,`${new Date().toISOString()} ${e}
|
|
14
|
+
`,{mode:384}),gi(t,$i,$i/2)}catch{}}async function Bu(e){if(!yr())return["disabled"];if(!J())return["network off"];let t=e.latest;if(!t||!Ai.test(t))return["no-version"];let n=[],r=[],s=(await e.run("npm",["root","-g"]).catch(()=>({code:1,stdout:""}))).stdout.trim(),i=s?e.npmVersion(s):void 0;if(i)if(!lt(i,t))r.push(i);else if(!e.writable(s))n.push("npm needs permission");else{let a=await e.run("npm",["i","-g",`@tokmizer/plugin@${t}`,"--no-audit","--no-fund"]).catch(()=>({code:1,stdout:""})),l=e.npmVersion(s);a.code===0&&l===t?(n.push(`npm ${i} -> ${t}`),r.push(t)):n.push(`npm failed (${i})`)}if(process.platform!=="win32"){let a=await e.run("brew",["list","--versions","tokmizer"]).catch(()=>({code:1,stdout:""})),l=a.code===0?a.stdout.trim().split(/\s+/)[1]:void 0;if(l&&Ai.test(l))if(!lt(l,t))r.push(l);else{let c=await e.run("brew",["upgrade","tokmizer"],{...process.env,HOMEBREW_NO_INSTALL_CLEANUP:"1"}).catch(()=>({code:1,stdout:""}));c.code===0?(n.push(`brew ${l} -> ${t}`),r.push(t)):/untrusted tap/i.test(c.stderr??"")?n.push("brew tap not trusted: run brew trust norwelltw/tokmizer"):n.push(`brew failed (${l})`)}}if(n.some(a=>a.includes("->"))&&await e.run("tkr",["shims-refresh"]).catch(()=>({code:1,stdout:""})),r.some(a=>!lt(a,Fu))&&e.codexInstalled()&&!Ct(Ii())){let a=await e.ensureCodexHook(s).catch(()=>"error");if(a!=="error"){try{gr(Ii(),String(Date.now()))}catch{}n.push(`codex hook ${a}`)}}for(let a of n)ju(a);return n}function zu(e,t,n){return new Promise(r=>{let s=Oi(e,t,{env:n??process.env,shell:process.platform==="win32",stdio:["ignore","pipe","pipe"],windowsHide:!0}),i="",o="";s.stdout?.on("data",l=>{i+=l.toString("utf8")}),s.stderr?.on("data",l=>{o.length<8192&&(o+=l.toString("utf8"))});let a=setTimeout(()=>s.kill("SIGTERM"),10*6e4);s.on("error",()=>{clearTimeout(a),r({code:127,stdout:""})}),s.on("close",l=>{clearTimeout(a),r({code:l??1,stdout:i,stderr:o})})})}function Uu(e){return{latest:e,run:zu,npmVersion:t=>{try{let n=JSON.parse(Pi(Q(t,"@tokmizer","plugin","package.json"),"utf8")).version;return typeof n=="string"?n:void 0}catch{return}},writable:t=>{try{return Cu(t,Iu.W_OK),!0}catch{return!1}},codexInstalled:()=>Ct(process.env.CODEX_HOME||Q(Du.homedir(),".codex")),ensureCodexHook:async t=>{let{ensureCodexHook:n,codexHookCommand:r}=await Promise.resolve().then(()=>(Ri(),Ti)),s=Q(t,"@tokmizer","plugin","dist","bin","tkr-codex-hook.js"),i=r(process.env.PATH??"",s);return i.startsWith("node ")&&!Ct(s)?"error":n(i)}}}function Zu(){let e=Pu(new URL(".",import.meta.url));for(let t of[Q(e),Q(e,"..")])if(Ct(Q(t,"bin","tkr.js")))return t;return null}function Hu(){try{if(!yr()||!J())return;let e=Zu();if(!e||!Di())return;let[t,...n]=ln(Q(e,"bin","tkr.js")),r=Oi(t,[...n,"self-update"],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,TOKMIZER_SELF_UPDATE_CHILD:"1"}});r.on("error",()=>{}),r.unref()}catch{}}var Ai,Mu,Fu,$i,hr,Ci,Ii,Fi=k(()=>{"use strict";M();ze();yi();cn();be();Ai=/^\d+\.\d+\.\d+$/,Mu=6*36e5,Fu="0.9.34",$i=64*1024,hr=()=>Q(S(),"auto-update-off"),Ci=()=>Q(S(),"self-update-last"),Ii=()=>Q(S(),"codex-hook-offered")});function It(e){let t=e;for(let[n,r]of Vu)t=t.replace(n,r);return t}var Vu,br=k(()=>{"use strict";Vu=[[/(authorization\s*:\s*)([A-Za-z][A-Za-z0-9._-]*)\s+[^\s'"]+/gi,"$1$2 [REDACTED]"],[/(authorization\s*:\s*)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/(bearer\s+)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-b|--cookie)[=\s]+['"]?)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/(--?(?:password|passwd|passphrase|apipass|pass|pwd|token|api[-_]?key|secret|bearer|cookie|jwt)(?:-[a-z0-9]+)*[=\s]+)\S+/gi,"$1[REDACTED]"],[/((?:^|\s)-b[=\s]?['"]?)[^\s'"=]+=[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*:)(\/[^/\s'"][^\s'"]*|[^\s/'"0-9][^\s'"]*|[0-9][^\s'"]*[^\s'"0-9][^\s'"]*)/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*[^\s:/'"0-9][^\s:/'"]*:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:[A-Za-z0-9]+-){0,8}(?:X-Api-Key|Private-Token|[A-Za-z0-9]+-(?:Token|Key|Auth|Secret))\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/(-i\s+)(\/[^\s]+|~\/[^\s]+|[A-Z]:\\[^\s]+)/g,"$1[REDACTED]"],[/([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^:/\s@]*:)[^\s@]+(@[^@/\s]+)/g,"$1[REDACTED]$2"],[/(AWS_(?:ACCESS_KEY_ID|SECRET_ACCESS_KEY|SESSION_TOKEN)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(GOOGLE_APPLICATION_CREDENTIALS\s*=\s*)\S+/g,"$1[REDACTED]"],[/(AZURE_(?:CLIENT_SECRET|TENANT_ID|CLIENT_ID)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-(?:proj-)?[A-Za-z0-9_-]{20,})/g,"sk-[REDACTED]"],[/\b(OPENAI_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(ANTHROPIC_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-ant-[A-Za-z0-9_-]{20,})/g,"sk-ant-[REDACTED]"],[/\b(GH(?:_|ITHUB_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(GITLAB_TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(SLACK_(?:BOT_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/(xox[bpsoa]-[A-Za-z0-9-]{10,})/g,"xox[REDACTED]"],[/(xapp-[A-Za-z0-9-]{10,})/g,"[REDACTED]"],[/(sk_(?:test|live)_[A-Za-z0-9]{16,})/g,"sk_[REDACTED]"],[/(gh[a-z])_[A-Za-z0-9]{20,}/g,"$1_[REDACTED]"],[/(github_pat)_[A-Za-z0-9_]{20,}/g,"$1_[REDACTED]"],[/(gl(?:pat|rt|soat|imt|dt|ft|agent|oas|cbt|ptt))-[A-Za-z0-9_-]{16,}/g,"$1-[REDACTED]"],[/(npm_[A-Za-z0-9_-]{20,})/g,"npm_[REDACTED]"],[/(?:AKIA|ASIA|AGPA|AIDA|AROA|ANPA)[0-9A-Z]{16,}/g,"[REDACTED_AWS_KEY]"],[/AIza[A-Za-z0-9_-]{35}/g,"[REDACTED_GOOGLE_KEY]"],[/hv[sb]\.[A-Za-z0-9_-]{20,}/g,"[REDACTED_VAULT_TOKEN]"],[/dop_v1_[A-Za-z0-9]{40,}/g,"[REDACTED]"],[/dckr_pat_[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/pypi-[A-Za-z0-9_-]{16,}/g,"[REDACTED]"],[/rk_(?:live|test)_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/whsec_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/SG\.[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/(eyJ[A-Za-z0-9_-]{6,}(?:\.[A-Za-z0-9_-]{4,}){1,2})/g,"[REDACTED_JWT]"],[/-----BEGIN [A-Z ]*PRIVATE KEY-----(?:[\s\S]*?-----END[^\n]*-----|\r?\n[A-Za-z0-9+/=][A-Za-z0-9+/=\r\n]*)?/g,"[REDACTED_PEM]"],[/\b((?:--?)?[A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|AUTH|_PWD)[A-Za-z0-9_]*['"]?\s*=\s*)(?:"[^"]*"|'[^']*'|[^"'\s]\S*)/gi,"$1[REDACTED]"],[/\b([A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|_PWD)[A-Za-z0-9_]*['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/((?:^|[\s'"{,])['"]?(?:[A-Za-z0-9_]+_)?auth['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/(\bpwd\s*[=:]\s*)(?:"[^"]*"|'[^']*'|[^/~\s][^\s;'"]*)/gi,"$1[REDACTED]"],[/([=:]\s*["']?)[A-Za-z0-9_\-+/=]{40,}/g,"$1[REDACTED]"]]});import{existsSync as Ku,mkdirSync as gy,writeFileSync as yy}from"node:fs";import{join as Wu}from"node:path";function Ju(){return Wu(S(),Gu)}function Li(){return Ku(Ju())}var Gu,ji=k(()=>{"use strict";M();Et();be();ze();Gu="telemetry-notice-shown"});import{join as fn}from"node:path";import{appendFileSync as Ui,chmodSync as Yu,existsSync as Ot,mkdirSync as _r,readFileSync as Er,renameSync as xr,rmdirSync as Zi,statSync as Sr,unlinkSync as ut,utimesSync as qu,writeFileSync as Tr}from"node:fs";function Rr(e){return fn(Nt(),`${e}.lock`)}function Qu(e){let t=Rr(e);try{return _r(Nt(),{recursive:!0,mode:448}),_r(t),!0}catch{try{Date.now()-Sr(t).mtimeMs>Xu&&Zi(t)}catch{return!1}return!1}}function ed(e){try{qu(Rr(e),new Date,new Date)}catch{return}}function td(e){try{Zi(Rr(e))}catch{return}}function Nt(){return fn(S(),"spool")}function dn(e){return fn(Nt(),`${e}.jsonl`)}function pn(e){return fn(Nt(),`${e}.pending.jsonl`)}function mn(e,t){if(J())try{_r(Nt(),{recursive:!0,mode:448});let n=dn(e);if(Ot(n)&&Sr(n).size>=vr)return;Ui(n,JSON.stringify(t)+`
|
|
15
|
+
`,{mode:384}),Yu(n,384)}catch{return}}function Bi(e,t){Ui(e,Er(t,"utf8"),{mode:384}),Tr(t,"",{mode:384});try{ut(t)}catch{return}}function nd(e){if(Sr(e).size<=vr)return;let t=Er(e,"utf8").split(`
|
|
16
|
+
`).filter(s=>s.trim()),n=0,r=[];for(let s=t.length-1;s>=0;s--){let i=t[s]??"";if(n+=Buffer.byteLength(i,"utf8")+1,n>vr)break;r.unshift(i)}Tr(e,r.length?r.join(`
|
|
16
17
|
`)+`
|
|
17
|
-
`:"",{mode:384})}function
|
|
18
|
-
`))if(i.trim())try{s.push(JSON.parse(i))}catch{continue}return s.length===0?(
|
|
18
|
+
`:"",{mode:384})}function rd(e){try{let t=pn(e),n=dn(e),r=`${n}.merging`;if(Ot(r)&&Bi(t,r),Ot(t))Ot(n)&&(xr(n,r),Bi(t,r));else{if(!Ot(n))return[];xr(n,t)}nd(t);let s=[];for(let i of Er(t,"utf8").split(`
|
|
19
|
+
`))if(i.trim())try{s.push(JSON.parse(i))}catch{continue}return s.length===0?(ut(t),[]):s}catch{return[]}}function Hi(e){try{ut(pn(e))}catch{return}}function sd(e,t){if(t.length===0){Hi(e);return}let n=pn(e),r=`${n}.tmp`;Tr(r,t.map(s=>JSON.stringify(s)).join(`
|
|
19
20
|
`)+`
|
|
20
|
-
`,{mode:384}),
|
|
21
|
-
|
|
22
|
-
`)})}return i}z();import{chmod as ar,mkdir as Rt,readFile as cr,writeFile as At,stat as Wo,readdir as Jo,rm as Sn}from"node:fs/promises";var Tn="managed-by: tokmizer",qo=["tkr","tkr-gain","tkr-status","tkr-link","tkr-unlink","tkr-compression","tkr-telemetry","tkr-update","tkr-yolo"],Yo=["power","tkr-reducer"];async function Rn(){try{let t=JSON.parse(await cr(er(),"utf8"));return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}catch{return[]}}async function An(t){try{await Rt(E(),{recursive:!0}),await At(er(),JSON.stringify(t),{mode:384})}catch{}}var Xo=3600*1e3,En=10080*60*1e3;function Qo(){let t=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(t)&&t>0?Math.min(t,En):En}async function Cn(t){try{let e=await Wo(tt(t)),r=Date.now()-e.mtimeMs;return r<Xo&&r<=Qo()}catch{return!1}}async function $n(t,e){await Rt(Et(),{recursive:!0}),await At(tt(t),e,{mode:384}),await ar(tt(t),384)}async function ur(t){let e=new Set(t),r;try{r=await Jo(Et())}catch{return}for(let n of r){if(!n.endsWith(".md"))continue;let s=n.slice(0,-3);if(!e.has(s))try{await Sn(tt(s))}catch{}}}async function In(t,e){await Rt(tr(),{recursive:!0});try{if(!(await cr(Ue(t),"utf8")).includes(Tn))return}catch{}await At(Ue(t),e,{mode:384}),await ar(Ue(t),384);let r=await Rn();r.includes(t)||await An([...r,t])}async function lr(t){let e=new Set([...t,...qo]),r=await Rn(),n=new Set([...r,...Yo]);for(let s of n)if(!e.has(s))try{if(!(await cr(Ue(s),"utf8")).includes(Tn))continue;await Sn(Ue(s))}catch{}await An(r.filter(s=>e.has(s)))}async function dr(t){try{await Rt(E(),{recursive:!0}),await At(Xt(),JSON.stringify({at:Date.now(),error:t}),{mode:384}),await ar(Xt(),384)}catch{}}import{chmod as kd,mkdir as wd,readFile as xd,writeFile as Ed,stat as ea,readdir as ta,rm as On,rename as Sd}from"node:fs/promises";z();import{join as ra}from"node:path";z();var na=10080*60*1e3,sa=100*1024*1024,Cd=2*1024*1024;function Pn(t,e,r=process.env){let n=Number(r[t]);return Number.isFinite(n)&&n>0?n:e}async function Dn(){let t;try{t=await ta(Qt())}catch{return}let e=Pn("TOKMIZER_CCR_MAX_AGE_MS",na),r=Pn("TOKMIZER_CCR_DIR_CAP_BYTES",sa),n=Date.now(),s=[];for(let o of t){let a=ra(Qt(),o);try{let c=await ea(a);n-c.mtimeMs>e?await On(a):s.push({path:a,mtimeMs:c.mtimeMs,size:c.size})}catch{}}let i=s.reduce((o,a)=>o+a.size,0);if(!(i<=r)){s.sort((o,a)=>o.mtimeMs-a.mtimeMs);for(let o of s){if(i<=r)break;try{await On(o.path),i-=o.size}catch{}}}}var fr={welcome:"Link your Tokmizer account.",needToken:"Tokmizer already works on this device. Linking attaches it to your account.",getToken:"Sign in at tokmizer.com, then grab your key from your dashboard.",askToken:"Paste your dashboard key, then press Enter:",activating:"Linking...",activated:t=>`Linked. You are on the ${t} plan.`,failed:t=>`Activation failed: ${t}`,suspended:t=>`Your token is suspended. ${t}`,revoked:"Your token has been revoked. Contact support at tokmizer.com/contact",rotated:"Token rotated. Paste your new token from tokmizer.com/dashboard/token",offline:"Network required. Tokmizer needs an internet connection.",deviceCap:"Device limit reached. Manage devices at tokmizer.com/dashboard/devices"};nt();Ie();st();$t();async function ua(t,e){let r=await K();if(!r)throw new Error("Not activated. Run: tkr link");if(r.linked===!1){if(t==="GET")return{plan:r.plan,settings:await de()};let a=await Un(e);return{plan:r.plan,settings:a}}let n=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",s=await H(),i=await X(t,"/api/v1/settings",e,{baseUrl:n,bearer:r.jwt,signingSecret:r.signingSecret,fingerprint:s.fingerprint,installId:s.installId,timeoutMs:8e3});if(!i.ok)throw new Error(`Settings ${t} failed: ${i.status}`);let o=await le(i);return await pr(o.settings),o}async function Vn(){return ua("GET")}Ke();var Os="-command",Ps=3;async function Zr(){try{let{connectDaemon:t}=await Promise.resolve().then(()=>(ss(),ns)),e=await t();try{await e.reload()}finally{e.close()}}catch{}}async function Ur(t,e){if(!(!e&&await Cn("power"))){try{let r=await xn(t),n=[],s=[];for(let i of r)if(i.slug.endsWith(Os)){let o=i.slug.slice(0,-Os.length);await In(o,i.body),s.push(o)}else await $n(i.slug,i.body),n.push(i.slug);await ur(n),await lr(s),await dr(null)}catch(r){await dr(r instanceof Error?r.message:String(r))}try{await Dn()}catch{}}}async function zc(t,e){let r;for(let n=0;n<e.attempts;n++)try{return await t()}catch(s){if(r=s,n===e.attempts-1)break;let i=500*Math.pow(3,n)+Math.floor(Math.random()*300);await new Promise(o=>setTimeout(o,i))}throw r}async function Bc(t){let e=await H(),r=rt(),n={token:t.token,...t.email?{email:t.email}:{},pluginVersion:G,timeZone:r,...e},s=await zc(()=>X("POST","/api/v1/license/activate",n,{baseUrl:t.baseUrl,bearer:t.token,fingerprint:e.fingerprint,installId:e.installId,timeoutMs:1e4}),{attempts:3});if(!s.ok){if(s.status>=500)throw new Error("Tokmizer servers are temporarily unreachable. Try again in a minute.");let a=await s.text();throw Zc(a)==="device_cap"?new Error(fr.deviceCap):new Error(fr.failed(`${s.status} ${a}`))}let i=await le(s),o={token:t.token,jwt:i.jwt,signingSecret:i.signingSecret,plan:i.plan,status:i.status,trialEndsAt:i.trialEndsAt,subEndsAt:i.subEndsAt,jwtVersion:i.jwtVersion,installId:e.installId,fingerprint:e.fingerprint,pluginVersion:G,...t.email||i.boundEmail?{email:t.email??i.boundEmail??""}:{},timeZone:r,bonusActive:!1,linked:!0,lastHeartbeatOkAt:Date.now(),...Array.isArray(i.allowedFilters)&&i.allowedFilters.length>0?{allowedFilters:i.allowedFilters.map(ce)}:{}};return await Tt(o),await Zr(),await Ur(t.baseUrl,!0),o}function Zc(t){try{let e=JSON.parse(t);return typeof e.code=="string"?e.code:null}catch{return null}}function Uc(t){try{return new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date)}catch{return new Date().toISOString().slice(0,10)}}async function pt(t,e){let r=await K();return r&&r.token!==t.token?!1:(await Tt(e),!0)}async function Vc(t){let e=await K();if(!e)return null;let r=await H(),n=e.timeZone??rt(),s={ts:Date.now(),localDate:Uc(n),timeZone:n},i;try{i=await X("POST","/api/v1/license/heartbeat",s,{baseUrl:t,bearer:e.jwt,signingSecret:e.signingSecret,fingerprint:r.fingerprint,installId:r.installId,timeoutMs:5e3})}catch{return e}if(i.status===401){let d=(e.heartbeatAuthFails??0)+1,h={...e,heartbeatAuthFails:d},S=e.linked??(!!e.email||e.plan==="smart"||e.plan==="pro");if(d>=Ps&&S&&(h.relinkRequired=!0),!await pt(e,h))return null;if(d>=Ps&&!S){try{await jc(`${E()}/state.replaced.json`,JSON.stringify(e),{mode:384})}catch{}try{return await Hc(t)}catch{return null}}return null}if(i.status===451){let d=await K();if(d&&d.token!==e.token)return null;await vn();try{await ur([]),await lr([])}catch{}return null}if(i.status===426)return await pt(e,{...e,updateRequired:!0}),null;if(i.status===423)return await pt(e,{...e,relinkRequired:!0}),null;if(!i.ok){if(i.status===400)try{(await i.json())?.code==="stale_ts"&&await pt(e,{...e,clockSkewDetected:!0})}catch{}return e}let o;try{o=await le(i)}catch{return e}let a=o.settingsRevision??0,c=e.lastSettingsRevision??0,u=a>c,l=o.plan!==e.plan,p={...e,jwt:o.jwt,plan:o.plan,status:o.status,trialEndsAt:o.trialEndsAt,subEndsAt:o.subEndsAt,jwtVersion:o.jwtVersion,lastSettingsRevision:c,lastHeartbeatOkAt:Date.now(),heartbeatAuthFails:0,relinkRequired:!1,updateRequired:!1,clockSkewDetected:!1,timeZone:n,bonusActive:o.bonusActive??!1,...o.bonusResetAt!==void 0?{bonusResetAt:o.bonusResetAt}:{},...o.latestPluginVersion?{latestPluginVersion:o.latestPluginVersion}:{},...Array.isArray(o.allowedFilters)?{allowedFilters:o.allowedFilters.map(ce)}:{}};if(u)try{await Vn(),p.lastSettingsRevision=a}catch{}if(!await pt(e,p))return K();if(process.env.TOKMIZER_SELF_UPDATE_CHILD!=="1")try{let{maybeSpawnSelfUpdate:d}=await Promise.resolve().then(()=>(ws(),ks));d()}catch{}(u||l)&&await Zr(),await Ur(t,u||l);try{let{flushTelemetry:d}=await Promise.resolve().then(()=>(Br(),Cs)),{flush:h}=await Promise.resolve().then(()=>(Is(),$s));await d(t),await h(t)}catch{}return p}var up=5*6e4;async function Hc(t){let e=await H(),r=rt(),n={pluginVersion:G,timeZone:r,...e},s=await X("POST","/api/v1/license/enroll",n,{baseUrl:t,fingerprint:e.fingerprint,installId:e.installId,timeoutMs:4e3});if(!s.ok)throw new Error(`enroll failed ${s.status}`);let i=await le(s),o={token:i.token,jwt:i.jwt,signingSecret:i.signingSecret,plan:i.plan,status:i.status,trialEndsAt:i.trialEndsAt,subEndsAt:i.subEndsAt,jwtVersion:i.jwtVersion,installId:e.installId,fingerprint:e.fingerprint,pluginVersion:G,email:"",timeZone:r,bonusActive:!1,linked:!1,lastHeartbeatOkAt:Date.now(),...Array.isArray(i.allowedFilters)&&i.allowedFilters.length>0?{allowedFilters:i.allowedFilters.map(ce)}:{}};return await Tt(o),await Zr(),await Ur(t,!0),o}z();var hp=2*1024*1024;var Kc=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),Gc=new Set(["-u","-g","-n","-s","-k"]),Wc=/^[a-z0-9][a-z0-9._-]*$/i,Jc=new Set(["git","npm","pnpm","yarn","npx","docker","kubectl","helm","cargo","go","brew","gh","pip","pip3","apt","apt-get","systemctl","terraform","aws","gcloud","az","bundle","rake","rails","prisma","poetry","uv","gem","composer"]),Ns=/^[A-Za-z_][A-Za-z0-9_]*=/;function Ds(t){return t.length===0||t[0]==="cd"||t.every(e=>Ns.test(e))}function qc(t){let e=[],r="",n=!1,s=null,i=()=>{n&&e.push(r),r="",n=!1};for(let o of t){if(s){o===s?s=null:r+=o;continue}if(o==="'"||o==='"'){s=o,n=!0;continue}if(o===" "||o===" "){i();continue}if(`|;&<>
|
|
23
|
-
`.includes(o)){if(i(),Ds(e)){e=[];continue}return e}r+=o,n=!0}return i(),Ds(e)?[]:e}function Ms(t){let e=qc(t).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),r=0;for(;r<e.length;){let a=e[r];if(Ns.test(a)){r+=1;continue}if(Kc.has(a)){for(r+=1;r<e.length;){let c=e[r];if(c.startsWith("-")){r+=Gc.has(c)?2:1;continue}if(/^\d+(?:\.\d+)?[smhd]?$/.test(c)){r+=1;continue}break}continue}break}if(r>=e.length)return"";let n=e[r],s=n.includes("/")?n.slice(n.lastIndexOf("/")+1):n,i=e[r+1];return(i&&!i.startsWith("-")&&Wc.test(i)&&Jc.has(s.toLowerCase())?`${s} ${i}`:s).slice(0,24)}function Yc(t){let e=[];for(let s of t.split(`
|
|
24
|
-
`))if(s.trim())try{e.push(JSON.parse(s))}catch{continue}let r=new Map;for(let s of e){let i=s.message?.content;if(Array.isArray(i))for(let o of i)o?.type==="tool_use"&&o.name==="Bash"&&typeof o.id=="string"&&typeof o.input?.command=="string"&&r.set(o.id,o.input.command)}let n=[];for(let s of e){let i=s.toolUseResult;if(!i||typeof i.stdout!="string")continue;let o=s.message?.content;if(Array.isArray(o))for(let a of o){if(a?.type!=="tool_result"||typeof a.tool_use_id!="string")continue;let c=r.get(a.tool_use_id);if(c===void 0)continue;let u=typeof i.stderr=="string"?i.stderr:"";n.push({command:c,output:i.stdout+u})}}return n}function Bt(t){return Math.ceil(t/4)}function Xc(t){let e=new Map,r=0;for(let s of t){let i=Ms(s.command)||"other",o=e.get(i)??{label:i,runs:0,routed:0,rawTokens:0,savedTokens:0,lostTokens:0};o.runs+=1,o.rawTokens+=Bt(s.rawBytes),s.filterId?(o.routed+=1,r+=1,o.savedTokens+=Math.max(0,Bt(s.rawBytes)-Bt(s.filteredBytes))):o.lostTokens+=Bt(s.rawBytes),e.set(i,o)}let n=[...e.values()].sort((s,i)=>i.lostTokens-s.lostTokens||i.rawTokens-s.rawTokens);return{rows:n,totals:{runs:t.length,routedPct:t.length?r/t.length*100:0,savedTokens:n.reduce((s,i)=>s+i.savedTokens,0),lostTokens:n.reduce((s,i)=>s+i.lostTokens,0)}}}mr();import{readdir as Qc,readFile as eu}from"node:fs/promises";import{join as js,dirname as tu}from"node:path";import{fileURLToPath as ru}from"node:url";var nu=tu(ru(import.meta.url)),Ls=process.env.TOKMIZER_FILTERS_DIR||js(nu,"..","..","filters"),fe=null,Fs=!1;function su(){return process.env.TOKMIZER_DEV==="1"||process.env.TOKMIZER_DEV==="true"}async function zs(){if(fe)return fe;if(!su())return!Fs&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
|
|
25
|
-
`),Fs=!0),fe=new Map,fe;let t=new Map,e,r;try{e=(await import("smol-toml")).parse,r=(await Qc(Ls)).filter(n=>n.endsWith(".toml"))}catch{return fe=t,fe}for(let n of r){let s=await eu(js(Ls,n),"utf8"),o=e(s).filters;if(o)for(let[a,c]of Object.entries(o)){let u=It.parse({slug:a,...c});t.set(a,{...u,matchRegex:new RegExp(u.match_command)})}}return fe=t,fe}Qe();var Bs=new WeakMap,iu=256;function Zs(t,e,r,n=e){let s=Bs.get(n);s||(s=new Map,Bs.set(n,s));let i=JSON.stringify([t,r?[...r].sort():null]),o=s.get(i);if(o!==void 0)return o;let a=null;for(let c of e)r&&!r.has(ce(c.slug))||c.matchRegex.test(t)&&(!a||c.priority>a.priority)&&(a=c);if(s.size>=iu){let c=s.keys().next().value;c&&s.delete(c)}return s.set(i,a),a}var ou=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,au=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function Oe(t){return t.replace(ou,"").replace(au,"")}function Us(t,e){return e.length===0?t:t.filter(r=>!e.some(n=>n.test(r)))}function Vs(t,e){return t.map(r=>{if(r.length<=e)return r;let n=r.charCodeAt(e-1),s=r.charCodeAt(e),i=n>=55296&&n<=56319&&s>=56320&&s<=57343?e-1:e;return`${r.slice(0,i)}\u2026`})}function Zt(t){return`\u2026 (${t} more lines omitted)`}function Hs(t,e){if(t.length<=e)return{kept:t,dropped:[]};let r=Math.ceil(e*.7),n=e-r,s=t.slice(r,t.length-n);return{kept:[...t.slice(0,r),Zt(s.length),...t.slice(t.length-n)],dropped:s}}var cu=/^\s*(?:[✓✔√]|ok )/,pe=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/;function Ks(t,e){let r=e>0?e:5,n=[],s=0,i=a=>{s>=r?n.push(`\u2026 ${s} passing checks folded \u2026`):n.push(...a)},o=[];for(let a of t)cu.test(a)&&!pe.test(a)?(o.push(a),s+=1):(i(o),o=[],s=0,n.push(a));return i(o),n}var uu=/(?:\/[\w.@+-]+){3,}/g;function Gs(t){return t.map(e=>e.replace(uu,r=>{let n=r.split("/").filter(Boolean);return n.length<=2?r:`\u2026/${n.slice(-2).join("/")}`}))}var lu=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,du=/\{\s*$/;var fu=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,pu=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);function mu(t){let e=fu.exec(t);return!e||pu.has(e[1])?!1:!/=>|\bfunction\b/.test(e[2])}var hu=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;function gu(t,e,r){let n=e;for(;n<t.length;){if(t[n]==="\\"){n+=2;continue}if(t[n]===r)return!0;n+=1}return!1}function yu(t,e){let r=0,n=null,s=0;for(;s<t.length;){let i=t[s];if(e.inBlockComment){if(i==="*"&&t[s+1]==="/"){e.inBlockComment=!1,s+=2;continue}s+=1;continue}if(e.inTemplate){if(i==="\\"){s+=2;continue}i==="`"&&(e.inTemplate=!1),s+=1;continue}if(n){if(i==="\\"){s+=2;continue}i===n&&(n=null),s+=1;continue}if(i==="/"&&t[s+1]==="/")break;if(i==="/"&&t[s+1]==="*"){e.inBlockComment=!0,s+=2;continue}if(i==="`"){e.inTemplate=!0,s+=1;continue}if(i==="'"||i==='"'){let o=s>0?t[s-1]:"";!(i==="'"&&(o==="<"||o==="&"))&&gu(t,s+1,i)&&(n=i),s+=1;continue}i==="{"||i==="("||i==="["?r+=1:(i==="}"||i===")"||i==="]")&&(r-=1),s+=1}return r}var _u=/^\s*… (\d+) lines? folded …$/;function Vr(t){let e=new Array(t.length).fill(!1);for(let r=0;r<t.length;r+=1){let n=_u.exec(t[r]);if(!n)continue;let s=Number(n[1])-1,i=r+1;for(;s>0&&i<t.length&&t[i]==="";)e[i]=!0,s-=1,i+=1;r=i-1}return e}function mt(t,e=3){let r=[],n=0;for(;n<t.length;){let s=t[n];if(lu.test(s)&&du.test(s)||mu(s)||hu.test(s)){let i={inBlockComment:!1,inTemplate:!1},o=0,a=n,c=!1;for(;a<t.length&&a-n<200;)if(o+=yu(t[a],i),a+=1,o<=0&&!i.inTemplate&&!i.inBlockComment){c=!0;break}let u=a-n;if(c&&u<e){r.push(...t.slice(n,a)),n=a;continue}if(c&&u>=3){let l=u-2,p=/^\s*/.exec(t[n+1]??"")?.[0]??" ";r.push(s),r.push(`${p}\u2026 ${l} ${l===1?"line":"lines"} folded \u2026`);for(let d=0;d<l-1;d++)r.push("");r.push(t[a-1]),n=a;continue}}r.push(s),n+=1}return r}var bu=/\b(?:function|class|interface|import\s+|export\s+|def\s+|fn\s+|impl\s+|package\s+|namespace\s+|using\s+|#include|=>\s*\{|=\s*function)/;function Ut(t){let e=t.slice(0,4096);return!(!bu.test(e)||e.split(`
|
|
26
|
-
`).length<6)}var vu=/^\s*(?:\d{4}-\d{2}-\d{2}[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?Z?|\d{2}:\d{2}:\d{2}(?:\.\d+)?)\s*/,ku=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,wu=new RegExp(pe.source,"i"),xu=/\bWARN(?:ING)?\b/i;function Ws(t){let e=[],r=0,n=()=>{r>0&&e.push(`\u2026 ${r} verbose log line${r===1?"":"s"} dropped \u2026`),r=0};for(let s of t){if(ku.test(s.replace(vu,""))&&!wu.test(s)&&!xu.test(s)){r+=1;continue}n(),e.push(s)}return n(),e}function Js(t){if(t.length===0)return t;let e=[],r=1,n=t[0];for(let s=1;s<t.length;s++){if(t[s]===n){r+=1;continue}e.push(r>1?`${n} \xD7${r}`:n),n=t[s],r=1}return e.push(r>1?`${n} \xD7${r}`:n),e}function qs(t){let e=[],r=0;for(let n of t){if(n.trim()===""){r+=1;continue}r>0&&e.push(""),r=0,e.push(n)}return e}var Ys=new Map;function j(t,e){Ys.set(t,e)}function Xs(t){return Ys.get(t)}var Eu=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,Su=/^[./~][^\s]*:$/,Hr=1e3;function Tu(t){if(t<1024)return String(t);let e=["K","M","G","T"],r=t/1024,n=0;for(;r>=1024&&n<e.length-1;)r/=1024,n+=1;return`${r.toFixed(1)}${e[n]}`}function Ru(t){if(!Eu.test(t))return null;let e=t.split(/\s+/);if(e.length<9)return null;let r=Number(e[4]);if(!Number.isFinite(r))return null;let n=e.slice(8).join(" ").trim();if(n===""||n==="."||n==="..")return null;let s=e[0].charCodeAt(0)===100;return{name:n,size:r,isDir:s}}function Au(t){if(t.length<3)return null;let e=new Map;for(let s of t){let i=s.name.lastIndexOf(".");if(i<=0)continue;let o=s.name.slice(i);e.set(o,(e.get(o)??0)+1)}let r=null,n=0;for(let[s,i]of e)i>n&&(n=i,r=s);return r&&n>=Math.ceil(t.length/2)?`${n} ${r}`:null}function Cu(t){let e=[],r=[],n=!1;for(let d of t){if(/^total\s+\d+/.test(d))continue;if(Su.test(d.trim()))return t;let h=Ru(d);h&&(n=!0,(h.isDir?e:r).push(h))}if(!n)return t;let s=(d,h)=>d.name.localeCompare(h.name);e.sort(s),r.sort((d,h)=>h.size-d.size||s(d,h));let i=[...e,...r],o=Math.min(40,Math.max(0,...i.map(d=>d.isDir?d.name.length+1:d.name.length))),a=[];for(let d of i){let h=d.isDir?`${d.name}/`:d.name,S=d.isDir?"":Tu(d.size);a.push(S?`${h.padEnd(o)} ${S}`:h)}if(a.length>Hr){let d=a.length-Hr;a=[...a.slice(0,Hr),`\u2026 ${d} more lines omitted`]}let c=r.length===1?"file":"files",u=e.length===1?"dir":"dirs",l=Au(r),p=`${r.length} ${c}, ${e.length} ${u}`+(l?` (${l})`:"");return a.push(p),a}j("smart-ls",Cu);j("smart-read",t=>mt(t));var Qs=1e3;function $u(t){let e=t.filter(l=>l.trim()!=="");if(e.length===0||e.filter(l=>!/\s/.test(l.trim())).length<e.length*.6)return t;let n=new Map,s=[],i=0;for(let l of e){let p=l.trim();if(p.startsWith("find:")){s.push(p);continue}let d=p.replace(/^\.\//,"").replace(/\/+$/,""),h=d.lastIndexOf("/"),S=h>=0?d.slice(0,h):"",$=h>=0?d.slice(h+1):d;if(!$)continue;let b=n.get(S)??[];b.push(/\s/.test($)?`"${$}"`:$),n.set(S,b),i+=1}if(i===0)return t;let o=new Set([""]);for(let l of n.keys()){if(l==="")continue;let p=l.split("/");for(let d=1;d<=p.length;d+=1)o.add(p.slice(0,d).join("/"))}let a=[...o].sort(),c=a.filter(l=>l!=="").length,u=[`${i}F ${c}D:`,""];for(let l of a){let p=l===""?0:l.split("/").length,d=l===""?".":l.slice(l.lastIndexOf("/")+1),h=n.get(l)??[],S=h.length?` ${h.join(" ")}`:"";u.push(`${" ".repeat(p)}${d}/${S}`)}if(u.length+s.length>Qs){let l=Math.max(0,Qs-s.length),p=u.length-l;return[...u.slice(0,l),`\u2026 ${p} more lines omitted`,...s]}return[...u,...s]}j("smart-find",$u);var Kr=1e3,ei=200,Iu=60,Ou=190,Pu=/^([^\s:]+):(\d+):(.*)$/,Du=/^([^:]+?)-(\d+)-(.*)$/,Nu=/^([^\s:]+):(.*)$/,ti=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;function ri(t){let e=t.trim();return e.length>ei?`${e.slice(0,ei)}\u2026`:e}function Mu(t){let e=[],r="";for(let n of t){let s=r?`${r}, ${n}`:n;s.length>Ou&&r?(e.push(`${r},`),r=n):r=s}return r&&e.push(r),e}function Lu(t){let e=t.filter(p=>p.trim()!=="");if(e.length===0)return t;let r=new Map,n=new Map,s=null,i=0,o=0;for(let p of e){if(p==="--"){s&&r.get(s).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(p))return t;let d=Pu.exec(p),h=Du.exec(p);if(d&&h)return t;let S=d||h?null:Nu.exec(p),$=(d??h??S)?.[1];if(!$)return t;let b=d?{line:d[2],content:d[3],context:!1}:h?{line:h[2],content:h[3],context:!0}:{line:"",content:S[2],context:!1},C=r.get($)??[];C.push(b),r.set($,C),b.context||(i+=1,n.set($,(n.get($)??0)+1)),o+=1,s=$}if(r.size===o)return t;let a=[...r.keys()].sort((p,d)=>{let h=ti.test(p)?1:0,S=ti.test(d)?1:0;return h-S||(p<d?-1:p>d?1:0)}),c=[];for(let p of a){c.push(`${p} (${n.get(p)??0}):`);for(let d of r.get(p))"separator"in d?c.push(" --"):d.line?c.push(` ${d.line}${d.context?"-":":"} ${ri(d.content)}`):c.push(` ${ri(d.content)}`)}let u=a.length>1&&c.length>Iu?Mu(a.map(p=>`${p} (${n.get(p)??0})`)):[],l=[`${i}m ${a.length}f:`,...u,"",...c];if(l.length>Kr){let p=l.length-Kr;return[...l.slice(0,Kr),`\u2026 ${p} more lines omitted`]}return l}j("smart-grep",Lu);var ni=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,Fu=/^[|\\/* ._-]*$/,ju=/^ {4}/,zu=2;function Bu(t){if(!t.some(u=>ni.test(u)))return t;let e=[],r=0,n=0,s=0,i="",o=!1,a=!1,c=()=>{n>0&&e.push(`${i} \u2026 ${n} ${n===1?"line":"lines"} folded \u2026`),n=0};for(let u of t){let l=u.slice(0,s),p=Fu.test(l),d=p?u.slice(s):u,h=ju.test(d),S=o&&h?null:ni.exec(u);if(S){c(),r=0,s=S[1]?.length??0,o=!0,a=!1,e.push(u);continue}if(/^diff --(?:git|cc|combined) /.test(d)&&(a=!0),h&&!a&&!(s>0&&d.trim().length===0)){r+=1,r<=zu?e.push(u):(n+=1,i=p?l:"");continue}c(),e.push(u)}return c(),e}j("smart-log",Bu);var Zu=/^[\s=]+$/,Uu=/^\s*=+\s+(.*?)\s+=+\s*$/,Vu=512;j("strip-banners",t=>{let e=[];for(let r of t){if(Zu.test(r))continue;let n=r.length<=Vu?Uu.exec(r):null;e.push(n?n[1]:r)}return e});function Hu(t){let e=[],r=0,n=0;for(;n<t.length;){let s=t[n].replace(/\s+$/,"");if(s===""){r+=1,n+=1,r<=1&&e.push("");continue}r=0;let i=1;for(;n+i<t.length&&t[n+i].replace(/\s+$/,"")===s;)i+=1;if(i>=3)e.push(s),e.push(` \u2026 (repeated ${i}x)`);else for(let o=0;o<i;o++)e.push(s);n+=i}for(;e.length>0&&e[e.length-1]==="";)e.pop();return e}j("squeeze-output",Hu);function Ku(t){return t==="compact"?.6:t==="minimal"?.3:1}var Gu=20;function Wu(t){let[e,r,n,s]=t.slice(-4);if(!e||!r||!n||!s||!/^\s*Test Files\s+([1-9]\d*) passed \(\1\)$/.test(e)||!/^\s*Tests\s+([1-9]\d*) passed \(\1\)$/.test(r)||!/^\s*Start at\s+\d{2}:\d{2}:\d{2}$/.test(n))return t;let i=/^(\s*Duration\s+\d+(?:\.\d+)?(?:ms|s)) \(transform [^\n]+\)$/.exec(s)?.[1];return i?[...t.slice(0,-4).filter((a,c)=>c>2||!/^ RUN v\d+\.\d+\.\d+(?:[\w.+-]*) .+$/.test(a)),e,r,i]:t}var si=new WeakMap;function Ju(t){let e=si.get(t);if(e)return e;let r=t.strip_lines_matching.map(s=>new RegExp(s)),n={def:t,stripRegexes:r};return si.set(t,n),n}function ii(t,e,r={}){return Gr(t,e,r).text}function Gr(t,e,r={}){let n=r.verbosity??"normal";if(!e.strip_ansi&&e.strip_lines_matching.length===0&&!e.transform&&!e.mask_abs_paths&&!e.fold_passing&&!e.truncate_lines_at&&!e.max_lines&&!e.on_empty&&!r.smartCode&&n==="normal")return{text:t,droppedTail:null};let s=Ju(e),i=t;e.strip_ansi&&(i=Oe(i));let o=i.endsWith(`
|
|
21
|
+
`,{mode:384}),xr(r,n)}async function hn(e,t,n={}){if(!J()||wr.has(e)||!Qu(e))return"fail";wr.add(e);try{if(!(await fe()).telemetryOptIn)return zi(e),"empty";if(!Li())return"fail";let r=rd(e);if(r.length===0)return"empty";let s=await Z();if(!s)return"fail";if(n.requirePro&&s.plan!=="pro")return Hi(e),"ok";let i=n.baseUrl??process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",o=await q();for(let a=0;a<r.length;a+=kr){if(!(await fe()).telemetryOptIn)return zi(e),"empty";ed(e);let l=await X("POST",t,{events:r.slice(a,a+kr),...n.consent?{consent:!0}:{}},{baseUrl:i,bearer:s.jwt,signingSecret:s.signingSecret,fingerprint:o.fingerprint,installId:o.installId});if(!l.ok)return l.status===401||l.status===403?"auth":"fail";sd(e,r.slice(a+kr))}return"ok"}catch{return"fail"}finally{wr.delete(e),td(e)}}function zi(e){try{ut(dn(e))}catch{}try{ut(`${dn(e)}.merging`)}catch{}try{ut(pn(e))}catch{return}}var vr,kr,Xu,wr,Ar=k(()=>{"use strict";M();at();Be();ct();Et();be();ji();vr=512*1024,kr=100,Xu=12e4,wr=new Set});var Wi={};ve(Wi,{commandName:()=>gn,flushTelemetry:()=>yd,recordTelemetry:()=>gd});function md(e){if(!/[\\/]/.test(e))return e;let t=e.split(/[\\/]/).filter(r=>r.length>0).pop()??"",n=t.toLowerCase().endsWith(".exe")?t.slice(0,-4):t;return dd.has(n.toLowerCase())?n:""}function hd(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=pd.has(n[r])?2:1;let s=(n[r]??"").toLowerCase();return t.has(s)?`${e} ${s}`:e}function Vi(e){let t=e.toLowerCase();return t.startsWith("git")||ld.has(t)}function gn(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&ad.test(t[n]??"");)n+=1;let r=md(t[n]??"");if(!r||!id.test(r)||r.length>ud)return"";let s=fd.get(r.toLowerCase());if(s)return hd(r.toLowerCase(),s,t.slice(n+1));if(Vi(r)||cd.test(r)||It(r)!==r)return"";let i=t[n+1];return i&&Vi(i)?"":(i&&Ki.has(r.toLowerCase())&&od.test(i)?`${r} ${i}`:r).slice(0,64)}async function gd(e){if(!e.telemetryOptIn)return;let t=gn(e.cmd),n=t&&It(t)===t?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";mn("telemetry",{cmd:n,tokensSaved:Math.max(0,Math.round(e.tokensSaved)),...e.tokensRestored?{tokensRestored:Math.max(0,Math.round(e.tokensRestored))}:{},...e.rawTokens!=null?{rawTokens:Math.max(0,Math.round(e.rawTokens))}:{},optimized:e.optimized,...r?{sessionId:r}:{},...e.host?{host:e.host}:{}})}async function yd(e){return hn("telemetry","/api/v1/telemetry",{baseUrl:e,consent:!0})}var id,od,ad,ld,cd,ud,Ki,dd,fd,pd,$r=k(()=>{"use strict";br();Ar();id=/^[a-z0-9][a-z0-9._-]*$/i,od=/^[a-z][a-z-]+$/,ad=/^[A-Za-z_][A-Za-z0-9_]*=/,ld=new Set(["gh","glab","gup","hub","gist"]),cd=/^(gh[a-z]_|github_pat_|gl(?:pat|rt|soat|imt|dt|ft|agent|oas)-|npm_|xox|sk-|sk_|eyj|a(?:kia|sia|gpa|ida|roa|npa)|aiza|hv[sb]\.)/i,ud=24,Ki=new Set(["docker","podman","npm","pnpm","yarn","npx","bun","deno","cargo","rustup","go","pip","pip3","uv","poetry","brew","apt","apt-get","dnf","yum","pacman","kubectl","helm","terraform","aws","gcloud","az","systemctl","composer","bundle","gem","dotnet","prisma","tkr","rtk","token"]),dd=new Set([...Ki,"git","gh","node","python","python3","bash","sh","zsh","psql","mysql","sqlite3","java","ruby","perl","rg","fd","jq","make","gradle","mvn","vitest","jest","tsc","esbuild","vite","webpack","playwright","rails","rake"]),fd=new Map([["git",new Set(["status","diff","log","show","blame","ls-files","rev-parse","branch","fetch","pull","push","commit","checkout","switch","merge","rebase","stash","tag","remote","add","reset","restore","clean","grep"])],["gh",new Set(["pr","issue","run","repo","api"])]]),pd=new Set(["-C","-c"])});function dt(e,t,n,r=t){let s=Gi.get(r);s||(s=new Map,Gi.set(r,s));let i=JSON.stringify([e,n?[...n].sort():null]),o=s.get(i);if(o!==void 0)return o;let a=null;for(let l of t)n&&!n.has(de(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(s.size>=bd){let l=s.keys().next().value;l&&s.delete(l)}return s.set(i,a),a}var Gi,bd,yn=k(()=>{"use strict";rt();Gi=new WeakMap,bd=256});function oe(e){return e.replace(kd,"").replace(wd,"")}var kd,wd,Pt=k(()=>{"use strict";kd=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,wd=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g});function Ji(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}var Yi=k(()=>{"use strict"});function qi(e,t){return e.map(n=>{if(n.length<=t)return n;let r=n.charCodeAt(t-1),s=n.charCodeAt(t),i=r>=55296&&r<=56319&&s>=56320&&s<=57343?t-1:t;return`${n.slice(0,i)}\u2026`})}var Xi=k(()=>{"use strict"});function ft(e){return`\u2026 (${e} more lines omitted)`}function Qi(e,t){if(e.length<=t)return{kept:e,dropped:[]};let n=Math.ceil(t*.7),r=t-n,s=e.slice(n,e.length-r);return{kept:[...e.slice(0,n),ft(s.length),...e.slice(e.length-r)],dropped:s}}var Cr=k(()=>{"use strict"});function eo(e,t){let n=t>0?t:5,r=[],s=0,i=a=>{s>=n?r.push(`\u2026 ${s} passing checks folded \u2026`):r.push(...a)},o=[];for(let a of e)_d.test(a)&&!xe.test(a)?(o.push(a),s+=1):(i(o),o=[],s=0,r.push(a));return i(o),r}var _d,xe,Ir=k(()=>{"use strict";_d=/^\s*(?:[✓✔√]|ok )/,xe=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/});function to(e){return e.map(t=>t.replace(xd,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var xd,no=k(()=>{"use strict";xd=/(?:\/[\w.@+-]+){3,}/g});function Rd(e){let t=Sd.exec(e);return!t||Td.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}function $d(e,t,n){let r=t;for(;r<e.length;){if(e[r]==="\\"){r+=2;continue}if(e[r]===n)return!0;r+=1}return!1}function Cd(e,t){let n=0,r=null,s=0;for(;s<e.length;){let i=e[s];if(t.inBlockComment){if(i==="*"&&e[s+1]==="/"){t.inBlockComment=!1,s+=2;continue}s+=1;continue}if(t.inTemplate){if(i==="\\"){s+=2;continue}i==="`"&&(t.inTemplate=!1),s+=1;continue}if(r){if(i==="\\"){s+=2;continue}i===r&&(r=null),s+=1;continue}if(i==="/"&&e[s+1]==="/")break;if(i==="/"&&e[s+1]==="*"){t.inBlockComment=!0,s+=2;continue}if(i==="`"){t.inTemplate=!0,s+=1;continue}if(i==="'"||i==='"'){let o=s>0?e[s-1]:"";!(i==="'"&&(o==="<"||o==="&"))&&$d(e,s+1,i)&&(r=i),s+=1;continue}i==="{"||i==="("||i==="["?n+=1:(i==="}"||i===")"||i==="]")&&(n-=1),s+=1}return n}function Od(e,t,n){let r=n==null?"":` (${n}-${n+t-1}): Read offset=${n} limit=${t} before editing`;return`${e}\u2026 ${t} ${t===1?"line":"lines"} folded${r} \u2026`}function Or(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=Id.exec(e[n]);if(!r)continue;let s=Number(r[1])-1,i=n+1;for(;s>0&&i<e.length&&e[i]==="";)t[i]=!0,s-=1,i+=1;n=i-1}return t}function Dt(e,t=3,n=!1){let r=[],s=0;for(;s<e.length;){let i=e[s];if(vd.test(i)&&Ed.test(i)||Rd(i)||Ad.test(i)){let o={inBlockComment:!1,inTemplate:!1},a=0,l=s,c=!1;for(;l<e.length&&l-s<200;)if(a+=Cd(e[l],o),l+=1,a<=0&&!o.inTemplate&&!o.inBlockComment){c=!0;break}let u=l-s;if(c&&u<t){r.push(...e.slice(s,l)),s=l;continue}if(c&&u>=3){let d=u-2,f=/^\s*/.exec(e[s+1]??"")?.[0]??" ";r.push(i),r.push(Od(f,d,n?s+2:null));for(let p=0;p<d-1;p++)r.push("");r.push(e[l-1]),s=l;continue}}r.push(i),s+=1}return r}function bn(e){let t=e.slice(0,4096);return!(!Nd.test(t)||t.split(`
|
|
22
|
+
`).length<6)}var vd,Ed,Sd,Td,Ad,Id,Nd,kn=k(()=>{"use strict";vd=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,Ed=/\{\s*$/,Sd=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,Td=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);Ad=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;Id=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;Nd=/\b(?:function|class|interface|import\s+|export\s+|def\s+|fn\s+|impl\s+|package\s+|namespace\s+|using\s+|#include|=>\s*\{|=\s*function)/});function uo(e){let t=[],n=0,r=()=>{n>0&&t.push(`\u2026 ${n} verbose log line${n===1?"":"s"} dropped \u2026`),n=0};for(let s of e){if(ao.test(s.replace(oo,""))&&!lo.test(s)&&!co.test(s)){n+=1;continue}r(),t.push(s)}return r(),t}function io(e){if(e.trim()===""||/^\s/.test(e)||lo.test(e)||co.test(e)||Dd.test(e))return null;let t=e.replace(oo,"");return ao.test(t)||Pd.test(t)?"\0verbose":e.replace(/\d+/g,"#")}function fo(e){let t=[],n=0;for(;n<e.length;){let r=io(e[n]),s=n+1;if(r!==null)for(;s<e.length&&io(e[s])===r;)s+=1;let i=s-n;r===null||i<Md?t.push(...e.slice(n,s)):(t.push(...e.slice(n,n+ro)),t.push(`\u2026 ${i-ro-so} similar log lines dropped \u2026`),t.push(...e.slice(s-so,s))),n=s}return t}function wn(e){if(e.length===0)return e;let t=[],n=1,r=e[0];for(let s=1;s<e.length;s++){if(e[s]===r){n+=1;continue}t.push(n>1?`${r} \xD7${n}`:r),r=e[s],n=1}return t.push(n>1?`${r} \xD7${n}`:r),t}function po(e){let t=[],n=0;for(let r of e){if(r.trim()===""){n+=1;continue}n>0&&t.push(""),n=0,t.push(r)}return t}var oo,ao,lo,co,Pd,Dd,Md,ro,so,_n=k(()=>{"use strict";Ir();oo=/^\s*(?:\d{4}-\d{2}-\d{2}[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?Z?|\d{2}:\d{2}:\d{2}(?:\.\d+)?)\s*/,ao=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,lo=new RegExp(xe.source,"i"),co=/\bWARN(?:ING)?\b/i;Pd=/^(?:DEBUG|INFO):[\w.-]+:/,Dd=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,Md=8,ro=1,so=2});function z(e,t){mo.set(e,t)}function ho(e){return mo.get(e)}var mo,pe=k(()=>{"use strict";mo=new Map});function Ud(e){if(e<1024)return String(e);let t=["K","M","G","T"],n=e/1024,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n.toFixed(1)}${t[r]}`}function Zd(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?zd[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function Hd(e){let t=Bd.exec(e);if(!t)return null;let n=t[2].trim();if(n===""||n==="."||n==="..")return null;let r=t[1],s=/^\d+$/.test(r)?Ud(Number(r)):r,i=e.charCodeAt(0)===100;return{name:n,size:s,sizeKey:Zd(r),isDir:i}}function Vd(e){if(e.length<3)return null;let t=new Map;for(let s of e){let i=s.name.lastIndexOf(".");if(i<=0)continue;let o=s.name.slice(i);t.set(o,(t.get(o)??0)+1)}let n=null,r=0;for(let[s,i]of t)i>r&&(r=i,n=s);return n&&r>=Math.ceil(e.length/2)?`${r} ${n}`:null}function Kd(e){let t=[],n=[],r=!1;for(let d of e){if(d.trim()===""||/^total\s+\d+/.test(d))continue;if(Ld.test(d.trim())||!Fd.test(d))return e;let f=Hd(d);if(!f){if(/\s\.\.?$/.test(d))continue;return e}r=!0,(f.isDir?t:n).push(f)}if(!r)return e;let s=(d,f)=>d.name.localeCompare(f.name);t.sort(s),n.sort((d,f)=>f.sizeKey-d.sizeKey||s(d,f));let i=[...t,...n],o=[];for(let d of i){let f=d.isDir?`${d.name}/`:d.name;o.push(d.isDir?f:`${f} ${d.size}`)}if(o.length>Nr){let d=o.length-Nr;o=[...o.slice(0,Nr),`\u2026 ${d} more lines omitted`]}let a=n.length===1?"file":"files",l=t.length===1?"dir":"dirs",c=Vd(n),u=`${n.length} ${a}, ${t.length} ${l}`+(c?` (${c})`:"");return o.push(u),o}var Fd,Ld,jd,Bd,zd,Nr,go=k(()=>{"use strict";pe();Fd=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,Ld=/^[./~][^\s]*:$/,jd=String.raw`(?:[^\s\d]{3,}\s+\d{1,2}|\d{1,2}\s+[^\s\d]{3,})\s+(?:\d{1,2}:\d{2}|\d{4})|\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:\s+[+-]\d{4})?`,Bd=new RegExp(String.raw`^\S+\s+\d+\s+\S+\s+(?:\S+\s+)?(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${jd})\s+(.+)$`),zd={k:1,m:2,g:3,t:4,p:5},Nr=1e3;z("smart-ls",Kd)});var yo=k(()=>{"use strict";kn();pe();z("smart-read",e=>Dt(e))});function Wd(e){let t=e[0].split("/");for(let n of e.slice(1)){let r=n.split("/"),s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)break}return t.join("/")}function Gd(e){if(e.length<2||e.some(s=>s.startsWith('"')))return"";let t=e[0];for(let s of e.slice(1)){let i=0;for(;i<t.length&&i<s.length&&t[t.length-1-i]===s[s.length-1-i];)i+=1;if(t=t.slice(t.length-i),!t)return""}let n=t.indexOf("."),r=n<0?"":t.slice(n);return r.length>=3&&e.every(s=>s.length>r.length)?r:""}function Jd(e){let t=e.filter(c=>c.trim()!=="");if(t.length===0||t.filter(c=>!/\s/.test(c.trim())).length<t.length*.6)return e;let r=new Map,s=[],i=0;for(let c of t){let u=c.trim();if(u.startsWith("find:")){s.push(u);continue}let d=u.replace(/^\.\//,"").replace(/\/+$/,""),f=d.lastIndexOf("/"),p=f>=0?d.slice(0,f):"",h=f>=0?d.slice(f+1):d;if(!h)continue;let T=r.get(p)??[];T.push(/\s/.test(h)?`"${h}"`:h),r.set(p,T),i+=1}if(i===0)return e;let o=[...r.keys()].sort(),a=o.every(c=>c!=="")?Wd(o):"",l=[`${i}F ${o.length}D${a?` in ${a}/`:""}:`];for(let c of o){let u=a?c.slice(a.length).replace(/^\//,""):c,d=r.get(c),f=Gd(d),p=f?d.map(h=>h.slice(0,-f.length)):d;l.push(`${u?`${u}/`:"./"} (${d.length}${f?`, *${f}`:""}): ${p.join(" ")}`)}if(l.length+s.length>bo){let c=Math.max(0,bo-s.length),u=l.length-c;return[...l.slice(0,c),`\u2026 ${u} more lines omitted`,...s]}return[...l,...s]}var bo,ko=k(()=>{"use strict";pe();bo=1e3;z("smart-find",Jd)});function xo(e){let t=e.trim();return t.length>wo?`${t.slice(0,wo)}\u2026`:t}function tf(e){let t=[],n="";for(let r of e){let s=n?`${n}, ${r}`:r;s.length>=qd&&n?(t.push(`${n},`),n=r):n=s}return n&&t.push(n),t}function nf(e){let t=null;for(let n of e){let r=n.split("/").slice(0,-1);if(t===null){t=r;continue}let s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)return""}return t?t.join("/"):""}function rf(e){let t=e.filter(p=>p.trim()!=="");if(t.length===0)return e;let n=new Map,r=new Map,s=null,i=0,o=0;for(let p of t){if(p==="--"){s&&n.get(s).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(p))return e;let h=Xd.exec(p),T=Qd.exec(p);if(h&&T)return e;let w=h||T?null:ef.exec(p),I=(h??T??w)?.[1];if(!I)return e;let R=h?{line:h[2],content:h[3],context:!1}:T?{line:T[2],content:T[3],context:!0}:{line:"",content:w[2],context:!1},O=n.get(I)??[];O.push(R),n.set(I,O),R.context||(i+=1,r.set(I,(r.get(I)??0)+1)),o+=1,s=I}if(n.size===o)return e;let a=[...n.keys()].sort((p,h)=>{let T=_o.test(p)?1:0,w=_o.test(h)?1:0;return T-w||(p<h?-1:p>h?1:0)}),l=a.length>1?nf(a):"",c=p=>l?p.slice(l.length+1):p,u=[];for(let p of a){u.push(`${c(p)} (${r.get(p)??0}):`);for(let h of n.get(p))"separator"in h?u.push(" --"):h.line?u.push(` ${h.line}${h.context?"-":":"} ${xo(h.content)}`):u.push(` ${xo(h.content)}`)}let d=a.length>1&&u.length>Yd?tf(a.map(p=>`${c(p)} (${r.get(p)??0})`)):[],f=[`${i}m ${a.length}f${l?` in ${l}/`:""}:`,...d,"",...u];if(f.length>Pr){let p=f.length-Pr;return[...f.slice(0,Pr),`\u2026 ${p} more lines omitted`]}return f}var Pr,wo,Yd,qd,Xd,Qd,ef,_o,vo=k(()=>{"use strict";pe();Pr=1e3,wo=200,Yd=60,qd=190,Xd=/^([^\s:]+):(\d+):(.*)$/,Qd=/^([^:]+?)-(\d+)-(.*)$/,ef=/^([^\s:]+):(.*)$/,_o=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;z("smart-grep",rf)});function lf(e){if(!e.some(c=>Eo.test(c)))return e;let t=[],n=0,r=0,s=0,i="",o=!1,a=!1,l=()=>{r>0&&t.push(`${i} \u2026 ${r} ${r===1?"line":"lines"} folded \u2026`),r=0};for(let c of e){let u=c.slice(0,s),d=sf.test(u),f=d?c.slice(s):c,p=of.test(f),h=o&&p?null:Eo.exec(c);if(h){l(),n=0,s=h[1]?.length??0,o=!0,a=!1,t.push(c);continue}if(/^diff --(?:git|cc|combined) /.test(f)&&(a=!0),p&&!a&&!(s>0&&f.trim().length===0)){n+=1,n<=af?t.push(c):(r+=1,i=d?u:"");continue}l(),t.push(c)}return l(),t}var Eo,sf,of,af,So=k(()=>{"use strict";pe();Eo=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,sf=/^[|\\/* ._-]*$/,of=/^ {4}/,af=2;z("smart-log",lf)});var cf,uf,df,To=k(()=>{"use strict";pe();cf=/^[\s=]+$/,uf=/^\s*=+\s+(.*?)\s+=+\s*$/,df=512;z("strip-banners",e=>{let t=[];for(let n of e){if(cf.test(n))continue;let r=n.length<=df?uf.exec(n):null;t.push(r?r[1]:n)}return t})});function ff(e){let t=[],n=0,r=0;for(;r<e.length;){let s=e[r].replace(/\s+$/,"");if(s===""){n+=1,r+=1,n<=1&&t.push("");continue}n=0;let i=1;for(;r+i<e.length&&e[r+i].replace(/\s+$/,"")===s;)i+=1;if(i>=3)t.push(s),t.push(` \u2026 (repeated ${i}x)`);else for(let o=0;o<i;o++)t.push(s);r+=i}for(;t.length>0&&t[t.length-1]==="";)t.pop();return t}var Ro=k(()=>{"use strict";pe();z("squeeze-output",ff)});function pf(e){return e==="compact"?.6:e==="minimal"?.3:1}function hf(e){let[t,n,r,s]=e.slice(-4);if(!t||!n||!r||!s||!/^\s*Test Files\s+([1-9]\d*) passed \(\1\)$/.test(t)||!/^\s*Tests\s+([1-9]\d*) passed \(\1\)$/.test(n)||!/^\s*Start at\s+\d{2}:\d{2}:\d{2}$/.test(r))return e;let i=/^(\s*Duration\s+\d+(?:\.\d+)?(?:ms|s)) \(transform [^\n]+\)$/.exec(s)?.[1];return i?[...e.slice(0,-4).filter((a,l)=>l>2||!/^ RUN v\d+\.\d+\.\d+(?:[\w.+-]*) .+$/.test(a)),t,n,i]:e}function gf(e){let t=Ao.get(e);if(t)return t;let n=e.strip_lines_matching.map(s=>new RegExp(s)),r={def:e,stripRegexes:n};return Ao.set(e,r),r}function xn(e,t,n={}){return Dr(e,t,n).text}function Dr(e,t,n={}){let r=n.verbosity??"normal";if(!t.strip_ansi&&t.strip_lines_matching.length===0&&!t.transform&&!t.mask_abs_paths&&!t.fold_passing&&!t.truncate_lines_at&&!t.max_lines&&!t.on_empty&&!n.smartCode&&r==="normal")return{text:e,droppedTail:null};let s=gf(t),i=e;t.strip_ansi&&(i=oe(i));let o=i.endsWith(`
|
|
27
23
|
`),a=(o?i.slice(0,-1):i).split(`
|
|
28
|
-
`);s.stripRegexes.length&&(a=
|
|
29
|
-
`):null,a=[...a.slice(0,
|
|
30
|
-
`),a=[...a.slice(0,
|
|
31
|
-
`):null,a=R}}}let
|
|
32
|
-
`);return o&&
|
|
33
|
-
`),
|
|
34
|
-
|
|
24
|
+
`);s.stripRegexes.length&&(a=t.keep_failures?a.filter(f=>xe.test(f)||!s.stripRegexes.some(p=>p.test(f))):Ji(a,s.stripRegexes)),r!=="normal"&&!t.preserve_exact&&(a=wn(a),a=po(a)),r==="minimal"&&!t.preserve_exact&&(a=uo(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=hf(a)));let l=t.transform==="smart-read"&&n.smartCode!==!0?r==="compact"?8:r==="minimal"?6:3:3;if(!t.preserve_exact&&(n.smartCode||n.smartCode===void 0&&r!=="normal"&&bn(i))&&(a=Dt(a,l)),t.transform){let f=ho(t.transform);t.transform==="smart-read"?a=Dt(a,l,t.slug==="read-tool"):f&&(a=f(a))}let c=t.slug==="read-tool";if(!c){let f=Or(a);f.some(Boolean)&&(a=a.filter((p,h)=>!f[h]))}t.mask_abs_paths&&(a=to(a)),t.fold_passing&&(a=eo(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=qi(a,t.truncate_lines_at));let u=null;if(t.max_lines){let f=t.scale_with_level?pf(n.verbosity):1,p=Math.min(t.max_lines,Math.max(mf,Math.round(t.max_lines*f))),h=c?Or(a):null,T=h?h.filter(w=>!w).length:a.length;if(T>p){let w=p;if(h){let R=0;for(w=0;w<a.length&&R<p;)h[w]||(R+=1),w+=1}let I=T-p;if(t.keep_failures){let R=a.slice(w),O=R.filter(L=>!xe.test(L)),P=R.reduce((L,Ke,zt)=>L+(!xe.test(Ke)&&!h?.[w+zt]?1:0),0);u=O.length>0?O.join(`
|
|
25
|
+
`):null,a=[...a.slice(0,w),...P>0?[ft(P)]:[],...R.filter(L=>xe.test(L))]}else if(c)u=a.slice(w).join(`
|
|
26
|
+
`),a=[...a.slice(0,w),ft(I)];else{let{kept:R,dropped:O}=Qi(a,p);u=O.length>0?O.join(`
|
|
27
|
+
`):null,a=R}}}let d=a.join(`
|
|
28
|
+
`);return o&&d.length>0&&(d+=`
|
|
29
|
+
`),d.trim().length===0&&t.on_empty&&(d=t.on_empty),{text:d,droppedTail:u}}var mf,Ao,Mr=k(()=>{"use strict";Pt();Yi();Xi();Cr();Ir();no();kn();_n();pe();go();yo();ko();vo();So();To();Ro();mf=20;Ao=new WeakMap});function yf(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function bf(e,t,n){let r=e.split(/\r?\n/),s="",i=(Math.log10(t+1)|0)+1;for(let o=t-1;o<=t+1;o++){let a=r[o-1];a&&(s+=o.toString().padEnd(i," "),s+=": ",s+=a,s+=`
|
|
30
|
+
`,o===t&&(s+=" ".repeat(i+n+2),s+=`^
|
|
31
|
+
`))}return s}var v,Ze=k(()=>{v=class e extends Error{line;column;codeblock;constructor(t,n){let[r,s]=yf(n.toml,n.ptr),i=bf(n.toml,r,s);super(`Invalid TOML document: ${t}
|
|
32
|
+
|
|
33
|
+
${i}`,n),this.line=r,this.column=s,this.codeblock=i}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}}});function vn(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,s=n===39,i=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);i&&((n=e.s.charCodeAt(e.p+=2))===10?e.p++:n===13&&e.s.charCodeAt(e.p+1)===10&&(e.p+=2));let o="",a=e.p,l=0;for(;e.p<e.s.length;e.p++)if(n=e.s.charCodeAt(e.p),i&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))l=l&&3;else if(n<32&&n!==9||n===127)v.x("control characters are not allowed in strings",e);else if((!l||l===3)&&n===r&&(!i||e.s.charCodeAt(e.p+1)===r&&e.s.charCodeAt(e.p+2)===r)){if(i&&(e.s.charCodeAt(e.p+3)===r&&e.p++,e.s.charCodeAt(e.p+3)===r&&e.p++),!l){let c=e.s.slice(a,e.p);o=o?o+c:c}return e.p+=i?3:1,o}else if(!l)!s&&n===92&&(o+=e.s.slice(a,a=e.p),l=1);else if(l===1)if(n===120||n===117||n===85){let c=e.p++-1,u=0,d=n===120?2:n===117?4:8;for(let f=0;f<d;f++,e.p++){let p=e.s.charCodeAt(e.p),h=p>=48&&p<=57?p-48:p>=65&&p<=70?p-65+10:p>=97&&p<=102?p-97+10:-1;h<0&&v.x("invalid non-hex character in unicode escape",e),u=u<<4|h}(u<0||u>1114111||u>=55296&&u<=57343)&&v.x("invalid unicode escape",e,c),o+=String.fromCodePoint(u),a=e.p--,l=0}else i&&(n===32||n===9)?l=2:(n===98?o+="\b":n===116?o+=" ":n===110?o+=`
|
|
34
|
+
`:n===102?o+="\f":n===114?o+="\r":n===101?o+="\x1B":n===34?o+='"':n===92?o+="\\":v.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&v.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!s&&n===92?1:0,a=e.p);v.x("unfinished string",e,t)}var Fr=k(()=>{Ze();});var kf,He,Lr=k(()=>{kf=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,He=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let s=!0,i=!0,o="Z",a;if(typeof t=="string")if(n)e:{if(n<3){if(+t.slice(11,13)>23){t="";break e}n===2?(o=null,t+="Z"):(a=t.charCodeAt(t.length-1))!==90&&a!==122&&(o=t.slice(t.length-6)),r&&(t=t.slice(0,10)+"T"+t.slice(11))}else n===4&&(t=+t.slice(0,2)>23?"":`0000-01-01T${t}Z`);s=n!==4,i=n!==3}else{let l=t.match(kf);l?(l[1]||(s=!1,t=`0000-01-01T${t}`),i=!!l[2],i&&t[10]===" "&&(t=t.replace(" ","T")),l[2]&&+l[2]>23?t="":(o=l[3]||null,!o&&i&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=s,this.#n=i,this.#e=o)}isDateTime(){return this.#t&&this.#n}isLocal(){return!this.#t||!this.#n||!this.#e}isDate(){return this.#t&&!this.#n}isTime(){return this.#n&&!this.#t}isValid(){return this.#t||this.#n}toISOString(){let t=super.toISOString();if(this.isDate())return t.slice(0,10);if(this.isTime())return t.slice(11,23);if(this.#e===null)return t.slice(0,-1);if(this.#e==="Z"||this.#e==="z")return t;let n=+this.#e.slice(1,3)*60+ +this.#e.slice(4,6);return n=this.#e[0]==="-"?n:-n,new Date(this.getTime()-n*6e4).toISOString().slice(0,-1)+this.#e}static wrapAsOffsetDateTime(t,n="Z"){let r=new e(t);return r.#e=n,r}static wrapAsLocalDateTime(t){let n=new e(t);return n.#e=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#n=!1,n.#e=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#t=!1,n.#e=null,n}}});function H(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function Br(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function Ft(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||v.x("document contains excessively nested structures. aborting.",e);let s=r===91?Io(e):Co(e);return e.d++,s}return r===34||r===39?vn(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&v.x("invalid value",e,n),e.p++,!0):r===102?((e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==108||e.s.charCodeAt(++e.p)!==115||e.s.charCodeAt(++e.p)!==101)&&v.x("invalid value",e,n),e.p++,!1):r===43||r===45?En(e,e.p,e.s.charCodeAt(++e.p),44-r,t):e.s.charCodeAt(e.p+4)===45&&e.s.charCodeAt(e.p+7)===45?wf(e,r,t):e.s.charCodeAt(e.p+2)===58?_f(e,r,t):En(e,e.p,r,0,t)}function En(e,t,n,r,s){let i=n,o=0,a=!1;if(i===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&v.x("invalid value",e,t),e.p++,(r||1)/0;if(i===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&v.x("invalid value",e,t),e.p++,NaN;if(i===48){if(++e.p>=e.s.length||Br(i=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(i===120)return jr(e,t,16,s);if(i===98)return jr(e,t,2,s);if(i===111)return jr(e,t,8,s)}i===46?o=2:i===101||i===69?o=4:v.x("illegal leading zero",e,t)}else H(i)||v.x("invalid value",e,t);for(;++e.p<e.s.length&&(i=e.s.charCodeAt(e.p),!Br(i,s));)o||(o=1),i===95?(o&1||v.x("illegal underscore",e),o+=11,a=!0):o===1&&i===46?o=2:(o===1||o===3)&&(i===101||i===69)?o=4:o===4&&(i===43||i===45)||(H(i)?o>9?o-=11:o&1||o++:v.x("illegal character in numeric literal",e));if(!o){let c=(n-48)*(r||1);return e.bi===!0?BigInt(c):c}o&1||v.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),o>1?parseFloat(l):$o(e,l,10,t)}function jr(e,t,n,r){let s,i=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!Br(s,r));)s===95?(i&1&&v.x("illegal underscore",e),i=3):H(s,n)?i&1&&i--:v.x("illegal character in numeric literal",e);i&1&&v.x("unfinished numeric value",e);let o=e.s.slice(t+2,e.p);return i&&(o=o.replaceAll("_","")),$o(e,o,n,t)}function $o(e,t,n,r){if(e.bi!==!0)e:{let s=parseInt(t,n);if(!Number.isSafeInteger(s)){if(e.bi)break e;v.x("integer value cannot be represented losslessly",e,r)}return s}return BigInt(n===10?t:(n===2?"0b":n===8?"0o":"0x")+t)}function wf(e,t,n){let r=e.p++,s;if(!H(t)||!H(e.s.charCodeAt(e.p++))||!H(e.s.charCodeAt(e.p++))||!H(e.s.charCodeAt(e.p++)))return En(e,e.p=r,t,0,n);if(e.p+=5,H(e.s.charCodeAt(e.p++))||v.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(s=!0,!H(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let o=e.s.slice(r,e.p);return Mt(e,o,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&v.x("invalid date-time: time part is malformed",e,r),e.s.charCodeAt(e.p+=3)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;H(e.s.charCodeAt(++e.p)););if(t=e.s.charCodeAt(e.p)){if(t===90||t===122){let o=e.s.slice(r,++e.p);return Mt(e,o,1,s,r,"[+00:00]")}if(t===43||t===45){let o=e.s.slice(r,e.p+=6);return Mt(e,o,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let i=e.s.slice(r,e.p);return Mt(e,i,2,s,r)}function _f(e,t,n){let r=e.p;if(!H(t)||!H(e.s.charCodeAt(++e.p)))return En(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;H(e.s.charCodeAt(++e.p)););let s=e.s.slice(r,e.p);return Mt(e,s,4,!1,r)}function Mt(e,t,n,r,s,i){if(e.ld){let o=new He(t,n,r);return o.isValid()||v.x("invalid date",e,s),o}try{switch(i&&(t+=i),n){case 1:return Temporal.ZonedDateTime.from(t);case 2:return Temporal.PlainDateTime.from(t);case 3:return Temporal.PlainDate.from(t);case 4:return Temporal.PlainTime.from(t)}}catch(o){v.x(o instanceof Error?o.message:""+o,e,s)}}var zr=k(()=>{Fr();Ur();Ze();Lr();});function xf(e){for(;e.p<e.s.length;e.p++){let t=e.s.charCodeAt(e.p);if(t===10)break;if(t===13&&e.s.charCodeAt(e.p+1)===10){e.p++;break}(t<32&&t!==9||t===127)&&v.x("control characters are not allowed in comments",e)}}function ee(e,t,n){let r;for(;e.p<e.s.length;){for(;e.p<e.s.length&&((r=e.s.charCodeAt(e.p))===32||r===9||!t&&(r===10||r===13&&e.s.charCodeAt(e.p+1)===10));)e.p++;if(n||r!==35)break;xf(e)}}var Zr=k(()=>{Ze();});function Sn(e,t=61){let n,r=0,s=[],i,o=e.s.charCodeAt(n=e.p);do{if(o===t)return r||v.x("unexpected end of key",e),r===1&&s.push(e.s.slice(i,e.p)),e.p++,s;o===46?(r||v.x("illegal empty bare key",e),r===1&&s.push(e.s.slice(i,e.p)),r=0):!r&&(o===34||o===39)?(o===e.s.charCodeAt(e.p+1)&&o===e.s.charCodeAt(e.p+2)&&v.x("illegal quoted key: multiline strings are not allowed",e),s.push(vn(e)),r=2,e.p--):o===32||o===9?r===1&&(s.push(e.s.slice(i,e.p)),r=2):r===2||o<48&&o!==45||o>57&&o<65||o>90&&o<97&&o!==95||o>122?v.x("illegal character in key",e):r||(r=1,i=e.p)}while(o=e.s.charCodeAt(++e.p));v.x("incomplete key-value: cannot find end of key",e,n)}function Co(e){let t=e.p++,n=Object.create(null),r=new Set,s;for(;e.p<e.s.length;){if(ee(e),(s=e.s.charCodeAt(e.p))===125)return e.p++,n;let i,o=n,a=!1,l=e.p,c=Sn(e);for(let d=0;d<c.length;d++){d&&(o=a?o[i]:o[i]=Object.create(null)),i=c[d],(a=Object.hasOwn(o,i))&&(typeof o[i]!="object"||r.has(o[i]))&&v.x("trying to redefine an already defined value",e,l);let f=i==="__proto__";if(e.uk&&(f||i==="constructor")){o=e.uk!==1&&v.x("document contains an unsafe property",e,l);break}!a&&f&&Object.defineProperty(o,i,{enumerable:!0,configurable:!0,writable:!0})}a&&v.x("trying to redefine an already defined value",e,l),ee(e,!0,!0);let u=Ft(e,125);if(o&&typeof(o[i]=u)=="object"&&r.add(u),ee(e),(s=e.s.charCodeAt(e.p++))===125)return n;s!==44&&v.x("expected comma or end of structure",e,e.p-1)}v.x("unfinished table",e,t)}function Io(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(ee(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(Ft(e,93)),ee(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&v.x("expected comma or end of structure",e,e.p-1)}v.x("unfinished array",e,t)}var Ur=k(()=>{Fr();zr();Zr();Ze();});function Oo(e,t,n,r,s){let i=n,o=r,a,l=!1,c;for(let u=0;u<t.length;u++){if(u){if(i=l?i[a]:i[a]=Object.create(null),o=(c=o[a]).c,s===0&&(c.t===1||c.t===2))return null;if(c.t===2){let d=i.length-1;i=i[d],o=o[d].c}}if(a=t[u],(l=Object.hasOwn(i,a))&&o[a]?.t===0&&o[a]?.d)return null;if(!l){let d=a==="__proto__";if(e.uk&&(d||a==="constructor"))return!1;d&&(Object.defineProperty(i,a,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(o,a,{enumerable:!0,configurable:!0,writable:!0})),o[a]={t:u<t.length-1&&s===2?3:s,d:!1,i:0,c:Object.create(null)}}}if(c=o[a],c.t!==s&&!(s===1&&c.t===3)||(s===2&&(c.d||(c.d=!0,i[a]=[]),i[a].push(i=Object.create(null)),c.c[c.i++]=c={t:1,d:!1,i:0,c:Object.create(null)}),c.d))return null;if(c.d=!0,s===1)i=l?i[a]:i[a]=Object.create(null);else if(s===0&&l)return null;return[a,i,c.c]}function No(e,t,n){(t===null||e.uk===2)&&v.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function Hr(e,t={}){let n={s:e,p:0,d:t.maxDepth??1e3,bi:t.integersAsBigInt??!1,ld:t.useLegacyDate??!0,uk:t.unsafeKeyBehaviour==="throw"?2:t.unsafeKeyBehaviour==="drop"?1:0},r=Object.create(null),s=Object.create(null),i,o=!1,a=r,l=s;for(e.charCodeAt(0)===65279&&n.p++,ee(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let c=e.charCodeAt(++n.p)===91;i=n.p+=+c,o=!1;let u=Sn(n,93);c&&(e.charCodeAt(n.p)!==93&&v.x("expected end of table array declaration",n),n.p++);let d=Oo(n,u,r,s,c?2:1);d?(l=d[2],a=d[1]):(No(n,d,i),o=!0)}else{i=n.p;let c=Sn(n),u=Oo(n,c,a,l,0);!u&&!o&&No(n,u,i),ee(n,!0,!0);let d=Ft(n,void 0);u&&!o&&(u[1][u[0]]=d)}ee(n,!0),n.p<e.length&&(i=e.charCodeAt(n.p))!==10&&(i!==13||e.charCodeAt(n.p+1)!==10)&&v.x("each key-value declaration must be followed by an end-of-line",n),ee(n)}return r}var Po=k(()=>{Ur();zr();Zr();Ze();});function Lt(e){let t=typeof e;if(t==="object"){if(Array.isArray(e))return"array";if(typeof e.getUTCDate=="function"&&e instanceof Date)return"date";if(globalThis.Temporal){if(e.until){if(e instanceof Temporal.ZonedDateTime)return"temporal/tz+uc";if(e instanceof Temporal.PlainDateTime||e instanceof Temporal.PlainDate)return"temporal/uc";if(e instanceof Temporal.PlainTime||e instanceof Temporal.Instant)return"temporal";if(e instanceof Temporal.PlainYearMonth)return"temporal/x"}else if(e.toPlainDate&&e instanceof Temporal.PlainMonthDay||e.negated&&e instanceof Temporal.Duration)return"temporal/x"}}return t}function Ef(e){for(let t=0;t<e.length;t++)if(Lt(e[t])!=="object")return!1;return e.length!=0}function Mo(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function Sf(e){return Mo(Do?e.toWellFormed():e)}function Fo(e){if(vf.test(e))return e;if(Do&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return Mo(e)}function Vr(e,t,n,r,s){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");switch(t){case"number":if(isNaN(e))return"nan";if(e===1/0)return"inf";if(e===-1/0)return"-inf";if(Number.isInteger(e)&&(r||!Number.isSafeInteger(e)))return e.toFixed(1);case"bigint":case"boolean":case"temporal":return e.toString();case"string":return Sf(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return Tf(e,n,r,s);case"array":return Rf(e,n,r,s);case"temporal/tz+uc":if(s){let i=e.timeZoneId,o=i.charCodeAt(0);if(o!==43&&o!==45&&(o!==85&&o!==71&&o!==90&&o!==69||i!=="UTC"&&i!=="UCT"&&i!=="Universal"&&i!=="Zulu"&&!i.startsWith("GMT")&&i!=="Greenwich"&&!i.startsWith("Etc/")))throw new TypeError("Temporal objects with an IANA timezone are not allowed in Temporal strict mode")}case"temporal/uc":if(s&&e.calendarId!=="iso8601")throw new TypeError("Temporal objects with a non-default calendar are not allowed in Temporal strict mode");return e.toString({calendarName:"never",timeZoneName:"never"});case"temporal/x":throw new TypeError("Unsupported "+e[Symbol.toStringTag])}}function Tf(e,t,n,r){let s=Object.keys(e);if(s.length===0)return"{}";let i="{ ";for(let o=0;o<s.length;o++){let a=s[o];o&&(i+=", "),i+=Fo(a)+" = "+Vr(e[a],Lt(e[a]),t-1,n,r)}return i+" }"}function Rf(e,t,n,r){if(e.length===0)return"[]";let s="[ ";for(let i=0;i<e.length;i++){if(i&&(s+=", "),e[i]===null||e[i]===void 0)throw new TypeError("arrays cannot contain null or undefined values");s+=Vr(e[i],Lt(e[i]),t-1,n,r)}return s+" ]"}function Af(e,t,n,r,s){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="";for(let o=0;o<e.length;o++)i+=`${i&&`
|
|
35
|
+
`}[[${t}]]
|
|
36
|
+
`,i+=Kr(0,e[o],t,n,r,s);return i}function Kr(e,t,n,r,s,i){if(r===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let o="",a="",l=Object.keys(t);for(let c=0;c<l.length;c++){let u=l[c];if(t[u]!==null&&t[u]!==void 0){let d=Lt(t[u]);if(d==="symbol"||d==="function")throw new TypeError(`cannot serialize values of type '${d}'`);let f=Fo(u);if(d==="array"&&Ef(t[u]))a+=(a&&`
|
|
37
|
+
`)+Af(t[u],n?`${n}.${f}`:f,r-1,s,i);else if(d==="object"){let p=n?`${n}.${f}`:f;a+=(a&&`
|
|
38
|
+
`)+Kr(p,t[u],p,r-1,s,i)}else o+=f,o+=" = ",o+=Vr(t[u],d,r,s,i),o+=`
|
|
39
|
+
`}}return e&&(o||!a)&&(o=o?`[${e}]
|
|
40
|
+
${o}`:`[${e}]`),o&&a?`${o}
|
|
41
|
+
${a}`:o||a}function Wr(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(Lt(e)!=="object")throw new TypeError("stringify can only be called with an object");let s=Kr(0,e,"",t,n,r);return s[s.length-1]!==`
|
|
42
|
+
`?s+`
|
|
43
|
+
`:s}var vf,Do,Lo=k(()=>{vf=/^[a-z0-9-_]+$/i,Do=!!"".isWellFormed});var Gr={};ve(Gr,{TomlDate:()=>He,TomlError:()=>v,default:()=>$f,parse:()=>Hr,stringify:()=>Wr});var $f,Jr=k(()=>{Po();Lo();Lr();Ze();$f={parse:Hr,stringify:Wr,TomlDate:He,TomlError:v}});import{readdir as Cf,readFile as Uo,writeFile as q0,mkdir as X0,rename as Q0}from"node:fs/promises";import{readdirSync as If,statSync as jo}from"node:fs";import{createHash as Of}from"node:crypto";import{basename as rb,join as $n}from"node:path";function An(){return $n(S(),"filters")}function Ho(){return $n(S(),"filters-trust.json")}function Vo(e){return typeof e=="string"&&e.startsWith(Zo)}function Pf(e){return Of("sha256").update(e).digest("hex")}async function Df(){try{let e=JSON.parse(await Uo(Ho(),"utf8")),t={};if(e.files&&typeof e.files=="object")for(let[n,r]of Object.entries(e.files))typeof r=="string"&&/^[0-9a-f]{64}$/.test(r)&&(t[n]=r);return{v:1,files:t}}catch{return{v:1,files:{}}}}function Mf(e,t){if(t===void 0)return{tests:[]};let n={message:`${e}: tests: each [[filters.${e}.tests]] needs input and expected strings`};if(!Array.isArray(t))return n;let r=[];for(let s of t){if(typeof s!="object"||s===null)return n;let{input:i,expected:o,name:a}=s;if(typeof i!="string"||typeof o!="string")return n;r.push({...typeof a=="string"&&a?{name:a}:{},input:i,expected:o})}return{tests:r}}function Ff(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...s}=n,i=Mf(e,r);if("message"in i)return i;let o=_e.safeParse({...s,slug:e});if(!o.success){let l=o.error.issues.map(c=>`${c.path.join(".")||"rule"}: ${c.message}`).join("; ");return{message:`${e}: ${l}`}}let a;try{a=new RegExp(o.data.match_command)}catch{return{message:`${e}: match_command is not a valid regular expression`}}for(let l of o.data.strip_lines_matching)try{new RegExp(l)}catch{return{message:`${e}: strip_lines_matching has an invalid regular expression`}}return{filter:{...o.data,slug:`${Zo}${o.data.slug}`,matchRegex:a},tests:i.tests}}function Lf(e){return e===void 0||e===Tn?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${Tn}. Update tkr, or write the file for version ${Tn}`:`schema_version must be the number ${Tn}`}async function jf(e){try{return(await Cf(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function Bf(e={}){let t=e.requireTrust!==!1,n=An(),r=new Map,s=new Map,i=[],o=await jf(n);if(o.length===0)return{dir:n,filters:r,tests:s,issues:i};let a=t?await Df():null;for(let l of o){let c;try{c=await Uo($n(n,l),"utf8")}catch{i.push({file:l,message:"could not be read"});continue}if(a){let d=a.files[l];if(!d){i.push({file:l,message:`not trusted yet. Review it, then run: tkr filters trust ${l}`});continue}if(d!==Pf(c)){i.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let u=await zf(c,l);for(let[d,f]of u.filters)r.set(d,f);for(let[d,f]of u.tests)s.set(d,f);i.push(...u.issues)}return{dir:n,filters:r,tests:s,issues:i}}async function zf(e,t){let n=new Map,r=new Map,s=[],{parse:i}=await Promise.resolve().then(()=>(Jr(),Gr)),o;try{o=i(e)}catch(c){return s.push({file:t,message:`not valid TOML (${String(c.message).split(`
|
|
44
|
+
`)[0]})`}),{filters:n,tests:r,issues:s}}let a=Lf(o.schema_version);if(a)return s.push({file:t,message:a}),{filters:n,tests:r,issues:s};let l=o.filters;if(typeof l!="object"||l===null||Array.isArray(l))return s.push({file:t,message:"no [filters.<name>] table found"}),{filters:n,tests:r,issues:s};for(let[c,u]of Object.entries(l)){let d=Ff(c,u);if("message"in d){s.push({file:t,message:d.message});continue}n.set(d.filter.slug,d.filter),d.tests.length>0&&r.set(d.filter.slug,{file:t,tests:d.tests})}return{filters:n,tests:r,issues:s}}function Uf(){let e=[];for(let t of[Ho(),An()])try{let n=jo(t);e.push(`${n.mtimeMs}:${n.size}`)}catch{e.push("-")}try{for(let t of If(An()).filter(n=>n.endsWith(".toml")).sort()){let n=jo($n(An(),t));e.push(`${t}:${n.mtimeMs}:${n.size}`)}}catch{}return e.join("|")}function Zf(){let e=Date.now();if(!Rn||e-zo>=Nf){zo=e;let t=Uf();(!Rn||t!==Bo)&&(Bo=t,Rn=Bf())}return Rn}async function Hf(e){let{filters:t}=await Zf();return t.size===0?null:dt(e,t.values(),null,t)}function Ko(e){return async(t,n)=>await Hf(t)??e(t,n)}var Zo,Tn,Rn,Bo,zo,Nf,Yr=k(()=>{"use strict";St();yn();Mr();M();Zo="user/",Tn=1,Rn=null,Bo="",zo=0,Nf=1e3});var Wo={};ve(Wo,{flush:()=>Kf,recordEvent:()=>Vf});async function Vf(e){if(e.plan!=="pro"||Vo(e.filterId)||!(await fe()).telemetryOptIn)return;let t=gn(e.cmd);!t||It(t)!==t||mn("learn",{cmd:t,filterId:e.filterId==null?null:de(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}async function Kf(e){return hn("learn","/api/v1/learn",{baseUrl:e,requirePro:!0})}var Go=k(()=>{"use strict";$r();br();Ar();rt();Yr();Et()});rt();Be();at();ct();M();import{readFile as yb,writeFile as Wf,mkdir as bb}from"node:fs/promises";ct();at();Be();be();import{createPublicKey as lc,verify as cc}from"node:crypto";function uc(e,t){let n=Xt();if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new Error("Tokmizer plugin: no valid signing public key. Set TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM or rebuild plugin against a prod key.");let r=lc({key:n,format:"pem"});try{let s=Buffer.from(t,"base64url");return cc(null,Buffer.from(e,"utf8"),r,s)}catch{return!1}}var dc=/^[a-z0-9][a-z0-9-]*$/;async function Os(e){Ue();let t=await Z();if(!t)throw new Error("Plugin not activated.");let n=await q(),r=await X("GET","/api/v1/skills/bundle",void 0,{baseUrl:e,bearer:t.jwt,signingSecret:t.signingSecret,fingerprint:n.fingerprint,installId:n.installId,timeoutMs:8e3});if(!r.ok)throw new Error(`bundle fetch failed ${r.status}`);let s=await we(r),i=[];for(let o of s.bundles){if(!dc.test(o.slug))throw new Error(`invalid bundle slug ${o.slug}`);let a=[...o.fragments].sort((l,c)=>l.position-c.position);for(let l of a)if(!uc(l.body,l.hash))throw new Error(`fragment signature mismatch on ${o.slug}[${l.position}]`);i.push({slug:o.slug,version:o.version,body:a.map(l=>l.body).join(`
|
|
45
|
+
|
|
46
|
+
`)})}return i}M();import{chmod as Wn,mkdir as Qt,readFile as Gn,writeFile as en,stat as fc,readdir as pc,rm as Ps}from"node:fs/promises";var Ds="managed-by: tokmizer",mc=["tkr","tkr-gain","tkr-status","tkr-link","tkr-unlink","tkr-compression","tkr-telemetry","tkr-update","tkr-yolo"],hc=["power","tkr-reducer"];async function Ms(){try{let e=JSON.parse(await Gn(Bn(),"utf8"));return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}catch{return[]}}async function Fs(e){try{await Qt(S(),{recursive:!0}),await en(Bn(),JSON.stringify(e),{mode:384})}catch{}}var gc=3600*1e3,Ns=10080*60*1e3;function yc(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?Math.min(e,Ns):Ns}async function Ls(e){try{let t=await fc(_t(e)),n=Date.now()-t.mtimeMs;return n<gc&&n<=yc()}catch{return!1}}async function js(e,t){await Qt(Jt(),{recursive:!0}),await en(_t(e),t,{mode:384}),await Wn(_t(e),384)}async function Jn(e){let t=new Set(e),n;try{n=await pc(Jt())}catch{return}for(let r of n){if(!r.endsWith(".md"))continue;let s=r.slice(0,-3);if(!t.has(s))try{await Ps(_t(s))}catch{}}}async function Bs(e,t){await Qt(zn(),{recursive:!0});try{if(!(await Gn(it(e),"utf8")).includes(Ds))return}catch{}await en(it(e),t,{mode:384}),await Wn(it(e),384);let n=await Ms();n.includes(e)||await Fs([...n,e])}async function Yn(e){let t=new Set([...e,...mc]),n=await Ms(),r=new Set([...n,...hc]);for(let s of r)if(!t.has(s))try{if(!(await Gn(it(s),"utf8")).includes(Ds))continue;await Ps(it(s))}catch{}await Fs(n.filter(s=>t.has(s)))}async function qn(e){try{await Qt(S(),{recursive:!0}),await en(jn(),JSON.stringify({at:Date.now(),error:e}),{mode:384}),await Wn(jn(),384)}catch{}}import{chmod as Bh,mkdir as zh,readFile as Uh,writeFile as Zh,stat as bc,readdir as kc,rm as tn,rename as Hh}from"node:fs/promises";import{readFileSync as wc}from"node:fs";M();import{join as nn}from"node:path";M();var Us=1440*60*1e3,_c=30*Us,xc=200*1024*1024,Jh=8*1024*1024;var rn=".meta";var Yh=["usage: tkr restore <hash> [--lines a:b] [--grep pattern]"," tkr restore --list"," tkr restore --grep <pattern>",""].join(`
|
|
47
|
+
`);function vc(){try{let e=JSON.parse(wc(Ss(),"utf8")),t=e.maxAgeDays;return{...typeof t=="number"&&Number.isFinite(t)&&t>0?{maxAgeDays:Math.min(t,365)}:{},...e.disabled===!0?{disabled:!0}:{}}}catch{return{}}}function Ec(){let e=vc().maxAgeDays;return e?e*Us:_c}function zs(e,t,n=process.env){let r=Number(n[e]);return Number.isFinite(r)&&r>0?r:t}async function Zs(){let e;try{e=await kc(st())}catch{return}let t=zs("TOKMIZER_CCR_MAX_AGE_MS",Ec()),n=zs("TOKMIZER_CCR_DIR_CAP_BYTES",xc),r=Date.now(),s=new Map;for(let a of e){let l=nn(st(),a);try{let c=await bc(l);r-c.mtimeMs>t?await tn(l):s.set(a,{mtimeMs:c.mtimeMs,size:c.size})}catch{}}for(let a of[...s.keys()])if(!(!a.endsWith(rn)||s.has(a.slice(0,-rn.length)))){try{await tn(nn(st(),a))}catch{}s.delete(a)}let i=[...s.entries()].filter(([a])=>!a.endsWith(rn)).sort((a,l)=>a[1].mtimeMs-l[1].mtimeMs),o=i.reduce((a,[,l])=>a+l.size,0);for(let[a,l]of i){if(o<=n)break;try{await tn(nn(st(),a)),o-=l.size,await tn(nn(st(),`${a}${rn}`),{force:!0})}catch{}}}var Xn={welcome:"Link your Tokmizer account.",needToken:"Tokmizer already works on this device. Linking attaches it to your account.",getToken:"Sign in at tokmizer.com, then grab your key from your dashboard.",askToken:"Paste your dashboard key, then press Enter:",activating:"Linking...",activated:e=>"Linked.",failed:e=>`Activation failed: ${e}`,suspended:e=>`Your token is suspended. ${e}`,revoked:"Your token has been revoked. Contact support at tokmizer.com/contact",rotated:"Token rotated. Paste your new token from tokmizer.com/dashboard/token",offline:"Network required. Tokmizer needs an internet connection.",deviceCap:"Device limit reached. Manage devices at tokmizer.com/dashboard/devices"};at();Be();ct();Et();be();async function $c(e,t){let n=await Z();if(!J()||!n||n.linked===!1){let a=n?.plan??"free";if(e==="GET")return{plan:a,settings:await fe()};let l=await Xs(t);return{plan:a,settings:l}}let r=process.env.TOKMIZER_BASE_URL??"https://tokmizer.com",s=await q(),i=await X(e,"/api/v1/settings",t,{baseUrl:r,bearer:n.jwt,signingSecret:n.signingSecret,fingerprint:s.fingerprint,installId:s.installId,timeoutMs:8e3});if(!i.ok)throw new Error(`Settings ${e} failed: ${i.status}`);let o=await we(i);return await Qn(o.settings),o}async function Qs(){return $c("GET")}be();ze();var Jo="-command",Yo=3;async function qr(){try{let{connectDaemon:e}=await Promise.resolve().then(()=>(hi(),mi)),t=await e();try{await t.reload()}finally{t.close()}}catch{}}async function Xr(e,t){if(!(!t&&await Ls("power"))){try{let n=await Os(e),r=[],s=[];for(let i of n)if(i.slug.endsWith(Jo)){let o=i.slug.slice(0,-Jo.length);await Bs(o,i.body),s.push(o)}else await js(i.slug,i.body),r.push(i.slug);await Jn(r),await Yn(s),await qn(null)}catch(n){await qn(n instanceof Error?n.message:String(n))}try{await Zs()}catch{}}}async function Gf(e,t){let n;for(let r=0;r<t.attempts;r++)try{return await e()}catch(s){if(n=s,r===t.attempts-1)break;let i=500*Math.pow(3,r)+Math.floor(Math.random()*300);await new Promise(o=>setTimeout(o,i))}throw n}async function Jf(e){Ue();let t=await q(),n=xt(),r=await Z(),s=r&&r.linked!==!0&&r.token&&r.token!==e.token?r.token:null,i={token:e.token,...e.email?{email:e.email}:{},pluginVersion:G,timeZone:n,...s?{previousToken:s}:{},...t},o=await Gf(()=>X("POST","/api/v1/license/activate",i,{baseUrl:e.baseUrl,bearer:e.token,fingerprint:t.fingerprint,installId:t.installId,timeoutMs:1e4}),{attempts:3});if(!o.ok){if(o.status>=500)throw new Error("Tokmizer servers are temporarily unreachable. Try again in a minute.");let c=await o.text();throw Yf(c)==="device_cap"?new Error(Xn.deviceCap):new Error(Xn.failed(`${o.status} ${c}`))}let a=await we(o),l={token:e.token,jwt:a.jwt,signingSecret:a.signingSecret,plan:a.plan,status:a.status,trialEndsAt:a.trialEndsAt,subEndsAt:a.subEndsAt,jwtVersion:a.jwtVersion,installId:t.installId,fingerprint:t.fingerprint,pluginVersion:G,...e.email||a.boundEmail?{email:e.email??a.boundEmail??""}:{},timeZone:n,bonusActive:!1,linked:!0,lastHeartbeatOkAt:Date.now(),...Array.isArray(a.allowedFilters)&&a.allowedFilters.length>0?{allowedFilters:a.allowedFilters.map(de)}:{}};return await qt(l),await qr(),await Xr(e.baseUrl,!0),l}function Yf(e){try{let t=JSON.parse(e);return typeof t.code=="string"?t.code:null}catch{return null}}function qf(e){try{return new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date)}catch{return new Date().toISOString().slice(0,10)}}async function jt(e,t){let n=await Z();return n&&n.token!==e.token?!1:(await qt(t),!0)}async function Xf(e){let t=await Z();if(!t)return null;if(!J())return t;let n=await q(),r=t.timeZone??xt(),s={ts:Date.now(),localDate:qf(r),timeZone:r},i;try{i=await X("POST","/api/v1/license/heartbeat",s,{baseUrl:e,bearer:t.jwt,signingSecret:t.signingSecret,fingerprint:n.fingerprint,installId:n.installId,timeoutMs:5e3})}catch{return t}if(i.status===401){let f=(t.heartbeatAuthFails??0)+1,p={...t,heartbeatAuthFails:f},h=t.linked??(!!t.email||t.plan==="smart"||t.plan==="pro");if(f>=Yo&&h&&(p.relinkRequired=!0),!await jt(t,p))return null;if(f>=Yo&&!h){try{await Wf(`${S()}/state.replaced.json`,JSON.stringify(t),{mode:384})}catch{}try{return await Qf(e)}catch{return null}}return null}if(i.status===451){let f=await Z();if(f&&f.token!==t.token)return null;await $s();try{await Jn([]),await Yn([])}catch{}return null}if(i.status===426)return await jt(t,{...t,updateRequired:!0}),null;if(i.status===423)return await jt(t,{...t,relinkRequired:!0}),null;if(!i.ok){if(i.status===400)try{(await i.json())?.code==="stale_ts"&&await jt(t,{...t,clockSkewDetected:!0})}catch{}return t}let o;try{o=await we(i)}catch{return t}let a=o.settingsRevision??0,l=t.lastSettingsRevision??0,c=a>l,u=o.plan!==t.plan,d={...t,jwt:o.jwt,plan:o.plan,status:o.status,trialEndsAt:o.trialEndsAt,subEndsAt:o.subEndsAt,jwtVersion:o.jwtVersion,lastSettingsRevision:l,lastHeartbeatOkAt:Date.now(),heartbeatAuthFails:0,relinkRequired:!1,updateRequired:!1,clockSkewDetected:!1,timeZone:r,bonusActive:o.bonusActive??!1,...o.bonusResetAt!==void 0?{bonusResetAt:o.bonusResetAt}:{},...o.latestPluginVersion?{latestPluginVersion:o.latestPluginVersion}:{},...Array.isArray(o.allowedFilters)?{allowedFilters:o.allowedFilters.map(de)}:{}};if(c)try{await Qs(),d.lastSettingsRevision=a}catch{}if(!await jt(t,d))return Z();if(process.env.TOKMIZER_SELF_UPDATE_CHILD!=="1")try{let{maybeSpawnSelfUpdate:f}=await Promise.resolve().then(()=>(Fi(),Mi));f()}catch{}(c||u)&&await qr(),await Xr(e,c||u);try{let{flushTelemetry:f}=await Promise.resolve().then(()=>($r(),Wi)),{flush:p}=await Promise.resolve().then(()=>(Go(),Wo));await f(e),await p(e)}catch{}return d}var Ib=5*6e4;async function Qf(e){Ue();let t=await q(),n=xt(),r={pluginVersion:G,timeZone:n,...t},s=await X("POST","/api/v1/license/enroll",r,{baseUrl:e,fingerprint:t.fingerprint,installId:t.installId,timeoutMs:4e3});if(!s.ok)throw new Error(`enroll failed ${s.status}`);let i=await we(s),o={token:i.token,jwt:i.jwt,signingSecret:i.signingSecret,plan:i.plan,status:i.status,trialEndsAt:i.trialEndsAt,subEndsAt:i.subEndsAt,jwtVersion:i.jwtVersion,installId:t.installId,fingerprint:t.fingerprint,pluginVersion:G,email:"",timeZone:n,bonusActive:!1,linked:!1,lastHeartbeatOkAt:Date.now(),...Array.isArray(i.allowedFilters)&&i.allowedFilters.length>0?{allowedFilters:i.allowedFilters.map(de)}:{}};return await qt(o),await qr(),await Xr(e,!0),o}M();var Fb=2*1024*1024;var ep=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),tp=new Set(["-u","-g","-n","-s","-k"]),np=/^[a-z0-9][a-z0-9._-]*$/i,rp=new Set(["git","npm","pnpm","yarn","npx","docker","kubectl","helm","cargo","go","brew","gh","pip","pip3","apt","apt-get","systemctl","terraform","aws","gcloud","az","bundle","rake","rails","prisma","poetry","uv","gem","composer"]),Xo=/^[A-Za-z_][A-Za-z0-9_]*=/;function qo(e){return e.length===0||e[0]==="cd"||e.every(t=>Xo.test(t))}function sp(e){let t=[],n="",r=!1,s=null,i=()=>{r&&t.push(n),n="",r=!1};for(let o of e){if(s){o===s?s=null:n+=o;continue}if(o==="'"||o==='"'){s=o,r=!0;continue}if(o===" "||o===" "){i();continue}if(`|;&<>
|
|
48
|
+
`.includes(o)){if(i(),qo(t)){t=[];continue}return t}n+=o,r=!0}return i(),qo(t)?[]:t}function Qo(e){let t=sp(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(Xo.test(a)){n+=1;continue}if(ep.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=tp.has(l)?2:1;continue}if(/^\d+(?:\.\d+)?[smhd]?$/.test(l)){n+=1;continue}break}continue}break}if(n>=t.length)return"";let r=t[n],s=r.includes("/")?r.slice(r.lastIndexOf("/")+1):r,i=t[n+1];return(i&&!i.startsWith("-")&&np.test(i)&&rp.has(s.toLowerCase())?`${s} ${i}`:s).slice(0,24)}function ip(e){let t=[];for(let s of e.split(`
|
|
49
|
+
`))if(s.trim())try{t.push(JSON.parse(s))}catch{continue}let n=new Map;for(let s of t){let i=s.message?.content;if(Array.isArray(i))for(let o of i)o?.type==="tool_use"&&o.name==="Bash"&&typeof o.id=="string"&&typeof o.input?.command=="string"&&n.set(o.id,o.input.command)}let r=[];for(let s of t){let i=s.toolUseResult;if(!i||typeof i.stdout!="string")continue;let o=s.message?.content;if(Array.isArray(o))for(let a of o){if(a?.type!=="tool_result"||typeof a.tool_use_id!="string")continue;let l=n.get(a.tool_use_id);if(l===void 0)continue;let c=typeof i.stderr=="string"?i.stderr:"";r.push({command:l,output:i.stdout+c})}}return r}function Cn(e){return Math.ceil(e/4)}function op(e){let t=new Map,n=0;for(let s of e){let i=Qo(s.command)||"other",o=t.get(i)??{label:i,runs:0,routed:0,rawTokens:0,savedTokens:0,lostTokens:0};o.runs+=1,o.rawTokens+=Cn(s.rawBytes),s.filterId?(o.routed+=1,n+=1,o.savedTokens+=Math.max(0,Cn(s.rawBytes)-Cn(s.filteredBytes))):o.lostTokens+=Cn(s.rawBytes),t.set(i,o)}let r=[...t.values()].sort((s,i)=>i.lostTokens-s.lostTokens||i.rawTokens-s.rawTokens);return{rows:r,totals:{runs:e.length,routedPct:e.length?n/e.length*100:0,savedTokens:r.reduce((s,i)=>s+i.savedTokens,0),lostTokens:r.reduce((s,i)=>s+i.lostTokens,0)}}}St();import{readdir as ap,readFile as lp}from"node:fs/promises";import{join as ta,dirname as cp}from"node:path";import{fileURLToPath as up}from"node:url";var dp=cp(up(import.meta.url)),fp=process.env.TOKMIZER_FILTERS_DIR||ta(dp,"..","..","filters"),pt=null,ea=!1;function pp(){return process.env.TOKMIZER_DEV==="1"||process.env.TOKMIZER_DEV==="true"}async function na(){return pt||(pp()?(pt=await mp(fp),pt):(!ea&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
|
|
50
|
+
`),ea=!0),pt=new Map,pt))}async function mp(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(Jr(),Gr))).parse,r=(await ap(e)).filter(s=>s.endsWith(".toml"))}catch{return t}for(let s of r){let i=await lp(ta(e,s),"utf8"),a=n(i).filters;if(a)for(let[l,c]of Object.entries(a)){let u=_e.parse({slug:l,...c});t.set(l,{...u,matchRegex:new RegExp(u.match_command)})}}return t}yn();Yr();Mr();Pt();var hp=[/\bERROR\b/,/\bFAIL\b/,/\bFAILED\b/,/\bFATAL\b/,/^Traceback /m,/^Error: /m,/^\s+at .*\(.*:\d+:\d+\)/m,/panic:/,/SyntaxError:/,/TypeError:/,/ReferenceError:/,/AssertionError:/,/^\s*(?:error|fatal):/i,/thread '.*' panicked/,/\b[1-9]\d* (?:failed|errors?)\b/];function ra(e){if(!e)return!1;for(let t of oe(e).split(`
|
|
51
|
+
`))if(!/^\s*[✓✔√]\s/.test(t)&&hp.some(n=>n.test(t)))return!0;return!1}var gp=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),yp=/^[A-Za-z_][A-Za-z0-9_]*=/,Qr=/^([a-z]+)-tool(?::\s|$)/;function Ve(e){let t=e.trim(),n=t.split(/\s+/),r=0;for(;r<n.length;){let a=n[r];if(yp.test(a)){r++;continue}if(gp.has(a)){for(r++,a==="timeout"&&r<n.length&&/^\d+(?:\.\d+)?[smhd]?$/.test(n[r])&&r++;(a==="stdbuf"||a==="nice")&&r<n.length&&n[r].startsWith("-");)r++;continue}break}if(r>=n.length)return t;let s=n[r],i=s.includes("/")?s.slice(s.lastIndexOf("/")+1):s,o=n.slice(r+1);return o.length?`${i} ${o.join(" ")}`:i}var bp=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);function sa(e,t){let n=!1,r=!1,s=0,i=[];for(let o=0;o<e.length;o++){let a=e[o];if(a==="\\"&&!n){o++;continue}a==="'"&&!r?n=!n:a==='"'&&!n?r=!r:!n&&!r&&(a===";"?(i.push(e.slice(s,o)),s=o+1):a==="|"&&e[o+1]==="|"?(i.push(e.slice(s,o)),o++,s=o+1):a==="|"?t||(i.push(e.slice(s,o)),s=o+1):a==="&"&&e[o+1]==="&"&&(i.push(e.slice(s,o)),o++,s=o+1))}return i.push(e.slice(s)),i}function kp(e){let t=sa(e,!1);for(let n=t.length-1;n>=0;n--){let r=t[n].trim();if(r)return r}return e.trim()}function es(e){let t=sa(e,!0).map(n=>n.trim()).filter(Boolean);if(t.length===0)return null;for(let n of t.slice(0,-1)){let r=Ve(n).split(/\s+/)[0]??"";if(!bp.has(r))return null}return kp(t[t.length-1])}function ia(e){let t=!1,n=!1,r=0,s=[];for(let i=0;i<e.length;i++){let o=e[i];if(o==="\\"&&!t){i++;continue}o==="'"&&!n?t=!t:o==='"'&&!t?n=!n:!t&&!n&&(o==="|"||o===";"?(s.push(e.slice(r,i)),o==="|"&&e[i+1]==="|"&&i++,r=i+1):o==="&"&&e[i+1]==="&"&&(s.push(e.slice(r,i)),i++,r=i+1))}s.push(e.slice(r));for(let i=s.length-1;i>=0;i--){let o=s[i].trim();if(o)return o}return e.trim()}var wp=/^(?:npx|bunx|uvx|pnpm\s+(?:exec|dlx)|yarn\s+(?:exec|dlx)|(?:uv|poetry|pipenv|hatch|pdm|rye)\s+run|bundle\s+exec|python[0-9.]*\s+-m)\s+(?=[^\s-])/;function ts(e){let t=wp.exec(e);return t?Ve(e.slice(t[0].length)):null}function oa(e){let t=Qr.exec(e),n=e;if(t){if(t[1]!=="bash")return[e];let a=e.indexOf(": ");if(a<0)return[e];n=e.slice(a+2)}let r=es(n),s=r?Ve(r):null,o=[s?ts(s):null,s,e].filter(a=>!!a);return[...new Set(o)]}var aa=`
|
|
35
52
|
[YOLO: omitted]
|
|
36
|
-
`;function
|
|
53
|
+
`;function ns(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(aa,"utf8"),r=Math.floor(n/2);for(;(t[r]&192)===128;)r-=1;let s=t.length-(n-r);for(;(t[s]&192)===128;)s+=1;return t.subarray(0,r).toString("utf8")+aa+t.subarray(s).toString("utf8")}Pt();_n();var _p=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,xp=/^… \([1-9]\d* more lines omitted\)$/,rs=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;function vp(e,t){if(!t)return e.split(`
|
|
37
54
|
`).map(i=>i.replace(/^[ \t]+|[ \t]+(?=\r?$)/g,"")).join(`
|
|
38
|
-
`);let
|
|
39
|
-
`&&(
|
|
55
|
+
`);let n="",r=!1,s=!1;for(let i of e)r?(n+=i,s?s=!1:i==="\\"?s=!0:i==='"'&&(r=!1)):i==='"'?(r=!0,n+=i):i!==" "&&i!==" "&&i!=="\r"&&i!==`
|
|
56
|
+
`&&(n+=i);return n+(e.endsWith(`
|
|
57
|
+
`)?`
|
|
58
|
+
`:"")}function Ep(e,t){if(/@(?:p)?\d|\r/.test(e))return e;let n=e.endsWith(`
|
|
59
|
+
`)?`
|
|
60
|
+
`:"",r=(n?e.slice(0,-1):e).split(`
|
|
61
|
+
`),s=r.findIndex(w=>_p.test(w));if(s>=0&&r.slice(0,s).some(w=>w!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(w)))return e;let i=s>=0?[...r[s].matchAll(/\S+/g)].map(w=>w.index):[],o=[];for(let w=s+1;w<r.length;w+=1){let I=r[w];if(xp.test(I))continue;if(/…|\.\.\./.test(I))return e;let R;if(s>=0){if(/[^\x20-\x7e]/.test(I))return e;let O=i.map((P,L)=>I.slice(P,i[L+1]));if(O.slice(0,-1).some(P=>P[0]===" "||!P.endsWith(" "))||(R=O.map(P=>P.replace(/ +$/,"")),!/^#\d+$/.test(R[0])||!/^\S+$/.test(R[2])||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(R[3])||!/^\d+(?:s|m|h|d|w|mo|y)$/.test(R[4])))return e}else if(R=I.split(" "),R.length!==5||!/^\d+$/.test(R[0])||!R[1]||!R[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(R[3])||!rs.test(R[4])||!Number.isFinite(Date.parse(R[4])))return e;if(R.some(O=>/[\u0000-\u001f\u007f]/.test(O)))return e;o.push({index:w,cells:R})}if(o.length===0)return e;s>=0&&(r[s]="ID TITLE BRANCH STATE CREATED");for(let w of o)r[w.index]=w.cells.join(" ");let a=r.join(`
|
|
62
|
+
`)+n;if(!t)return a;let l=new Map;for(let{cells:w}of o)l.set(w[1],(l.get(w[1])??0)+1);let c=new Map,u=[];for(let[w,I]of l){if(w.length<40||I<3||w.trim().split(/\s+/).length<8)continue;let R=`@${c.size+1}`,O=JSON.stringify(w).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),P=`TITLE ${R} = ${O}`;I*(Buffer.byteLength(w)-Buffer.byteLength(R))<=Buffer.byteLength(P)+1||(c.set(w,R),u.push(P))}let d=new Map;for(let{cells:w}of o){if(c.has(w[1]))continue;let I=/^((?:\S+\s+){4})\S/.exec(w[1])?.[1];I&&I.length>=24&&d.set(I,(d.get(I)??0)+1)}let f=new Map;for(let[w,I]of d){if(I<3)continue;let R=`@p${f.size+1}`,O=`TITLE prefix ${R} = ${JSON.stringify(w).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;I*(Buffer.byteLength(w)-Buffer.byteLength(R)-1)<=Buffer.byteLength(O)+1||(f.set(w,R),u.push(O))}let p=o[0].cells[4].slice(10),h=o.length>=3&&rs.test(o[0].cells[4])&&o.every(({cells:w})=>rs.test(w[4])&&w[4].slice(10)===p)&&o.length*p.length>`CREATED suffix = ${JSON.stringify(p)}`.length+1;if(h&&u.push(`CREATED suffix = ${JSON.stringify(p)}`),u.length===0)return a;for(let{index:w,cells:I}of o){let R=c.get(I[1]),O=/^((?:\S+\s+){4})\S/.exec(I[1])?.[1],P=O?f.get(O):void 0;r[w]=I.map((L,Ke)=>Ke===1?R??(P?`${P}:${L.slice(O.length)}`:L):Ke===4&&h?L.slice(0,10):L).join(" ")}let T=[...r,"",...u].join(`
|
|
63
|
+
`)+n;return Buffer.byteLength(T)<Buffer.byteLength(a)?T:a}var la={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},Sp={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},Tp=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,Rp=/^On branch (\S+)$/,Ap=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;function $p(e){let t=Rp.exec(e[0]??"");if(!t)return e;let n=Ap.exec(e[1]??"");if(!n)return[`* ${t[1]}`,...e.slice(1)];let r=n[1]??n[3],s=n[2]?` [${n[2]} ${n[4]}]`:"";return[`* ${t[1]}...${r}${s}`,...e.slice(2)]}function Cp(e){let t=e.endsWith(`
|
|
40
64
|
`)?`
|
|
41
|
-
`:""
|
|
65
|
+
`:"",n=$p((t?e.slice(0,-1):e).split(`
|
|
66
|
+
`)),r=null,s=[];for(let i of n){if(Object.hasOwn(la,i)){r=la[i];continue}if(!i.startsWith(" ")){r=null,s.push(i);continue}if(r==="untracked"){s.push(`?? ${i.slice(1)}`);continue}let o=r?Tp.exec(i):null;if(!o)return e;let a=Sp[o[1]];s.push(r==="staged"?`${a} ${o[2]}`:` ${a} ${o[2]}`)}return s.join(`
|
|
67
|
+
`)+t}var ca=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,Ip=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;function Op(e){let t=e.split(`
|
|
68
|
+
`);for(let n=0;n<t.length;n+=1){if(!Ip.test(t[n]))continue;let r=n;for(;r>0&&ca.test(t[r-1]);)r-=1;for(let s=r;s<n;s+=1)t[s]=t[s].replace(ca," $1 | $2")}return t.join(`
|
|
69
|
+
`)}var Np=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,ua=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,da=/^… \(\d+ more lines omitted\)$/;function Pp(e,t){let n=[];for(let r=0;r<t.length;r+=1){let s=t[r];if(s>0&&e.length>s&&e[s-1]!==" ")return null;let i=e.slice(s,t[r+1]??e.length).trim();if(i.includes(" "))return null;n.push(i)}return n}function Dp(e){let t=e.endsWith(`
|
|
42
70
|
`)?`
|
|
43
|
-
`:"",n=(
|
|
44
|
-
`),
|
|
45
|
-
`)+
|
|
46
|
-
`)+
|
|
47
|
-
`)
|
|
48
|
-
`)
|
|
49
|
-
|
|
50
|
-
`)
|
|
71
|
+
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
72
|
+
`),r=[],s=[];for(let c of n)c.startsWith("WARNING:")?r.includes(c)||r.push(c):s.push(c);let i=s.findIndex(c=>ua.test(c));if(i<0)return[...r,...s].join(`
|
|
73
|
+
`)+t;let o=s[i],a=[...o.matchAll(/\S+/g)].map(c=>c.index),l=[...r,...s.slice(0,i),o.split(/ +/).join(" ")];for(let c of s.slice(i+1)){if(da.test(c)){l.push(c);continue}let u=c.startsWith(" ")||/[^\x20-\x7e]/.test(c)?null:Pp(c,a);if(!u)return[...r,...s].join(`
|
|
74
|
+
`)+t;l.push(u.join(" "))}return l.join(`
|
|
75
|
+
`)+t}function Mp(e){let t=e.endsWith(`
|
|
76
|
+
`)?`
|
|
77
|
+
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
78
|
+
`),r=n.findIndex(o=>ua.test(o.trimEnd()));if(r<0)return e;let s=n[r].trim().split(/ {2,}/).length;if(s<2)return e;let i=[...n.slice(0,r),n[r].trim().split(/ {2,}/).join(" ")];for(let o of n.slice(r+1)){if(da.test(o)){i.push(o);continue}if(o.startsWith(" ")||o.includes(" ")||/[^\x20-\x7e]/.test(o))return e;let a=o.trimEnd().split(/ {2,}/);if(a.length===s-1){let l=a[0].indexOf(" ");if(l<0||a[0].indexOf(" ",l+1)>=0)return e;a=[a[0].slice(0,l),a[0].slice(l+1),...a.slice(1)]}if(a.length!==s)return e;i.push(a.join(" "))}return i.join(`
|
|
79
|
+
`)+t}function ss(e,t,n){if(t!=="compact"&&t!=="minimal")return e;let r=e;if(/^[ \t\r\n]*[\[{]/.test(e)){try{JSON.parse(e)}catch{return e}r=vp(e,t==="minimal")}else n==="gh"?r=Ep(e,t==="minimal"):n==="git-status"?r=Cp(e):n==="gcloud"?r=Dp(e):n==="oc"?r=Mp(e):n==="git-diff"?r=Op(e):n==="tofu-plan"&&(r=e.replace(Np,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}kn();var Fp=/^(?:\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?Z?\s+)?(?:\[(?:DEBUG|TRACE|INFO|WARN|WARNING|ERROR|FATAL)\]|DEBUG|TRACE|INFO|WARN|WARNING|ERROR|FATAL)(?::|\s|$)/,Lp=/^\[tkr: previous log line repeated \d+ additional times\]$/m;function fa(e){if(Buffer.byteLength(e)<2048||bn(e)||Lp.test(e))return e;let t=e.split(`
|
|
80
|
+
`),n=[];for(let r=0;r<t.length;){let s=t[r],i=r+1;if(Fp.test(s))for(;i<t.length&&t[i]===s;)i+=1;let o=i-r,a=`[tkr: previous log line repeated ${o-1} additional times]`;if(o>=3&&Buffer.byteLength(a)+1<(o-1)*(Buffer.byteLength(s)+1))n.push(s,a);else for(let l=r;l<i;l+=1)n.push(s);r=i}return n.join(`
|
|
81
|
+
`)}_n();var jp=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,Bp=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/;function pa(e){return Bp.test(e)}function ma(e){let t=e.endsWith(`
|
|
82
|
+
`),n=(t?e.slice(0,-1):e).split(`
|
|
83
|
+
`),r=0;for(let s of n)if(s.trim()!==""){if(!jp.test(s))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
|
|
84
|
+
`:""}`}Pt();Cr();var ba=/^(?:(?:npx|bunx|pnpm(?:\s+(?:exec|dlx))?|yarn(?:\s+exec)?|uv\s+run|poetry\s+run|pipenv\s+run|hatch\s+run|python3?\s+-m)\s+)?(?:\S*\/)?(?:vitest|jest|mocha|pytest|py\.test|playwright\s+test)(?:\s|$)|^(?:npm|pnpm|yarn|bun)\s+(?:run\s+)?(?:test|t)(?:[:-]\S+)?(?:\s|$)|^cargo\s+test(?:\s|$)|^go\s+test(?:\s|$)/,ka={normal:{msg:40,diff:60,frames:6,code:!0,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,code:!1,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,code:!1,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},zp=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,Up=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,Zp=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,Hp=/^\s*(>)?\s*(\d+)\s*\|/,Vp=/^\s*\|\s*[\^~]+\s*$/,Kp=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;function mt(e,t){let n=null;for(let r of e){let s=t.exec(r);s&&(n=(n??0)+Number(s[1]))}return n}function In(e){return zp.test(e)}function On(e,t,n){return n===null?t:(t!==n&&!e.some(r=>r.kind==="frame"&&r.text===t)&&e.push({kind:"frame",text:t}),n)}function is(e,t=()=>!1){let n=[],r=null,s=-1,i=!1;for(let d of e){let f=d.trimEnd(),p=f.trim();if(!p||Vp.test(f)||/^─+$/.test(p))continue;if(t(p)){i=!0,n.push({kind:"out",text:p.replace(/\s*─+$/,"")});continue}if(i){n.push({kind:"out",text:p});continue}let h=Up.exec(f)??Zp.exec(f);if(h){s=-1;let w=h[1].replace(/^file:\/\//,"");In(w)||(r=On(n,`${w}:${h[2]}${h[3]?`:${h[3]}`:""}`,r));continue}let T=Hp.exec(f);if(T){s=-1,n.push({kind:"code",text:p,num:Number(T[2]),pointed:T[1]===">"});continue}if(Kp.test(p)){s=n.length,n.push({kind:"legend",text:p});continue}n.push(s>=0?{kind:"diff",text:f,segment:s}:{kind:"msg",text:p})}let o=n.some(d=>d.kind==="code"&&d.pointed),a=r?Number(/:(\d+)(?::\d+)?$/.exec(r)?.[1]):NaN,l=!1,c=n.filter(d=>{if(d.kind!=="code")return!0;let f=!l&&(o?d.pointed===!0:d.num===a);return f&&(l=!0),f}),u=new Map;for(let d of c){if(d.kind!=="diff")continue;let f=d.text.length-d.text.trimStart().length;u.set(d.segment,Math.min(u.get(d.segment)??f,f))}for(let d of c)d.kind==="diff"&&(d.text=d.text.slice(u.get(d.segment)??0)),d.kind==="code"&&(d.text=d.text.replace(/^>\s*/,""));return{body:c,loc:r}}function U(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function Wp(e){if(!e.some(l=>/^⎯+ Failed (?:Tests|Suites) \d+ ⎯+$/.test(l.trim())||/^\s*Test Files\s{2,}\d/.test(l)||/^ ?FAIL\s+\S+ > /.test(l)))return null;let t=mt(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(U(l,!0)):/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)&&n.push(U(l));let r=[],s=0,i=[],o=[],a=()=>{if(i.length){let{body:l,loc:c}=is(o);for(let u of i)u.body=l,u.loc=c}i=[],o=[]};for(let l of e){let c=l.trim(),u=/^ ?FAIL\s+(\S.*?)\s*$/.exec(l);if(u){o.some(w=>w.trim())&&a();let f=u[1],p=/^(\S+) \[ \S+ \]$/.exec(f),h=f.split(" > "),T=p?{file:p[1],name:"(suite)",loc:null,body:[]}:h.length>1?{file:h[0],name:h.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:f,loc:null,body:[]};p||(s+=1),r.push(T),i.push(T);continue}let d=/^⎯+ (Unhandled [A-Za-z ]+?) ⎯+$/.exec(c);if(d){a();let f={file:null,name:d[1],loc:null,body:[]};r.push(f),i.push(f);continue}if(/^⎯{3,}/.test(c)||/^(?:Test Files|Tests|Start at|Duration|Errors)\s{2,}/.test(c)){a();continue}i.length&&o.push(l)}if(a(),s===0){let l=null;for(let c of e){let u=/^\s*[❯✓×✗]\s+(\S+)\s+\(\d+ tests?\b/.exec(c);if(u){l=u[1];continue}let d=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(c);d&&(r.push({file:l,name:d[1],loc:null,body:[]}),s+=1)}}return{failures:r,summary:n,reported:t,counted:s}}function Gp(e){if(!e.some(u=>/^\s{2}● (?!Console$)/.test(u))||!e.some(u=>/^Tests:\s/.test(u)||/^(?:FAIL|PASS)\s+\S/.test(u)))return null;let t=mt(e,/^Tests:\s+(\d+) failed/),n=[];for(let u of e)/^Test Suites:\s/.test(u)?n.push(U(u,!0)):(/^Tests:\s/.test(u)||/^Snapshots:\s/.test(u)&&/failed|obsolete/.test(u))&&n.push(U(u));let r=[],s=new Set,i=0,o=null,a=null,l=[],c=()=>{if(a){let u=`${a.file}\0${a.name}`;if(!s.has(u)){s.add(u);let{body:d,loc:f}=is(l);a.body=d,a.loc=f,r.push(a),a.name!=="Test suite failed to run"&&(i+=1)}}a=null,l=[]};for(let u of e){let d=/^(?:FAIL|PASS)\s+(\S+)/.exec(u);if(d){c(),o=d[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(u)){c();continue}let f=/^\s{2}● (.+)$/.exec(u);if(f){c(),f[1].trim()!=="Console"&&(a={file:o,name:f[1].trim(),loc:null,body:[]});continue}a&&l.push(u)}return c(),{failures:r,summary:n,reported:t,counted:i}}function wa(e,t,n,r,s){let i=[],o=new Map,a=null;for(let l=t;l<n;l++){let c=e[l],u=/^\s{2}\d+\) (.+)$/.exec(c);if(u){let{name:d,used:f}=r(u[1],e.slice(l+1,Math.min(n,l+8)));l+=f,a=o.get(d)??null,a||(a=[],o.set(d,a),i.push({file:null,name:d,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(c)||a&&a.push(c)}for(let l of i){let{body:c,loc:u}=is(o.get(l.name),s);l.body=c,l.loc=u}return i}function Jp(e){let t=e.findIndex(i=>/^\s*\d+ failing$/.test(i));if(t<0)return null;let n=Number(/(\d+)/.exec(e[t])[1]),r=e.filter(i=>/^\s*\d+ (?:passing|failing|pending)(?: \(\S+\))?$/.test(i)).map(i=>U(i.replace(/ \(\S+\)\s*$/,""))),s=wa(e,t+1,e.length,(i,o)=>{let a=[i.trim()],l=0;for(;!a[a.length-1].endsWith(":")&&l<o.length&&o[l].trim();)a.push(o[l].trim()),l+=1;return a[a.length-1].endsWith(":")?{name:a.join(" \u203A ").replace(/:$/,""),used:l}:{name:i.trim(),used:0}});return{failures:s,summary:r,reported:n,counted:s.length}}function Yp(e){let t=e.findIndex(a=>/^\s{2}\d+\) .*›.*─{3,}\s*$/.test(a));if(t<0)return null;let n=e.findIndex((a,l)=>l>t&&/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)),r=n<0?e.length:n,s=mt(e.slice(r),/^\s{2}(\d+) failed$/),i=e.slice(r).filter(a=>/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)).map(a=>U(a.replace(/ \([\d.]+m?s\)\s*$/,""))),o=wa(e,t,r,a=>({name:a.replace(/\s*─+\s*$/,"").trim(),used:0}),a=>/^attachment #\d+:/.test(a));return{failures:o,summary:i,reported:s,counted:o.length}}function qp(e){if(!e.some(o=>/^test result: /.test(o))||!e.some(o=>/^---- .+ stdout ----$/.test(o)))return null;let t=mt(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let o of e)/^test result: FAILED/.test(o)?n.push(U(o.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(o)?n.push(U(o.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(o)&&n.push(U(o));let r=[],s=null,i=[];for(let o of e){let a=/^---- (.+?) stdout ----$/.exec(o);if(a){s={f:{file:null,name:a[1],loc:null,body:[]},lines:[]},i.push(s),r.push(s.f);continue}if(/^failures:$|^test result: |^running \d+ tests?$/.test(o)){s=null;continue}s&&s.lines.push(o)}for(let{f:o,lines:a}of i){let l=!1,c=!1;for(let u of a){let d=u.trimEnd(),f=d.trim();if(!f)continue;let p=/^thread '.+?'(?: \(\d+\))? panicked at (?:'(.*)', )?(\S+?):(\d+):(\d+):?$/.exec(f);if(p){l=!0,o.loc??=`${p[2]}:${p[3]}:${p[4]}`,p[1]&&o.body.push({kind:"msg",text:p[1]});continue}if(!/^note: run with `RUST_BACKTRACE/.test(f)){if(/^stack backtrace:$/.test(f)){c=!0;continue}if(c){let h=/^at\s+(\S+?):(\d+):(\d+)$/.exec(f);h&&!In(h[1])&&(o.loc=On(o.body,`${h[1]}:${h[2]}:${h[3]}`,o.loc));continue}o.body.push(l?{kind:"msg",text:d}:{kind:"out",text:d})}}}return{failures:r,summary:n,reported:t,counted:r.length}}function Xp(e){if(!e.some(a=>/^\s*--- FAIL: \S/.test(a)))return null;let t=new Map,n=[],r=new Map,s=[],i=null,o=null;for(let a of e){let l=/^=== (?:RUN|CONT|PAUSE|NAME)\s+(\S+)/.exec(a);if(l){i=l[1],o=null;continue}let c=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(c){o={file:null,name:c[1],loc:null,body:[]},r.set(o,[...t.get(c[1])??[]]),n.push(o),i=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){o=null,i=null;continue}let u=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(u&&/\t|\s{2,}|\[/.test(a)){s.push(U(a.replace(/\s+[\d.]+m?s\s*$/,""),u[1]==="ok")),o=null,i=null;continue}if(!/^(?:FAIL|PASS)$/.test(a.trim())){if(/^exit status \d+$/.test(a)){s.push(U(a,!0));continue}if(o)r.get(o).push(a);else if(i){let d=t.get(i)??[];d.push(a),t.set(i,d)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&s.push(U(a))}}for(let a of n){for(let l of r.get(a)){let c=l.trim();if(!c||/^goroutine \d+ \[/.test(c))continue;let u=/^(\/\S+\.go|\S+\.go):(\d+)(?: \+0x[0-9a-f]+)?$/.exec(c);if(u){In(u[1])||(a.loc=On(a.body,`${u[1]}:${u[2]}`,a.loc));continue}/^(?:[\w.*/()-]+)\(.*\)$/.test(c)||/^created by /.test(c)||a.body.push({kind:"msg",text:c})}a.loc&&a.body.some(l=>l.kind==="msg"&&/^\S+\.go:\d+: /.test(l.text))&&(a.body.unshift({kind:"frame",text:a.loc}),a.loc=null)}return{failures:n,summary:s,reported:null,counted:n.length}}var ha=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;function ga(e,t){let n=[],r=null,s=!1,i=!1;for(let l of e){let c=l.trimEnd(),u=c.trim();if(/^-{3,} Captured .+ -{3,}$/.test(u)){s=!0;continue}if(s){u&&n.push({kind:"out",text:c});continue}if(/^E(?:\s|$)/.test(c)){c.slice(1).trim()&&n.push({kind:"msg",text:c});continue}let d=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(c);if(d){if(!In(d[1])){let f=d[3]?.startsWith("in ")?` ${d[3]}`:"";r=On(n,`${d[1]}:${d[2]}${r===null?"":f}`,r)}continue}/^>\s/.test(c)&&!i&&(i=!0,n.push({kind:"code",text:u.replace(/^>\s*/,"")}))}let o=n.filter(l=>l.kind==="msg"),a=Math.min(...o.map(l=>l.text.slice(1).length-l.text.slice(1).trimStart().length));for(let l of o)l.text=`E ${l.text.slice(1+a)}`;return t&&!o.some(l=>l.text.includes(t.replace(/\.\.\.$/,"")))&&n.unshift({kind:"msg",text:t}),{body:n,loc:r}}function ya(e,t){return t.push(U(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(mt([e],/(\d+) failed/)??0)+(mt([e],/(\d+) errors?\b/)??0)}function Qp(e){if(!e.some(d=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(d)||ha.test(d)))return null;let t=new Map,n=[],r=[],s="",i=null,o=null,a=null;for(let d of e){let f=/^={3,} (.+?) ={3,}$/.exec(d);if(f){s=f[1],i=null,o=null,!/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/.test(s)&&/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/.test(s)&&(a=ya(s,r));continue}if(/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/.test(d.trim())){a=ya(d.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(d)){r.push(U(d.replace(/^!+ | !+$/g,"")));continue}let p=/^_{3,} (.+?) _{3,}$/.exec(d);if(p&&(s==="FAILURES"||s==="ERRORS")){i=[],t.set(p[1],i);continue}let h=ha.exec(d);if(h&&s!=="FAILURES"&&s!=="ERRORS"){i=null;let T={kind:h[1],id:h[2],msg:h[3]??null,inline:[]};n.push(T),o=T;continue}if(i){i.push(d);continue}o&&/^E(?:\s|$)/.test(d)?o.inline.push(d):o&&d.trim()&&(o=null)}let l=new Set,c=[],u=new Set;for(let d of n){if(u.has(d.id))continue;u.add(d.id);let[f,...p]=d.id.split("::"),h=p.join("."),T=[h,`ERROR collecting ${d.id}`,`ERROR at setup of ${h}`,`ERROR at teardown of ${h}`].find(O=>O&&t.has(O)&&!l.has(O));T&&l.add(T);let{body:w,loc:I}=ga(T?t.get(T):d.inline,d.msg),R=p.length?p.join("::"):"(collection)";c.push({file:f,name:d.kind==="ERROR"?`${R} [error]`:R,loc:I,body:w})}for(let[d,f]of t){if(l.has(d))continue;let{body:p,loc:h}=ga(f,null);c.push({file:h?h.replace(/:\d+$/,""):null,name:d,loc:h,body:p})}if(c.length===0)for(let d of e){let f=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(d);f&&c.push({file:f[1],name:f[3]==="ERROR"?`${f[2]} [error]`:f[2],loc:null,body:[]})}return{failures:c,summary:r,reported:a,counted:c.length}}var em=[qp,Xp,Qp,Gp,Wp,Jp,Yp];function tm(e,t){return e.length===0?!1:e.every(n=>{let r=n.text.trim();if(!/^[-+]/.test(r))return!1;let s=r.slice(1).trim().replace(/,$/,"");return s.length>0&&t.includes(s)})}function nm(e,t,n){let r=ka[n],s=e.body.filter(f=>f.kind==="msg");if(!t)return s.length?[` ${s[0].text}`]:[];let i=e.body.filter(f=>f.kind==="diff"),o=r.trimDiff&&tm(i,s.map(f=>f.text).join(`
|
|
85
|
+
`)),a={msg:0,legend:0,diff:0,frame:0,code:0,out:0},l={msg:0,legend:0,diff:0,frame:0,code:0,out:0},c={msg:r.msg,legend:1/0,diff:r.diff,frame:r.frames,code:r.code?1:0,out:r.out},u=[];for(let f of e.body){if((f.kind==="diff"||f.kind==="legend")&&o||f.kind==="diff"&&r.changedOnly&&!/^[-+]/.test(f.text.trim()))continue;let p=f.kind==="legend"?"diff":f.kind;if(a[p]>=c[p]&&f.kind!=="legend"){l[p]+=1;continue}f.kind!=="legend"&&(a[p]+=1),u.push(f.kind==="frame"?` at ${f.text}`:` ${f.text}`)}let d=l.msg+l.diff+(n==="normal"?l.frame+l.out:0);return d>0&&u.push(` ${ft(d)}`),u}function rm(e){let t=e[0];for(let r of e)for(;!r.startsWith(t);)t=t.slice(0,-1);t=t.slice(0,Math.max(...["_",":",".","/"," ","\u203A","-","[","("].map(r=>t.lastIndexOf(r)))+1);let n=e.map(r=>r.slice(t.length));return t.length>=3&&n.every(r=>r.length>0&&!/[{},\s]/.test(r))?`${t}{${n.join(",")}}`:e.join(", ")}function sm(e){if(!e.loc)return`\xD7 ${e.name}`;let t=e.file&&e.loc.startsWith(`${e.file}:`)?e.loc.slice(e.file.length):e.loc;return`\xD7 ${e.name} ${t}`}function im(e,t){let n=ka[t],r=new Map,s=e.failures.length>n.bulk,i=e.failures.map(c=>{let u=c.body.find(p=>p.kind==="msg")?.text??"",d=(r.get(u)??0)+1;r.set(u,d);let f=u===""||!s||d<=n.repeats;return{f:c,full:f,body:nm(c,f,t).join(`
|
|
86
|
+
`)}}),o=[],a,l=null;for(let c=0;c<i.length;c++){let u=i[c];u.f.file!==a&&(a=u.f.file,a&&o.push(a));let d=c;if(!u.full&&u.f.loc===null)for(;d+1<i.length;){let p=i[d+1];if(p.full||p.f.loc!==null||p.f.file!==u.f.file||p.body!==u.body)break;d+=1}o.push(d>c?`\xD7 ${rm(i.slice(c,d+1).map(p=>p.f.name))}`:sm(u.f)),c=d;let f=i[c+1];f&&f.f.file===u.f.file&&f.body===u.body||u.body&&(u.body===l&&t!=="normal"?o.push(" \u2191 same error"):(o.push(u.body),l=u.body))}for(let c of e.summary)(!c.minor||t==="normal")&&o.push(c.text);return`${o.join(`
|
|
87
|
+
`)}
|
|
88
|
+
`}function _a(e,t="normal"){let n=oe(e).split(`
|
|
89
|
+
`).map(r=>{let s=r.endsWith("\r")?r.slice(0,-1):r;return s.includes("\r")?s.slice(s.lastIndexOf("\r")+1):s});for(let r of em){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:im(s,t)}return null}import{createCipheriv as sk,createDecipheriv as om,hkdfSync as am,randomBytes as ik}from"node:crypto";var lm=Buffer.from("tokmizer-bundle-enc-v1"),cm=Buffer.from("rules-bundle");function um(e){return Buffer.from(am("sha256",Buffer.from(e,"utf8"),lm,cm,32))}function os(e,t){let n=um(t),r=Buffer.from(e,"base64url"),s=r.subarray(0,12),i=r.subarray(12,28),o=r.subarray(28),a=om("aes-256-gcm",n,s);return a.setAuthTag(i),Buffer.concat([a.update(o),a.final()]).toString("utf8")}rt();tt();St();yn();at();ct();tt();M();var ck=g.object({payload:g.string().min(1),signature:g.string().min(1),enc:g.literal("v1"),fetchedAt:g.number().int().nonnegative()});var xa=g.object({bundleVersion:g.number().int().nonnegative(),signedAt:g.number().int(),filters:g.array(_e)}),wk=g.object({payload:g.string().min(1),signature:g.string().min(1),enc:g.literal("v1")}),_k=10080*60*1e3;function va(e,t){let n=new Map;for(let r of e.filters)n.set(r.slug,{...r,matchRegex:new RegExp(r.match_command)});return{bundleVersion:e.bundleVersion,signedAt:t.signedAt,ruleCount:n.size,startedAt:Date.now(),fetchedAt:t.fetchedAt,selectFor:(r,s,i)=>dt(r,n.values(),i?new Set(i):null,n)}}var dm="tokmizer-default-rules-v1";var Bt=null;function fm(){let e="r0GPTdS6_piDwTU716xagvXxcpjjhvOR18YNArkbbMGUBC1WTgdo1DuC2YZeiEndHPCrBNXtuoIWHDVBDPp1lySpaje7_dn68NbJ8qfhkZvHuEB6g4aqNQb4vgpEwapqQ_P8iECE0nXMM-iyi501xKsNsq_kl6PgUhOiEh8w_3WEr9Ferh1p8YlL_7pEdIWv_iltHDXuj_XSCwXpA0YMuWymlnIWcrbij13BthhvSrGlDSjMzFt313ke730IL5JetiV0e2UQX6aG_LMhRBgbW4WtQ4lm-4ZNARzFdMfVvKDmtT5ErVRz_RiJ5usFFTaMmzAhFiGqOw2wRKPF0fWDF3Mc7bFiWlyOZ6SJr0JqMHOxMeP_uhbbopXiSLbL4e2eV1e1tvEsEbW24LVh3WiJs0yF814PKGmCCcwkU-C9RL3Ia9vKeVJ4JZfb7Xf-OLGm6knkw7SQneP3jFpsnwjO4-mzOUovauctU659QeRDJQyvn6dkYMXWUpD8m81aZ6G5USIjwzHHzVRqPGHOGQmu0XbxLz9S0CL2cxP7kN9Rk0cvGP6FwkVVtWjCscxXchFREmbnVhHdcP-3bVOJmrBrRsKXvmUV0rr9LGldiCyCBVVqYSAqXs2PMs8QLVYx6Lccl1-bfyD4EJ0qqAFLwyasF-KDBvFkivAxfx_gesPKiell1az241RH2sTUe7cQPtioLYIrQgLHw_dWLEhSauv3-k5Zsd1vzVvRbyTI6azG-q3_ns3fhQ6pL0ZfEB75rQxmT4ylYVdM1Jq8Q5Zfcl2V4hmoBH6kNFbpN5JYzf3NJ0NGTKuxqxPgYtHqpHy9a5oilJMu94QX8jSANOZOOg06z8oLAP1L1E9kCcWrF4M4YSqfpwax3wlyU1_jepaoOizpgEvu-gWam9twuj74spUxfDND6BOOVzPz35U97cL90vM47UFkyKT39HH2tBKMZaQKMJdAp7x6HGBcMJkcIh0vSJej_gRKmdXsywVIk2j7ZFiMRQw4RoqYII4dAY9naEm777NuKMqwFNb2_m7F14e2RBVay7dXg5vTqdvoZ_wdhcqeccZLuT8I1_5xoToUzKSDSNH70ssVmgAaLbwqhguj2IeWAxhRSqzjFjOR-O9iFVkWTPdbKATyyJxgoLqVpGg0zcnz2A__5l-Z8VNqfj8UbiKcfttOwxWmtLE8tMOKlgixDoOduWUIXwlmkU3rBXZZir-EFdiOmHBTRKWn_eD78GuA9E-HXzInUyBiJ7N9xEoSlMUpzlwTdvWebmKGFZ7lhHC79lk54c5qgIceYFdRw-39vyQe2bwboLX6F19FLJXxaTUjUdiOrnu_eNsR7owt8-we0Qfc9j8i1o0S1rVJDgjCg3esemjN_sW1fb89BRTFVtyaQWdDy01VXUQQ-PC2g0639p3qPlXLKFqyKS_cgd_kSS1tLTRPPpN1qLcmvCjq5nQ3w_od-_G_GOA_w2PCBZzORylwK-SaZ8-b3ApRQomiLCa6mZH5oLqId4SGE_Kf76uv4nD0e-Q93uXOlIbJn35bhRLbgQmQ3jPqRtDN8YRfp9RZDW4_UwjYBNtQLieKAGTqLgPlDS5rSzJCNfQYOZxgfflSMxf5taWuMkbg3_CdShukYkdJT-Wi2lATcPlq8bZV9IWIaBVVeBynkj_gRrTtnG0o4WIlbb1X_DD1A8WcTQ3nWcEic9yoMfdx2Y7mPtxAS5JzCaNT_W9LaoAjf0XIurHSeNJzQMZrw0G2kzCUNH_oZpoiQD1WOP7FiDxIHUNVKdBdbH46Mq3Tzo89_fJ5otD_4nEoi4CEknEkiZ-f0Th3dYCgUSur5CwZynaTqh5GB7XbDMGoEz0eMyOh4u2gwQ_wh8oN524CnueMTLoLM6lLeeZXjwWRx9x6LiM0M6-l2mOg54AZOpkU1jwGJvA7Fc_yGv9cgNE5jjVeMwfEAw14-b_gDE1nvaatUfPFunibR5ZyAT1FBeHMPYgjx74xkhZC7lCTj4rP0ozsjS4F36JahRjlhWHr3ZwGIc8TVDibCPJ5lE4q9sCG1XnCAgW4yypR9LxCTD0VUaUJAMU9Q3PrbGL0n2DkNhNPk7R9h3taXZsIsx_yvZCMdH6OGNl1_tgXaGHcAtQQ3vOVTqWB7ohtetUFl_w8BHqBhXaY4t03ZZwXwEtza6E6phFV2DKFKPL8WGyIyOwEVFWEOWDHe_TDF-dukZGrAF8tTov3UKHx67brcrcnTzZ2aVhhZ4Kvk4rjS2zrw4lA2EsIsUS7M-NxfRd7KNZbo79MMjPodwNuXrmtoAXmmEcshuRhha7Y0xjPGkBfbJs8p75vdbwyj02BFO7Vxy3f4qezLOIaFwSM4ZZ-SglvuPYO8JEnj5Rk6pG0t1R-n3nkPUD8K3CvyYQalFxMKuzFrT0H7tVzvk6HQA0415yAxbxLMQc8HcfugyNb3NrGsKLhMxmaWSjyQqXo0P1xkiTzqTDlhXgP3nbG5W19joIvRYACyHK_9CN1iaYFMkjz1geDwVozXxiP8nHKqAPm1sj2bMfHikMlFrLWajYSuE2NaTdU0FSqxsIcQ7ZC3T0HZbSH5k_IMAPL1c624Wy3bQtPgKjGxJuMBWtNgkXAOzzFqw2YSiM8jVGCezQ1W2ljMujKf0zBOHjjsmWdHKZdErlyXANO2VxxDFFomWAi5_NhgdPQsc5fO5vu87VrVzk-sBwUKXW0v7043OK4Dav0sPYGGJSh-lsKIl63CZX9Q29QoSHgrlI75iIL38q70WVccTquec4EZpBy5NUJiWhmwWv5z8DhFATUh1swaeHwVr772NObQZ-8Fuy-VTh9gKeDKzDK3YLXNAqsBLHrSVpJHZXiwms0hbGPCp-h6ie9y7OZBtIUR0zokwt6rifyZsXOEQk5Ped-eh_8A6Adk6-rJx06oOuTK15Mzr3g_7Y1ynoRCwkhCM6RiWF1Ax1ud2C_n7XjCI60KxnDwZ8J8VeK5ZmUrj-Z7u8bkZ4bIy8qWxPyk4D_ldw8flfC3sYZz1eI_HUsWMEPF2keqfyB0Y_8zg9ZYBoBSp5DEnpUFs521fpbVsJeocEHfajTIYHOxG8z_t3k-fTgfngy6FwUhAz35wdyBzPGK5f_4T1VqrbNTBOhbLWSpXz197ybhMXQvDDguLCg_H3a3My8hZjEKoEySZaUplwzrN6hcyIXwqJQ84bDFMfjVV-BjT4ZclNnOdwSD7WzuYYNcpccb6FRu3gFfND21Z_vW_FLGJxuSM5QPr9JPU7bLCcHOV-pWYW1uMLCEYXxF4P68mhKcgq3Clx14_jzwDMylJMcilNiR5NUmF3DIwmJIfAKCwnCkavcoR-aXY4i_OKKVM37ufUxcEwqv2hN7vLy2XkKU0zhgytEWek60rtqtgZT-LwhtnJoYalIGUQzGpEJ3n1quyDm7fgymyYQk545XIDjF9nREdMKnqejnk_YzL6eWUMilAjDMwWDXBsgzVSufNDTvt6aOF5mbW1UnIfWlTuAyHVBKu3JzMxWGxQ0HSh4WY4G9pmlI54f0I1v0q1ptDCa2QiVbMqd6SS33k6IzZndTATvLyBfL8X4-usZti8lVFTLOjory8d2QzImVj6w0fF4vClQfdK40Ydf22cQynhNT1pG_pBOuSIDIoFhulHDiqBc9nx8VoyzGSv6VAAKfieeyCEk1adpinpt6FSu8-HfXGk0bzZTfbHkW2Gpon1rg7Wgn2z0ydUSLBUfH5quQX5R4oUq9dOItaky2cUkYI-8JkmiR3Wu1BNU7FfLXVPDphacwk_2vPUD9_of-nii36g2L_07Tyfh59NDMCnw0bCGWo0tJ_29YeClqyXQETbNBOTrYr0AL3EOMLNB6ra7IWsUBTnA4KAzJise6UqZQ9atIZ7cN-WTbODGE4gZtixnj1Gam_k09yMZ_0YTZMzboD8J_tqzL-P7czlkdg4HYw1QVvxBA0wbexhGUCkH3mBkLsLVbo6hX9loDrOC7p4SpCovmfiHFrC9vl3p4PGOPpBd9SwY3Vlpes0EJnMIbLF2v1MaW0oV3JII5c-ewG0N2w9IQeW2iSHfpTdsQV4cBLwknAoNFUrVgjCnW8s24cyYmkWIVcOL-8yKzxLm48GMbrC2BKYKl4pbKPmUCyDARvQ2ni6bAwVLkI_edpbE8vbOUxkOCl9H9i2FTDCvc9TwmJFhFp3TV336-2apBD1LO2jLOJVmjXjQRmQgtYjwqzAxlOuVqmUp12c9S20vRKk0PNmb-nJMa4XpoTVTiYloOleXDgxa8ZCc_JVT5Q4A5bxb8R_WlsLXsgZ5NUxHY3hEOl7DN16xEBq8GjQXX_C-DISUEYURoz1imh3hnXj77rmdTYloPe5cU6aIbPrUBs24wUhj-laBZ_sGaG-L1MYrTTniVIndK-vqTG7qBW3uQMu4k2mD_NIJGNo2wo2BuK6fw6_NuFG1273tHt_qRxtaAMjG6mxYwTRZs-veuTB09RQ2R8jmFxtYxSnYAAelwz4RGNRtY00kFZHqQ3KZ5SPgdm7Sj5PXlmmdXvPjMswWmkYu7Hn17X_HHzVZVcImpA44h7CgW8Fq-jx35PFgSpGxJiYD8Pac8gCuQfeKSFgG9rL5oXBydFkErp2m6lJ4wc8GkFORFIEQPVpMmq8clbhT3mwt-cpcxbsa1ro2kvNFurOAjOSj79uqVZkI_ysLuzbJxFvYw12mwIf_xWfbXKEopPeG54gr-zVZj9jOLTwhZ0BmVCbl6i5eylaFBt7058LVVlDlojysmYO8X206baiWFnM7bYRFOrV4Mpsd-GlMY8zX2vthPn1TvlZyc4wVxTPNCKj--7VKVtujqRmmgX_9svT1SNOOGzs5CKpS3se3aYiZ8Ot3K3Vxsk1uFUD3I6QpkF1ejeNmuGtt41EOox0-gux295ZErYj9dtOziOqgP_EEgJmdubh187w7FvQEWJpioSV1QlSsKQzjICJ4dBjxOONaQxcVeqP9EKcrde2Cl7J_ZkkL7wV8iILh_rA0P9XqpG6DYhwmoGKUYWAvoHm7TtrLQoqu20vbqL6-PFJi9p-x0crZUeeeOmGHoel2kVY3wQb9wkhgQjQf9SvF6ePh0f7wQ6YY9CwH46qKQKGx7OpwjWYOB71K7-OGUIgdBFeTCwK4xa9I6e-yO18fr3ipUbQXYA-DVkTZXHfVcVqR3fXnqtA3ONFI1NYO7rmQRB-ioeNoFM6qjWlAdt2cMN3JZmOUcnXSsnQPnqPnyDvhU8wk6wZC7uC2m7msBPBgo2gDdk8JkLL5Y1CMtjZber_YrK1kchOtR_eYdSdwCiqDKBM0la4N6nMInyGquoxNYemIuVXCTjRb8lxErF96KdnWs4W39KUgwZD0PrFd022W7xEq0uUmDLjoeRnJ_CGm5PxAnGgp1zPJET913aRK3uXnweoqzJs8FaVu8Gj8E37bHGQSdqqIVXkrmsJb_tuiecghODnfIUQ9aNsphrpy_Aixpg0yrlwHN0uSkoJMrokz_PtF22rKmiF3KNu5pMfn6fdgeQlakCEid6wuYTwFglwnM3XXXA8VJSKIsgw60-uDMYUwFEOSM8ZajzjJor-Hgl_y2_OaYvc4LPYeWnNOVSTsFB22SN3AGHdUoQa7NTE20zfwF7SJU9UL_hjp_zMFKtB5dHY_d5ADbWvGCt5n8CN8XMB9JMsUm8Rwc5X1MhDD5oSQ8pTDoFPrxKJtuLpXEvVnVCDv5TOHGqxPNpN2dnlnn5WEPpgxdFvcYNOynm-4OKtHCaFLFcI6WiBdtaliWIUOj9uftoLWo5A6fm7zI2nPq8SwFxbntJMVJNPEUA9bJImmDwfDY2J6CfqT9ZEJ1UCs5e38r4dyVTJxjBoGh4yiD1hIkaEoKY5NsyXK86pnt83uIPCz9wgrYsCuuLTifUa5rUM5pLiZfi_u5eeiFqiKaZcNl6_bNV9Kh1Qvh0DAUF2wJw2C0LW9i1TJbZZoKI5MyjefDHCdnXpzWOwy0oLTiFk-Dhyk7u5QoO3Q-hSGF7cyVK3_wlUH6ACIcVShVoQEsillXBsz3Z0ZUzx4huVh57wp9UpyHff9p8HEyfhnv8MeKBCqA1Zwx3bHPBJUaM_FTl28AEYH-_nlmhjpAedliWfT6FsxfgneWAiYBlp_DDscndJSAxlZn1WrtbKE6B6VNBIVI3Al026iGApdf3a7rQc94iBa2yZDx09NzvqguChAmK_JeZ7iidebORgnAG-pkdiXIuoWxqUgA5XrKLMVX-iAWv7fJ3DMDgC7TxRNysd84FpHwBtbeUZpKNDukINwv6Zifxei0jJnpHu6eBfxJMxYkjRYBs8DRAg_9viriUX-Cqjxsa6QD0TAZNMW3BLppWMuPwiElTOgcHzHPHffUHE-99Few7dpmgYu0nl-U1x8sotLLOPn3RwZQ6JEj8xE_ssqmErlcMzlBFSjJpO_vljbsc7BUD7TvL9AT8vwSp_HtbWK1XbQb6wK-uKR2Qvjdv1qxOXKpdaKLJWKknNaWVY9moq3Hm8yoYzOClop46Dqfm-JclAu34RdYwtZ7M7XjxD9iB_ObZLuTLbNu0hr9qXj4yRyOclX9GSjnQvU26V1px22zgwVXRya1-YSkS2gCsbSx18l4M67BN_O-VMFKuIfysS-bbxmZR5R4KieX45mNQYLu2ju1VfI1vSNpin-MhHS7zZmm-pzXdiFMiJeJcDmr7XRPJ66tO53TedfAAVgbKhx2Fl0URz8GgoQ7_NEk-nJj-M_RJO8Aj-jXAblgpG7hu1rgLCowbZDS4Tlbs0Y-BJ45AMSt3XAXUiuRFw1BJnec0PL0V2l5uxA05Tl-TjoUf80xLqm2ABAUw0IsQ9S-lP_d-WhqGHzHvcbJ2unvg4Hwbwh9eAfhjU0DKigZCnTX1WVJpG_UCZnX_jV3F6YVLY69GlLf2dsspVBdOD6d8KA0Iyt5tmYIVFHkd2nEZ2KMT6P9vQD9g0zixy1YQpVIah3kxOR2u2wcRgIKLyWWlp8T-5m-NJRY82tlDhH5gmguOo7gHZEUVNvVd3LAdDF24SlG92_1GMyTOftoG9bFrpixI3jSdipB0qIMOhfvNlVwNFqg4MZz1EKu-JCPMFNf5ckz3kLuSoB1R8v2ddy1x2r8ErDYFos-GxNe8AV1koOhnSy6hNe7dmhfvBRl-eo9cMpm5HYEuH_zWQppc_w9lmqeADCaNGmfc0Fvze0aK6MQqW1MRT9DYES6thS_6iBdPpr7cGwTef5XIa8GB6I3ZSGigbumqjggMp5QCKdPJoWVtBxEfQlyH8gQY0KQXofiEQiiKXGsa-1I8wKggk1e8Xjd_UbtYZZWFmAHPjsPam7whGf8ZcHSwWpWLAWRZzy_lp9WSHzuB01j2p3VlmC0eet10xjWdPkb-m1zNyqvFFAQr40sXmyuTIu4-ZuuUu4FsDQfAKYFRloRS6IE9BwA-Q6TfOtS6Uj3uHPJMgj1vvKVdbC91hAk8NDZYT3xm60SvBJ_KhfNOZyrPFTcH4j-s5dqJOt7lrqoGqIyo3rEJcjeOwqAoGfgxTelAZf4c9_5MRHbXF-azYhAlM4hON2Erxv05J9h9bCRZc-NaxXv1lv4eWaiFk1T5GiLfm5Xw0nRf5FBHv3g6mseVx4n7-Mdj6-vOX0NCSqdFZ2Mwez6bLQ3miDgUUPIKxbxo-kmVAxFFvo5FwWj65X14a5J3JzmguSzOPKjWPHzZDfELXn6EmofwnI3gFQF8m2JgZ79e9dYSQA1Tz3FRkke8Q342Q41mUtg0qasU9-xCZ-BqksQkslBXRgypXT0AsYI1qhpBfOn71M0tc1rSuE5NxUnn_YWA1Oo35T7sgtcpgyC9BGO51A8Cwym27xqN9Y2V43bythPH134iu9_i8BneCB7CAFEDvkM8p2riRWGwqM9guIUa-dpkkbqTRLsoTZc0DNa_rXokgjynoICC9fnLSZ49jsZfKwawfv1-PcFOj-FmxpD-MafdfnCkCuRX-1_PRzwRGXj-q8hkTiT4HUSCWipeb573raDf7ILs4TedWioYr-_R6dVaz12db8nPMF9UB97dMFwf1kSPy8UmKkMYH_7SVltgtx9TvzONYZxIbKkF5Z3R2Rd7cl_cLKO8m413WgxQQnNE3eLNiX1C5Xl2qLHDGnvo7JYezW6D7KOjwlqa-VEw2F3pi2-FMLkWh3NTYY0s0323Ah6k-WezAjW_ErsIQy2n5weyr-Y3_3OkJ3jDAIdRK8aO-kV_EzWbkd4l_V-pFW944MevV-mpNpal23pDIqOru9CDaicNZUS6c1HiIRcl0LF-bU5OmulHQF3HI10a9faAyyRDgD5rRaf6zGsITl8EBvTxpSuMtI8vItWLGs6isIGjYhE5r1NpWFV-oJiMkNDZOyUi1ySeF9h9qTueNUBzSLKsNoEYT8Ck4RfdQXMjXr3JpE9Doc2HS8m2D-qEmPq4lqjk5v3fIrFlVvf1ABtyHah4-fG1C4o2nngbi8tIWi_zevxFVyvsJRa5tM-SnQ2Ruz5mjliOAM9bOy2I82FTYtXVoWZc1GveIYDzfmKn48OfC5DyC6n5MyPMlKltI8CfZJyeYnM35nSMty_paOXq-nwHacpM1wL6ynkpiBS3GT2fbjd74zwFnbjmwmaq3T9nuwacYOkmFwFB5mdsdqxPYtpazPAkdGTvXatDQsC9e_G_pgyIy0ghWPbsfCyPOLjS3FewJfO5al-8Cv71ikIAo4Svm4dGKg2QGMM2ux0r6BLdNXugVnZW3HuGMcM132xhvayI9i2FHqPoQB052ozq_1VAfBOPM_6he3LWHo29V5Ujvk4dXj0q6xuDTPx089eGY7B9OKV3Iwv3leQWoMpXa2mCC1AyqkkK6-uqVEtpZIrsFR5kYpLBGwJnq6Rm7feT1OZGVpOIW62DEqBMNZyr3wFD7g4uPxSSIT-x97jlNRaizquHrBO7Ki_6nr1bn9qdadeTScL1v62RiVSFXmRe_LY3V63hFpesarUpRkwqsB9Cd8FNQHJcwBLnzYt-syOsXtCqo0WUCHtM2n5V1-wazlpTFUR-s2L1eNLPNqX82cPT4UcKZLMGUkYnxlPtzNE-YcdZcxsayOtrSGrmwRZK6uCf3z36s6ETyxiRWfMBy5d2pikz9KwzBR_NmT9PqarfMuAYZTyY0u1m2Cr8RGm4Ml6NOwZxjbATeL8-Rnxk0e1trKwutjsjx_piFOr4Q2Re0P9FtXOO-8mmNz8zxAVn8GwhXDqw231TcDd9XqjZNf3E0DBZxR-fFqKpGDn6SoVOP4o5B5oNIlmY-Vb5SkBhldJkGn0iCRNT0AJGiQ3O-NtaxS7HslxscVLdXF3T-yb5JRcfvRDaBt5-MDeMAEaS8WyOwYrZtnx-M02v_Kzt4gd7MF1Hs_uBoxrobvRS6pWvOCUz0mox-MG7dNtT_Jg_bxv8XYIz5RQrD0Co2aOZsZqvk-d1ylC1nw7VXzWLOhMRZbp55yFeqhY3FEaudCV_L9GTKfm5lae9UySMdsZ4c_cCL8BKFyKVe-MJH7xqu8o6k-a188PHeLz7BDDGObUSbgo37B5sgNfButJktPnzyJJHBZq17l4mlLlVQSwCtMNZGZuKXPxvYKrhvNXGF2pB7UdAoTvLnqynFVEKw0jc-52iWPVwiJVfC7rPFn9CVz8ObvmzjOH5HVfPFFZOOI4TKjQVaaa3P6bjIPX1PfaowLo_e8inoCuOw0dqXeuhPY6mkvwgG1GZveaol5H3OGDM_G3sRMQ7zK3XoMTJKXaFenk6swYtMaQlI48fBrgdjMzlL_IiJA4qRjGSRYO8Bd1z_PypfV1KAypQ8CG0vo7UgFlsPN_4A_1FmiBSFuVdxRwY9LNdbJomVIclYNbqHjQbHu6GiODryTu5HoFmzP1LlXgQTP0GFeVWZBtrkb4TLNhNtaICCQFCP9klr73s49Ob4ensnhNLwZ3Od22HFrJHPZfVRgriaXOX372L7SmDtB-ojRPReuA3tWe7B5Y2J999LPN6Km9BDn8O-KE0vKZKTuR5gbHAtAMltoWzljLwZaISKjbD_2z4mE9bLVCTf9QsITrnwcoUHYgKnFMDTQ9skcorqKjDZFHglsntYNO1oqyRGt_Ge0RvQSlxid-7Au0XZkubPouf0ZGLuUIJ88IPAuVwDPghtCAKKvLuVVMSdTP-ond76D-PcRsxAtKeV5vQ16S3BHzLQNGRJZFuuoUf_6Aa2Wlup7NpuJ5nL2AB05lk0bSKJGTHikTCi2HeB-Ogkv-e796T38fz691s2CukDyDXuX6a_yht6tswTVEJL6Q1hlGvoSNnNzAIDmCnaL4GK_0dYT_TOcTkQuz7KrL4x-CMXhfqKRn-M3umj2zCJWNsC405unGquMeMtqm43RMTIjvS40LLyCXML9TEuq6R6WEOKQ305nNB-HERJKjHe2g31FNmxkvqHkrY4OzFxo7iCPRZ_VCH_Z_vwQOG7Ss0DMzL_N3AXhHPcMh6Sd8RgWh3K1ejrBynlMFRWOWDnWrAgPC5QjtM6PvVI9frcV_pXXooFTyRdQWWoqvGSJPpy_ZFV_TVKE1d4cNx6Bqp8XxOZv2Bz36M__ouELPMOAi-xqGPoNFsVRQXFMCb564-btpHodl9NoP9tNqVp4kFbH8RYTBiRYSfAYyhi7lFs_ZSgYjGygMQhJpCq7vioQfE4Tc8wqB0RWbIIzTXiGWrfJroKSlUlZhTPwWaK6sn1w6l5_n5HVX4uz-Q8sWajjP9EAfGW4tXXt0czWpM5Ql0-6Ye6XxDbkjQTXaMUQ1WY9oZDWuzZkbnD5tsBFrnvqmcJF5bBHTkfdDY9cbJxh5_gTIy0MNvfBS7PlzvRTDfeekZFJsXKtWwjX-Ikz4R_TUP3JYXPKRPgGW1bDV0kLFq0z17ydCNQmUNRxafIKGQYh3s0hzXrfK80WbawgPfgYERyMIBPtqL_8KnBdEFMeRKhOJ2b41vyB7NM1ZN5OjBJx0hyFNkdM3kn4dUZqnhGLKN3tP8WWWu5cPS1wsHZnWENqW5UliBJntjqf_e0oi2dO7Lzwy2yvWbMvfWXJn4fSXfGVk_qk6ZKiYPtp70Xj1QFOd6kpzHxGhgvIFryzZIELCapejkMHUbzMG0HYpw3SWv9P30RRKIOHVDtG2dyvFBehvypHYjNp12MYHnqgaGFCi-_3-ylyxwYw8XkT6lNAcUgrdm-k9aGeIMjrA1n_UFp62AV2r6AXox5kKDZUXEMT185T-xW4MiSb_WtQjmB06AxLmh_taM3rjKXU13sfa7XGcbM6hIIHPCgruRKmW5uvtvvLrL8fwWDNHX3_8Q0F9NXp8EVP9J2O7MZHtk_tnrFh3nLZ29foaIOXWXwrBTftJwOfFzpyOfCKQLGzpoX8lGiJR6OWlZkl_BeLs0GhkJu2oLHspUa8T1QxLDN1v6IrVbT_euyyIHhqEsHw03PZOGvLm-uwFlFRzaR4WqJ7rt4jBkg6NkqTo8MEJY_kCTHKgmJrI-7VEXaB33aWCaVsoB8DoKixEjN99Tm1RU-mZRQAuDvbQGs5TSPeF15IXezwFZLApvznvdlgcHRmR5zxiLidRLIqKhvjblsGDkJC9rjL_TUFxO5ECRfoFPgx-ryBW0ABGc1YrYrqLIGH8mMMBwwDTOAXwWc1Vn-ZE7WWeNvEK-LqMrqs60iDP9P_CpZH2JnIyX4WJ8uN1_PdP23S4ZhGR7eRd3pww2Bu1R-9Py8RryKoIfnXwLyM7iBL-H8S-e3GFLISgbngqf7s_w98K9x3hmlPA9-zZ7yW3UHnCUsrUQ6NF2d6AWIGPknxNFYu87GjSEFBBmu9yXY0qWthIVoaNTIjbpv1BwOLvLtEB9_ijR_8O3FfWwkIZR4GGZpKYHZzhhdkPDdBZZD8l33eIn2dE9QoCFvr75kV1qQh_7t3MvmRE4qM-roWb27OoqaEPXr1efNAUJKnRBQqp_iq7fripCSN879zoblmKjHmR__GWhJ8Q8_IwacK_4VRbjZByDBOadB0DThRpLgDPRCZQckXDvKh3iNgypmubpjvKBzzMpPTnnncbrGPDNzlS7IyGoeCddNkyOVGUZpxAZpdmfwxgautSb2hYBzUWE2nyK5fS4qJ2KfhwiztdLnwekei945MhO4ajxeK1isaTteqHk8Bl7SD_K75mMBPWart8RN6j_m4EYZDsc06F80YKAFrYUvnCdPqIkYkyDhpd2hYbDCEOw4Gn6QNYLGFTBAmsihctdMzjLzR_QC__HDBNzExIxq-TUVUB0d1kW6y0es8ObHQZjXTEhxPrOkYn25iNkZsbNJrnh1NxhrAcpkiySgTjlnk-MtaEObPjIykatpj5zCqpOZSRGm6lEGi96iNKPnzjpL5hukllxTCJDfAvz_hTQkNpGomcwOIctAr136oeSt8Fx-uCfH7RCQKH-VVO0CTG1My3kZaqr3dRdpM3cc8uLvU34mOBtfcS89ES8dQioL2zrpTEg94pcWo-Jao8ZfAwbSwTazPMieH11j447_UR-DGiML8t6Pq22z3lWhtSiVt-Zh98YEPog01mC1eiQ34rBIbhGxgoOL61JKtEFZdN6XDijwAvDf15bRjeuQ9XutDqN9p7QRyejTIaWCc1X7VNwIOMpBUlpNZkLBdXcJySb05pHaHc6rbkG6INspkfYrSpvweMurDbIhScU8HGyJ4y1BYqsdQr5Hmx49_mFIKoxMhUETB8Z35S5o4pKDukjHwj6rCDfJKl35yYYngZlXTCDBTPsUtcH_3E9K-5OAjQZuHhQdIKXhPK1Ja2GBjGj_WAKhM8BXnypF3Yz7bnXR6_ew7q2olLHb0YUMDYJuZRhX_Ne2pSTZvagSxIe06Ox7Ao6_SUtt8SiCWhbtpy5zSje_GsUbq0f9ZWP4JVcBkvNX6tWq-Zpek5c3WnAWhffKR6_4b42GHdA1xMG5_Q1rmyof3UMyYcaWvtsV7SpR2ac6oYhQsmOhy9LItJvkwJmpY6-6PeW-khRx4NN04P90kT5bs7LkjmB0jlDLdyuqBRgpfXIjmaPfTG9kIT2NBeaDRrJmwsqFSry60cJmQpltz_FJAXVAwN4lVIj653d74lmJvmV_7AIuEE1C_jO8VVY8jKjtejHqB0AFG4CAnB8ALQNH_WixJribKWu-70DTVWtdzkHAM9z9fNf8yFH3Ji2VSPZfKpePfH6REqPkfYhpaxahdEsYRqLzhpK9ojZN_1fSYKomCFvwxiygi54s9SLfrdfXg84kfO_NmH6wLenYZe5CLtgl7LVEpnIrRMsn6uEjGpf4n2cyCoRVxzEyLuxrMFQvLFFFenVWVDK3Xpu6tYO_Pu_YdhDCdOq78KETr6doY9rstXpcnrepiztkfdlh9YThX-z4kT43v-WY-Vs0bTxEPCsW6VMhCQhklLbJ7hu-f294KbIPy5ukyvRy3SUcVkAB3WEx8Qr2sC_M-O5T0x3WhDWHYlu_VPn-Ge0BaGD_cwa1bkWYYkpTk6WBdxpCMvUkxYbL-QGdxPkl_K8GMXZKVEuX-DPo6pSvEyO-eFtKFdQAUlunBNGvX7KT4jCwI76eAx9GQZFtUaGVTauy9I37AsC_KLj7HXGVNzbDKWjHwj-lk0Yoj6jiLSeKhexxS712FHou-YHBveeKlm1kVtvAHHxVpqxhamIeoCiwnG6u9Fz8S39HSIp8E5-TAsiLprVKRUeBIq5tKfrScmLic9OTnoCPGNYTUhSGwrvSyA648UVDhE8BVRfiJEM5pLsrYWMuejUJ9ntUWLnY5onkgvo6jhCULiPoFJSkRDGF2Ksd6r3DgEeV3pFtFaK7eGp3N3rYERTAKtHGVXgEyXrGzXGsICzWRMeULe18-G47kEeF4HUPfr9qh0OTUU98g1l4P1WNwFtQLjU7eEJ3qWGTlCP-5_Epo1lvlMA7GOm70PU97U3oal0asIJoBjuukODDskeE2XENmeWXmk7-AjNGKtkv5kL8tNTxeYjPjA1igv5IYimWB8hqTcpsoXLuY5FNnzVpvyQzF5Ts9dg-lwsdsbGrN-Kv4Aj7jHRcT4bYmeLUck2o8XQFsrKW0z8pBMiwetCo60cqUQdrvy33kyXbMFb3CUlyzJEyBxmrvt9JOoWuu1r8oWd6r27p81vmR9cXXjblfU7xUb4j0iwv6-T3CkffeKlZLVW5odHghiuS2janup06LTdKjq0E97cY4dDhqkerjwD0ipBcmnwRGOamh-wNxlDny0lKjhPW-YazRN2GnYkBcJCz4lPYomDuAwwjy18GxGATipkVHrq75n3p-JVck5HcNa9xqio3-LQE1qvTwTOdA1OuIxTLLR5dNdv7X2Oem4R2T5giutqx-ayuvZSYNezlZ9EP1n2bdhJpJUDBGUTYcchecFNM1XqbrrOStdZ2ZAPWuzg0xxNmkkJCHKXVzKALqUJ5uKlDmQoLRAvcSD8QnWfVzQnEE34TGQY7vrX6liTw3Ua-vj7MeJQbcC5mhphREw7mAp79lxrUcZyzBnTRpYE5nPgtuKIyNHBVIiT2tfaBVPLKP5pL5yuCCgO7qdqkmomVmB8EAJX2fKR5LL5O7L3nxcMDc5o9P1HkqQqweAVoNEIrlHLDFfx7EAoVHvOA2QInb3d-vK9wGBNoBgAJguJtXKEe1jn_nflczoB-TZlqxt7xI0EkgxXIEDOZxXl9qvMUw-dHF-WNiwPzhTxx-Gu3pka12n-hKg1h6zR1we80fcsvA4jka2n6DRW12diL3PsxxJafBQSVj6zsqR1KXNMruG35dp2yU6v-1GNCg6pnXZKb3sLNhYpcJCuezkT7IuxK7rbURhqq4CGgy6FzDb_FrBbABiK0BmBSY0N0FnaBVCZy-PeK5nb5nOB1aSYmw190d9PZekQn9NdtlgL3ZI-T_Vo_4XjL27G_U2VIEKnrpyoL1G6FVSS_S__o9z1fVVwU015U_8ibAnnFjKcn8_2D8gvo4alw0E7eEqBXyMgz2g2jxMNTYAnsjEdZPhTrKZLcxfLgt4Kg3xz9fF-y-PBvcxljDyQiaQ8_lJ7cZ1uJEv9bDBhPDxP9sNFLRknjo32CURIM8AjyPppLQZGVe3rnZPA1OKmF6D2qT9OjmBPNpshdVjGYRUci1TAb9eJI1uBbIyGcO2R7V6WMxrf7kPQFR8I_ZrwVgqT1lvwiG_qS2_1IoaK5RLQ-AgXkq4DOaV7D2apXVL0d7RdPJeEJFhuX61Sdz44-toHAVZ38o7a07LDd9UxT0-Y_0crDQdgS0dCMvGAK7Xn26zKyVmgfO3u7JZK2ygYQ2a2qO_zDR7LUQbukyaveqRye7FBzmaDuwCW5fENyN3quW9MTJ-SenUquv8ddGkCCsT3GHdX6EHGhhxogc_apv-HHW61UeI1HWdqeq87OtDbMM50HvjMpGv7DRuxSABdDAC0aEZeRveC2hFR2ufL9JburOaBlpQmw5Ang9L-Esii49olMOG80vCfE_AJ94tNHT5eFu22HYp1HxflpF4WccuD1Wu-AzHtQahz4oely6gWZj6SrTZpmYXDfhlxRF6xspGBPqO2R8D7-kWeOm3D6ULIkIp71_8XXwBzy4l7Rb6TwzH5naA5EzcuiAeEMYbBjeSNZ5rK-xHwWp9__HJzw5mMK0Jh8vDTKWF6cQAZAoUugrwIptC090-qNjgYxU3O0kkLlgbDL9XyLwrnn5CLYLMlOkOixwaQgTNJAtDZxJEU-sfGNx-m3IJPNVbHwTvPeUlCtzGM4Xsso0_2no5EqHJKBQHHNn8ZYsul0Rf5ZUV15O653mx87zESCM1gaqR-x1fE1HHqTfrCMyQELF70-LeoHhWLQj0ZWP-D3LGZJfuosFpCy3Qz37M_WRMkSipMygCg26DT81RJwxp-Y9Sd2Z4A9P0Yx02XsoM8cLV34s0A3P0m5wjoL8aqmZK4-vuAMEhxaAMeFofidz9p3drSoYzNV8IkIBBWh2ggSL1WGxZ-9jLWW77p3Dmg2OzsB3zh-Er1am65Vf6SArhsRi-slkuF53OYtQ3jkrkauPWV-QzVLgS3sy1XPaoBxGAj-HfXSlE9bkhGR1B3WBbvhjfH6S0qHg04_sAMpx9o3nRqRTmHfcTjwdtLqKayipjfz3_OkvPpk4WcYiovd-X7rwgiXGnGFFSZEP9xMe5n0qgaXpOQF5gi-6mFedQ2BZ0vat4KvzzybhBuzw1LVwfG_Nl3myYNoebe5dIXQguzK0ILMpP9ZgquSVrCgwbuFadWbIm-bp5SYs_NTlWoQbNaGmMIBwkUoLz6xaCR76BKuRNOY3juFpB48FNGAkr0z8vusxrzrxcWQdXqoe22u3Ux9gt0sOnD_toILrBLt7w20EsGAYWDo6kmAqZRFesJTrp4rf5oThAsjL7lLNP2e3aCElhlJ-7Nv7pXbBiqEi4ALV0fA4aBd2Dq398f6DIotEVIaE_fQmN9wUd9-GTMWQl1jXzQTU9BZ0-gOx3e2suthpIAbk0UxArkKRUFdm8ZHgaVRx4aibmAVZ1GfqQ0Ug8ltTrID_iGbJneBma6lP4zx3jhmAWTWS9BSZbQgQW_i_LP26nbKPS7yEE4zFGUEtYAJLtJO1Y34vzzNNobNgDuHTzSKcqgtecf8V3msoVeIgy2mrqXfe_RG5XM34RRZI03Nb1sEKuGbWCaAiCQNZbuH9p8nCq-970mOIKzVEMjv6As_t1NLMQfgu36QrRBdRxQ7kofwG9v34CFr4VQiA9R4rI5I6fxgviH8jKt690tREHmfO22IiisGUlHDNJU6GUWm4LwWGAV_UZwZH_aVeDa2RCSiFwpbBLV27e4PLj8Ys4_nCKt1fYerYV2oyhtRbCgl0GhuGDwiMPsj35MNzg-jTTgNpio_zGLfMNb6q91u-fg30GHMl_MafwL56gsdHZn0EkSu7cV-f8PszWal4CoSizJXdazx99TTTJuKki6jEFlu3pQ84nvtY0noGNnTAdNxfng3GSLcDQER0woq_fVcHNReEVfKFNVoWCA2IEycCsPzfW2XnrkwRPc_5emQlcHLc1DqF307BwU6_MpxbyRMcCy1mUnBlnuUVI2mFfT0vQjiSaRw5G-53_SmB99oSRyME7ZB-H9BFjuxKTIkdp_s7kSOiX0ujA-yWwFQYc5okB-4SzIJTPnZs1V8a8j9S8PIervVyEj1JKdRUAnycEeF_KEZzruYVyQFe8EPDUb6rgt-VaBIvWdx-9AOgHeUniQc5thh2ahgyCHUuTjQ2bMsR3FXs-w-JHV10vgafimrnHtr2cRjpoG0oKGpWSliIfpIXxi69cz5VCS-_yWFJmTYitHh9UL0ySwNttjqBUtmoP4KezJmeWGtnpBnhao5YAcooC7UlmRPr41Ui4RQ4l1xCq783bJoXVkuIrOyooviM4J2iL5b84Ods4jfMDa6C1RlYWDsnmWG38nZz9Ul0KeiAgaJzYGR83keLWHF32kVFujloqxgAEO7LIoHOM8IGA9wDuQHzWzPcY4pM0GHnYIP3e00aIGohDs3dRgF-TOrtX2yNd3V-MazAa3DapE5QSLs5c_isry-_-mIAXaCgs57sy-V-_gcz1Q0bBBPgXowVPg6CoDhxGt8SZ2W32K_5j5JOy6a_V-bd8JdoC9m6GFWYURYZjmuQcgM-bjiAJCM6nMmtHcDjkFFDuQkUwswUpuPQeHvhS_Y_KVugC6WV4XB2DawkWu9SA7EfdM34GjkEwrECeCNZKov1XpJPHObgPs64jKvDOjwwCmAXwzX4PrhN7HIDnhYQ1muHL9z4JOne3UrxiH_HFhJiMSpI9MjA_aFcysF7lHOv0wRI0ucy74LhU0jJBfEwumzneid6Qf8Qjk3tac0meMcrOuiMlihUcd79yWS0t7A3moWt6cyZZk_T6ygwuQbrKnyIGWo3Hu0vJoZ1d-S_kXT5DV92r2N7W7Gjr2_3i-rEr-ffGEl3hO7RLCGgpteYUs5cDbAxwNExJYzcMBu1NWdEmfxNjk8dXOsIJkMh6Gy193QokuGReXkAg-6kj9sE7tycjknBT17NpN1B_nFhe04hHngyBVHEL5bRWY2De_gyd5KJhGTPaN5W-SmHB1QKIegWlHxWtNSqR5heOBU4xYDuyrd1v1yNrjOJe5-A8e79cARcTepZGh0fSaw4BK05Kr4XawQSzAamaito1ytKlbCEP9-3PtZIS_WoN3oET98lPhB0ufj0r_ZXccsW7Pwyh2bKOT5owCFc_Ij65xXahapknQKxn-QCp-KEQ3or6WxUTYl1-dqatqvPcWO9cmZBqQ6znakzOk2fCd6zXlL-vsMDByUNicVBgFCVDt7CURwjdVRumdWqR6yxgriwv6I_sOMgRJWp4WmPsT9fggYjNeCx2D9iVeqyQfENjtVF4tBcnmW6ydA6mTpXZFe8jkcwJH2NtTQ2Y7UZPL2JRor_IUSEkHq-F-C1iYpmRTQAdvvAz8SaVj8R7F55iLi18x5x98WURc5O8kTxSojGINglC1ZL5rEG6_oyabVoyMWUJwilYD7BRxq0e0EQP6u7jxAyjqIOCgBrvgWDGxUIbH5qmEm3gtub4mT_Wi3v2dX7OIGOwNJ2bbvw5UXUPUVuGB8E82eEQYzvlhMELKNGXNTbGXvc-kKrW_1plCDr_fumCoRO4Oen5u1Zmj5vLx8UFjs9PD7SdBTpZJNmSIKYNGH7XDPCyLde2UCWE9cuGxa788sMmRzZU8gsNfHfCYQWP-lMb0eQQMlSPix_BgOQqi9rp3qOOJKJLGXYsEJh91JDkxUtuP_vyw08Kxl8ZQPULVSXEdW7YUcoPT2BJS6FhAtDFn-tgg2-0UnxWHCXEfyS027cbtqfpfYqwODmRWGm_4eWS1Wf8tl1M5aIkHs0NCb9xu98pqss_bKPq6-o_kU3X-IpDdwLKOi6qHI6hF7PildAhSVAbwwoIvxJJotCVAGdBZzSQJ54dsa6POSegfwI-R9wjxt83DR_DWIcn7PRG7iMQH8MyrlQB2MIzK4fp2FrZKU7YfLcgTtefi2-bAm_wjEUq08bf_9ZIpRUNqV89kRbD9gL_oTOFcfKzNmTm92v5LSIML3NbAtwZV5WyH17YoR3-8r0XLOZmFMhBUgujeko5UMpZMc5IsLM-2f9YFNPr0U3SLLVUCB-wo3H85j64Bg5JrBPO_MzjhfVDmHU3bQJgd_plw_66EUDymfbBRpxuNIAOoWBrzJ5h_gK1vB8wH2yNfn4w8X7_3RLjQEHF7SwCu4dr4ndqS3Me6EGtghEQMUlfhVJ53ynTyElzp2fcULU4XjBeCED5tBrwZjHGEOMTvxUV4siyngqe7ixkvhFo46C85TRO15B-TnMVVZMVuaXnGew2XMYlQVj6zm0TSyg3xR-Mos7jUtyauvJ1yvfbN13nz7t0lmG70RbnVEXNdmcdmZJA7qZU0Fk19ztkWzk_dgE_dZdnMtvTf2JIiSgGALll3rQKfECJbjxOI8r2F4nYyuEn6hZ2IOnS0Bbxl-SjMGpmUNSS6nLsRgLhtRy47M1F2Pz4W6DWeaEILu9PcMNcr5Kh5pIRki3Nr6lrEpD3QtbEOIn9Drstzen5CslYGAIi-74rUOn76z0Agy8T80WQmBr4T-Hhga7T-0qR81GrTu2za0T6z8E3TR2gVF0c7VxN7OdBLvmQpIqfSEpTuY7ZGOkz9TIcRig6UtkQdz5oB5XcY_mHBeq2rTHzLshaYcS83tVV7yui391gFTjmLaV7k8261f_n5Y_jAHQiL9YWUC44UPtDvGfmBW810mGCBzxcqYY0H-5XVrwk6gKF2ZCR69hW8Uco7bLpKCMPtZId94RHpsVH1788bYaZFJTHSIDgAKdnZ0-UAKgH3atDonqLCZEV7rPM-u6_5ryq2N6x7qNyzMXhwTn0IVZAh8SQZIZTGLkPmZUL71TtgrtA5srm0zoZelNAk6ER9Z7k2c3C9fK6aAlhiegcI4ESTsvdTp9O1_3XvCeMfw-K6pJRH6Cyil4blD6jAFOVFxmgLCyzG-eiA0j4USePYvk6ND6uFwLQl49FIVTQt_F2rcaaKN_mzafRmr2nmOvpR_bwWN8ygf5znl9kTDTq2TdpKM3zyqyfm3NRmB44DLj-yO2Xy8rkn0HsP_vrFatVR4Ff84nGpKKCSwcqbIweZebZ7_yyElwWCkcxf24Eaj2jpWYZ7Mh6LKz50x5S1er8Pt17wQyQjD3k8Tj5DBiAYYrSsBSdEalHvnLBRLfiPfmx_AQ-6N_eBxwaNEdo2sGxpJB24Efoqe04LTwmHHLzDcuIiF2iHPCwUz4B8vEGcihpCE4Q7j8ZHV07z-IbNJw-OLYMhqxly_5BIBSH36NywCyxwtJRB2sRVrNxouLN5RoNJdtj7JaDzJcdebt0hRsAl0YaWNxQG94hPWLu3rXQsE9yN8P1Ch7jfWSk2GTFrsi5ZapSwkIFVogKV3VWYhjZYn3FHJkcQiw7ifQ-Ddm5cWpwYCPuf4JpFYeICfqh9ol6KdIpxB2Ctupfg2I6wdMKcii0tsQaX2FkDxqB3iT67bCffhcA_-Vpb03YDJc4rsx_EXFKmbR-XyDuYSSyiU_yzRkHIFg45QILYtCgeVnIs0EnNVXFiuIJ4zOo79KqnvtyXvbflpb9TGGCY2Vfky0kXmj1Jo_ALzuj7FJlYfpNdANYyDaNYny4QwKaPbz2NvN16ITI_0U1Z1KHMsu2hvkMt4bGFOse6msgOsz4eTKHmR3Fj_T-H6G35QOm6lnubst2CgYMCSdb6gXcYW7rVri1fuxrY7paHJRvS-dIQX3Lwkrki0J9KYVqcf2IO73L-_e7EsttPn1vrMITeI4rMK9yL2PPZZ0aHSSmsI1eRwCgUQgGGnJOrexDB-L2bWDm6L3p4tWnq6XxpPmtIQooHFNj81VkYUi-xVbn2HPqBOnqo5d4_7Nzfdbit2WNJSz4HeSTotk7YpLo7aiDAvj-cHpVh4q_aUJPY4X8AwY1eOavXeKBuNbGxnwTSeiTqSePhOSOHTo8ioavuvOBqU5xZvM_rZwGBmP-m-jC5Y33WKV3qsEOwPNAjwyjxU0uEJJwO5zP81PSaLkHGADfX85Mtaq76Z2bRo4l93MIa78mFP6viJBptCSOXUfuU2cbhxrR98S4cUlBv0yzY7NOJ6m-UzSfXCY1L6MPIYTcIfnr9Z4EVR7u8Qo3G0P0CfPyqbAVHWqKkp8iZxwcwlPYbE4DRGjpMbrve3Vq0GEQTidE2wmL7_UOeIKHl-lmkxUffKEmvWjs6ojQW2lsveplM229afz-c0IsXXLqJa206YrUqzux6nevrqp2oFXNLGrh3VVZRR6_tfiY1k5WkSbphV5eLc9GcLOLa271uLq5Zs8I4Dxl8uEePnsxOxFscCYhnQ23dRDtkr2EvY0x34Xks3SjvFw2-upIxpumqogrZ-pOTi8s6vuqh4iGbqFN5Wg8ljBHIETxmc3RD_zeLqluW-tlEcemXWxiSArQag7od05i-sCXCiSVbWKn4TWw_xy_qns3JBN2ZBAgC27wl6qXpq_D2Wrw8PszKUOY0Bn1K08vwIQXRGLDJc25xSNdUFqvoiGHZpjO_IqwrZEOizt_5lXfYJS8EPD4UUDS60nxAlsV1ijGSdWfcF48yxcADwZx-5hxO6b6UL6fRijlAE650mSScNBGri4cp87yoiiNwOZZLje2m382M511eV2YbOsZDm-qGjvKsHlsN4DIDp-NH4YsGAki7X1lQUm7yAj5RcSiwDBdkaE_tzyjUyJ7oSJCxJyx9R19jLGboBEIptLAiXmT4YvemJcEiaYvovkyTxLPt1pFgkr7s_AfCHf_6eo6yftydWM4aMr8aqeoFwjUG9lHx18tbIozf_MUMF4pcvE7foudDfGmSfawpS_ijOcfVvH3HBQ7DuDmXx_uIB2zXoTb4uSjXE3305gyjOpXx6b_Ulc-hZfLyN4f56KaDKh8nytN2uci3guRkIkQhy3No-5H4uMgbOdNxeIicSAwH4T4VktVou20CVCW9uxA6h5q80CREUs808PnMHTEaD6sf9piJO-XXSKW_pegJ6ukjUTI7O5UQsFVNutIfLq4-7_tiLT98scmpabCIFcroKYbsVCSyWT6iWRlH2SYbiYxeaZJ44ydNvt0dDeLdM2fFYIktyVCIXLMEyjxA76tkawfK7DEjm4g5iXilU0SwpgqvjOVlYa_85FQFD85zF-g7wkGPyahwexWItFfXA63yGgwRBMhpdjrVbJIJJ1YZCaASWupz6_NKRir1AMLmd6qezK7FNRakYLq4nFpEAcRe8BwF5HJosqwfbsqpfyv5aPB3ocWPy8UvVxjnK-Dqb-Y8ybYf2C_skDFRRTNxHP2PqX0minAhcfKf1E42x_zo4_7eBsZx9NEzTBWbj3Eox6oZlgfHZDGOvfsZOOqU_W2YR1JZRe-mERbfkgZPyyOgEVhHBEBi0V6983FXf-1PtBZ9fYSAAD2VmOS2viliX0zPQm0Gcm0vrPw7s_kLI65lB1L-1b5x1aP6W0NaKerbsRtN75i6i8slIYMYZpZrU0qBsWMskgMtgZ0iu4VzvkTF5SwKjQ14zv1ni7cXtH02LD8F6Zwz0YRgaa3TnAOInw2b5K7Lmtj9LcwXcoxGM59t1G1uUg03kls4_eZ9LlADSk4bKoFV8x5ZqicegM0_rCZIA06NhdQOV7uuW3axAr4bDJ5bMUZguqQUTX52QEgC-EhW_x79tcUF4GD9Mlw2buqmwE4GwSrYFFayhfRAdxbDfMsVf4RupTGSVPRn7_e9yFQ6doWbbrEsy0oQKO7TZcSjBhNCT27OUzYqoPlZtzrpWKtoJjdEokijLfDDXkl82IQVNULbnHA9rpqEl1VfoXJ8kpCcXuWz-vHnQt8mWhbv_PFR0Su8ITIRIcGTSin8fwCV1RmjqHstHaK46PocHzvMqbgRovZw-L4PZYlw6PrcJbT85Hx62cwxiB3K4A-WUW_ikyL8LuLK986fhUVM6j5TwrhOa4-a-ycGSl3rmbQoBkP3T4aVATw1NZxb2N-uQdeQIJn7Q3veny99pz6hcLUGAvuPsH3VmGSOsnGbN35h648RkyjEAVabbe_VqlIYT-vDLv6VfJ2Sim0mKkOwfUOPRfsfmeJGTa7lWZQ0wc3wANYIcc5g6v9R6Wl2YrfHWWFWhg4JqQLP44RFxeUelMgHfR2xH1b4-TjklV0JQ4yUGDLYcYi9cchj_OmtgOojBxTA2nxm6h6kcIqp-TkeqbKrX3kVhC48L1pBgaiqz6iHewVqvjAvlR2yIB45HR3HvLRQU0pwmgpYiFHQOrxjMwmqTuR_Qj9_P9DftYanXkRuVkT2__tbmUTHWBNS49f4xWwWFTVv6X5qLDuNfTVHLyHrE4qCbba3jRzsq-xP7eANBSrYeSM2KA4YPpyRUf1OuE3c7qZxv2t-sj8Yg9Pymlleha8sZAt8vk61PSJ7SIfbLuf1cBRORyNa962W9358JPATItrtxnUFDeJT9btzCEoOviOFc1z9HkKMjJQy4PD9XXz58FtWxE7E5Q6RnfbZ1BHsPQ-YLTK2Ms_P8oUWISc9sEJAOlsyXe_PyW6DWVIJGeMBreArTuqucQeA0yxSUIKSrDX_dw2wZRS2XyY4uOGjFc4riJDdLBqQSFeWUWXM98Lf-Fw0H2JyF43xCRpjU3_sR85O73tywUuXEiW6K8IMTo-3KOI3snwzkQcCL6W6g5gLgj9fhc3NlaeWVayRuep9sTX6tlQTbuBKtLeSqeRPD1PD61Oby_1AsJJ5hJF9UUnh0zCX93zx-EX0dunylvtOlF6UkBAszk6nvpdkI485mcpF6jnCtw6Ooz6aOSBPlPm1hnnaj_nAtykKemZ9wOmdgj0f1eXyXLVDbruiN8TKzyGZ2RHw0PiV2E2pT3wSnJGRlu7A88T49DyjN-wabOveb4SWy1TEpGI8Ynuz9MdD2myDllex6vKMSqjizE4Rpl98GNc4UCWH5VIvug5vBo5RFcc7dYGXcGFnFDb2wBJ_cKNKmZyRJGFfiIlRlDjWAZ_zgBjhAv_QGD2qo4v1zUnHpP833SEhCuynXYrF0jczdv9QKpY_SUSRpgFoEp20iyE2tAE_vVQ63k6AEZMSy_-AKWKe42ALQYDgoiWklLs-0ZCixcIBHqobATOAXymbyeNTtnfMt048TgD7FunFpjAolZSDzTZhbOxaGJFgMiqfHsTl7Jve2jVpu3ERXwq21AawfsD4dtVOFc_D6AbHaHhwChSwi2OCyq4I4jfnlsoDiayJk0L-RNCVubqMHFJyisslmDFOkuA3B68yd88iMOiRyn18SxruzpnotwpQTEj0z5Em6WtGUMwdpcCL5OaHqiexePwlHMnS40OpUh9SsRLQ8B0MvdZYKoEnVcu4R4pSlH-_lzHsmykjz4jZE98KmqFEb9sbF9Z_Nc7wPED1_TZj6EtagrNzBDOQlKsF7fuKiiTKYQ5jg9WhiupE2IeSaS1Iwyao98ATkImssbt-rJbJPcUgqAXZ9HPduRDd7AKmgSuq50vod0B5Ff62x0ed4giplPrCx72NfhBsR6JHRQMNGrG0d0O_lGb2KtTgnPUo7TgD4JxfuBoNQysD3wsdxLcfAtwtVV6Gy4aKMAlMZVCdd7KqayYu5POVdG-pqFxn00Phnbor9AiNCdcaa2eKQSK4EjgLJDqDIzR_W2HIdtKfOBHx99TuavlEuZlwo6DypzztvCLjX7nqaZI75KNM4mVInxYZJtkjTeWZKFstwD2k6J-62NaAz8RvQ1R5yxaygxqVPITZdaimt4GUW-dJxlieT-RGEJPDwcYb7nr_iTN47njAZrRiPMYH7OJVoxurJrlenzOQrbtFyKL0BA2bWGzIsqXf4o5NC7c2kVCmVD1SI-XAkZeouulhp_ZWwNIhRMMSyc3eKwq1nNBBh_C5Gghjul6IoNnd5FwFJEefnpgOJurd7u4cf8j_R4suSYB_Ss4I1PgPz-fKnGF66DGUSF-GsSjQFSGJZiXCeK60TN-CM_9xt4vl63Gzds3uI-3cZr6kDaB_KHzmGTZEDstUdPdk-l4bz97tWr380blsg15QsmbRYqOTuMR2KQ2G9msfrrjpNs0sqePKHLzoEczJKymqsUnGMClZ38z2QGrEdUxFd06D8MJO35vhrq-zC6-P69b2aG_FaUzAaftOGdkO-JoWO8-mpi8NkcvuRNK5K379tU964SZ6ioGokMbWskaaPCN2URRDPPl9Yjp2qPFwpnP1VyihwMOnUqRdTe5NuKnMwLvI1Q91CllWWRefzOPkqCuTTObmXBK7_VZtnTM2sHFiQQHd4xvz4VVAWUiOIKYy6FoRGZ1GNiAbkKJ06k7cO1puucPixPn0fc9y84CbzXaXUDcp_QZXAop9ZGoRW3EF5_HPXI_CqQBhndGKm2AZJiQb2LPk-adYQaHaCIKyU7d05YB8uc_xeviQCVGB5YC0J4sIqYusniVxiUwY9FTD6pYdk3j3DVEhiqJddk3DLsr5i1FdZ5lxNX7AJHd6Ie6Rxr57CqSqE0JtwvPLXVjtZXp1r0vMDFCAYY12NZkTOG_fGWLWJLfIwlAtSdJwyuNgD9vGuThyz7N9HLdSzW2ZcbjqUHzfOQ7UI9FovSw2jQJCOcDkQ2WH9ZwWlF5PbK7ErAaFVIIQxGPCbVSSOJKuKgoAgr6j1eUM3ju59U3pm9DMSFCVM14_HfxCzTg1xM_KQEockUB5TISHixrf3wVzMNtkkhl77SFoCpmFhJeK9uj0kE9ijvAzItgk1dga2vPWW1BGxctw7_ofz9DQIIt7OciDGL-h-93blRweOm16Sm9DbPK3jdLvPS-wMADo0U7wkM_FGj1iG9r38c4loIsjhFbRgZPaYjaU6bxarZlLFjA9ceKA75e6q4DwTUD4g4J3t1Y_fFT_E6jRjJXiG5FDtgEw5JGMHkWLmM5dWq3jVMz6K0xg3S8npND7TFJ_GQFg3J-KhIEDfwy80pWtlDGxz_JPmTmQdEKvoHDvUG0vOPTK5mShCpofQQB8qG-sLjP5Bj8LK0pC6kHSpAKpYrp5p62moJT-W6xvEU7_kC2ZeFCk5aLORahWffmDdE9_sHTEJ_0PbAx-o6Lj8oJz1Sp_bI0s46VuZAOrf-Ml7qK_f9CeGj1ORnODbtRH9TxcsQHP8DJJXFbo-AjuD4h2OXUF3bVRKQSE99PSCCBxUln4BQ4fjnM2BP9L6S8GAAUWXdRm-amprthSgevD-ytm49rp1VKQCPiOKRJyYSkHAQ99LpG4NLtxDWnKsHCg1FbPok13AuRnNZgNqxTjyUFUSeYoy4NTk2Gy2Aw5yAwS4Rkp74Qzhv2kNZEH91QjQ2VGXKBDwaOT_tYNdA2wIIlSbsQLk0uvGlu9iRy3ThxWPJeQH1HRt35FZ6RxfLOH1PS7tBRfKQT1oR1mMsTPttDwGqGDnrptL43srkviE-pWH9kcoOUHPTHqmNz7ZzgRHOlPr5uXNv6kn-GgrLrmhYJuei73WLMISOAOHTy3DXmXTbN6iZzivfH6ejt-mjvwUGYyhSXNoDo1GKeVruFbtxyXrvm1IaERgfzmy-2kLnPDneqlFniFzUV3ebGVZOULYJaWZrHLDIzWovqSQjfLqYr-Hle4EPXWqGYy_iVhky05agnA_-m2VOxnSlkgYbokg-z0c8T7b7pg_EhEF0I6BrfRV-T4tzcwOKPseGvAu6Sb-ITooaZU4kvx3xhbogJ6ipkvsa85dR1JTSOcdpjhSvInClLXDx4wcHaJp67BjNJUexHyx83hZCKLYgswMHmk5ALztHsY_nAmgp9UILVjLs6RtfyYhZ4VEal9mspX_vqHrvmpXbI5m_hVR5shQyRx7mswyeVGIQx6cUO3yxyQrjKQMuVHzvO2Lpki5QE19g0UtID3-jzi6OKCUpwp7-paS5659ToNJd_gfrq6R8exLS71rCGPKwncss2xRBwQfBqM5ith7QL4jRZ_eNGfdzwYGgI4QnPExru3swurmYER5gQ_GOOatnwXOMs1NbEj4e_Q0sDRKX8NHgtdBcL0mFfdU2gBqlxexpFk5M46kqupWPgubvXHs9utrcuv82cIOrB1ho3ddSwc1OhLT6VabtrR1k06Uax5w0U01j1vwIFJMajpXYGzejeI8JXK2rWMLzV-vWUAsMymnbcSbA9jUNMvobe1X4lCGRYSFVHTpQuqcGB5ydWukUiycV1SZXD0OPAtcYV9sKbV8eScimKEGsMqc3d1Izh_jkWqnf6_CHZaISVBSdLX4gQ7gc0bsPO9oeXTvz9spvp8RGYRmTMoxP1q4qIxs1q3SzFHJCxBDdYw303Tq5Ecv75I3eRqv62mF9s2Ae_4XSjfQqpvVSEAYyx22aELTiWLpnRCQKOXeKlF7CabvPmEsH51BXZN-6glQH9JhpbQMIGLjeG0Lt0nHZvj6vcKw6D1w7XH7UKucAyAkP9ZhUuG5K6NkCpDM_D78s0vST9afxk6lBwRAQCmsys7E1Cleyqg3BT1f8QOgn7vnKLe0NKUmZzgeoihgdbjxpM6fRut5vw69Ev1Cm8I4Gwz_JqOq2RqJFqQ9CP4ue2sfHueO0AOQIySsO8F5_cBiBycKziDy1kSg-XwItwyBJ2hprq0BAdYgCTQXbuD0Zz9if6qwac5ddoEs_TIX8WucXxiFRF_wlwJTixy7gEkWYM4Gg6w2s6FdYKJ8quxaaeLBExLwwgFXOqyhQH1Y4hECOF6hfcQSwNC27C_IJGlUcFACpiCUoFLFZPazieqD-0Utu3WEaHXCtgcs8TRoutBECSpLwnu6gIBQrkOGruPS1ZiPqKzE4oTjlyQ0v-PBw6oYUA9jIfvEr7VwmwWs7asjX_nz-9oydFZo2rhJLxy1w-1c27VPqstAje5UtHehhHe8ZXzeKoSGHW1fIfLZppaBXc6_Hrffkf2ikljM1RkxPeSqqtIbGFgN9esn90JdWbHdNz-ZTQutL1BGb2Kq3JShqOsmujUPsNkQg3Arny1hmx_LNDLTHw4ly7qsdDLDaex7cwvFiMw3nplQlqXtMeaaFjeV5Y1RuX54iO_btboqLY1Oh9L7_zygT8lPR7ZV4OVc9Txzlf4Cqc46AP8a0YjiIP78Fj9NGRICjZ_s7JAXExewGcsLF0GUXatkMivx3XABN8X4jzeN9QtB9jnszjIpiZaRPAI8Oe9GTqvq7HLP9G1ClE8L1fx9dZlSz2cJyybMq8vYJrL1b7IppqeXRlfak7HmaBoTJukAILFiG-fRs0L1wg6Z2c7AL3vyBn-ncRGxSvLZ0qAGIvyi1a-_LvO7BRgTKaS16Kyo2__8MSrXuXiP0tFQD2MyywNFbwqpF6umUaQZB0V-ovA6UrhM1fKKiDyx-vPHqX6jNzaZgKMwCt3AsBLODlQX7eqXwhC2r7KgVmWXSRtLE2AW5BiGxwquDytZhLSt_GC2MU5q1B3Z3BNHUyF-Bo0NaTe1Vevb-cxzogiOLqmz0rdOV3XldztwbQeqG31l6uuI3b-TrID5twQcRvTCjLT9zEyua8eCCi3p-T7I-rtpsskU-nCheizxt2SjI_PQna69CAEWqAGfPVFiDdee-hoLr8GU85c2WzwWB25WIlTLI26x38tlwSww8UU31_j993_XRoFApjmwGXXOoRl5g8Hzojb2W71NqLLYAOSZeyJvJeaJ62mHepa6S4kPO-yKmR_ixv_H3TKaQ0TFwMvrBIE3lnovMHrSNVoUD0LCfU_h4u44J5N7g-B2j8D4BGX-R5I0mHB20LfDg879VyAW9n1iYHLbVbxS_1KiHxl4x7zSdbRTq2nKjPktDFwHKR5jxr5LhqQmnTk0dFKmEVflzZEzkVZPL-r2rDde-bo--mXeKcRb6k4-bSrOPOmA9PX6qO6t8oi4RDeSsIG5DswlDTuG-g0bexBWlM3S0PShFg4CtdCUFLhHgb-9ap9RqQx1i5nLNgkiKnVm0yh-1LMFv-sY1hqEP6wU9wxahFaX4kUZzlSIppn304JKML-V2foRdpGYYcvvos0t03CfdgQ4CppcGbbBxeKiqYEdzJcJXl3t7LLLJ_bNssJcrXbnaRJqnHldJF9p8DUed_gC4HPTSOLUZqiLO0mBld2Aytt3vozTHuVIY5OFq_rwxmTCrrB-NuSctBYJ5usJB6BH_DtqhlyUpwuzizObTzREqRyk_vSEiF-wexv2RrTSPavek64LP_6xn-M4EUndqURFHggbx366kTMpuGhH9XKRBs_QakuEhqdz4OoYKt-HxA6BcgkZGkxgtvaYYL3E9UA6Utp6lK74CRwPHofqyUrLhfN6dLCh40jWf0aBZsx1hsUfwPyw1_5nmhW5SIwJ7H2w0iLVizBs7Ysl7szgqbIHi3ef5iJzPSlid59njaaUbUPCT_pA2r6Z4QorUItby3eH3OK67XHLoGUJ_ybaMGz3bUU0o-b9bpmje7wimpReocub2mZzlDqsnVffpDC1ty9GLhS0EanWAmJzlxKKkRtSFujEeDssyVlrmqoaWMdxIV3qAoS4cnZBMSlpbtV3oYUPMOJvqCSEvCJnIF6GxixatXOpCn23L7p-f_Ibn-OnVYtp70RUgczWhWp33nmiersTqfEhfbsTZVJzej19-WmOLb-38zhLbO4Gv4CYc4dvowFuqTHz3T8K2azkwcssQJTZn9NmvVLe8-zNitrgbrodqSEEssY3ttHyfmpq-DxDolZynJiOay_2VEyisITUGuzd5vern2lMAX3JP0Je81KLp4xljvg6eal-VZTKV3twZChJhrIk-iL2RHr496s9Jc_q6Vn3W7q2HGLmcjqq0zbcl-OmGnA-XbXAf4ieYQoS-kMqXFmnjfCDoYfApJIoz--G7t0Hm3XSZI6_JwzS8pllQf4gdkXfTQOuurOh5jj0jPximP-fJujXt8FBYgnnMpSgtzH5haMuCUGS5hc5T9SZm-3K91YWQLtpfNrpk07is1BN9mi1QTzaud4M9KUZyB2ktW0PcFzlWPZvvJPVq9DcSHUV9vCXFwJ2G_MP-GquZu04BCDDWZ0x-0qiZB2tp4AYgGopWiGxJmQQDt2YeVaGcU8TPZO9SZBG7LB19aHJeDMhSqdazkACsD_yJr_F1CjkcXPMEZ1FT_ksen3ZEVagz8fL9aGrfuTnBAeFEGmc1xw-RfmLZxR_NcEFWCXhhk-m2hJLFEkQhFlyYrgnU0BY1r70KafVKLSKcG8hrVHcVyJXkwAhX0PG_6oO96iflnYeEsfUAM_-srECB95z6dEAdKhUyWr1zAJfXzarhdj_CiCkYybCD32vQvz0h0StopEw_0wL7gspAWUauUyyZdvOHLIFZ1og8A9jZpNiNeXK7u4PYEFtzmYm_23TN4GuaLuW0eMSe7E3Zl22bsAMd3kLK-vLCvffP2SFsgiw4XNvO4TGqDtQjADeBVPAvf-OugkaTGxUHV7UuZbq3gJhKDoi10rQ5n1EV33WZTaFKSuBrCJlMOVCY65dwTOhfgQvJBYmm4QAEZrcOfPGwGxnrERuXryGZvy6a0_UYad3chjqcR1MygTnYev-rwcaVkWwDYwqwTiEHKDWspkec9OnptTLJvkEBGl8jCWbR5lfhu7U9UNGtypqzRuh_4T_zETr643NacxpFU_AUbDs3qfpqTFwgkFqdvi3dZ4ZQYJPv5w5B0984q05hM87oSpdvdHmljL-wyuHAzSKU5Bza9A_MhuJ2lYJGZXMwCNNmN-DQ5clzLqrKffXFxzpOCYyPUl3PfH_iZmxusFPnUqltg5cLuzF4Bp0PPzBaYWNCgw0cCjiVVeS49_YM2M5fur6m9L_OCVsjTKx1QVGLI85lhgIg5CylcfHIA1MiLr61DYvbNLkSnyQ6bSnV_VvbgulAG0GzPkaeUdumsu6hjgOvzWrVTnJ5M3qlanIlqGYaMyYMEo8sbF2MinCHAUaUsYWThOHpcgG7D2alDBSod4Uw-WYW3vsm5e38nMf6riYmJLrgGwgEYZioQIMVKcq7icJNBcql6LogVRhorMO9lcpPc8u3Y9v1JCGqcepU_ZUuSrVOjclsWr7yIEPMdsyAxVjAPl9d9EIhl8sC83QJHjRYlsAqY5zSh_q4sZzfUFXcTP2wsZcvRliRxt0EnCwPB2iB99jgrC293FTm2ct-CjOoBZRg0qyyNQ4S4qwIm79SmsxnVIJ1qUG7coy8n2KT2Gqt6VTFzZUHiAxi2VywU41ku4VB0Vjn1UC1L2u1cJOdg060ULQakmO-aQ-MMG3e39SPHTiEvAXyQe2IlIXmsktz9gmex6Pl6KklTDsoWrRU_wiMyt3UluVmlUjDfherAXZVgCl7PN2lLs6k6Owvj_Deo5qbTTpI7LgS7_ojAVJsFyQU8Gtu3CGdWiPekvaLPh-33CPnDxRc64ubPSgfuaAz8V3PsJ0S9NwL_F7d0URLYbudEC5XuJHvN6bO0NsfoaeKw_A64kgCDhacosbLQzyM7uAi2QW5IOhMhrV1OjSavzXwTEGZYi30wwAV5tS5ngdi6ZWzTqunG_JPx7mUz33JCDhWA-HSbEHAeyWdsdMoEntXU4B5vrxLVnP1eP3pSUjsecWZBgFp6WhDA4u-_v7HhK2Ha8j75p0gm2c-lDEVN5W2MunT8IuZWYp6Y61eFzAoFQrdwSKuYiJEVbOjWIG8_HDoKaBOtzCs5jIN6DuFMYtDmkTraw9AK0a5IDZ7mEcFpX1q6ZXIjaoziEVW9e_h42jDmRPmg6EURdLLT0w-fPmBefCCLHyosb9A6-eY4nf46JjjFnUw6JN1xWN0j7nAAJtQWKvws0rceh0jVhTS-sLsTfqj1GbpgNXzh4KWWQLwVx-BB7yzV2UOx6o0HRkMcHUVX1xK58cQwlzVNfYQ-VaS2SY1Z6qPtTxHUqy_Lf5ggO8VVWN-4LQo_d-XParEy7rxNuuogGIUxNRN54KEpiVd9k686X4docQI6xnQYQImldxFdPfE6B1RVsIZIB2uyFkcg2y7SNOHgTQ0xC_JdAoxJE46aUqAVJ9DcF5q8l10GGUAWL69d_bqsSA_7gGuB8diWo8C7fAF1etbd4L6vkI8Jf1DwZO17J9ubIvuUZ_XPEpihLBf_ob-s-VVL2df154pWzOVmMo3CFlv_ZFlSUKGBKfnVg2trkpf9Bh_mTrXBTQpjEUdDGrRTERb8efxPqoBx16tO7SlnAYAHIM1CEniCdI04iiStGfoukhmiRpt7yeJG1Yf1F26iArnU9cBJNy1yz02lNIrc-QnWBOw_vvQB5zUl6SoDNnc55uwE4lh_eKAthlJGog8FtwA7UfCAMYwjQ3O0sJHl66taqGbPpz51Mv7vuTF3zV33kwyeiTT_9VXsq2IYf8Y88O9r42F3uoZApUQz0dgVW5ZOPWMAUUyBW9A6si6-meuWyiixbEa4gGE1DLXB1ByBviYmojEPuDwIyRB_oLWY2IAsAksT8CDXU-zA-t8oFPIXbllkmqSW9ZDhPhwT9JYHw-NZ__sn1ykNBa_rXRK_t9LdKsPfd99RpuBOOCgdt3ua8nyTVQfdiuUk2F462GrxFU3lgXxAN2FrstgeLNC98AERuvElI99c8FOpz5JmuIpt9fXWEFwoxd5XWoxQzGhLMxeaHgMCAC1NZkSj6-ZMktcnOU0se2cW6AynMrpd40PrI-6bzIzbDxXkPMNs4y3bmGk3tMVX0DJ1lKhd7Qgz7oU1gOVBVvIeyCunZu5ZS8qJFYnLzZWjyE2CtYEkKfFGhhRrzjIE4BydQhtcIbQfU1e4RwyMclVfoTj814VumoYLOaRItmawGPGJzw2niq0pkdC8jOtKbdzo1mIOBxAf8LG6vVeojMJUEsFTYg4_w5jNPVVYLsBamIG0Swr2SBAdF8dHoWLSaGrTnZaQO-_Gb0YR-mDwXWKki8WLDnLA2IGh44LiVURILf90oFM213X7b2vYkMklOqFOkQQmf0zOxEBTti97elHTC9zV9W5mjNgUAzrxCnBhTrJqtP833aUYa32Il7bNEZ9nNnalX1dSIUfLjk9YDZBshYO2cBzLScz0pOwoVQjjrUCATTQmv7W9ODR0dEs8r8MbO6s_qFts4_A7EEwAyYRXTLffvCnh0EngKwIK_jy1mNVAYtFairYF07BwPw1Uity5hF17yJXKeZn2j_2QPtZ6SjsStntogW05Wj4E5obKybl6TNzi_7ILDYg1FB4ok8uyOStZvQD-rtrp1WpS7q-hw7dKJoZBOZG6LKY4wrE1al0lVzSXwLTMWJdUa7nonplqK53r6pXkjoPg3l0yyGWJqqpzIhMSvWrJmzEi28k0cz-WiAX5Hn9PUJkJoXNi8xEz19Vm_rCOJeN1esQo8ODxUxZcoltgo9uqf9JBgPQzpV8NS8IKNdTCcRcrTqyQUayxWE7ABI2eVuny79WNXlR_tVLRtgDOV-wurXEDo60N43PLm8VUZFtd20s5MNl7ZBVfT6jJuwiKijhMwevJ6OFgxHyFvIFB6D1a3WOcVZ3j_QcMSu8CoSq_Nv8inGyEHNWAM8YC3Rx2FcjH5RzudAZ9njDYiH07UI3j2l2WcVMvRILVtYnIvVFFZ69BhJp3_RF07i2RW5AgojD--2oZVuWssiKUnRTUvqLG7WErt3Kfjt20ow3UhIu6uUkvQiQiGVi_dGGBB60hukFRFn4SOdbeUsZzCD2ypq1Iz3gXWtcHiwvzOmUMse3dMFsEaLjZhsgMVxOKdkGwBOC8bBCibfK_KbNhDkK_LkYpMhqgjxGPgcBJ2fsOFzcuuoYXnd_f91hq9L9n5qXxF6fTS90QfWYBvKHQABMyGTnjZ7B0EMQThuYVIhTFdhkWo4JXKH4FYcNb6CpueyZimOXR2Lpjkfk0GGIk9XoLdg9Xp1UFgmpJj4b57-8qZh-0x3J27FiDoghaR5w3pCGsY6SaQ3re_OrLtnfq04JwMijh7n3dPJYwc93kE9-r8Tnv8QSCnwR7hoN2oc2ujCqgB91Q1EHELmEOswYguol9DCTPgtM3oCncd61Nn8dV7KSGLjTbh0YyU6ZE94j1aWHqXeChMTzekc4H3NEoN6xyuCo63CS8YsfPwoR23laZFJ8iNkW5N5MhR7iTuJpwmIspedHi5pFhcBg3MD25Rk8hM-ySGLai-SJCcWbdCQBOres6_2hjuII3LHZXwkVnr1NpFjGo5bLfx9f2nYrX1KpOOMa_l725al0khj9dbOX0CtSrwkYWMvotUEv8qx1sfhqCTHdc1l174fuR_i74Ofap-xBAyzGLvgywJN1IdRpEhDv-p2045UQfN0Pn-pyUP444qsfFZd5SVt6uPp_UkF2ztF8AfddaEx7hDIbl941NaIutMhZlWy5EuEvcKEq1h6yUWd8C4_e21Mj5TIYHlMJmhLG-I9Ei6ToWzTSM6lFlrG3GLzZKh53-Q9ihZYtHFXf0Feaqlbqto0x6mq7ysgV0hHV1np4TOPh5nbY7n-cw2aLFv4OHwFUbwE9x5lvRGhHnWi1aotzdQ2hVrjbhkQIse4Wz4hnZgPe2bpR6mJgoXp3izYyboXQX1PpBIqT9dM1WsF2uJ8dieMcD9dFZTHklTndj7oI0JZLrUtb9_wqUmAKrD0bVwVwy-4vk_OHj08GEF9xpdEf16L3OPrihkeRMDWbuPzzCf6npnIPxJeF_8uw2urYTTQf-q3LBdb0iSIEdWNU9N4Lfj5osmEgB7jOJyLLMWJbMkCrR6LbmLKyac_RDIldhw9CydoSxR0CqkRKx226IVs-e5r582jbSxavnTJCfeXaCr0f1jSsi-Un1acuC8K3g2rfEvzwPoY1F3EKVL2EdzcOLVAiI_tKebk2i2Vgpx_PnNybcUXJgE_GmZ7NUv4p3jOT3pOCbC7MI4NZ5_p6xTT4hDJaUo92zxzY0SSoW5nwVei6qkaDpJs4fKhpMaxVCZe4uGDhcq_NsabTXNTFnwV-HDYrZt0wzfRh4oVEwrrVMvfV3hqJs1lA2uJFSLjDextel4NCZ1E_SEJ_ePc5ahN39RiHXsnnXdUt7qxhNj0wVyQ6ycMa0ZWmpy96CIACv3-BYHQxBtOhAIINMBz8IkNUJR_QPBQZphWkHQ9htxhp5iPUaKvtfVPykpwBu2b4OQ8jE3DY7aZ8s4nbblGT370zzjWO9wiNIPhpZVzLpnNEfg22dJOwSCp9_LffXsSzu1QCwALKVJLq_dxf_fs4SAC37OY2FIxY-p-WkoFrGzUkqKhbFqdJyMkDDTLUerJksOL_jrGIPWS0Xc9sovHDCYQ3moAz8W0BEw-dEHJSHl88oR_-ROeKZN-R5TDrTeSxodZK_xuibB6p-hJ9tL6zHIdCydJXL9bIOT5Y3VN_KnoANJ_w5Jxbf43n1M-r9Vpu0mCp7UrDlFP9gro_K-TVOM0EyL1KnCfEQf0KaNzbsFZO6qWaP8b6So9pGHMhyFBR5Ri66ciKWYbrqRMWiRLolT4VUgj1AorG5zxGGrCi9hI4qdR5nwju2cXB9FOq385vZxpjWzyCrDEZVQjmXXIj_jIcdmk5ItfaKARZ39O26P8SSq_HbsSDmAugygH2CDKp-hgxfdU5O_jqeUkNOWn7AiokTLXbeXG-sxSHGUJOxYGtYDUVbwWhqocpzT00-uQHppWQZxj8QTLMRUDnMN266HurMOGzMvFjJAziZj2FJb1rVj2SKNrX5aljf_vYWDzms3USlmMYhIoBviUcuCG--XZp_eWR_EL1W1W5wjqqwdiwsSP3LPnuOLWQeN72ZBkOxYW9ee7Lg08-6f9U9uxFa709x4L_pa0jRGY3SBL78ANMb2Clq1khHBOzDVAMk8aQIMLTxhIuJWzgPUIwOyEO6Mtd3STjPNfgsOZZPtOMaDJUq_yhJxfjXsKOXQullzNHD0KXU4WSyvV95ha44GNk4NPVkEZvj4mMjWWGVVeuowu23y4xoxdqIW2KATtSl-WCg0OPXxbPuON94Rr1-Unojzyc3I8tCtY1PRboNnHbBpGyAt-aWGPK5gTx3LJEXTyW9ykqdQ0v7QPik6MCOxsMSDFiE-_TlaYgHD7ffTUg4OmhrYff9UevO1svFleMPz2CUX2X-m-sKAbFmNQ5a9KHVcTji-cqX1HbXG6vhENcxX2CNDts2rXuUcDLGQlAbd9BcO1tzErb67iEjxXIBquusICXH7OOHEpunKbyEJ4Lpx2SMyGKQX-Up8vVByTMC-BM48ocMwsgdl2oVzc001KaJ4KH-mpWQ5hYrOKYZwhnImGCIs0x7-WKYOlpJCSJJj_InryfL1IfTGE-dHJ3N_2DrQTg-29jO1hVBCRJaJYPMxcdMepz-Q8eYp5BOGrHyLmPqa09i9vgF7n1JZstnwpboib017Qe6naOj-V_XJXLFhZB71Y-E6NRX_LhZ_rgSsO0yuy9r18YVgKDdDiOrxgIwvgKu2v9z6obhwVwmQN7CNpCN5KbQDa3ncG9k17bK3zTUNK_BuOH2YLxVh18bHQ61QdfmvkLySyFG2nMli9_GVgDvuF_-xmC-0dOPyCXJSSea7OlB3gSkt8cTpu6mzQ1Kr8qr3kGb2KAz9PPZc8oNCjgjhofuzQEdXY9WkjPyIsnGS0UNuaRUSnKWmAyk3-OqfNPH6qa-Q6L-K10rS5t-qwjyzeB2HlaEbzl8gDpD7m3HFFh5GGfl_z46U4ern26EvAO1CRiRDqKwtIxhqZc2Uv5gzZXTED53b8Bj3m_iZzHFj8XleMvh2wlAbttKP5tgKTt_Sg5BcvdORWJLBBzRg0KFiiC0rd0Ry92vzAdPejy9WKz_Njxr9xgpt69tnfJMnp1Mvy-LwxBh-K1yICnaoc9upsqabyZlW5LJA0aqpNXQNP9_LvjcuXDIo3ZNOP10uqF77Vvwvix0v4HdowSuKG2BxN6ZVUNfzMe3j8wSyLexDfPK8y2mOA0jJIWTpx_1eNQT5VJgyhp60cn-RA6u7_CTT8IHi8fK0Ma0fxFloL9GhYfYguD6E3UAStn1yjqj0eQRSDkIaEphsDg9dGi_phciFiG5ELKhg-QmMD68PmBXVRH5XHYa39Q47sbmCwRnNMSMxGAm9NjX_x1-5Ei9BVaUGASWDkNBJLcxc8zFEhj5eVUwAjh8uLitgJpyqx9aS2SkaWpzfZAZFATAtLH95ELpBflZp2idPfpAqm2DAU4RdnFPynOxCR5Rq40obgRL_uhb9of2qvlIFl6kwV5EC2lf-qcvPCxdEypQMc2xGB29rh_CyJYCjNjc9fTqxx5qb_GRZNmNsc8DE2PPWH_MdQaW-iSVfhWdIO738WKzLfLol5s1sP4rqMsm4UrYiLbFF_rknrAEmjjXweCgmwUCfiLEu7bVIFsecnTG_JTHipUvtiHfdw_RCYn9z1FNAdEeWym3S9MWDaq28BwQApEN0-a7K5Bz7S2HtA-4kade4ZNT5MKit3uQoSB6REjSPyDOKxN97bSsEOSISBeAYtsyToag_oqA_WIg-2H_LpasBHsHQ0RkuPwHwVsP1qC-W9V2YnKlBEGIBWwlttzpeS9V3BFao2qyKj8JKiFsr5WzTIyIwXTX6j4tDHyh5WkoBLakxewXzTM9Uk2oatzT1GfqMCnSB1jz29Ya6qEhuRTvGGZNFMUaKxcoQzob1YCRvVaxLZN9OjyezKppWzt3i8EK60ljpDybuH67QQgprLv1rWfk47ghTgEJMxYMobfatKgnCFJHkjh60LX3ZS4dl1v6HqlEMvCt1F7VQ68x1dGSQwLQNterskKr_3F9At3ocFDb8pxyqNqRg8UA0qH5BR1_wySkKdMyIUczhI4BuYzHb2rI00Hc5dJQT6QxgAh7yafZYcaBKMDTlShvOsaiRh6UK020WsFWee4M7wIVzCaeco_Qu2Jlhkm89LAg6VE2ffxfOyhYuDISzww_12Mc7akwiHmBq7WUEAJD0BY2SP9T7YtO-nJ6mFUNJpIsAyWb0FHXJ-oki58GbuKiY39GFWW8-IZSqtN3zeyRakfgOPaKyOO39I6nLRdd81wUu6A2hjpnfiouuVQE1DChtZMi8LacU_wIS-YmtPUUnioQq8G9756WCQDx3jivb2hcqDdf_JJyjDUsZPwO_KgC9bpH2htL24DkWSBySnRvj9S2A3_X4P3Don5Q12O6JogTHvLexP_0OAIrIUbaao97Y6UcdjEr6cx6H62IQAfLV0ZSmeM0k4E6SjwwTyDm8h7FkhOYInXwwAOjh4HZngoN7RrCJ_a5lZLbB0k7r0eU84N9OpHKGka1fwDgCDzp5kcpL6UdWWX69WwsUjqYhap7tUIShOc-hmuYg2h3QswTth3f9VwoRpChIqBubfoPDR3Y5d3ml2I-Eu9kTOflH5absM3IAfzO3acUC-H1Rakvy_sL9XrE3do1I9paYtYi5bgs4_Oty19k-4vIC25G20nkcchpsILFUUhB-pgq2_3ZNecFXa6gzd1KVzWYg4fe5M1ZxDkH3gLfCBX5wmUmmI7h2tPiii3juZ6lsuydnCfvAj2AeMpT5dkMhJFGoX0OiIjbevR357nFLpI1tsY03PWV-ziMf8QZ9V_Cfs03JnFVaNiMoFLs60eXJyzpA6IDjcA9GN_rtJPRg71_XX7Zo7V8FdiJ-JaI8hxkclA7bI_HOKdyulPmXHhE6NRaLyIrOQPOrFZf_DhKa1Nmv__3rY-Yk2L149LFeqgaMTBoeuT9WSv3NARLI_hvFHjE9x7Tvj6SX7uqN5NbD6SkHrDYMekiTZtzhxyGsm8NMLdIaVOuRd8J4F_U95W4f6QWtcGIJHmmMDY5dw0spMdwy8gxVq6ZjXQfRN5E-bywLh2L7j9zXz3IggcJwWciGIUfUTwqdQqhFewpSuYrWxcr2DmCEZhg7LjaaXXvkD13Tr3stY-UfykjQ6uf3F9rb_5_MUB59FiRVkV9KMQu92nx64Yczd4tgXvRk2SaG7Y98CLHNPWN2ADXWvluqGBtekFxXHja1sqnKfbir6f3ocCFNBiIwuPNL50_vGScPvuDZgoSJeD8bBD5cUEWvsBEyvTaqk5Mr0VGzLkxWbQiRS9fM0uM7Dxj9pnWSwlFRB5T0arUVEtvhzR2MucU4AbMkczSnTcXKJLSTY5eUNNv_g_sZsit6BKLpx7qiZoVRRwcuHjSwWM6ZmiuH0F0ixUxsECRM4GfaGgy6VzHAJicvLl8VkXtvpnWXoEPrE4bwWg9NIuuw4125bKwCpaou6VeNK3n3bWScMvJXPXwuRAnNCodsvE8wYyFObsCryd4MkmY62swXInEEWe0DUx5jq4riZfF0jlsw6o2WCbiCTsicrSXlsvxjEeWbp8RDPqg6S5F4O68EPM3FCvL81Sa00oZrANPqBpSgEP5UOv0M5iM3rtmr7OcS_Y4wFMPRBQNf38U_yDmejE4m-I4RAWZIkPaUCx9MmZlrFYA81zEzOHWPDs3xqA3xpFjBVC23yr6V_-wBixi_ubqd3MWUnn7rxSJV5tI_U9QNnzkdsQoFfnmR-dMQi8HlBwLW1FM6ElxNim903tDuUya8th6YpCVuCbDoJBiyrrw0-tVxmVd9xHG81eerF-hd9-nKy7EHcGVClizAC9LyEODyNHgn6Un6_3iJ2OUe8p7fByx7Z4Z9rCCXBw7oIeGfQMqR8sLHNONlhIdLnfTnHrM0uuMgEel3gJUHQhMF3U1Ip56Cxe1TJHR8KJVfjTdhYu-q-9enCBvByCk-HEAIlbpTqUzoWnBAmy5_JiPguPNQfbu9DWrOJpd4EKYrlaIlDlyBScD0IfZdZIpSrY-14SlvX-Y3k8MhmSp1_Uhtf6dVPW6YiwuBt6f-ldEgOyKF_WiJoQrVbrrr17orrvFTwgNhuc6Q0NmXwWhG8XcqrTMmyQ130t6oLs4Kkv_9BBSBM6fHXZ0zamfXXfC4cF3katA6RrL50hcIqxz3rRdW0eiOV2baIm2Qp0XA7kYDI4LK3A3g_pDadj-MYZLRY5awI7rLHEcdqf0BZoERYm0XF5GAEKV1_X49s_F0GuQJV8F5-9Wh0Sca_Gyfd1wTTq95B30f4NbsS07kZ-rZVxA7N8-gkDjCrtlEy_vndrmTZg35x8IToBvxMEr3AaMH-Qv15_mECCAhfOZ3ttt3PYjSpt4sTyKw-6EdNEOEXuzTpAMJi_Fi0l78KK1m6Ndhw0xRHsMQ1h5WfV5KAvyuyoJ9T4Wwjpq5PdNL97quM2Df7qtKMMqfrCxEYhdthOSMBLXZxBWnlW4R4xdWhHzWfYe_1ISzgw_ebO6WBRGOiz4qHKtYkhb5spIzLwTkvDPQinm_DXZm88hSCiCSzLPNcudQTaGaDcIxEL_Ow5TxCeiXgMWyuh8lf2_eWQFZxrYwT2hENAXC-pnX5tEwWZTAuqHdDLwxYRufX8Zc-EDjl9kYEBjSeNlJFLFSCleYrsMTTLNyX7N9UI8kNb4pQuYbL7vv57xOwYb2Zdbq_CN0_L3sIeKPARx8dmjRKyiiBcrewuxmn1bwKtjDcqf8_EekXqTRwdC4es8-z5n92zsjZkVIHRdt6-zKKUWzmnZhWSaiRrmgRxTZEWt8RUxobklQeSE8CbCNA3dg5apJRtW4ej2RyvQhm4bPIC7VhdSM9Z-P3KWctQvqZ3HtwV5ZLbUAepeAXp4A8RCYioPNE0AS968qb1hJ8EIFma7-6A6qDMwF495izC05_R9k1SKH-u_1XemDzljKHTgezNbKZ5qZWaiLko3qwJUdUcqwQ4z7PprLDy1hEnmvPHV9rJwSKBHLLt8Fg6dGWvbPJfes4q4bdlQFQcyhDqbkza8QmjfSOBqcSF5JXpp6IE2dtmU-G-r-y6Zht-PXfBRZyXC3yEoY1kcFXCAixL0Pi5ysI8tpcS27WiP6yfFhjrwfg51EEsbx61dAVQcxICFWxuFmzquvVZSF8VD9TcuqcT3CtJbHre1q-2ggVMwjxrGDrHRlZvtKsQI34Jc9lRVJytGaymlBLj3EbVKTFMX70t-AmvhVaVfHjjcXjsLEHiac922HMXSLhsqdKLf4vQO4b8UmzcJmMERop94FBpdMMwe7gfHpoo7gyXUzx9Vio3l_I3O6vqv_Hs3ZaJulkymLO0WPdl8-GUFrCbeFT-KZTZeAkirQjwxE5AX80iYUn_4uzF4iojSygccDCodHPSS-UfPC2nRjqSrjgfOO7lKhZIcsMX5QjQj3xlpXsMqK7iFT8iAgnJtOiFlWMTa4QrUNG4MYavFpprReVeYsCwDLydT1MOeBkTbvO0rbvPA734qON9E6sBrQNDE8Ic8_tgoBaA9vYqQLv7mwi16a5TzUT9tKnkD_CCrC6Np-fqBPLjK2slIn_WdjNFx5OcKgqh-A072Q2WG5unECVHWIf01ZapIoKibeEBBbrTrV2oM4-hCowqOQmJ4px8fQn6-_eJgv3N0Vanh-wcndfuGfoMymz_8YSkj0SypbKbCiE-tgzGVYEse29jkD1Ki6MEbS1yN3hD5dmuUJYgFpeSIBZ7WA-wNnadmXCKgOqm2P4XD_pdzA6EE_z55Ny2gisYG9OE5LQmAYcOBn8m6jkEzIEV9B042YCpjPHfDpMbt9pQJr-wohxs__GVL_PaQAD0T7EFirAG03oxvrarwDd3B4SzwvaQpfSMtlXmsCpTpu7iGKwmbKE3IfDyQWFVSLmRnguyPyYiX6NDjg-qxJhXbofmzcTCS-auBxZ0gxuWPPc96YM-wYtg_AFUwsCsHfGOXSZuXc2WICQ2TsAKO3h3Rh_LRvT_inQkZjRA3giff0lQ-3LbieUOqkvsl_vVdlhUQNkY4Rpt-GQybgrosCgNR4er-xvX3wtOs66x6ypxDrc5jmx0eBspd6rSLUp_WdWWEwpnFqeVQ5qEMVgSASu1bSfQalRAj8l80XB3GXOoI9NBXUybexnzQ8V2Tispt_fYcn-lM7kkl_tq5PsrccPASB7oJui_p6HXoZ00KB-wtdlPfoNbOukZYoUCb18mR4nDp8aHYW3Jin989ZD9scpogMkWWsfCecZBeKEkt5CEshGmYzgflycbOC6g992nCEjlz-HRrC_XK1gbQ3MU_XickPdtmI6eaXqcJc6X8jWoJRboiMxExdwDuDlcjTF5cQy8TZ3-3HxqgGpSCd3elasnFYymvq57J_hF351AKrayflMEzoWntRRyQ5kTl6Mk4mUwlJM_peFisFb1q5SFYFd5Nm7EipVObkSfEHZJVdqZ5wSfherbm8lFTjVW_mPaexNHIyb9jUolk7BdimrPCmXzTzWc4GVX2VNSAaGks9SKi2DTPAIBGcuqs1i5uvzROrlWi6pSxxk_HBlAbKOz17cX4y2w3puLfTFV0B9NkOiC165sia4Mf0sdAo71lzgJhIpt5VgdwF6mHDFC-ex1IelcxV_agQoqxQ0iNgi_51QDBUsNNjyYB7VIX_WEwoNFfrdM6ImuGMimIMtWiL63glDbtOiAxZZ36QZltjp4bguzaXSbEX9crxsqE2PbY-YekI3_6aqbp0bqjh3hYVXW5gc1B7gtQqU_y96IBhDCYc-KfuXN-A8ovzIWHRWQXdENZ8QSJX4vWGFSG3ywIu9q4I4JPgMnVrdnQSgjooc7T0bdZ2_AXHlKX1RnY-FR-3Jtv5OtHQvnxJupIiBkBeq0vsyVyV6U2orczf6-zuy68ySbl1V9t8qi5fYkYhdAI09vsGegivSRSl6fjd6usG3hEdmw7faISkR_GL9TP9yY2tASjerLtnuERIOc4hJJP9M3KXn-H2U4lUtWseXeMuxWwZOOqopjA9QH_CBoLEqY_AjqC3gzskESbTwobOtephYwSSCkfraUc501B9dlCqO2QecWDtI4OlhqH-ZIVmvq5X8nmWh3gZhpbfSJkUDK3GJED1B0XRK_3afL2VEfWXHrgceqNwMq0fELR7YyM98G0M6V36J_KHkh8eRQei2qD2uet4IBz4TVhSxGTllPMm0SlOu2Yd61To507mgEwWyT87FQFUj3-fPrwSD_AqUrd-4qGUGaIaj2DfsC5Jw3dwBxEv0SyaFeRTTIGM5PkBb0PyrxOUijkzobMMXOyXQVmu1gYY6ymwsRGYewBMpqI_a0YlQnh9XD8eMexpQMk8OaCFY995fOykKl1WyIWKWbLQz9qXoktTjGL6a4_NfgXSe4HgQJxfEvRtBJHdjVieuKkN6cXRXvalqUvwu2ExEurEFA1c51VYfKK47eJR3XmeGrunKP0nf8xFmMOhH3fEuNawztNzkz3belG8e77f95vuykQomyk94t5zWfjVF4HCsRO9J3H54fysNlqJ9qPzqOZpB8wlGu218KcjusnbQ89wBR9Y1G_sh_6IoInSFh363XeXIknX2sF_pGifn_Gzhs4V-8JjKiwRUxVPhPkDhgBZxRUDp8rzB7drwhvjpdBWUtqM5S7-XfQ9cG2DQndjjS42CndTeTlyX82vjDsvlpZuQGIe5tcg2zAgXfQKV71tjuAfaQXdQXHbMbZ7l4DdJ9iA5V-UITJKLTLYifHi61GH7yhtieuHO9OQMeyBrCqbMdLZsEZH-riwRYIuMQEEsSiLjCXOXpwrWkReC-HCE5IaxwOyjnRJ5q2FU-1HBtIKxfPHqDmNkGUC6W6SJR44_KJLmRFR3pwBtNhTrLwTgN5yFIulcjFb8VV9zGKS5YDjUWW43zkgzc8_TUr4tCKpoWfCd1JUgwFTfFl9AqOe1EGxuSCx6_TYEy2SiKcrU02mrVHh-VBWIOFhR3bdLIP8dRQX52-_C6TuwKDmD_gbn2BKtL7bVA2Eb_NTw9RoxeeJsKj4hTVIQP1IKDPRZiqD60rp9o3Lg3UTZXQnyAGDjK7SgdDqX66N1GqOfY9xgOZLYFQSDHi9cGke7Y2knA57lMz__UZXDAdHkHm_IQJnzVBOac9UqpN5foH87YmeU-UDrX90Yr9p0fRKG4khnfqpx7XtBHnSuO-P0dz1TIkDRyonL8uChU25LOxNx8FCL1BatExRMNvwtTlXNMwl-OY0PLbOcLhVVKSMmmGjTAjrC_addhpKo9_zNo247zeJ6vwFZbJseQiBHYKsJDl0l2ziM5XK2asB8UNQaFxuZ79bal-rjNq32hh1zrgbHReYTyzYiwuKQYE8Qw0_Tg261lA7m9J8trkd1ly7bIZ8PnFmtMqCnR_k0eT0PjEjrl2aFTitXf-sQE-KpvFAYqGgwpEkIA4SL5NY2h0ELBA5lP9U2Q95nr3hfiIohh93rKyXm00zcdD8k2i-_2bJ7GSHpNBU2UPlAZ6IgfcoBMHzYjlXtEBSYxp9F2H8tmbWM-B-OVn-EU1QZ3B3mguEPOdcVbHgJusrpML9YxEG-r3DuQwsxSjBSlWkcq__iRoL6NI_TN6zkwxZ6qcsI4WdRrlyhy2ItGfsoz9l7voFwNfGPIzAslzDvvY3KwUwickEFlEAZsZHqEJ7HYtIdZReXukytZL5r2aqFzlzNhzQNF4sbdfe6YFt0esh4a7tGvfYz3-YnmibwiaA_SDNMDDh1jybCcYdn5ekUvJX_QTebasFRCVQsFMLJTZ_Oi6iglCr3-bayBv_zlqF-k9oS-NO4op3HyM2XrtnMedwfD3p3wxlGUavnx_Mf_WUGfuz4zTmDJWFBVWgd92t7eQSHo8bqcUOlTcItkGruN9M1XqY93v8XtkWJy6bXjtK-wlsP_WJPg-15hJRh1cdVTJxbcKre0k7qvj9L-i1lbpRNVp5YdXSCHz-9-kVIEugxGyi1Makc8oh6mV3AAwwWNAJACKX0kkLXVRvsxDZdcXuTpZ9Jg4hj5ADzXSpIIMtqgNokZXX4DYcWSkqqt7N0UpnLq2qfN0LzZS_UeTWyuTjHgtcCfZiP_ss5zBkprDpKBy-CJXDXk5THdrHKncIwLxkBZr4liWwwTVhq5B30Yw3WV62c6IDek7dJ9cgLSn4YNBEcLUiVPM5NbuLC62v8-090A5Bzyt1nWLTOUAaTow9upHdDOI0MFmuTqnCZ0lJ1LD47hiIz3o8OT7L8W1gF_DSj6vwh8Sj_IEq1pcRdwcML7OqsA1FpgMFvNSwARvPkdkqBra53PkIheHoiXO4EX8lvD56VvfYF_uAllbbq8HOrqYXrm53F9lWSQG7jDTipCaGNpKbXSPs2Z7ZSf2PlaqhAP91uvyfIxSOSn4aFadXhyMvJoHIVdKbQ6s7Mm-lqbI3ah_-7nNcWZy1S2T333yeyG2gcoueQn-J80CHc8546LmImvFX7HLEwr9DP-3MOC0s7UVrWr3-EOdJfu3gkzd_DgeaI3PHTw54MYC_-mt3uSJXiAfoih1FV2yO3dMfJBwStYphLUmmYLxbyVqixhcmjXqDd4dVZN8afjZTBujJArsVhjrITNxUvkP4pdjTMXrvrFMgrMT9TyT-yZYnjpb54M9lEHlnqS1cRCxX584uKcXJfvOtcQpR908VsyjHBtzw-FvnAl6FDLBfZ2Q3kjzNENmdE65eBuBGuorQnsNFE31I4hkDnAgquQNzD3js_suE79bK_E5g-4YGA8hphZEcKW6yP5TPV-jbTTIsw2a8kQhoqtZVb6DHuQjg55tI9oUJ4NFXq-Wqc0rRr3vgr7r_6XXGx9TGUKl0yRdMEgNHP0SdA-s0X7RwXrWOwP-I0SOiZrqH088gyhggUT1vKX8XkyT2rbtJWWKvfHsU3y7q8RttRzFmP79kq98pYHagXqCEGCc3j_iOiStw62IVZd7DkGXFrlr55b4tJPNeYiO_GSbAaTZA9vulAaYg4nPQEo0DaguNaeNpcPYtJvJ9JwUfa__3wm4LQc0FJ_PZP8DRHYxOThb3fJAuWA1K2epTTGM76-cat8KQWXVZo-TMEc4IR5DdxdICgSOSHJcs9TEStiGLmYrngbYpyvixSqcxkMJoeDjK43gs8Pv30xR5QH82dp0yRIURIEquLmQpkcjonnozCYPLBxPyb2snGwQNVZihhYgzFAikEBOOUGLjfuGaAbhn2g6vZrheHDpYlslGjRAO5wB1pKD9djUwFWG-ZAOldzp4EIuiXMpOPuzODzlAFqs4PTaonmmEa9VTYwi7o4UaKXxY_Ygr5Nf1ot2NFmX8Vu9Om76tvii-YylLX5MbzRQ9jcRNDDutY74WcXEhVv8mgdh65m8socya67LHN4lur9vCruhFuMMkLJ02tTnxtfVE2a2dQ3jGOrAXqu6UuyHnyMs1hmYvjTnQu8zMUqZJ8lUaOqQADUd8UeD5JK_BWDEsRhIPSoCS7BATpFF-ihoaKboDJjsvu7gD0AVt3Tt0CUwQlT6506P2G7hLNSsY2IH6usx5aj0aNRJRaNudK-1_A7eiY7Ihh6DvUpet-Xp9xE8iebWEoHGcMT5H1oSDr-RDS2karElDcfzKRwCmTDpbvQfu9eNHv-lBzxI8Gy1ZEJIYZ7VhRYubttcIwkrw4DhPzqG6-nlfKnxiiIXGc8YW5rChLFl_W_qbg_sS0UZTwAEKytyzLfXseqa2LfbozmzF1qHFG1Ml-XPSICKS26bmH9kn2_JlR95rv7xANXPjtcaltE5jXo-OyP28xwjQFVBnD4Bj0g6L67tniN4AeY2eLlLE-rzNgM3786-1PyczVijP_bXn74vZB7F7SXTtxgX4LOF39vaCOkAhNYreBWun98wk9JuxsUA5AFrMcHSnLBRSlIvkbJfUwuoWjB-vlnzM9o0lkEW5N23AjQIeq9BqzBgp2WaSJbUsmrnB--Y9XeiqAo844NoS9QhdF0f_91GZaWnKpHA-VSSFH1mtDmi5VXIPQ9Ggo1UO1xXPxz4uafme-Je59QdvpuFxB_p11CoHQ6n8Y8L5vgCiFdbbqTj0nsZg1mg2SZv4kq9P26yi7sI3qq3YRxoFBiAYg3-qVs2tiAiryHZDDAkzd5xg_HdgjRgVpRGbFUG4w5P7uAAwA1CZgi_oIesnUsbTQQ9ByqSnjUzDoAyLGlZRyAtDver5YtRGysN1Q8d6wVRxAgA0vnDVkAAlS4KfwkZKm94klk0ULyBOFYOo2aUquZJ4fBm63Yp3aqsp7iaO5b9724N8s7Csg35Wqncdm1gv1_Wp1qHItAZP3rI2fzmhztrneMDDAlZsmhD_fuyzIe1Y5SuxiDG1LKHa21wiYzAHMRnjjx5k7QqfabBG2KBnqpOOOLVz3M82KpTUT2gCZPS6c4WWfTPMopdcZ5NMybow4B9paghB7iqRELcMP74fLeMsvRt9otiIbo5ti-JyN6sFv-S7vY5Pfvb9625WaiNf2-8g8olLRewWpPF4t_QS0wgOll4nZL8sXQgVGVUF4fl0UuBiENBPbxJFzJYqaKRRpvs3899Ib9KbLt2BXaj3mndRLkrLKYGwGPYsbL21dNbIqei7p1IM0KKLE8JNl5w3rmVmbtf964ffHT7QdzPOSapxoUt3JoyR1ThdIkxJUtZQNTs7bMroSi3mA3gB7TmIMImJvnfMITA8ZKOZSxhrSdnQ43d7-wsk75Q6iQfiS-x-e14dkf8CARtg6LmWiVi5iFPfHO41_ru8LRKu9wdFbWL1Bu2NDsuszck2zWOJp_qqeuwBDpYsPHbOUxD0sNCK2uyI44uft_nmnI6qia_u-_154YymY-LBpHstvnWDjOk0Xf6ohb20hzPszwLNfVmLs7JCYabYNUP1kcakM-kGqI54sqozbOsaGkdViPx0v66lhiGsaTjQIZV3fuR_eyifWY6T4YtC37qINjprjP_G0LAkB9hpROQcTfnzC8Jy00dvm2Dv3KjZKweTCnz-L5izqSNCTHbVtQAjvgPpwQq_iIJykGCWnJEMmqGGIjgjHgqH4T4KzWg5nU4NHW0VA0okzWWWAhB7Q1IK1szTpf1b8C7pyGASkBgGEF_TFew-COiIHtt6YK4iW26uz43FNRyp9qOvZzI_imYAu2s49v3XE_NGDRgsvzRLI1ZYutxdRNus7smePfbNQ9nusfZ3odMVjL8ftUybEjUOWKBpHQcEdFik5MB9bZEdscvVvUM76Wc_YtOdG1ZtHavoOhFTorZHAAtmRkrCVkWJWO3vcg0Jfz65uyS8M4iEtKCzgMohW0aeSpS2ARmgdWySZshCkb94xos9HEgvy7vjFodYclLS7kd0Lzj41clXSU-ky02nHzuN32bYswqpLKDM92RXXC-jSgyYzZ1p80C_v7rLB-sWih7QpP6_dILxotgg1zUr25XcM9qS4HwUIM87nfJh3yX0mFMtKB9IZaUyoYjA8LHjeUrz4FJhfIhAQOIhQlA7e1d3APsNXDp7FEacbAAYhsNpJDpFrSHwEwFpOyQT8uTwGcIzBdR4ZHz-4A3kJVTB_1DgVRrLcpzfalHOXYVRitGsjX-Oi6VLXjUrt2aa7h676mfrNMmR2IZuDMApM4DGgv8A4y4lW7_TOKKnkX83W2bafCQ5y39TgSKcOIvT3i01V-oaLJAW7NLnDO2kenQr7gUILYmVxudE474i0bxN2MVjomrRJ8x0OfPU9f_L3uwie24eGi_d51198W6CbcNceZgiuc4-R7aKz9MHIiTyOniWycjvA3joBxBcCIBvrdewjwSDPwO3Ul2A3qc7vVJRrklPgnkC7JgteP3h6HGrhjrUFykmr4cRmu8BfcTGYUwZTt6LT037aHWYY4I8hj5uBiaKLxn6JvxeiIwNrBt-Z6EYtidLe04i4JhmttmZNvgX1nVpcv5o9_CWsXCcRhOLeDuUzzxPpJypPIIWBiTMNCFnZr4PLlfaPSQ_sXO5tqtAFNJM4pSqpMZTY7BZyAZpJGfjY0GP6ZNiG2gRpSIRF2wB-tK7cChWax6XdL1ifGxDUKXAoR_zY1yNKjFGkuZAHe1yfoicw2G6CD5vuug3ocaxIKOT381nBwullIzTvcDc_HY4TeG4ML07jNzw6bb7Az8T_q3PrSFg0SZIIz4f4DqnvIg8a8lxyYaDvmd_IlHdutKgYUXm78xCvPY2uWJDEwX19VCvwYg4CZVCq-kk76ik_YS3Hnmc-ImYuvRB5krW859_9uj8tN8m3V4EuxR2gav9q6dWGVG8cwEFDwYC4OpKzp-XapSuA9KfUrLEWGdZDNRLt1ZdwKrbm1Vb892TwXCUo0ISttXGkfiBQqjzpCK0SYA8k3sSchuhJZjzZB5U1aLGu9orf5DdSqsgp7j_YHPlFF1kPOa1dLQvNgNZAuzK66cKNogLv4bABE5lEuus47tDJFCIcNYeyjDlzyMEJlgxbRJgT6PSx_m7WJm1gtmiq-AfuClBHcPVbNi-irElI-eR-LK-nfewpqsHz6-LPLBsSBEjuN9uFawGqUc3xsx1dBz04uq6Kn6LfL2YWxKXQQKkZuOLfpCbxOIagmIVjEMEIb9A37b4zI4GnuU8FY84ESDxxAOueyLcnZ8Tjh4ihqEYgeUVE_1B8qRigxB7hAoo9wg40w7Ud5zeublskH1x_9aUFe4hXDOeRgOKvf5CBjrNzLUgYLrEeYqChtDwTI23NGqYm71jkV8ALCBO1X0XF8lBjGVqEBnXqDVy7BLjjeCgw0SPT5jozWBUufv_KySxrU-zTNdriLXMLQLTcMRRb1U1BxT9XMadhKtIA5-US5ASco97911pmWgaKy8fbfFnDD7FASbBnE5ktRNXdpPOsDWNh9pGZ3Lcw5EGzNxBcLRXCt-EHwn2qqkoIFR84I7IzgTcNMXTWvXq3rRerCyw5H8zqfwn8hwB_-JDh3IgBmA_oBdqd8MOVjgl0l3tnQkLq0pfUs8OkkupCuBRaclQpeG4KOX6o_fOjxdzGqyQkmEEVqjRSnZadx8zsAjg3hnFmXcPLOIxwTmX1cYZ7ik6oRwlox3epBHqnCofmK6-szW-vnQxdjycyHM7J4qeD67qji_psrZ-0f3kmIDmaojnvZaT-Pfx8bcgo_PnX2qEUJnk8skCpevhAHdxNUNXuZzZ5fds-3r3yspTWIpTF9nbTpPuiJRfZyYi8lY1a05VGyN8x3wX3hvPGSV93QhXpRpjzogoeMoGsRw57Ew8cwjph3e1tb0wJHy2tln8518qveWc94gqmskfKjoSwCyx0a-5zQy0ETXuxrIdeK9Ds_mWR24dwMH8DXMguuqhUTI24G_0dAoRVo_jS421Q6C_kCY4cE6p-guygRbPJHZKi-0dVz6QYkewNWQ-hdtNcDlN6A3ZW8eHmVBmBA6XEX5ByXxGbpA6hbtAeUkX6_6gR1lsrG5Jr89JQHVFvCS2NTbQtMhjPM1vFoelK6T92mgO0uGewNoHk75UQoDo8CRBQGvZlzlBvFK219OnWkKEdSWojLlyEjzrU8RkJdOGQQ-rdPvY8SYiCTGTDgHtsE2ePIlEjwDUvu3cOIfxzHTPLNpDOAIymSp_mkBwB3vQiLcgBgzfQZDceYL8puZguJ20Cx4rHG1mXkfH12QDGUvor3VLl8lcYqWxk7nM-TrCMYw2o2aXxQxBHWp8idtzYlKV0C05B9s2bnwsfd888m5uj_36qCtPMUjrGVKXGUzfUwOynSk-bXpoXf6dGOGy3n4l3Nxef9nWZYCEtUFSgtEZP4giS8xoo-N9RdHpaXIM9Mvi2sMeUyRLIkeRv-YuNxtTwdAWP5IZXZyTFHgga_lmp5DKef_FkRj9zad6A158GeVvK1H_yq3d_hUEKqrlzA1l0RzxdHk2T7LJsfxabgtOmdexKK3zu5ZiY1r8CGUEPvXDAL89CQW4fQ0rlAOrWjN_HPNS-keJ6tyUjOhs4YKEFXEAJYNOvyOM9frGH54HW3CjBLw2bK7-rP-C7zsylOnc8b8ZRDzOEFz-dSNwlONMBbRJ4rmAnJecoKjGU48Lxxpy7T3hMLVu-NO0ZCFJWQby4MsMSOiCYOz199vGwJkIUX8y0Xde0zIBteuLwY3jQiuzjoVc617fGGKyvzXhpmL-rIAq0I6MRLsGU3ooSTILNhRdvzj1d0XPhqFFevTI3Dtb3gNdLD3ZkmJAmMj6CKyRcVigzqkkRTwSAwexlI0wEvysPWklo7Dd9ZpjvS7LbSDdKDwo3AZJUBC8b1DxtYXFREoauFm6jWPJeTVHNeht_2wAtL6ZglEAzAEBXktWopIF_R3pLuRWrVhV9RMFSEEEDVNkFj0xTTdPXqar8EcjKBsHhCnDQEdnxLjHNddlZ0bcrZDDoGt5DXWNaW4Cne4RkEIo0c-11UTv4bYWAiO8n7cxmtkT9GECYjf0CfyBF-Z-aFRcjAdOA1nWMvdQrAaTVpMYs1xcmWD_GbfhHCL6dF5E5CZSZJFcGiVbNbJaoGUALOIONixOOFdDAumPOSS0pb2EjwRCOvoDx1eSP2TZthOj1G9PO1GKVHobSpb7fD2Sbk6ntUYAGOL8JcPAayJC4YAzFsDlEkWieQBTGEjMoskbVujKYGlFxYzLcQvH78kZ6BEtsP7Tp-7j3r-V-Qka077-RqIDs2SQXUMwtFmrrwD8LPAiFZ2UcGcK0LQzwY7Waug7bdR22eR0CXUsEOGi8fL0KMXD6VnEK5ABfQ_1Iu2dMPmoWlIrQn_bB0bk4XR8IN7s9mEYkAzq7TvLHzi7w0J05e9PKoZpT0f6dwOjIHJNfOqlKJyTvjjouAahOphFn5-jjEr4eSA4aOs11lOh1pj2x9AuilMt42Bo5vq3rm-8k42kZgxZEG1IxGZ90FW-tdKnkOwD5ttIfyWrgEpw5ymq6fb_iuR_LlPoUKe7P_zvGAevkoTc7qMqzrQKw91tdY6VlEaWuuSXQBJXbaT80ajskSTb2dACv2oDrEpvA8TgXSRI5pxSMBYrHGVEOFFGfSwcgMR-NcX4EPJ5iVuiLPf7Iq3Nru-Kph4B9qafj-lHlMaqeHeE6Pa6DLOse3CIrad2jEqjnCwBQ5H1HHsT9nop9JLkVKrO472E7mxsNNge2umTVGaLSiPTmnyt6Pa1hm_Giuw65HFMO3X-PFpUD9kR5TtPkd4pRwXkQ5vLc7MnK4xx1uK-E1B_wGa-1-27WnH0Bh3ARIZ7OxC95xVP3ReoooeouKPY1e1iDUQXeO_mU56WPbm8zumjaT5DzI5XUIbyrECTrUkhN7pmmFUiuhvKO4M1hPvR42RVJmK5R1QyLJxw3KBbSQN9EoC8H3-TrJYYPn_lJQ_jRbJpjOH721cWm5AQu9m84h4bf0fkKiB4YE4FHfaP9s4A9GIImARynW4kF0CS9l8CCHmcxhX358Upkd5m_2USVJuw2cIc1DhwxfRQTgtJ94UVvbpCWRZUnPbz4gcQ1j7gzaoNGYJ0KaXRmlhzF6dW8m-PvvDZVcmYR6Or0nVBOUx9EWSjKf9L42MHcwk6L8L4E8xdG2u_9MUM1YVlaT1G1UeDWd2ey2S5dzDWqwHATETB4RVNJokrtJL-Cc2noMZO0Cj4z4UzlOmhiLY4YiyUu7BBhGYfxGUuNAm4W3UR_TtiFvr8Urm-YPHpOMtsiVKKSHvLe_JF6wdFSdRl3EoRpA8M6OFUeAUh3snQB4NxaHtJZ_s6eaK3BwYa392FN4WbtwElf6rY4bSp9xTA3OHkWvOKC8PHuaCrnBvzQpFm-RshUlfYAEV1CRpzuXLgZAzEzERo3a57SPYI0YHeMxwNJoqtVZzdfXkR8SP6ZAcqsWd3hVJfe48dkow266UysuJhw4WKKjUEDHfB89SvNxZIprFO7Ja7UJR4F6OSiK3jC3eABoLfkYfmp8GjVGL2kJzJpHxzN7scNGNtdzGUydfKdXEKUlxhcNgc-3HbGlEQdJkHX1uwGZZcvD7YM_5hlHBfUD0N41W2TYaCQx2mZkwf-pKMZ9jJ5hRuw7Y9FmxmfEsDDFlLG_Z6hO1ZuxJdADrX9gtXkZ0_C4CntPIJLmwUXsua7lDTr9CZfwkE4VLlnkJB8LzDmfurlRg7-K9V-pDoDZkx3-Ljj0JIgAP2LlWEe4lVqFRHQ8jgkY9NTbxFfFP2HJGA0sxAE8cD9Zkwv0Acl-z_5gmp4VYWUc4x8vQ_H_v1OuS_JMu7SEf5bKxFXFy-Z6lXVLHWONMeKfgTu33lw5M_PTWJ2YQPHzhj3wBuiaJY9TBg61HG-PVUtha5IJU-RUjtpufLHhMOQ0haYq_TSVWG0a0L4Om5RGvMC1LSaOio8w5GnamUgxDqBqPvDXHiNo_C5hb1jnaGy6q6JHTrmAJXjSjRbaiEXHOZNhpn2M5ud5npNxBzDFVbYCI-P83WBVrRggorWH4J4Rl7fx5UXMCo69-gyaC70bxeMu0fOfScr6XLTSdQsFYCl668Sep-ejYo5S5E9Tdm-LH0j6XxiBYCFEWwb_ATf-aGKkbbHR-0pVAQhE3sGe6-sVe3Aa5wIXyx-yq6T05rAkhZ8usKqt342TfLfPbHPACcDWmR-f5gdGdxFlJioZxi35bPTOUpClOYfr0Xu-gBCBjLYB6iMuXhCH6ALTBoJS2Lotu5SBQljHX4dcYem4J1ISMOyDmP1Lj45BHeKWRiHs999hHxTl_U7IpTcvNhfuFfMsvhio8brLk4qGHFzk-FzagWiJwqMhDKPaQjV6uSfFCwliRnoGlFC--xjFSJP4Jzurm_nULLVJKdWXZQVEcOz0QTZ8c8H8it722Jr-1e1F0Sz8C8LcZDUt0rzlalcbgUUzq3YKMdlyTXrv2Z0Xly9Mpa4HhW6V7O1mFWq9p5C3YzW-6IFoSX2Igmygg54lQQKwai3S6pGf8RdLYw8-fqbFbaYCWemI9AOJ2FkhpqT-UA8eFdddCytfNf5p4M4CC8Vf9So-AcamP0fJtz16vfHmHNfaAvCtW_7OS3Ln2thgyPejqxl3fBREfR7zA9Dji47r-d7NQm806wVLh8t5Nd3WnKNHVFztn7h_B9NWdjFrc0JSsj00N3E1aAs8NHg-DOv_jXyEr116126eqFId9LCYY0C9KaZAyUwnqU-0u1VrOozlDmNZDGMm388TH07kZxKj9VEoIuiwO_fEiCYhSHOs26AjYkxngLCTCgJ3WWeHwdrocKDcFkr8NWE-Lv21QvCD9oL6yc78pc71GFV4xHuGmqbgy-AgwIMBhqR6ZCtySwJBPEOc8Q-8FAW0k2gDkrsFe6FJIpj3Uirfob7e0CSmQUDUElsgc2Q5TdTqITijRJWuJnWq1_2ChYcQNAw6PjlIn6utL_qfImbGTxpxTG0RcG63I-a7My9wvjLZUf9023l5VrLOXJcImgI8AQHNx47ODRXWwCLVTSrhH55lXVF-t9AtGyVWkaZZm31U0IAVY76_3oiu7FoZHphqvhWarFwCu2eBO1vu8RZBy2iHZVi0JKd6rbCRbnNxDJyBBNDUub3KymU54h3OWJBt84KNjrUTFl6ctTF6E1v5SuX4BubUtSqf2DywtzPTAMZJsa9d_htd4R9rDQuEFTgel7PReOWm_E2hKNsJ3sksIDI1QC6lRrQQoVOV_HnP5HmwdibVk9ONdfJdo1Igehx103dBW2cg-xWNFQDP_YoNWEzR_FF1Toa7c6nRTYyX-kHv1nGQb1J2DVBGQGP2ALrXqhk17U9W3LhG3Do0Hir9m958CA0A8Eaq0lttEIxHOIimxo_z5fMIIekQhY09VxvBh2bYaFgiylFV-YkNPrMZFlK8sTxTBKbtT__47UPa6XUwjxUoenarbrZVlRsbcqYSn0gOSXd1TdR2epkpt04IrNJSDecDaBp-SxDmSPCZRah5CuSZG2kTSnnuXYTYmQB3OgLMl9b5iJnSDw5jMrBoNBou9ocX_COc1Gq5JqwzWn5HHzIunoo1B4iG9OQnqfBtaoOQN06vf0AgiEt0nH0yS5xieTG926tMEoRmdJXewyQDiTftwpzejBRyaIMVlK2bM_EQfj8kV068Yw4RCNYEPZND-vyfK7Z8vGcHY3hVRdmiHqQ7JPItqWE_jg9VausCNWckzKUsoyuQMvWlHndHeFjSo0KxigrjbyLI3mF_T_ELNdFNA4aSY5jvxHcF9PW_rrC_EUE-2G0Ububt51F7kx6lKF5EMWo2zNJPS-K2w7Jrv5-tBoRI9uKzDxe3JpURq2xNhc2uOB9JHVGhqC8aaabLfNFRdWVQBq141ObXPXb1JMnZSBjtVwQ5o1kMR-kxq4v1jGd1gWbVv5X5cw27asFFAnpLT8SxuIB8GPMdP4pdyn628nj9PxtsncVEieWnjpQEZuamiEByoNon8F7FmxZ7lDHYiVCtsCf0X1VolE57v20VfvA3Xxh2Lkjx3fqlgANG5WPHMCYwC6htIkg9wH8asv2QnXDjt9534A99Q9gXTDAMs-r42kPg3EyGriy43KTQyOlnmOXIzNA3ytwt6rihS0yHLRaZkI_Lp5y5BF0iYz2zkk1LO3VnqTN-EQ86ueXtc0bupb_PrWW_MDGf_y5nzZeAc6MbGqVBsxeLei-i7eYFHWSfaAvW6x88g1kNCN5lXC7WDw16ASf8xdN_vsEA-BbyWhXpBKnYyLsBkSBaGfGySaUR71BLlP_RvcutUXAetWnEZxUVd-gRLiIyqL7gcZR0UY2AaNNtY9OuPWEtig__MXrR7LOUSVkf6d_lz9dMbiW91SLrvT0uKjgLqokkbmF9Clo1LYsbQj7kZ4v6wqr70WyqwnZ1-CsKK-TdnKokDWlhIAkc-jNwiuQZzDn0HIjt7jpTnX6c-incwFYBewxJ9nKeUqsL0L9Y5r4GHdJICFJm14XMFY-IfNqjN-UVStduQAtWTftLZmie2f0reU7APUDwaa8MeoP9lqhKKC2bpgusEWr4JkoykrWsgSRz25gkarGWWbCxbp4VI5t0RIfaFF_u8NAye7SUYTAHktNNeaSpVNhFczR4FK7M7S544K6ESpnw6evgAphiAxnzan1F-9v3_HFvi9ZkRui9quT7ZmrotA0_kCRCGCA8tLR4rzQIcDSHLqwrPuqUsvwT56NuJdjPZqhIvyl-5QKFz5IG1ZZsajbXj_rpp7Eyf_1Fx_DOXquxhBl8O-Zzwur__32yuBsz7yuD6005Y_9lC1QCq2qSkPCay52hTE_PIN5K3klZR-3cUyKAgwKW79AU-CMUNbSAjUcwIw7_Hy0V2fqHBZIaJvIVi2sQHlnFq0DynxHIthliYN7mG8TEO0YHO3WLm9ikpux4oXniTWbSeB4PQPwSNC7ui43TzewTudr4sfXgl2MgN3unf8g-kUO8QfKJxBQo1DdN7o3EjRQq9onC4pRURBJCon5WTTLObnZ0pwZsQyW86CLh1xsAtxPWvaG-Tbbt8t5EJD117WZtZcdqutZSTeu2iaxo-_WZdbzPW1eTX6a7_j2eEufYXvPuHYFiIsq9lXSUfBTf2KhA6mIS_RPd9qqJrfIEOxqXnJxpQA9xHS0mMP_OkGgRhXGxzHNiC0PwXFZWEzbczFFJVWhWOt_ybEEp2_atAm-slYurbwmm1AuNSmwrIb9zJ6ixheuKvlgzjWcvofk5GS1-q33Bouxsz3-3kv4L_Dj5Exy6SMidRLBl0vpC5lZYJMJE47b6jgMVwaeMeEu70nNImrwC1sROZKX-R7W2rVSuc4GnAuLwOI7yz_sZsIhaskQFEkbGybpwDWxmkWtql0AZZW9Qz0pnR5yatGRoiXoneN5Wg8jBMgUhRj1wMlPtL8MqywFxo43T2OagfJ5HNJ0YcbojW_crx33YDwZrWgtP4NbZ1QnYXLLGTOysf5FNplwg3ykYqi0_7GscA0qui_Pinj8ZP7D85JPFXAbBUJsG0c0yJVa7SiXkmukjL5tO9B3f8HTsY_fF-Sw7b9F9t9AY4-O7IwmhPWM8Sv4uPQwU1vDp24UkpS83avpFay2E441j19N_coM9bFjOpwIDswxEEwdXheO4-DT_ijjQZBIBRvpOxcqXNYKYsRsCuRWpUx2QF9Gq5CL5mQVcG8E0Gl72VCqB2_isP-LexQga22NvgUp9RiBfftr4wMqCh_uIaNZAq16YQFehzMHPuKWBnYnuLRLZ1A5XAbqRaSSw5GIPdnGGQ-UxksChzYDov74WTOgz9FJT1d46egwqUiAJHuCeVJR_WYSMLcQS_weGvhhD010HxhdP9F4-GkCSRqLWcpGmamgBfwjvFYHQ0d586Wo0ldGR8jK17LlnfKD5CpY6DZ8yIGyQ2t4D2X_PXQMzyUukUXkseyWlCBxQYqT81CgU26hITLsiheNSale9BPIf0S8J8J4ak9xWW2VodEtS_VZ0s8gJOiGqtfMcOfO_1oIasGAlqZOmo12iIikD6GljxX6zNBJfjYrtZ0EJHn6rpiEp3Q1ot2_cp1I1Rot3EI3K3JSU4yGen_PW0gbFRUb0snxskMGUJc77DpJJzH6HdaDI5DvVJPglSjU60ejWNioVVYTbh9VwbX4VL5zV13TuvqNAFXwSXqkizx_tALl3sXlBTFy6TMCX2DaLBM8rh6RV8BxSWqVxC3giYHGkPOCmWc9dbFiZ9vI9JPfb-499J7lGmB30p_8iO7j6IaZd6bWRADkJBDB5CaogXWZHS5oW1lgnsFEkc_PdflE3srYOqtqLGkc6ZIvAX8wm117--nqimqZbRxMd5AsixhWUXEBQq-zxYidps0gV1Y0mJ_UEkzY78B0-WL-ZqLh_vuErAViKt-Upx9ZRRxwzwTvLL0-XPOgD0xE-ZEZP5tNcfcja7YRos4xG5D0NdMhzntyjKa5DOExDkaZh5JFs3OfDBdgjRAO1dzDk_a5FgPmf33BTYHQXBA0wnhZA6jugqavQM9vACLcI1HO3IvQMAT_VO_qdOBAzZ97eNrxO6Vc7Ny5cYUK1XuGvDPZ0QtabvE7mIQ9muFdd2UMV4UJyrj2zanKlcmXTCrznpE_ug7fW3UPELLnHc9_Lvxm_T6t-9ai0FBUpwarLn41UUe3HUGml74MOfiQOcnOkJv93dMJxqROh6-pUILrlv_nU1937maWiMoI4k_wl_xyBvcLoUX6KWqUVyfxd6YkitxzvpTB0m2v-yzYFI1Ok35vOeAlQxL5HH7xIXpUXbF02EuerVMMV8CwacEPw1vcqIIXjbZd5tsBiLrvvGJXthBZD5sBE3uzFfyl635CAGANucrIcwLjj-1GCnFX_wTMWrkhcKAbm2AsccRSEkwqGmZKUYl7T4-tISz0RNTon1fi3ipzxb8nyjLsu1Upx0pGA8l83S7gN8oAsjmdQzm4ycOaRI8FdATpSz0VBOLn7l08O4GRJA6_h003YdeGYvjqZYqCeiCt5ubdcHb7P3HG4z_S03X6MmUeTHP7Ru4UIiiC1hpc3fC8kAvh9F3qVsU-WUHshC8_goXaPQcdFwmUscY1ZV9hkA0lPewkQn1WrMo3id7oR3oZyh18mt6XdsHtZbLTGjwfGTTLLLqhpbcMvzjRneXBqA1zT1b1Edmmc2GZaCsQBOamd26gKDcjhTYMpgRr3VGguUlgvwsTikbfkbRswAhnr9NbcueqaKoqQc25w8hL4Ph3by7GPCRjHwfBvMzWFyHBi0cpLCFAG4aUBEF3KSdSMdDxp7fB4nuxi8orPqz6u92CrsFuAkWGLJ6jU6lwO6rh5tmz4eE8_j66-jnrSzTajUt1L9RZJ4ucZzmt_sTeHHyKGSoDHB25HRsDi5o0C2eHnBprm3saYbekbhjelkRF5FXm_gwIBZgCKemKMrFAAPzWk89YsMJpB7s_rZDUCyTIB8WoozPxg73Jl7T-Co7z4jMch_ZfL_EusICa2rDLOHt7lxy_5QS7x0w9pS1CG9M4E3ttYOuHK9VU7K1ko8wXJjci8dghUoJVO6-CjBBL-YEUf8oKXOb6yh5ZWB6LNrd_pSE-z_0uwzr29KqGxbUAACRfLDpQxyhX9tfoUWnjTV91-t2SqUPyBLbDn1ZTTZFxjAzQpHyQ4CfVnceeXBCirE3kzn3qDONlwgMIAwvEC2UHUIWOrCY_oV0VqTcmiT3YHoNy5dfEBtLBx9X8MMwYC8JvFLuOAeSCFzCVTEi3ytE7oz33-X4Wk13qSSplHte6OyAEdE1o5jPxQpiUGeaLkvW9S4iCP5dNvuppe638CPjmjB7PYxZHUS-SbaGiGyTipvPYKLOZTjVy1mNW1_ToD1Vzd6sp99hzjEWvvUg-vIDfsKehZ8Mf9RjEzO5IDTR0cNavtoLRnKNahXvZxh_s0AeMtkg3-of9uLKVXwMAczBW8Uj_nRF7_lj4u8L6G5BekXbpa5Z4OTbrr35OBB-BeZG2ryruxdJM836oo_GY7xm9PqLbySueuPEOVFUuxFBaHmPwnEZCP6QeRavRF1Tw96G2WXESltpGeygEe_snxNDnIbvQFzRZjBwNFQKvGfCwWKE6fhzRDaW86sYBl1J0nRl8l9qmbWonAYI0j7CBQuBFEdR3qHbAnOXN4_RyyoglXS3O8MvViKHM7mDdsHCOQWzVpRDaJvMoS9B1-3b5YDVX_qsu3f-Aq1EbODZp6Nr3oaSQ_V1GZJwKAFxi39hXdTjZK-gxczLmHe0ypzinxrUap1NZih2qPyacvjWOURvQ5xq-Tuk2C00DO8w0zE5x9Bdjv0YnKXcS4X6GS1qHZrtGtD2WX0elgfwjn3dSbqC72tMhlG3eXztpf5vdR5RipGVi5RhSoq1KS4vCmtuzLE0q_ZjWH4wfMRRszCDaAwhsaUYDQcuK6nIHKXma16Ud-6pdaZ7zw2tWcpq9SYs6A-wBWVV-7sjKNnexKMz51Q1LtCF-63QUvM2eRCNPxp7UUk8n7aW3iTTJxmfqg897ixzjSPYILyHv5ywCv824V2lD_VEYRuZ_bD6Pek6eUv22UL2nFAjNoRAPB2O-KEqqAEFvksKxqpnDIBmMU4h7_frHMAsE0eYtbAXYR-bLqzQfYAKvYPKWnpuiUkKe24WfShlW8sxGSz7q33XEdDDwNgfd04go3cGoH1Ykg_bZSZKD1_I-K98pFVI7Mg8If-gajEQr9dWsy5dcZevSF4E_wbAH-uFjpPCuLSKwWWkG90kvdiJ_RpTNnKnqK5kERDIi6ZAoUf9YvMlfMqHTlmdu1MfjzBGu5zNtm_YJo-GaXyXLWSRxrQJ9xSnQiTnNTyJoJ5Zn3omZbmng1UAbLCuI609OasRAYOWLp6od6LH1-BoD9739SzYEEG9Y_UcA2-KOJp26CRJ5Xy-MkfzbCU6_9rcqi3MIxsiME5ye8PiQ-c1LTmPkielmQLU8VVIBmDPfku1fsS12bw1TkoDd8zrZFpuvkSfS2FxbWQbipuGQBCuL7azYIcrumPsZHW5HSSIvS0NsRnuTWWSMlkWVqx2f05S5bLKIIvhVGp75NoUjsjTbf_HvukrtRX_U6YNYNaeGJf-zY-rHAEdTZgX6wPss7z27ZnfxWzFpREWKNPtrxrdtzCcBibaPR6UCzstEfX-jinooHqUrCXgqH6oroxGDAWxc1Vmru0K5lwqbdNSiJFOGJN4LqabHSXM03ZjkEhBypqrLlqAEz69gHzRDe3CSpxO_szGalSn5rTmbtSelcVyN1WaaFjREjP5qruLSJdqfd1IiCIUpY0rHj_MbU38ITZGOhCEJD9iion5ILYIoclEPO2NunCCJDo7fyt51a8d5zxVLWbkBcqwfu4HerEX85I0gqEmt7QyLHaeohFIleYr86vkTHoP6spnlK8MHLoZC1LAI1zQCfGy26QATyNTAU7kwbTxh8V1NxjjADHXkffxhgrkJg3HXLcjBvOaB2cXg9seHTuwso1Rwba-GAoCtWqlKbZy-fTCHNjduh-Co8a2dV-t-ORqzpP5Kt5aYXb4KyItN39UmKslJF_yoDbOz5kfFs5Y7Qnwg39mEd4ZgsKTJPw_ijnijTpzYpWW5dqwuQ2Z0rCNXcszD9Vk3Fxq5MrIRzOY7lr9J3iuDv0mdB7uZcUvDAHyuGjczjwMnBayMI6mb-SHX1YX25wEti0Lvni53xeLPL5hkZPAZAByZyQJ_O6fAcyl0lzfQ3xTBiyLXx3ePQaHidixScVPv3eMRk7oZYqZYiGBG8sUDgwqijwzLBQ3aWyC75nWFF5MXI79SjMOASE-Ehh08p3WktffVJi3wcd4KCgFIE-fTWcHZuxtwsnrCWYbNrHlB6bZDdQWhbm4S_eeThXKHRPbJzsc92SkKc8iIrhVU1psdRLyh-LuU-6cvl5HB24vP4E6tFks2apDc35yrlnXMDOKS4J-_vwIZwe_zm0O3IKBymfJysD_HGsUT_3A8uho8m86zJcny4fdy7tabgpAywt49FvzMSt4wJq1lHOO3u9dhpXQemWFGvGjR_C6gYXfd0eYqzDHFQQ8u7D3INvAFYL2DJvVoUu4HF25zX_7O1MrlI-f3TjDzsFeMYyE8sg-l7QDui7sIDdf6pr_lF9KluAozZmzjV_LXAv0OpZTTBsCwHfUC5Zg3CfH28pi-U8z0N14Xyj5SrmxTPc_ACbmUMoZx8u0-SvVREwcbGNeqmT-ZudY_PyJj_4M70cmk2yUQX3LxiwyI5EwxXk0pHjuapDb7ReBhdaKkEZ8V_QB-4Bl4LJSc63KRfr8Mf26HQ4UUR-Y9MTgjDB5QpeOLZdS7rCaPQHJCTuq-ooklQNDoHhndZbzayDYJe7nxkeyhLbKqFBPUzLDDpZ7ac4xC3KcBDD6oFkSsUINEA0IFDBuHMnQG2yPIVSPGxdd0qEaDSdO7BElgggQ6UEmmUp6R_yFMhTZoPlnn3nUQtWRdjKYA0toTQucgh3qJToLAY78cDUV9uUFv9ETTqlof7KT_bMo0XnZ1fXkvhjWj5pwIIXMVp8c9UOprolEio9MAXYjr_3J3d_hY2GDNETP5qFgVUgrdgLMu1RLIOi_rmkem5DF-t3ThaLO8jbRM5fCHKWSewXeaTYq6-dCgJME-b_rIJx9PqMtS0CpRL0wep_SGQZYG14SOi5SuJwSc98Ihe5xV-1Hq4DvJwwDRGJxKPdgAlqmtrCzZz3yfZVywPDBFaV5p3lkJEUoSzQe1AnxCPdTHCA3Gh2s3zvsEYFdqDmpVpFN8TdQPMkP5uUrTOzgDoD0bxb6ZljQAUDjAg-nxGgdgWGdCTp1Pa9U9wPVTylh2cn2io4hkQ0OyMaZdDcILPpxMOlEkXlm3GMBqrobGSfhgNhkx6WSqsWybUQxo1d74y9lOEMigJJJwvPnRHjJa0mM5kBrG8qY4o8bYuky6PsvTbSg99OoD1Na3Aw5sB-xJy4KFFKwQkrV27pPaXrXG4K9WaZC95vr3kr3zGOfy68XD2swjarz8kiuoOGQiCehvx5d4hx37S_xpJ2XB18ZY5uDxwEhp7ohhycrvLgjjqRPk3_1v2HoLH_ZBVhENuJj5Bz8Of3Y10I_cX5jt3EKXO-keHTsv4IXsO1Yn-P1gM0KeegwKcJuKT-Sjty6aR77OdlJfJU7RDVsXXHkcTUnz_-Kt3aVsAM0JiiPMpwabi0eMxhR6Nx1yu0ssPBvIx5_AkZU0yQ-2Ro5W8WcXI8vpPIh6WddmDNTwF35Ddl7IyVuVnBLpSwy4IEvMdI7UXp_QxQPlb-iN7jjdtB2KwTUzvZAD2_NH0taObUt9-qZ-orHrXsvQC8Q-TXidhQG-pL8YRtLxFiOUzhNSMRMFKkeW7hTq5MEnWFzd4bCSS76w3GZBX0xaA6E0d8vqErl0A5nxMFYmscnEyX8FTPF04Y5szRm5J53GlOdkjZZ41Yu0Neb1FLXqTzjkiugT2HtkioalnFt2zQfaVajdtoGqIK0nDKqhO1uUu4dMrPfDYP8s0x3vYryW3BQclA-8CZBqxiIfUmJ01poStBTE_un9HfgFYeEQzUZCy3t5JsYIb95gDfEk1SOmoRB_xA8z6TKLNNJpExyTeLjEomweptXRMHzooNLgdGAEpEnJGNrKphKIoZPm6JxxFL2rlbLUyMo8GCTgNzfZP29zyda0hOLH9KF6ll2YKlNCNzd2sTGrV44ATC9PYnuCL5f8V4E-YMP224Mmv0bdWlgIzujE7Xgn9pG06oE7NqyOtJ6NJwLOJzr0Kd-A4q7VPWYSmgh39FwaJzJifj_uW-U7frtuLa_nxsnCrAjmZ-2zmW5FfjkHHUDANjESa_Uq4S4hZ7o2oQyB8SsU_K58mcG6LHz1qj5OZNQlI_WoP7g5pxjERmc2zbW-uDxjCWO3GlbaNhqm85Xsz75ZOa2pybGboArO_sJulPaoJVp8IMuIIYFyqvF6JkPc6rarzdrBeN1bsHa8IKEeBIQ5CkOTdan8OE46N_dCBdM8O2n1eynaKyXe6m4k3QOgsY6DUT1oPH94SHI1Qr9oo3TMGj8ScGFG40CWY78zcKM5pgOqn9iWqNbld1aDVu7mrlYHHOtFfulrv4utlu9MseVSu5Chq08kE0i6MS64BS7ha9a6zH8MmY6YxAih_e-X1C9QBngZoy84LnQWjbqBMfx7GgR-XgdYJEApdoYFGOEvTxPZfzQzW5sIJkwKdgFl_uRCc0ZzEv3iAhNwQhJgas0SNGyornH4yC8TwFpk_yulQyuR0EyPAN9ixCkdrnomhAtLFcZFx-zhz_vZP-KMpd67_qI-Sr9MGNaBWDkF3HDg56emNv2tTd_O4YMwSrYgUdjfsiaKlJCfuJk7DK81o8ZuvCEF8Eke831EYeYy6jVM9JnPwQDYhwKy7RyV0g3aW62QMEdLbp3iifZz8L5Hug62CAF3ODlEVMXBnFtEAjmpdtLBIZQR94JC9SxnjObUJAZWRJmMu0ADOdJEnJ5i1wr9Q1M_DKN8gdCRvj32qTdxyL5utV21cT0od0iSqW8AuflnrkAaZYMtZ6hKoHEZCTNTxONVOjWSPj4dzb5kKzLcJZrcJdby6LS5J-bhDNrOruRax8w4sJkzrsacIk87uYajx8I4AUGAzQS3Z0ktkU8odXHaO4wG5MauYbKaOWjzOcpGd89Vt7BmHEuyjLLMTuBR_JxHtDTonFGK-ZP0VG3hRBHq5tUSQbgSYONKc21iPWTyZHgH7zWr-6OxoT47QmSAKaD1UNrbiznV1jxte-wicgIGD7HCMkcY1eM1sZrjL4dKV_2sajsEIcCQMpj-bD_J5x8xGhynDyTPHdSrffSFanrXtqmHY8m-JQl3pCxqumWvjhFitvHvlnfoboh7XH01r191uTeFPPt97ydAfOOgfqY35-6AjPQAr5KXUetCgIyZuyNPtR-swwZaK_vualIjwDGF6KcSVTvAqQgYeOI4E-PJpOrKV_YmDyyt1Zkquu__92tb0MS6YWUBfYmgaYMZdrQDbGvTZxXUoUnRTATSN2RapJVIyaxDBO0KDxJEipjNiaSLYXrq6NTfZj69o0e0zwHcXAt2R89gwjqZQOe714EVlZFkEYnCFTd58S2VB3WqonHZySFSStlfNFMznODAna2mmTLrGOXMe5uJ4eqpLp-qcPYvxzovRpUbSl0h3A2V7JEwo1bPGArlVYbjpwi5lOFVWFuTMrQzJFKelKSGkS_zFdWMOXFa0VWDLCiuuyNmYRCBF6NABljpAxXZP4kB5WRI5zRVVAEonKh-HfpUXO4qmVbcIg4OvrrglPdOWlCEdNJtoGaZnAoRK88HmDxz0Nb8IHIDkNOFvnvzk64zMsIVwCAZEkTh5CPOzIDL0xNkRNofYAAY-Qk5kqhqWGoz5Tg6habNLhXODceLM_fq2uqZ1tczeOelDxZWzhsL8E1cIWzl4gISatQ-Bjo-rDEqvw3jWxR-W0Bjv_5rspYbiGlYHHzT2OzQ8OfsqxnYc1E8QwTetsJhQi03TN7a7lzmxOUuF46ef8KZj6r8ucfJfR4r8OfGAkABEk-PhCMgKlYsEnqNfMITpfOdxNVUHqyUAIrfG4zKctDMq6o08sgTy93Z1XrnJNh6SJIZUvNS2Oas6nsG2d5S7cP0k7_ffdQk721sI5OJ_b-3di_PioQQTb49IIPOCIFHpY7ATe_NH59Ao6sFMRO3axr_0sax-JoBGdFW5aTuUl2GPNNW8g6T9sxTZ4ZHzOysOqGh0TjcD8pXBFKFhQjxHiNuctlGqdQUncziUjOo_IpIK4QKeU7HEdanr62EOZr31Y8vksbsSP38zzivDkVKLHvtLI6u5H3tVWGsQ_4VbND_zJ1R-LgI_S1P6D6j6wUnId78IW9VVn4iDeaDhasd3xSkaPSspEl0r6SKJKStkpOTywVxOuw5n9qPruEjpJR11zTcdtZG6qLnwhDf5ZQL0gOmGvuMAgBYydpkNS6Xw3g1FfTSI47_Hw1jVke0I_gWDzXyf_zqgE4-BFuqfRTxo0T-WsTGrzujs_cf26guxTium7Tb4Ysbb35pD4r5tazI6jbbw1ZGrg2xve0P-RoffLo9mV9xwVDmzh18107t28tTVfhEkL4ZnzBHocr4-178FT2M0seqUryv9r77xEqfCZOJkGahtUiOrJ3cj6p4Fb7u3P98ryO9uywEmPNxn5LUkHaINABf6DkhEXYG7Kc7iqLIBAnEPEZwbxkm6Khh_QYyDUGI1FjcW6IkorJpjslA_UiqRYj8QYuBladA1nfAahq_YmTYdX9sFVRYTIHHu9J1fnb_DSrs2BK0H71RjbEGnHQqRTGCeG9k0lylYWvFNAEwyh2vDzDGXiKg69Lgg1aZkJ1SshEAh1Nza9zLH0QH-nRblHQlTe_AM2gSRtWT3p-zIX3STzALx25QecMXdLrMBhSOC6pkDBv9wqy4hzTemHohf79dM6RLBIcNZc0dQ_Rrv5zruFeFI-RGub4LkYuFOC0BOzMvWeJyK8cYzNqwSJGCHKYArGnLlsUt-kJW_T1Q4DF1pnCt_--ggY9OSCbWua3mB5iC0yY4fZg2KIM55qIPp2PLARhOLqGSTbN8BOWMx2aYkz3iNun7-2oBtdDZV94uqB6sUWLAX9YMrXQKTjXlm3ickQgF2b-3SDszi_xNWeel-f_9djIlXHm0BRdpMYIAchkJ2J9CtOdvVBdjtM6JdcAhdm2N9yeYYp4iSaKb0TeFqZOkf8V6cZI7O2VUkO47CdfT6HlXUwxq0VKOAh5QczreR4MjminhPBk-wA3Fxu9ULiBG03NuLMIho89Tl8vz5sMDyE36VW_atopgVrcFavkYEyCxMmUMs7LED0x6fw9d1pnGrRKUB-yI4yAMAiqOdKVu_pluXc6lmoahJwMA4ey7ToxiZthrb53wvx7ghyfYenj2Pp66x7SdIjqXbM1fPVL1OYEsVKg4xWuS6UlkuJM1W7B54lkbQJsa5ZJzD8fC-2c4RJLtM0ksF0SFnShAxRmYvdACG6GJXVwfdW3PhDWaMSebKfNdCq-0tHKp63XO2KJ72i09DKOn80kDGBL4mz3dqET4U3sV52H3XC8gD3KWm7toFh8Ysd4cfdXbyjWiOzcJc3OwRWEjlHzFe7bSlu6NBng4a8faikj0HBLFKREhwfv0nPbYNrAf6iOtCS6RiVT8_V7B8GA-5OHgD33Dk5nCfEaj_fNOSA1ythYWRppe1qEybTgCy43RDVHJkdQtvtsfcq7EO4Xabmts3vFtQRukVSqlhfq3280-Qxx09lGpwSAVIgt1ksOhvoIGmAmx4rqQY3Rr0TpNjaGH8yeETo4srtUVK5KDUwesAOUEiyG7x-Gr0WeOKuobPVxu4LQ-N4qDm6yb64BEf0dpqz5Li4EPMTRM6Fv6zrms_GMUzXlLW8YmFHhnZAy0fkIRmNzn2CeNvkhN1sQ9DJKNjmFpIt5qUdc_2cMNGpC03wU0CCHf19QKzCVrJQplSdjES-4r4pbjYLOxqQSDfBjYngoxqF4mA-SxhUotxykfAaxyGyZqtzd_HbJnCEIQzsja7GjRlQTs9-3vvdQmgzVzYinvFjn3wZSS5X8hTqCRBuWbSQMcM5M4PC4iVJlXjFsj9F9FAhfcXTS1t6OodPt05gCg3Qlo_om-0afCRNmgzTfiX-oIt6IhWLAqODV0MXKwQ5uL8RS7fQL-KCk6SaAa1jckiiI54rl_zOG4l3JnXOZMAoKU2tiCR-C6jxOIJAoJ5hFJ5k0bi3aEZJn1GKZIjVH1xu6jBZfxoCjCP-TM-nP3JS7hkA5-dL7EHqBMTemyZ_LkDh8PPoXZJojGuwbovjYlEESWAgyFbvw-yR2h2NcP3S2yi47URckrwhCGJVcLoIetF9HOvU7W7eBzl2LVq29T--CWZPzXZ1zRhmYIjEyfWVKyUjvYH5XNGTVURX4_uYOHWtoeojR3Z9O4kRwY-9PfwOA2FcBh7ezzMyo9xMbns_Q4vCFI5hbM58ZwZtUQDttjQxLTpI1cXJfOnpy0hgNWrfaCArgqqI7h6dvZUCqi_-bFtEoj_eeDLyQvVEMABX4t9sp9U6LRmJwkDzm4qM5etNSHZUOfZbRPY3Uzl_BIC2F2L8dg5IMxAok2J1EKfCfmRmhUkd8G677puyhie8D1UsGImqMa6FBQ4i6AO3UtEg3M69RoAV9tg99gdxzBY5gtntO_SgpZEvc-2_P2O3UfymjEsslE2ZNLjToexFkTBcv0O_WbtIVFEIy0xB3CROMFYQcbYWEQ_OlbmRVMLj13hWZGafKj7PZSUyWcL72swJ_9h1dBFmP05nR-cfeyWTbUVKUEWiykeeeZuoGcibri0ZHkvlldikJ96UB44M9YdEI2u_M8SsWThLp9Wq_x7XlDkIpCXlZReb56Ykrt1Ju1uX2whXvPhgH6tyqU9vjjWxROb9KZD19fjGjltnNHL7k6CM0AWaCuab2qAaHWMTwATb1QDdbL5oymYejv_nZV-UxIpejHIHqZeQabbQ303wD2_NPG6kmR4JM5OJfgH71xUM9d5IbF8TLV06WczMb2hhfoxKYaL4ttXBnNnX9pgV8pB-gRqwB2h-lEDnyzQi17Kqo6-AFvcK0Gg8KPCkvuNlFDLDl50VTdFoUa-UBP3zfxQlZj-_tCmglnFq0oc3nibptm4c1pIY4mExnnfouVh320CGojh7yFtiKcXLYlpET7MWFw04Ue0tL1e-oXGM337yykpIa0AaeNjvGY-HRY4u7G00yDx2r_pV9MtMaFYtkPkaA9pH8PTlWHnCPPEvhb_e17uEGeV8vgmvUKB_ylDxIEK7Ef7dSq-01SKckzSTkimbtEuMNo5WEJZgSxkTCClxZqIAj792GHDhHx2Z1xSfe2o1hk079_Mcq-Oi5cs6N0uIOsXiAC2gxiDOtcnANCjtDjb8rDKvKPgdp6Tvre16cfRStDbbi_X5lXcK-UCixbDhOHNULDrsEcRTkeEQSDgkggPmmtYpWIjwGVC4InwuvoNlu_Ef59aFb-H0Km8QblWtdpK7Q2szCwWh8ZHxlWTofLJZ46OZ3bzJSKowmGEoYQJmnd7aSY8LVdpsfz80UCuE8x5GSbFdiNu3-sKWtJ0H9sCx7oEVk86EUFSB7XFoLOrnaXVai7A9VyRDULO7UX5TSKpgPx2TSuB4WvKSOK9cZLyYwtaR8CARanC1ncNu88BOM7Nal2ge1B3mxYV4oFP3YoVQMywZO_uNDcXyBkxTYB_FA8myqRiKlkW3IHtL-X_DUDJES-eJ2500JF0yxV4b4F8Wsd7xqprYbI-NKvs8VrAQHhDNKcWw4OP2FhiuxdoJne6Obm0UaZcMI7Nwc6PuO3TP_yomH8KN3eVJ2Sg9JOso6RgYl8Dy2UyBuaTUlH8bGd5js2eyyhIdIxE07wvgwxjjj8fG-yVJ-hLNf_y44Sdf7Tpy1DX6e_HnAm5CHqUJIydXFcbXwmNbKXbxcoz_CL9OeIDzHODY1dDq4oZwS0jJZAaqbq4-5U07vx5hKu6yljQcSl5XqhgJ-0bdZk3j9sXc8tFeKyhA626LPmPhHgc2ob_D36ZqRIBRaHrlebuYgoRVh-b-FC8M383cyZVyOxUDmZZ7wyoXZHFIP9Hstddao46sOh8gRFiCLxJjzpKtCp8-Mb8cUJIcGuSVQeZUq6zOoYvAEZUJukmSNJ-dHoz4cQSsaPET1UoQiiah-zMzuIQH1llJaihz0JxW9447wjRW5OOlMgSSZ_rLXFOwhe0A3G7V1Xr1Y233xL1eur9O7JIOhJazIy65Caz8ugT1C_ypL3FYwhec-sH2n3bVrjJtOx6kMeu3NV5W5o6AnwRl-XYQmqGXtaSP9pwk4R5YsWpMIMuKrJHnV6XDezhCbExinnXG2twvB0oDnx7cSb7BtzqJw-KBhge1vv08pJ2t7kF2QsOqFmAEpVcBM4hWIjzBQSZUPilOiJi1YfOInZimg-wT5VU0DhmN1T4dUBY6qfDB9FU7KUmrNvBQrlpF8q47JFFCwwDtDG4ibEPU4EjkwN9_o0I_2Ul3HxdP8pAXNokA6fyWVPvgXVdn_bjkRuyD30IMrk2uJHbNv3QCYSI46i0VZEtV-jdIWrthZQ2m0S6A0ej2l34XWRnuqjwA_j5VlOQO4TYM6ueL1PvqWHUykDvHIjotQpMPHDBbUJ5yk8vMAz8JjvHVz4VvGLxOX2i0h2Krvb6QiLSGorfUo1kdUR_lqGbAPhEKFofpW9y0cdQYBaRcTB7qbg6-V88Rvtg0ucNGrkuHhV-1UMTTyPrKCWP_x4ELqg2wEws1TsGgxW6lqkfj4rW_GZc1H6JLtYJT2H1LqdPbDM--0Olre_3QBnaD2aggjmwJPyCisxMb3UMjZwCYIxRp375s5YJopSPjo7BbzhTCECr8AhlVYgyvxBpScI_dVhDUYU-LOiybkT7tZM_REf6cP0DB2hLAt53GLqfaZyzg4UdEpg4YcesZKApbjWhjeXjSp_AmxVLCX0scevIwAgnwA4R7X-DBLVgdqvqsIO2-Q0K1KOT4UXfJKAnF2_1vMR6VilhR1dAHmY7eSisqF7LxNuQxslS3GorY3YA-Hkx1RCFiMe3occHeXvSROn7VGEKD-opw-wpHg7w8N8l6NfmwedjtQ7X6qLNrXOcGoIKVqmxKK77SbPLO4unk_BBl8ps9duUBbSVyAgFL86JBfs-HIzGA6fTfl1l29W5z-p0taGr5LPBPpSBRR0iWa9Q86_aZFclDh5wX3ueLzPC2lAnr2SL9KQnWKfoDMcmn0KtcvW-n1Cj0rnWasM1pDGUMlqDtjt7P8wEHZkI5eMX5RDoJyIW_s22-uyz3vy4QinFpa_7dwbVNDRyDdZoLbYYG7uhgUBFImnB9hkwM3VkReyrdjSyagYoFqrhC6HfWkdoX5iaQA-N-T5Wkw48DUoL7uVwQWAs8fqEYEtZLe3gAa-SkMWnFQv8BTqy-1QWiCZcPWnExOiAcelyWqXs6BJYdhj7LDXQXGgX_KUU1i8V_3fpWuVSDrHBZ4RMHHVFUBbmwlhG02fLr-q6TR6Ift9WDifsYJYGxHAzI3LIKTaVt_WhfNISkrffBBLibwKifCvl8px3r0JfJUIG33Gs4Ka-qHWgaNI5eWXbbZOmtG-2VmtXMKfUm2gUWcmvCdqyHA_vjKzz4G1H5UsK9vEV8chPZsH618xk6VyEnCYA0C_1mBjRF1dULUdKzGrtH2b8g1z0GGHM4GM8dkjGuRgq42kZQV98_WQEg-9SuEacPNCmXdhuyH2zoyRDef_fx4onEBOGCvOqY43z9OeURB1KrmYJzyPR8xMa9kZDr8qfa1jhlo2xX08AeFb19FSb2Icgl6kcEJDv63C3c0ivSbaYC_Zx8UBiyF5en8NYS5PTruWoR7W4kZYLVsshrk7GtqPH4PGJKceKp58wL3fcV5lcQFqGq40yRkxJmUamDkssELN7oztZ1AoW6A38Yml1DhRvHvi3EmMkWzs4XWeDZLBzKigJNXO-6RYD_84jS-zSOEDNSdIKzWo5BQXDibkGJ8_nTSlit7IvYkvQLuL8pH40Y2er-nIL9xGa1MmoGh6QFcWF_9p7avsXzSD8ADMHEIxNESfQ3PfE0TaWO8kte-TW5WfERZdbmSoED-p6EG4vrIrlU3aYWK5i91Jgd_TawoSW-5TZY-HbI2AljghIUaDuh6bso689-Nv9x6I2-o0fh-APlVKJnwuN0-M3SXSgCfkpHR6uaSRqJlseTCmbihvENKyI9G03tLnkB67xYe_Xbc47X4WzFLrlEBrHtlbt1JO9f5c8JXTLv8Rd6rrDnMTuGfjt5O91UewaQKxcmpxouuLOVxwtS_EoQ92x3p_VDK_m9ZpI23qxj541Edl-QYCUCA_eTKvqX09UcM_qpbL7Whno4Yk_vs2Byvf3MOQq1QMmULzXM10E8ZjVJQT8ypgcyEXAyYUsjYT0s1-azyXtwwB3Ox5VMDOFWTUnKlSNeTdCY26_mfpzH4FMX6jZ0d0Io94AR4sZC5mf0iyUIr_fFPtMC1OrKv4bAwOqP1ux22qtCaF9mj8Jc7XyDwXFg60WXGb6SjIUJTbQ6vblM5wuvss_4blEXarESfd3s7wx8gZOI54DAfPW95ezARv0LtcUj_U-z6x6PUpUUAFAY-SuhyGiplUIumxg2N_PJGiG1EyMlxrpAbs3AZm3w8UmcgMBbGz5oeIaD82O3_OSwj84nlcV5ilDvhObqfS1HO5o7DA171h5Ps8Bki92rJRwztHl5H2j4lAFw-ZMoM9mhTTjKIMacQYWAKjBxFaBTzKyaqVT7jgfibgQ-GcfZZoX-8EJC2pzhDOw7jGhi4b-39ruZClHp8WeCMK5Dphjqt8fvC6ObLIzHUrFrADmCh_xPxnSQ6htFQLgnAyxIRxU9DWmUQbKFCJjuOKZSnpJ3LpOqoo-spSQDx-5mAls8g9amcAt6Gl2G1N2uUoiCJtZFzkycJd9QRsblWqGjKTGrWBWgmijQDqa-1oMyeePqXwGKUBNTAio_KIyLhNkuM23O6Ec_5x5WtolAfHeu_XeaQJXJlJBl7lsOykComfU4pjarlkghnVi13sh2efZq4I5ohRXAXBTlR36tLlWPGWKNK3r9ZrdKWhqhWLSCnda7UlaM81IQzVPfTYQ5keC9gmxUEtz2c3of9CA5MvYWDTBHYNxl1GdgZ2-WmTVyJdBZiA5ERAPt7S5aQyxbmaYnZwTH4xji5Y0je3HboObLtg4kUW47iM_i-7zigrSM1_ciDMOz83K8AWN6I2RJ0y5XDI9mtdl1FCcntOCu0XjMW2OmFhroNH2Irg8uYO47bUOKvVWqKprIhqe3hYhfb47T5MWmjodYWAG5jmSeEXgG03ErjwzsDBhx2HWkvyjQUuFNsdDZ8cJBRsCBarOS1mhpYVF9FuVKAVpjvX0QcEp3Pcx9ZbpCI7cB6bmjj9X3BUs8eUc8cnGXvrQWvj133z41VZL5xMTgR_qYdW8ladpAmAyABUhN0YXQVdw84V8gPzs5nPIDEwUycg4qZw5pulUzHbf9KiEHZoXDvUSfyw0z0EfTBwpfUt0czXtqCvE4d0fUQjF1gG4HuETh9yn0R1ONgkfmCRQyBEkrhno-kxLbAzV6FIgM3C70nBiQNQu_Tx_BO4JfAxLLDc7w19sg3DW_BPw18i1pRaOd9Vmwop4EFnf9CBCYWWJUoZrQ9naWX1AVo-bKT4x288qjgDZQPNr0AvLl6n8d_x8zuACt7g2qg46ZNSDddWDCxzYY2QLN7eCUCe_4EKZ4Khyr_vVn917bShl5tlsvVvUbJ6QflGtJ05W31ramnCh7LD5G1kPiCHqIBme6N11UCGcyE8liwG3EWA6sXk_a_6IyRvjxsNbosJwAmddHJ0diGNLpnd8WZQAXovNs1jeRUMWvdgdmsG6oPrbYnLGPawFQKJP-JGCJGSYbAuLRcqDgZgwzznvfOGIJjsiRl4MfUsshtztcYY76AaXpsI3iDbP30PX2AIkc9arJrZN8DcukMXSS6Y7QMp6_3u8TGOL9XDfbDVVBCg2F7JSgZ0LuisyVNw4Fd2FyGn3Vj0WkVrviTGmAbFJxp847vjxaI6K1ZEYd7-WE9frfT1ifv_yAOzJNvb8ZS0JZTS_bkGS6aaRU4ZKiAqlTDF_DhrC93-3pJVcty8jQCaecQhZPDezU0fh_dbMhSsG8QGnPFl_9_kcKAKlrs3be5Bucz_lgMGSnx2b5pbQY--R-iZkGjb-zqxI67ph80F56uojUCc6tTfjbeohCC0bemkBQZFbt2Lj5u3_PCNZg1MivfT89ea5vGFqIorheP3ayoczi5i6OT-Lor9Ds4m9NF_DzKfyLW7jDPKkQbvVveXKHHrdl-NmFdA2NuUmbUf4uBAkUh9eCdDPGd2EhtXN1eHUEzu0tQ7HznlFRQexoia8xvy1Zidd9Ajk06lw5RWplqkXzSZRjsu0zEwbZKNNW-rAojZcFTZQeukQW8Nzjsh18ZpfP2EqaGaLe9F2UwFTQP5pYwPY6pIJmSeQs8B4jYUfoGeB7twlOh1fqLwK8jMxmtwID5wTvz3vnOzasX7h0lqTxFvT6eodl3EEBAmyl4npjxrq7b6mEX6TTtLG1goABpn7sGMDrMO8RG7BhXAMVTiBtyhD1eP8A_4NME-iszaYwf_2spfBu5rNIx37fLGY038P81O3ZJ376EpsHBvIi3nzXUIknyF0y6p4515IGRhKhmLhFhtUF8T13MSi3S4DrNzN4W7bNp6Y7BsGExNNjwclYaOP4tkBqGM2c1AaoDyZpm6SYiEA4TFDVRG4_J3hraxHAnoChLQ96tNjfwc2kin8QpQqvf7YYJH1u_Tdax_W1JZ0WOTZ9IDL42Gnv6VG4ZsjM4VXHOqt1E45ZEznE1kSffWVK4cXHfWZzHmP-h3pKl0XOZ2OEfqcgBJk43O1ZIqs4Gxumok44HFffQlAEPXhyvBohybSjqT9J6IHc_jepaeXghXSi7qe4-cgRll-spe9-MhwqnPcD5vsouGdDzHA67ExPvjg475st6Dd1CFGFZnJKOXCzPaAbuDny__yoLYOZLfA3ZDWrIyAcwCtTz58fvL-_GFBQsFc4iNeq074u-MwpPqlULFejrt3ItWUUF18nDsAPTuomZG8gh31WmBfAKUjSwfoXjIzFNBI2BeYvNUfV6fI6zi56VLd4v4kqrNBPiz78LPDgMGUqem4NlbiU8batlg2iVr9g41bu5mD_Q9BdfQWEw0Rpb3T8SdQ1SqCrJatVJcLKuYAAbhDTyn47j-JrjU4btYiD7QgslyYz4AjlyVAx4sXOzjKJXAZYNf9LyIJ_dFHpcka0Le8a6OhG2Q0_Y16E2MhtNNH9-tyNIvaC0h4ppDrA049yVMvs1y6hdVzjVGVB1qwkRHf8-EavF3awT_xeJHvmJzGoELW0_VGxUO-f35yynz06mk71_3QP2r8nVCNYyj9KkUANYdjokbtzyFdcoYRwqnaWzVRt1Q8AlFXdLmuQmKy9RPMVoP0IPuLsfaWn4iGk5TT7qukp6VQSHY79kzt1FuPyaNJJoLQDANQpllMzFvYEb85vw_A_xPHuK0nn6VtUBUrIhOFu07K9isTdcC3StoRC-tPck-a5AVyQ9b1C_P7xYMQZ_nHIF2rBZ0BwbXOiNchuuYHVXgGev3tZaTS74HZmNyR9dOyez5kMh-GN0MWS7dxFxyk_TcDD6OEHhEJIfQUzbwGavJM-o4_qqr-mq3OSCDHFXjhyGYKoBdYczCqe0P2Qzgdts1kO9cSgpw3SdgJWOR1pcn6GZBQea5PMMirZLNG9X2EzMz3KsRc3QZMgAoIQd-EMI7EIa4UVWvD4go5fxkasa7e5tbf4zZ0v8rLnhsc-8ED8jz2DW5URO51u-fKtqjp2KvG6htc4jU1lkg04Rxg2o8EBmRE8om0lgpZarQKc1QqTCp5UQAbrr5G-dVkUS_WziQLvIPZ-YBmrPx6nHlmwWW7wnqd6wa_OO3DwaUXWlTVP7AQKQKZCp2uSzZpQmYx0m0KJqM1BMe1bzNQGBp4G0DtJ_rOu2MqE53ZZ9bXRg7KMQK-M3UfYXtDOs6Vursl4iqe3mvj_l7E8_2F729Gi9nBbKhj2vFAmnC-WJbeuz19IiCnw844-XqDfwz5uvtRk6dSJxtaE_pxStwf_AmVmcEMwFlYyjRVTdj89b83V9PF5pU6bzvKo9Kr0ntGXG3ZronWP9Ud-LQxlh3CQZLD92kzNGytjUVbdC94u4HiuvV-nTXG7Up5_SktVC8j0rQ41jJSj1fot1VV8jcNm7zdBylqp6qkUiGAH1r-gz-CUvS01sXKDz0Xl30PGqPDfg_4PG3T5cy0ZKyAdGejfayMR02GIu5ny4-FEQ2E1mbwJijOQ-pt1BfdJzm15mlaAm7P_1lcSqi8rceBa7KPYMn2ONMRd7jzDjm7ZoC8RzKYkfJl1cGm2onLk8wnDzJsGgEAZ1_EpLzY3WadAcRZB_QXoaYczKgRtBOc41SlwvGxRsTm-x6lnUno9gL4ePtc5yBRGzq5k6nA7iVKjlzZcvyec_9HMhMJBgPKblWfbF-7oARzS-Bw7BOsm9V9LrlbtAA_OEJ7uLxoLnQhdViC1r0zFnRyZ3fvZd6IVWyX8y80S16-vsTBix7NMo5F2kfk5a2aujnasl72HL48p9SkXkje64aog0qK0R_tKOc0I6nY26uyYj9Hic7D0ws-XAeM6EiQu5D6byItxsdPXOaKC5spHTQ1nR7u780uxoHIpaPHu2sWOCUxudjgw7iHPEykarM7HjJONPdhfIwWZf2lNncsxn6oH9a-1Zj4YuSIH72PCu4-1Z7ddcZAhlxYhkkg4cAkF-tcZkbR_vnungSyd8Qju5ZOZsz2PwAAHZSC7SIcARcBnE_29aqN1Jh-xb5DGXuWZ8UaeRzF9G5rK8BpYQtcnYV4QARiSpPGLsBa_a5OXEmy5K37xU2Fxasb0r0xNKabECSVfGKqRiEv2aU3W5KG7FTFIZ01KGONnPKQd0TP4G8RWKyHDGRj5HQM-rRmSoWxYzoxSoz94OboBgmFmyMngtKmFRNsJ0Y_gcyhiRTQgljpAJrkBNQ_WyO7Uhnclferv18JS9ztkT8S7yptebO48_nvBPGYFLiPfPkFWf1VgWtViG250zeTRo-lHEJsfNVFNnjfJ9PUPg8zsCxpZahrCbPmiLQQ0phTfOIjrAPmWd_Lik33WmNwxRe-1H090dy6c-A9J9of7SFgFP88pAd_7ct_XAaFSu_G7m9wAfN2lO08LAFR7MokjinXlYOUTWC3Bb48oEOYpdKURihYnLRR6D-3fd3eh2wO1knz7T0pWFnvF5Sp5C_eTqOxzf-z3JSARhK6Ir7vzjQfACrlrL5UG9EacCQcdYnrmF7-LUaV5f7isNcUSA4Q1R9SahKMtMkekgthXuiOj9sidRHVIkU2934PEKsACSrWrZxxxCZhCiMVOgNXbtinb6HKoH3OOKP_8tMTFytSTJ1Yr77fpqiBMNLUuEflj3yCPD8UomXir4AXfQWmw9cAahCFBQUn-6Bwmkgj2tK84dBgn1zy-eZNplbERZJJWVSIRGi1wJBOSKoVCqbxTNeEpZ2AmgO21B0x5rj8ZYzVrHFvXMhEYq-ihpSBhS-mrVLVBJslinLawqhTHArxJsftsuPlF_aRjNU7Khc0KQpRsrAWzc42rgqJn40rHfZ78CVS_5PyCnSNQ9h5wEiqtGaEeL5vM9RmLJ4oJ9g0wUXYbwYYs6Cg6_u_njXFTVk0mxcTlegUoV3UXZmXAJ6HRJN3AfViifmrePxV4XvfN9D4KKI72zDRyVHFK-8OwUZFCKo8DwXjiWnhC9PCwSh66kpvmVABiyQLBqGSzN7TUmMAVpSVxcxLCp3EPu5TI3ps7R-WkOx0FCdxUX8qqtWtgtfds8Dbwjav-56LcQZhmfePwIs7bt3efFrr9vOazPmi3gySMlCCgYOE6Jie7EbT7EjAGbnGm122VVHQ4pGqejAVpIYjHlidYUd1L8uVdNb-chUawyC9U-U8Pdt3GBWAyhRnLnC4BU8okPIhmAUYSvNkBEoCXCtVxZqFOF8-r0EpmMcDdGhsiaBTXkE-TOPNx2BLnI3vrLzKT5_b4UFIH7TdtPc9GIfz-RHXak1rQTzsvxtcXM5hv7eIubWunBZUVj4NN1ApdC_J-lX7M1YctZJ5NMTEPV4H2cUZYrW_Ja6Ttc2W0jL3m94xpIcAOUp6cx8Eg_ZploW6euaDK5JjBiz-yQKZ2EgXLfoIf0XPUr4GsiNyCgak_tO0p44ot56B52Aa0r844d5RiwkPa4XN9XG9jTFLArOeGsH2fT1z6uQK7_Zfqf0-2aAeENIYHtVq8mNUukgcLLSnom3BNjSxkr-DS9Swc3FSQscxmPc-7Trwjp5M92lbxu1MflmcxussNGlwbSUfWiLiso-CI37DVYxx6AbaTAk_mBsQnzJK1w2ktnHpqcOnhsGGcS9n2JGVkY4ZJovZImHkIhYO65no_H3bh_ahw4EpFRwnrgwiuB1My2JXYhB0MRRHuXeiK5RLVnk0arXCuc6plZMVXawZ9WRQS469R-NVbyhj-g-ev-RbDTg1Gvjpzjx_gOZ3GNfEHxRGN1RgWTPSN_a4zDjBE_sLV8W3VNkoUo8QPIdVbVHHV7REmsUp1BpFYsSZbDYCwkddLHmtwr4ptuEJDGboiw9fl6a6556W3Cufb47GAwRWf__eO2WdEVa4HscjzcZuHXKzOeSEOyNk79SLIg8HngAEFpv9gQmrO9FWlPVIActiHo9YLjRipfLq8xEwnDV_KTvDGBpPlIYCVjxcJDphL1pIWv4f6IbOwLbn-353krpsbLwS1bwfzm4w7qN1A0gkc1Pjx5UrgcdpoxnSAdRnXshu7Q7HflBQfVYoV97kkOLbvbnTjTldDbiYsH6AN2GpEQe5xQcIqLe2Zh_vrPc-nQXDvjf3ImPZkw8eu8iNjeBrnT2OsNBqEFE_i-n-E5XlqXS21tdce8hqLZ4eo6_ghqKV5EQCywblt9SfEQfeCMBF_xIKQmvBWDFukmJ9T1TH-ptxmf_oFLZhrwvs4D3UwKIOhetgtw1rnmeMLt-4iIZlzAo5WyZwU3QlStHcq7ifuu-0bw9J_TsoR2uXcnKyzlsD5U6BPGN_VBrlFFjqsRwXsEfBry3vSS-Q3zl_HtdCa3l5At_jddLKNPx2gbMaXLMoAnrMdt5yVmKCGl665RDznuJp3UuPGieV217iLB2Cx0EqV8odkVsbwJvzFNOShbzo_thr6ySt05lCKmosrcvEnm2Buqc8xrAj3KTXR0VPgM2SYNTHMDKA9N5L3btVJIelrIRrjQbSnJpHSznDBrRhM5l5zZl13Clfo3nYJF-QsxkdCqQZYdF1jN9aXx5qGVyz6hgXzAF2o_G7U7qUTiFeQ5YPFWac_29yaOF1xO0a_wrLyJfHg82dvuhlvDu28QZV0UiQyP17sDIWRupnof0x4OUsAhIhL9KamZQ8IqpqoTA5Ap5RpGvQ30LXm26CtFfjQe5kum1LZ-MbtVD8RpbeeikgmqhA5klaqR3BCNmIpmyOXOoB4RVP9UVugX6h5UQOj-oklnmq6PrFHD-UQta5g87ntoukTNcrsIdndX5cUohVn0qWlsfrEL6tKCTkUw5kTA6w9GjfclctNUdEdbkiA-XaUACHQaqhJkHkW-Q0_H1IcIeMe8E3v1iYLVPPMNKD4LCuhuBy9oXyaR1Ph72TwoFNhaPzdGrtDFbaBzYhx_y1dSik4yi5PNVrWrJ1HsYT8EZJ8d32eQVGYUsycL4qS_DWUQNrxLI1m_NyZKOkPbX4FXubei7rt2zXENqkYXK2O7k5oijJBPBJV1QF07RTQ5PGj8zTwyvT3bfNsdsmkcZzS4fHXq71UOHC5DelVcM8I1ytScWiN5CW4C7lt8ZLgf0tdl6_JULmJ94etLerOy0LUPe6khSR8WqgY1TQ7p9bWYo2rTSEgx_Lyc4DeH4LgSLEtVB_JCWneCqtp1mA6hWPp0-bLyL1hjCaNDU3XsyGEyQj3a88w7aKViOjIXwuugdU7r6BSF21ffICBbKvBYLT07s_ifxYIXFWRfGsbKFzwSYf-ZtpG6cEYgZEHTUJFFb3_B-HtSvz6kEnILa6aw51DQHlN6uMUvDthw61APCZzn-btHE_9vZG_6p_3frsL32Vkyz4SbdSRODe7RElVTIa3Kn2-ipyq0QcAF_o6cP6TIo-aMqp6B3h9TMxpf6SnDfjT5dHT7pAkXlFZHZfjW4YAJF3mcHZ24bcCssFhpO0NNdWaws4ELewmYqGzm65ZAP5xgJzucqom5J9RoNGSp_xXxm-_Un0vUJZmBMS5BSAwP4zLuorWMwtU_IXRdRV235vKKihqrVFz4KZqUXnqWx-oq8XErUJv2Dfhg-xOR7go9VQwlN0W-HkHKqOUr4Qv4BOPvJf_BjoI-NlRn7QH902I3I5BGViodqMavPrfd0xm2hWHrarCxWkR_7r-leaRBWPP9bKob4IZDCrQ8e4Chf92OpfU7ieNGaIH9RTngo-iVrnkuVVVd-7N1tkDQuFoDRyc5IVpB_PlLxrwCp7uiC6fc_hQGCsd28q17xDsndjDN4O1e47ppAX2iwg4cdxNcWRf3oNursj4eU1U1KffXtYo6-abwHk9BEAbRIC5DqFijQtrSsWbPJt2cWietN6dsa5YKbcu4nOV-PhlNkow8I8Vtlq4Dnfzgvj5NbODD03RMdU7NpOEhqccQO3Ym8vs8UQhOL1yyzM-w723wd2gAkXLIy_roxqOu1N5lKxi3u36keJrbu_FZlce3yrZ3PQq1grVL1Cn2NDv7GGmUtzf6QnYCJpac1Ynl2b80D3QUBTjkcXyDMBR_C2nKTMYRo7Mq62iNtwVd1Q3kokS38ERojXlwPb7C0-DLyeC0WfEquDNymzhspbB_LlKwQFjinrUlnd9DQkIFR_xfX5XvkyS32I5RddDYuiHiO50zCoDTvow_icUYXhaxPfDqlcXFWNrMymlWrogc3Tk4qoqYdIZxQInUX2RZAIsC5W-ZcP8aOPYAukVTF-EoyH8yv5Ue4GIK1jVJ-IbxZK2mB8io4KwTKFE61g-Cv3z7_l_I6224P8o3N6dm7qnDt6Dj6-v66oDe8MKQPN3dbUcOnfxeL42CgJjVaYQsnUIwjIgrcxzjTVALqcZvA0MhlHBgqqQOj9wkpYL4YYHjOCNIJns8fBCRb46gYpON8IYV1m_YoVpJDTbQsB9SewWvLws1B_92LZQ_9PDxnMSg3cvYVvjx2W3CL2dKVUZmvlz_CdaRXwCHetyU3ALMwRLT5-UylT1cMz18aI-RJzYJO7q25FefRH66KvUOhPW8UuGEPIRK9VfVw__o10ivCTqoII43p48h5DuJU4clj97nSZmjrCsCI-rhy17VI3mtD5o7EggRCCKl56z80z1BXHYQ5TPs4juDYQ_18-rxPydCjbL_rKbl1gIwCEBW8uLBsfkvYDsQGg4vvx2tzCjNTLQqw13BHOnPryN5kF0yZutmTo3uK8lBG-Zh6ufVDmQxl4lzC82zCx6iiSuSJ8ob-8gyuPE7dZv8DN92-gPpFSSZnkn_Ulma_zPpkSvXhPC-UwgYLE2Ds7ZSzRshU11K7Fc3v8cPgTDpgps1kTUMfOWYzUz4udEL5SCf7KQuZbZz5V5OCscMj6OjHFW88M8V_tBdPGzZd54-4YQJSrbu8TvMSWV5sf7_jgTTBQ5MYqvGyEFXrFwj2QTy73DT32mvZa5CiT9TqK83ShQ3JNKKqfkT8h79tz2qwHrkzMSAmxxWE1sTkMl9EgQx70q2c62lMFtFvcN-dheMKWTcQKNxEm8Z8uMFmylX3H8OQDUJpE_8HYNkfoHKs_wbcCo1R3jNX6Osks13TPPeJO_dsFQskM0D2nyGFNAco-d_7FmuululYzwyHo1dVtcUqBCj5nU4StSIvxRSu4mF89zpep35HrVcj5JUddCdjNRk58ocIOA3zOBJRn9AWZwGaD6AsQ_3ATRX9--2Kbty2nz3CBBBsEQgjbBKIQdmXT0Oi3T4M0H7Dw2Lu-j9AzeChcVCePPzWPJ9PAXGZJElQizJ7VNTQGfAp18oDTVGgwrVZV9Jcxn8f0ItwmeBJDbOwyHny7211tW1s0i-GUUIaKxXcqCoe9ggmCuzbwIRdjf0vdC-4RH7L0kHgMx3PfXmjQJIWYR6NysutcxgYJLPA1D-iOthxwdZ2ukwmY7domKE5TeKtzEgk2qPLZhpPet08DYSsIjMNZc9Rt_4ysgmOYD-k7n6MH3L7---GWQtnusB0u-upJm9qz9324yqvpfQjnvq32KvSqqlzb6rIWPuEF-ICVzqpBuRB2nlvUgfQuz7aTreNw2kKaB-q6P-Rckhy82QTtmFjSgoOp0l1qAgSa4zi5Bd4ZXAL8xfv8TT91P391yn8fr_139APVjWoNhbQ0hi71vxiIInbSfS4uUMeDfReqfeTQtwIGtCLa6YfVU-lK_Yw0qEBZp1I5Ikpc_TWWJOjGZJdd3Dz1MPqSIZXMNb86ZZlct335GU6icPSHhRYYmZ5tLXRev7ZM1aV3bzQX4OFUhL0NJEhbGpsGoVrbfvrUKjK11sSHJY7X8BqWdW6uNiZrILODVQYlJHOyzTs1yJ4VLbinSVxA4eSEduFVJGKLbzHWBfGOTtRbk2-l_z7Y1h6asylOl22WUj0bCP0Od4zLPqcZpmEzK8THoDP54ID0S8gRL55zFCPqGz6D98ctPsRU7qSHx9ZMI6rsw-DxKAPEWOJYC2gBldTPON9BS1F1iWzjb4Izr7yLMCtyquOGyAh5ZbPaZGfDycapxKazd1TXno5a5Y3LqpTNuFvIYcc47-w6Ox0";if(!e)return null;if(Bt&&Bt.sealed===e)return Bt;let t=null;try{t=xa.parse(JSON.parse(os(e,dm)))}catch{t=null}return Bt={sealed:e,bundle:t},Bt}function Ea(){let e=fm();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=va(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}var pm=null;async function mm(e,t){let n=await na();if(n.size>0)return dt(e,n.values(),t,n);let r=Ea();return r?r.selectFor(e,"free",t?[...t]:void 0):null}var hm=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,gm=2048,ym=8192,bm=32*1024;function km(e,t,n){let r=xn(e,{...t,keep_failures:!0,fold_passing:!1,mask_abs_paths:!1,transform:void 0,truncate_lines_at:void 0,max_lines:void 0,on_empty:void 0},{verbosity:"normal",smartCode:!1});if(r.trim().length===0)return oe(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
|
|
90
|
+
`)?`
|
|
91
|
+
`:"";return wn((s?r.slice(0,-1):r).split(`
|
|
92
|
+
`)).join(`
|
|
93
|
+
`)+s}async function wm(e,t,n,r={}){let s=Buffer.byteLength(t,"utf8"),{exitCode:i,yolo:o=!1,resolver:a,...l}=r,c=Ve(ia(e.startsWith("bash-tool: ")?e.slice(11):e)),u=i!=null&&i!==0&&!(i===1&&hm.test(ts(c)??c)),d=Ko(a??pm??mm),f=null;for(let N of oa(e))if(f=await d(N,n),f)break;!f&&s>=gm&&!Qr.test(e)&&(f=await d(`bash-tool: ${e}`,n));let p=es(e.startsWith("bash-tool: ")?e.slice(11):e),h=f?.slug==="git-log"&&p!=null&&/^git\s+log(?:\s|$)/.test(Ve(p)),T=i==null&&(h?/^(?:fatal|error):/im.test(oe(t)):ra(t)),w=f?.transform==="smart-read"&&s<=2048&&(t.endsWith(`
|
|
94
|
+
`)?t.slice(0,-1):t).split(`
|
|
95
|
+
`).length<=60,I=s<=16384&&p!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(Ve(p)),R=f?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,O=f?.slug==="read-tool"&&s<bm;if(!o&&(R||O||I||w&&l.smartCode!==!0))return{output:t,filterId:f?.slug??null,rawBytes:s,filteredBytes:s,debugBypass:u||T,droppedTail:null};if(!o&&f&&!f.preserve_exact&&(u||T)&&ba.test(c)){let N=_a(t,l.verbosity??"normal"),te=N===null?s:Buffer.byteLength(N,"utf8");if(N!==null&&te<s)return{output:N,filterId:f.slug,rawBytes:s,filteredBytes:te,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!f||(u||T)&&f.preserve_exact&&!o)return{output:t,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:u||T,...o?{droppedTail:null}:{}};let P=N=>{if(!o)return N;let te=N.filteredBytes>s||s>0&&N.output.length===0?t:N.output,ht=!N.debugBypass&&!f?.preserve_exact?ss(te,"minimal",N.filterId??""):te,ls=ns(ht)===ht?ht:ns(te);return{...N,output:ls,filteredBytes:Buffer.byteLength(ls,"utf8"),droppedTail:null}};if(f.slug==="tsc"&&!u&&!T&&!pa(e)){let N=ma(t);if(N!==null)return P({output:N,filterId:f.slug,rawBytes:s,filteredBytes:Buffer.byteLength(N,"utf8"),debugBypass:!1,droppedTail:null})}if(u||T){let N=o?xn(t,{...f,keep_failures:!0,transform:void 0,max_lines:void 0,truncate_lines_at:void 0,on_empty:void 0},{verbosity:"minimal",smartCode:!1}):f.strip_on_failure&&!f.preserve_exact?km(t,f,l.verbosity):f.strip_ansi&&!f.preserve_exact?oe(t):t;!o&&l.verbosity==="minimal"&&f.transform!=="smart-read"&&(N=fa(N)),!o&&f.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(N)&&/^={3,} FAILURES ={3,}\r?$/m.test(N)&&(N=N.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let te=!o&&!f.preserve_exact&&s>=ym?fo(N.split(`
|
|
96
|
+
`)).join(`
|
|
97
|
+
`):N,ht=te.length<N.length;return P({output:te,filterId:f.slug,rawBytes:s,filteredBytes:Buffer.byteLength(te,"utf8"),debugBypass:!0,...ht?{droppedTail:t}:{}})}let{text:L,droppedTail:Ke}=Dr(t,f,o?{...l,verbosity:"minimal",...f.transform==="smart-read"?{smartCode:!0}:{}}:l),zt=!o&&!f.preserve_exact?ss(L,l.verbosity,f.slug):L,as=Buffer.byteLength(zt,"utf8");return t.trim().length>0&&as>=s?P({output:t,filterId:f.slug,rawBytes:s,filteredBytes:s,debugBypass:!1,droppedTail:null}):P({output:zt,filterId:f.slug,rawBytes:s,filteredBytes:as,debugBypass:!1,droppedTail:Ke})}Be();ze();export{G as PLUGIN_VERSION,Jf as activate,op as aggregateReplay,q as buildFingerprint,ip as extractBashRuns,Xf as heartbeat,wm as processOutput};
|
|
98
|
+
/*! Bundled license information:
|
|
99
|
+
|
|
100
|
+
smol-toml/dist/error.js:
|
|
101
|
+
smol-toml/dist/primitive.js:
|
|
102
|
+
smol-toml/dist/date.js:
|
|
103
|
+
smol-toml/dist/extract.js:
|
|
104
|
+
smol-toml/dist/util.js:
|
|
105
|
+
smol-toml/dist/struct.js:
|
|
106
|
+
smol-toml/dist/parse.js:
|
|
107
|
+
smol-toml/dist/stringify.js:
|
|
108
|
+
smol-toml/dist/index.js:
|
|
109
|
+
(*!
|
|
110
|
+
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
111
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
112
|
+
*
|
|
113
|
+
* Redistribution and use in source and binary forms, with or without
|
|
114
|
+
* modification, are permitted provided that the following conditions are met:
|
|
115
|
+
*
|
|
116
|
+
* 1. Redistributions of source code must retain the above copyright notice, this
|
|
117
|
+
* list of conditions and the following disclaimer.
|
|
118
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
119
|
+
* this list of conditions and the following disclaimer in the
|
|
120
|
+
* documentation and/or other materials provided with the distribution.
|
|
121
|
+
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
122
|
+
* may be used to endorse or promote products derived from this software without
|
|
123
|
+
* specific prior written permission.
|
|
124
|
+
*
|
|
125
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
126
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
127
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
128
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
129
|
+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
130
|
+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
131
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
132
|
+
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
133
|
+
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
134
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
135
|
+
*)
|
|
136
|
+
*/
|