@tokmizer/plugin 1.1.0 → 1.1.2

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 (40) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/README.md +6 -4
  4. package/command-templates/tkr-status.md +1 -1
  5. package/dist/bin/tkr-agent-hook.js +13 -13
  6. package/dist/bin/tkr-codex-hook.js +75 -75
  7. package/dist/bin/tkr-context-hook.js +1 -1
  8. package/dist/bin/tkr-copilot-hook.js +12 -12
  9. package/dist/bin/tkr-crush-hook.js +12 -12
  10. package/dist/bin/tkr-cursor-hook.js +12 -12
  11. package/dist/bin/tkr-daemon.js +131 -131
  12. package/dist/bin/tkr-droid-hook.js +12 -12
  13. package/dist/bin/tkr-exec +0 -0
  14. package/dist/bin/tkr-exec.js +74 -74
  15. package/dist/bin/tkr-gemini-hook.js +12 -12
  16. package/dist/bin/tkr-grok-hook.js +12 -12
  17. package/dist/bin/tkr-junie-hook.js +12 -12
  18. package/dist/bin/tkr-processor.js +103 -103
  19. package/dist/bin/tkr-qwen-hook.js +12 -12
  20. package/dist/bin/tkr-shim.js +66 -66
  21. package/dist/bin/tkr-trae-hook.js +12 -12
  22. package/dist/bin/tkr-zcode-hook.js +12 -12
  23. package/dist/bin/tkr.js +267 -252
  24. package/dist/hooks-host/post-tool-use.js +88 -88
  25. package/dist/hooks-host/pre-tool-use.js +13 -13
  26. package/dist/hooks-host/reducer-prompt-submit.js +1 -1
  27. package/dist/hooks-host/reducer-session-start.js +1 -1
  28. package/dist/hooks-host/reducer-stop.js +1 -1
  29. package/dist/hooks-host/session-recap.js +7 -5
  30. package/dist/index.js +87 -87
  31. package/dist/native/manifest.json +12 -12
  32. package/dist/native/single.json +2 -32
  33. package/dist/native/tkr-exec-darwin-arm64 +0 -0
  34. package/dist/native/tkr-exec-darwin-x64 +0 -0
  35. package/dist/native/tkr-exec-linux-arm64 +0 -0
  36. package/dist/native/tkr-exec-linux-x64 +0 -0
  37. package/dist/native/tkr-exec-win32-arm64.exe +0 -0
  38. package/dist/native/tkr-exec-win32-x64.exe +0 -0
  39. package/hooks/on-session-start.mjs +2 -2
  40. package/package.json +7 -7
@@ -1,119 +1,119 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
3
- var lu=Object.defineProperty;var ge=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var Ns=(e,t)=>{for(var n in t)lu(e,n,{get:t[n],enumerable:!0})};function bc(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function _c(e,t,n){let r=e.split(/\r?\n/),s="",o=(Math.log10(t+1)|0)+1;for(let i=t-1;i<=t+1;i++){let a=r[i-1];a&&(s+=i.toString().padEnd(o," "),s+=": ",s+=a,s+=`
3
+ var uu=Object.defineProperty;var ge=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var Ps=(e,t)=>{for(var n in t)uu(e,n,{get:t[n],enumerable:!0})};function _c(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function xc(e,t,n){let r=e.split(/\r?\n/),s="",o=(Math.log10(t+1)|0)+1;for(let i=t-1;i<=t+1;i++){let a=r[i-1];a&&(s+=i.toString().padEnd(o," "),s+=": ",s+=a,s+=`
4
4
  `,i===t&&(s+=" ".repeat(o+n+2),s+=`^
5
- `))}return s}var E,Ke=ge(()=>{E=class e extends Error{line;column;codeblock;constructor(t,n){let[r,s]=bc(n.toml,n.ptr),o=_c(n.toml,r,s);super(`Invalid TOML document: ${t}
5
+ `))}return s}var E,qe=ge(()=>{E=class e extends Error{line;column;codeblock;constructor(t,n){let[r,s]=_c(n.toml,n.ptr),o=xc(n.toml,r,s);super(`Invalid TOML document: ${t}
6
6
 
7
- ${o}`,n),this.line=r,this.column=s,this.codeblock=o}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}}});function cn(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,s=n===39,o=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);o&&((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),o&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))l=l&&3;else if(n<32&&n!==9||n===127)E.x("control characters are not allowed in strings",e);else if((!l||l===3)&&n===r&&(!o||e.s.charCodeAt(e.p+1)===r&&e.s.charCodeAt(e.p+2)===r)){if(o&&(e.s.charCodeAt(e.p+3)===r&&e.p++,e.s.charCodeAt(e.p+3)===r&&e.p++),!l){let u=e.s.slice(a,e.p);i=i?i+u:u}return e.p+=o?3:1,i}else if(!l)!s&&n===92&&(i+=e.s.slice(a,a=e.p),l=1);else if(l===1)if(n===120||n===117||n===85){let u=e.p++-1,c=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),h=p>=48&&p<=57?p-48:p>=65&&p<=70?p-65+10:p>=97&&p<=102?p-97+10:-1;h<0&&E.x("invalid non-hex character in unicode escape",e),c=c<<4|h}(c<0||c>1114111||c>=55296&&c<=57343)&&E.x("invalid unicode escape",e,u),i+=String.fromCodePoint(c),a=e.p--,l=0}else o&&(n===32||n===9)?l=2:(n===98?i+="\b":n===116?i+=" ":n===110?i+=`
8
- `:n===102?i+="\f":n===114?i+="\r":n===101?i+="\x1B":n===34?i+='"':n===92?i+="\\":E.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&E.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!s&&n===92?1:0,a=e.p);E.x("unfinished string",e,t)}var Xn=ge(()=>{Ke();});var xc,qe,Qn=ge(()=>{xc=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,qe=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let s=!0,o=!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`);s=n!==4,o=n!==3}else{let l=t.match(xc);l?(l[1]||(s=!1,t=`0000-01-01T${t}`),o=!!l[2],o&&t[10]===" "&&(t=t.replace(" ","T")),l[2]&&+l[2]>23?t="":(i=l[3]||null,!i&&o&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=s,this.#n=o,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 V(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function tr(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function Pt(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||E.x("document contains excessively nested structures. aborting.",e);let s=r===91?Ws(e):Gs(e);return e.d++,s}return r===34||r===39?cn(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&E.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)&&E.x("invalid value",e,n),e.p++,!1):r===43||r===45?fn(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?wc(e,r,t):e.s.charCodeAt(e.p+2)===58?Sc(e,r,t):fn(e,e.p,r,0,t)}function fn(e,t,n,r,s){let o=n,i=0,a=!1;if(o===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&E.x("invalid value",e,t),e.p++,(r||1)/0;if(o===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&E.x("invalid value",e,t),e.p++,NaN;if(o===48){if(++e.p>=e.s.length||tr(o=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(o===120)return er(e,t,16,s);if(o===98)return er(e,t,2,s);if(o===111)return er(e,t,8,s)}o===46?i=2:o===101||o===69?i=4:E.x("illegal leading zero",e,t)}else V(o)||E.x("invalid value",e,t);for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!tr(o,s));)i||(i=1),o===95?(i&1||E.x("illegal underscore",e),i+=11,a=!0):i===1&&o===46?i=2:(i===1||i===3)&&(o===101||o===69)?i=4:i===4&&(o===43||o===45)||(V(o)?i>9?i-=11:i&1||i++:E.x("illegal character in numeric literal",e));if(!i){let u=(n-48)*(r||1);return e.bi===!0?BigInt(u):u}i&1||E.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):Js(e,l,10,t)}function er(e,t,n,r){let s,o=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!tr(s,r));)s===95?(o&1&&E.x("illegal underscore",e),o=3):V(s,n)?o&1&&o--:E.x("illegal character in numeric literal",e);o&1&&E.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return o&&(i=i.replaceAll("_","")),Js(e,i,n,t)}function Js(e,t,n,r){if(e.bi!==!0)e:{let s=parseInt(t,n);if(!Number.isSafeInteger(s)){if(e.bi)break e;E.x("integer value cannot be represented losslessly",e,r)}return s}return BigInt(n===10?t:(n===2?"0b":n===8?"0o":"0x")+t)}function wc(e,t,n){let r=e.p++,s;if(!V(t)||!V(e.s.charCodeAt(e.p++))||!V(e.s.charCodeAt(e.p++))||!V(e.s.charCodeAt(e.p++)))return fn(e,e.p=r,t,0,n);if(e.p+=5,V(e.s.charCodeAt(e.p++))||E.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(s=!0,!V(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return Nt(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&E.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(;V(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 Nt(e,i,1,s,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return Nt(e,i,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let o=e.s.slice(r,e.p);return Nt(e,o,2,s,r)}function Sc(e,t,n){let r=e.p;if(!V(t)||!V(e.s.charCodeAt(++e.p)))return fn(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;V(e.s.charCodeAt(++e.p)););let s=e.s.slice(r,e.p);return Nt(e,s,4,!1,r)}function Nt(e,t,n,r,s,o){if(e.ld){let i=new qe(t,n,r);return i.isValid()||E.x("invalid date",e,s),i}try{switch(o&&(t+=o),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){E.x(i instanceof Error?i.message:""+i,e,s)}}var nr=ge(()=>{Xn();rr();Ke();Qn();});function vc(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)&&E.x("control characters are not allowed in comments",e)}}function se(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;vc(e)}}var sr=ge(()=>{Ke();});function dn(e,t=61){let n,r=0,s=[],o,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||E.x("unexpected end of key",e),r===1&&s.push(e.s.slice(o,e.p)),e.p++,s;i===46?(r||E.x("illegal empty bare key",e),r===1&&s.push(e.s.slice(o,e.p)),r=0):!r&&(i===34||i===39)?(i===e.s.charCodeAt(e.p+1)&&i===e.s.charCodeAt(e.p+2)&&E.x("illegal quoted key: multiline strings are not allowed",e),s.push(cn(e)),r=2,e.p--):i===32||i===9?r===1&&(s.push(e.s.slice(o,e.p)),r=2):r===2||i<48&&i!==45||i>57&&i<65||i>90&&i<97&&i!==95||i>122?E.x("illegal character in key",e):r||(r=1,o=e.p)}while(i=e.s.charCodeAt(++e.p));E.x("incomplete key-value: cannot find end of key",e,n)}function Gs(e){let t=e.p++,n=Object.create(null),r=new Set,s;for(;e.p<e.s.length;){if(se(e),(s=e.s.charCodeAt(e.p))===125)return e.p++,n;let o,i=n,a=!1,l=e.p,u=dn(e);for(let f=0;f<u.length;f++){f&&(i=a?i[o]:i[o]=Object.create(null)),o=u[f],(a=Object.hasOwn(i,o))&&(typeof i[o]!="object"||r.has(i[o]))&&E.x("trying to redefine an already defined value",e,l);let d=o==="__proto__";if(e.uk&&(d||o==="constructor")){i=e.uk!==1&&E.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0})}a&&E.x("trying to redefine an already defined value",e,l),se(e,!0,!0);let c=Pt(e,125);if(i&&typeof(i[o]=c)=="object"&&r.add(c),se(e),(s=e.s.charCodeAt(e.p++))===125)return n;s!==44&&E.x("expected comma or end of structure",e,e.p-1)}E.x("unfinished table",e,t)}function Ws(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(se(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(Pt(e,93)),se(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&E.x("expected comma or end of structure",e,e.p-1)}E.x("unfinished array",e,t)}var rr=ge(()=>{Xn();nr();sr();Ke();});function Vs(e,t,n,r,s){let o=n,i=r,a,l=!1,u;for(let c=0;c<t.length;c++){if(c){if(o=l?o[a]:o[a]=Object.create(null),i=(u=i[a]).c,s===0&&(u.t===1||u.t===2))return null;if(u.t===2){let f=o.length-1;o=o[f],i=i[f].c}}if(a=t[c],(l=Object.hasOwn(o,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(o,a,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(i,a,{enumerable:!0,configurable:!0,writable:!0})),i[a]={t:c<t.length-1&&s===2?3:s,d:!1,i:0,c:Object.create(null)}}}if(u=i[a],u.t!==s&&!(s===1&&u.t===3)||(s===2&&(u.d||(u.d=!0,o[a]=[]),o[a].push(o=Object.create(null)),u.c[u.i++]=u={t:1,d:!1,i:0,c:Object.create(null)}),u.d))return null;if(u.d=!0,s===1)o=l?o[a]:o[a]=Object.create(null);else if(s===0&&l)return null;return[a,o,u.c]}function Ks(e,t,n){(t===null||e.uk===2)&&E.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function Dt(e,t={}){let n={s:e,p:0,d:t.maxDepth??1e3,bi:t.integersAsBigInt??!1,ld:t.useLegacyDate??!0,uk:t.unsafeKeyBehaviour==="throw"?2:t.unsafeKeyBehaviour==="drop"?1:0},r=Object.create(null),s=Object.create(null),o,i=!1,a=r,l=s;for(e.charCodeAt(0)===65279&&n.p++,se(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let u=e.charCodeAt(++n.p)===91;o=n.p+=+u,i=!1;let c=dn(n,93);u&&(e.charCodeAt(n.p)!==93&&E.x("expected end of table array declaration",n),n.p++);let f=Vs(n,c,r,s,u?2:1);f?(l=f[2],a=f[1]):(Ks(n,f,o),i=!0)}else{o=n.p;let u=dn(n),c=Vs(n,u,a,l,0);!c&&!i&&Ks(n,c,o),se(n,!0,!0);let f=Pt(n,void 0);c&&!i&&(c[1][c[0]]=f)}se(n,!0),n.p<e.length&&(o=e.charCodeAt(n.p))!==10&&(o!==13||e.charCodeAt(n.p+1)!==10)&&E.x("each key-value declaration must be followed by an end-of-line",n),se(n)}return r}var qs=ge(()=>{rr();nr();sr();Ke();});function Lt(e){let t=typeof e;if(t==="object"){if(Array.isArray(e))return"array";if(typeof e.getUTCDate=="function"&&e instanceof Date)return"date";if(globalThis.Temporal){if(e.until){if(e instanceof Temporal.ZonedDateTime)return"temporal/tz+uc";if(e instanceof Temporal.PlainDateTime||e instanceof Temporal.PlainDate)return"temporal/uc";if(e instanceof Temporal.PlainTime||e instanceof Temporal.Instant)return"temporal";if(e instanceof Temporal.PlainYearMonth)return"temporal/x"}else if(e.toPlainDate&&e instanceof Temporal.PlainMonthDay||e.negated&&e instanceof Temporal.Duration)return"temporal/x"}}return t}function Tc(e){for(let t=0;t<e.length;t++)if(Lt(e[t])!=="object")return!1;return e.length!=0}function Xs(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function Ac(e){return Xs(Ys?e.toWellFormed():e)}function Qs(e){if(Ec.test(e))return e;if(Ys&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return Xs(e)}function or(e,t,n,r,s){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");switch(t){case"number":if(isNaN(e))return"nan";if(e===1/0)return"inf";if(e===-1/0)return"-inf";if(Number.isInteger(e)&&(r||!Number.isSafeInteger(e)))return e.toFixed(1);case"bigint":case"boolean":case"temporal":return e.toString();case"string":return Ac(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return Rc(e,n,r,s);case"array":return $c(e,n,r,s);case"temporal/tz+uc":if(s){let o=e.timeZoneId,i=o.charCodeAt(0);if(i!==43&&i!==45&&(i!==85&&i!==71&&i!==90&&i!==69||o!=="UTC"&&o!=="UCT"&&o!=="Universal"&&o!=="Zulu"&&!o.startsWith("GMT")&&o!=="Greenwich"&&!o.startsWith("Etc/")))throw new TypeError("Temporal objects with an IANA timezone are not allowed in Temporal strict mode")}case"temporal/uc":if(s&&e.calendarId!=="iso8601")throw new TypeError("Temporal objects with a non-default calendar are not allowed in Temporal strict mode");return e.toString({calendarName:"never",timeZoneName:"never"});case"temporal/x":throw new TypeError("Unsupported "+e[Symbol.toStringTag])}}function Rc(e,t,n,r){let s=Object.keys(e);if(s.length===0)return"{}";let o="{ ";for(let i=0;i<s.length;i++){let a=s[i];i&&(o+=", "),o+=Qs(a)+" = "+or(e[a],Lt(e[a]),t-1,n,r)}return o+" }"}function $c(e,t,n,r){if(e.length===0)return"[]";let s="[ ";for(let o=0;o<e.length;o++){if(o&&(s+=", "),e[o]===null||e[o]===void 0)throw new TypeError("arrays cannot contain null or undefined values");s+=or(e[o],Lt(e[o]),t-1,n,r)}return s+" ]"}function Cc(e,t,n,r,s){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let o="";for(let i=0;i<e.length;i++)o+=`${o&&`
7
+ ${o}`,n),this.line=r,this.column=s,this.codeblock=o}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}}});function fn(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,s=n===39,o=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);o&&((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),o&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))l=l&&3;else if(n<32&&n!==9||n===127)E.x("control characters are not allowed in strings",e);else if((!l||l===3)&&n===r&&(!o||e.s.charCodeAt(e.p+1)===r&&e.s.charCodeAt(e.p+2)===r)){if(o&&(e.s.charCodeAt(e.p+3)===r&&e.p++,e.s.charCodeAt(e.p+3)===r&&e.p++),!l){let u=e.s.slice(a,e.p);i=i?i+u:u}return e.p+=o?3:1,i}else if(!l)!s&&n===92&&(i+=e.s.slice(a,a=e.p),l=1);else if(l===1)if(n===120||n===117||n===85){let u=e.p++-1,c=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),y=p>=48&&p<=57?p-48:p>=65&&p<=70?p-65+10:p>=97&&p<=102?p-97+10:-1;y<0&&E.x("invalid non-hex character in unicode escape",e),c=c<<4|y}(c<0||c>1114111||c>=55296&&c<=57343)&&E.x("invalid unicode escape",e,u),i+=String.fromCodePoint(c),a=e.p--,l=0}else o&&(n===32||n===9)?l=2:(n===98?i+="\b":n===116?i+=" ":n===110?i+=`
8
+ `:n===102?i+="\f":n===114?i+="\r":n===101?i+="\x1B":n===34?i+='"':n===92?i+="\\":E.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&E.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!s&&n===92?1:0,a=e.p);E.x("unfinished string",e,t)}var Qn=ge(()=>{qe();});var wc,Ye,er=ge(()=>{wc=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,Ye=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let s=!0,o=!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`);s=n!==4,o=n!==3}else{let l=t.match(wc);l?(l[1]||(s=!1,t=`0000-01-01T${t}`),o=!!l[2],o&&t[10]===" "&&(t=t.replace(" ","T")),l[2]&&+l[2]>23?t="":(i=l[3]||null,!i&&o&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=s,this.#n=o,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 V(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function nr(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function Pt(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||E.x("document contains excessively nested structures. aborting.",e);let s=r===91?Vs(e):Ws(e);return e.d++,s}return r===34||r===39?fn(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&E.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)&&E.x("invalid value",e,n),e.p++,!1):r===43||r===45?dn(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?Sc(e,r,t):e.s.charCodeAt(e.p+2)===58?vc(e,r,t):dn(e,e.p,r,0,t)}function dn(e,t,n,r,s){let o=n,i=0,a=!1;if(o===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&E.x("invalid value",e,t),e.p++,(r||1)/0;if(o===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&E.x("invalid value",e,t),e.p++,NaN;if(o===48){if(++e.p>=e.s.length||nr(o=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(o===120)return tr(e,t,16,s);if(o===98)return tr(e,t,2,s);if(o===111)return tr(e,t,8,s)}o===46?i=2:o===101||o===69?i=4:E.x("illegal leading zero",e,t)}else V(o)||E.x("invalid value",e,t);for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!nr(o,s));)i||(i=1),o===95?(i&1||E.x("illegal underscore",e),i+=11,a=!0):i===1&&o===46?i=2:(i===1||i===3)&&(o===101||o===69)?i=4:i===4&&(o===43||o===45)||(V(o)?i>9?i-=11:i&1||i++:E.x("illegal character in numeric literal",e));if(!i){let u=(n-48)*(r||1);return e.bi===!0?BigInt(u):u}i&1||E.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):Gs(e,l,10,t)}function tr(e,t,n,r){let s,o=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!nr(s,r));)s===95?(o&1&&E.x("illegal underscore",e),o=3):V(s,n)?o&1&&o--:E.x("illegal character in numeric literal",e);o&1&&E.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return o&&(i=i.replaceAll("_","")),Gs(e,i,n,t)}function Gs(e,t,n,r){if(e.bi!==!0)e:{let s=parseInt(t,n);if(!Number.isSafeInteger(s)){if(e.bi)break e;E.x("integer value cannot be represented losslessly",e,r)}return s}return BigInt(n===10?t:(n===2?"0b":n===8?"0o":"0x")+t)}function Sc(e,t,n){let r=e.p++,s;if(!V(t)||!V(e.s.charCodeAt(e.p++))||!V(e.s.charCodeAt(e.p++))||!V(e.s.charCodeAt(e.p++)))return dn(e,e.p=r,t,0,n);if(e.p+=5,V(e.s.charCodeAt(e.p++))||E.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(s=!0,!V(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return Nt(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&E.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(;V(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 Nt(e,i,1,s,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return Nt(e,i,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let o=e.s.slice(r,e.p);return Nt(e,o,2,s,r)}function vc(e,t,n){let r=e.p;if(!V(t)||!V(e.s.charCodeAt(++e.p)))return dn(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;V(e.s.charCodeAt(++e.p)););let s=e.s.slice(r,e.p);return Nt(e,s,4,!1,r)}function Nt(e,t,n,r,s,o){if(e.ld){let i=new Ye(t,n,r);return i.isValid()||E.x("invalid date",e,s),i}try{switch(o&&(t+=o),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){E.x(i instanceof Error?i.message:""+i,e,s)}}var rr=ge(()=>{Qn();sr();qe();er();});function Ec(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)&&E.x("control characters are not allowed in comments",e)}}function se(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;Ec(e)}}var or=ge(()=>{qe();});function pn(e,t=61){let n,r=0,s=[],o,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||E.x("unexpected end of key",e),r===1&&s.push(e.s.slice(o,e.p)),e.p++,s;i===46?(r||E.x("illegal empty bare key",e),r===1&&s.push(e.s.slice(o,e.p)),r=0):!r&&(i===34||i===39)?(i===e.s.charCodeAt(e.p+1)&&i===e.s.charCodeAt(e.p+2)&&E.x("illegal quoted key: multiline strings are not allowed",e),s.push(fn(e)),r=2,e.p--):i===32||i===9?r===1&&(s.push(e.s.slice(o,e.p)),r=2):r===2||i<48&&i!==45||i>57&&i<65||i>90&&i<97&&i!==95||i>122?E.x("illegal character in key",e):r||(r=1,o=e.p)}while(i=e.s.charCodeAt(++e.p));E.x("incomplete key-value: cannot find end of key",e,n)}function Ws(e){let t=e.p++,n=Object.create(null),r=new Set,s;for(;e.p<e.s.length;){if(se(e),(s=e.s.charCodeAt(e.p))===125)return e.p++,n;let o,i=n,a=!1,l=e.p,u=pn(e);for(let f=0;f<u.length;f++){f&&(i=a?i[o]:i[o]=Object.create(null)),o=u[f],(a=Object.hasOwn(i,o))&&(typeof i[o]!="object"||r.has(i[o]))&&E.x("trying to redefine an already defined value",e,l);let d=o==="__proto__";if(e.uk&&(d||o==="constructor")){i=e.uk!==1&&E.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0})}a&&E.x("trying to redefine an already defined value",e,l),se(e,!0,!0);let c=Pt(e,125);if(i&&typeof(i[o]=c)=="object"&&r.add(c),se(e),(s=e.s.charCodeAt(e.p++))===125)return n;s!==44&&E.x("expected comma or end of structure",e,e.p-1)}E.x("unfinished table",e,t)}function Vs(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(se(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(Pt(e,93)),se(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&E.x("expected comma or end of structure",e,e.p-1)}E.x("unfinished array",e,t)}var sr=ge(()=>{Qn();rr();or();qe();});function Ks(e,t,n,r,s){let o=n,i=r,a,l=!1,u;for(let c=0;c<t.length;c++){if(c){if(o=l?o[a]:o[a]=Object.create(null),i=(u=i[a]).c,s===0&&(u.t===1||u.t===2))return null;if(u.t===2){let f=o.length-1;o=o[f],i=i[f].c}}if(a=t[c],(l=Object.hasOwn(o,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(o,a,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(i,a,{enumerable:!0,configurable:!0,writable:!0})),i[a]={t:c<t.length-1&&s===2?3:s,d:!1,i:0,c:Object.create(null)}}}if(u=i[a],u.t!==s&&!(s===1&&u.t===3)||(s===2&&(u.d||(u.d=!0,o[a]=[]),o[a].push(o=Object.create(null)),u.c[u.i++]=u={t:1,d:!1,i:0,c:Object.create(null)}),u.d))return null;if(u.d=!0,s===1)o=l?o[a]:o[a]=Object.create(null);else if(s===0&&l)return null;return[a,o,u.c]}function qs(e,t,n){(t===null||e.uk===2)&&E.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function Dt(e,t={}){let n={s:e,p:0,d:t.maxDepth??1e3,bi:t.integersAsBigInt??!1,ld:t.useLegacyDate??!0,uk:t.unsafeKeyBehaviour==="throw"?2:t.unsafeKeyBehaviour==="drop"?1:0},r=Object.create(null),s=Object.create(null),o,i=!1,a=r,l=s;for(e.charCodeAt(0)===65279&&n.p++,se(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let u=e.charCodeAt(++n.p)===91;o=n.p+=+u,i=!1;let c=pn(n,93);u&&(e.charCodeAt(n.p)!==93&&E.x("expected end of table array declaration",n),n.p++);let f=Ks(n,c,r,s,u?2:1);f?(l=f[2],a=f[1]):(qs(n,f,o),i=!0)}else{o=n.p;let u=pn(n),c=Ks(n,u,a,l,0);!c&&!i&&qs(n,c,o),se(n,!0,!0);let f=Pt(n,void 0);c&&!i&&(c[1][c[0]]=f)}se(n,!0),n.p<e.length&&(o=e.charCodeAt(n.p))!==10&&(o!==13||e.charCodeAt(n.p+1)!==10)&&E.x("each key-value declaration must be followed by an end-of-line",n),se(n)}return r}var Ys=ge(()=>{sr();rr();or();qe();});function Lt(e){let t=typeof e;if(t==="object"){if(Array.isArray(e))return"array";if(typeof e.getUTCDate=="function"&&e instanceof Date)return"date";if(globalThis.Temporal){if(e.until){if(e instanceof Temporal.ZonedDateTime)return"temporal/tz+uc";if(e instanceof Temporal.PlainDateTime||e instanceof Temporal.PlainDate)return"temporal/uc";if(e instanceof Temporal.PlainTime||e instanceof Temporal.Instant)return"temporal";if(e instanceof Temporal.PlainYearMonth)return"temporal/x"}else if(e.toPlainDate&&e instanceof Temporal.PlainMonthDay||e.negated&&e instanceof Temporal.Duration)return"temporal/x"}}return t}function Ac(e){for(let t=0;t<e.length;t++)if(Lt(e[t])!=="object")return!1;return e.length!=0}function Qs(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function Rc(e){return Qs(Xs?e.toWellFormed():e)}function eo(e){if(Tc.test(e))return e;if(Xs&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return Qs(e)}function ir(e,t,n,r,s){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");switch(t){case"number":if(isNaN(e))return"nan";if(e===1/0)return"inf";if(e===-1/0)return"-inf";if(Number.isInteger(e)&&(r||!Number.isSafeInteger(e)))return e.toFixed(1);case"bigint":case"boolean":case"temporal":return e.toString();case"string":return Rc(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return $c(e,n,r,s);case"array":return Cc(e,n,r,s);case"temporal/tz+uc":if(s){let o=e.timeZoneId,i=o.charCodeAt(0);if(i!==43&&i!==45&&(i!==85&&i!==71&&i!==90&&i!==69||o!=="UTC"&&o!=="UCT"&&o!=="Universal"&&o!=="Zulu"&&!o.startsWith("GMT")&&o!=="Greenwich"&&!o.startsWith("Etc/")))throw new TypeError("Temporal objects with an IANA timezone are not allowed in Temporal strict mode")}case"temporal/uc":if(s&&e.calendarId!=="iso8601")throw new TypeError("Temporal objects with a non-default calendar are not allowed in Temporal strict mode");return e.toString({calendarName:"never",timeZoneName:"never"});case"temporal/x":throw new TypeError("Unsupported "+e[Symbol.toStringTag])}}function $c(e,t,n,r){let s=Object.keys(e);if(s.length===0)return"{}";let o="{ ";for(let i=0;i<s.length;i++){let a=s[i];i&&(o+=", "),o+=eo(a)+" = "+ir(e[a],Lt(e[a]),t-1,n,r)}return o+" }"}function Cc(e,t,n,r){if(e.length===0)return"[]";let s="[ ";for(let o=0;o<e.length;o++){if(o&&(s+=", "),e[o]===null||e[o]===void 0)throw new TypeError("arrays cannot contain null or undefined values");s+=ir(e[o],Lt(e[o]),t-1,n,r)}return s+" ]"}function Oc(e,t,n,r,s){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let o="";for(let i=0;i<e.length;i++)o+=`${o&&`
9
9
  `}[[${t}]]
10
- `,o+=ir(0,e[i],t,n,r,s);return o}function ir(e,t,n,r,s,o){if(r===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="",a="",l=Object.keys(t);for(let u=0;u<l.length;u++){let c=l[u];if(t[c]!==null&&t[c]!==void 0){let f=Lt(t[c]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let d=Qs(c);if(f==="array"&&Tc(t[c]))a+=(a&&`
11
- `)+Cc(t[c],n?`${n}.${d}`:d,r-1,s,o);else if(f==="object"){let p=n?`${n}.${d}`:d;a+=(a&&`
12
- `)+ir(p,t[c],p,r-1,s,o)}else i+=d,i+=" = ",i+=or(t[c],f,r,s,o),i+=`
10
+ `,o+=ar(0,e[i],t,n,r,s);return o}function ar(e,t,n,r,s,o){if(r===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="",a="",l=Object.keys(t);for(let u=0;u<l.length;u++){let c=l[u];if(t[c]!==null&&t[c]!==void 0){let f=Lt(t[c]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let d=eo(c);if(f==="array"&&Ac(t[c]))a+=(a&&`
11
+ `)+Oc(t[c],n?`${n}.${d}`:d,r-1,s,o);else if(f==="object"){let p=n?`${n}.${d}`:d;a+=(a&&`
12
+ `)+ar(p,t[c],p,r-1,s,o)}else i+=d,i+=" = ",i+=ir(t[c],f,r,s,o),i+=`
13
13
  `}}return e&&(i||!a)&&(i=i?`[${e}]
14
14
  ${i}`:`[${e}]`),i&&a?`${i}
15
- ${a}`:i||a}function ar(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(Lt(e)!=="object")throw new TypeError("stringify can only be called with an object");let s=ir(0,e,"",t,n,r);return s[s.length-1]!==`
15
+ ${a}`:i||a}function lr(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(Lt(e)!=="object")throw new TypeError("stringify can only be called with an object");let s=ar(0,e,"",t,n,r);return s[s.length-1]!==`
16
16
  `?s+`
17
- `:s}var Ec,Ys,eo=ge(()=>{Ec=/^[a-z0-9-_]+$/i,Ys=!!"".isWellFormed});var lr={};Ns(lr,{TomlDate:()=>qe,TomlError:()=>E,default:()=>Oc,parse:()=>Dt,stringify:()=>ar});var Oc,pn=ge(()=>{qs();eo();Qn();Ke();Oc={parse:Dt,stringify:ar,TomlDate:qe,TomlError:E}});import{readdir as Ic,readFile as Nc}from"node:fs/promises";import{join as no,dirname as Pc}from"node:path";import{fileURLToPath as Dc}from"node:url";var k={};Ns(k,{BRAND:()=>Pu,DIRTY:()=>Ne,EMPTY_PATH:()=>du,INVALID:()=>v,NEVER:()=>kc,OK:()=>U,ParseStatus:()=>j,Schema:()=>O,ZodAny:()=>ve,ZodArray:()=>be,ZodBigInt:()=>De,ZodBoolean:()=>Le,ZodBranded:()=>Ot,ZodCatch:()=>We,ZodDate:()=>Me,ZodDefault:()=>Ge,ZodDiscriminatedUnion:()=>an,ZodEffects:()=>Y,ZodEnum:()=>Ze,ZodError:()=>G,ZodFirstPartyTypeKind:()=>T,ZodFunction:()=>un,ZodIntersection:()=>ze,ZodIssueCode:()=>g,ZodLazy:()=>Ue,ZodLiteral:()=>Be,ZodMap:()=>at,ZodNaN:()=>ut,ZodNativeEnum:()=>Je,ZodNever:()=>re,ZodNull:()=>je,ZodNullable:()=>ue,ZodNumber:()=>Pe,ZodObject:()=>W,ZodOptional:()=>K,ZodParsedType:()=>x,ZodPipeline:()=>It,ZodPromise:()=>Ee,ZodReadonly:()=>Ve,ZodRecord:()=>ln,ZodSchema:()=>O,ZodSet:()=>lt,ZodString:()=>Se,ZodSymbol:()=>ot,ZodTransformer:()=>Y,ZodTuple:()=>le,ZodType:()=>O,ZodUndefined:()=>Fe,ZodUnion:()=>He,ZodUnknown:()=>ke,ZodVoid:()=>it,addIssueToContext:()=>_,any:()=>Bu,array:()=>Wu,bigint:()=>Fu,boolean:()=>Zs,coerce:()=>yc,custom:()=>zs,date:()=>ju,datetimeRegex:()=>js,defaultErrorMap:()=>he,discriminatedUnion:()=>Yu,effect:()=>uc,enum:()=>ic,function:()=>rc,getErrorMap:()=>nt,getParsedType:()=>ae,instanceof:()=>Lu,intersection:()=>Xu,isAborted:()=>sn,isAsync:()=>rt,isDirty:()=>on,isValid:()=>we,late:()=>Du,lazy:()=>sc,literal:()=>oc,makeIssue:()=>Ct,map:()=>tc,nan:()=>Mu,nativeEnum:()=>ac,never:()=>Ju,null:()=>Uu,nullable:()=>fc,number:()=>Bs,object:()=>Vu,objectUtil:()=>Kn,oboolean:()=>hc,onumber:()=>gc,optional:()=>cc,ostring:()=>mc,pipeline:()=>pc,preprocess:()=>dc,promise:()=>lc,quotelessJson:()=>uu,record:()=>ec,set:()=>nc,setErrorMap:()=>fu,strictObject:()=>Ku,string:()=>Us,symbol:()=>Hu,transformer:()=>uc,tuple:()=>Qu,undefined:()=>zu,union:()=>qu,unknown:()=>Zu,util:()=>N,void:()=>Gu});var N;(function(e){e.assertEqual=s=>{};function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{let o={};for(let i of s)o[i]=i;return o},e.getValidEnumValues=s=>{let o=e.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),i={};for(let a of o)i[a]=s[a];return e.objectValues(i)},e.objectValues=s=>e.objectKeys(s).map(function(o){return s[o]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let o=[];for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&o.push(i);return o},e.find=(s,o)=>{for(let i of s)if(o(i))return i},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function r(s,o=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(s,o)=>typeof o=="bigint"?o.toString():o})(N||(N={}));var Kn;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Kn||(Kn={}));var x=N.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ae=e=>{switch(typeof e){case"undefined":return x.undefined;case"string":return x.string;case"number":return Number.isNaN(e)?x.nan:x.number;case"boolean":return x.boolean;case"function":return x.function;case"bigint":return x.bigint;case"symbol":return x.symbol;case"object":return Array.isArray(e)?x.array:e===null?x.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?x.promise:typeof Map<"u"&&e instanceof Map?x.map:typeof Set<"u"&&e instanceof Set?x.set:typeof Date<"u"&&e instanceof Date?x.date:x.object;default:return x.unknown}};var g=N.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"]),uu=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),G=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(o){return o.message},r={_errors:[]},s=o=>{for(let i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(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 u=i.path[l];l===i.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(n(i))):a[u]=a[u]||{_errors:[]},a=a[u],l++}}};return s(this),r}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,N.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let s of this.issues)if(s.path.length>0){let o=s.path[0];n[o]=n[o]||[],n[o].push(t(s))}else r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};G.create=e=>new G(e);var cu=(e,t)=>{let n;switch(e.code){case g.invalid_type:e.received===x.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case g.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,N.jsonStringifyReplacer)}`;break;case g.unrecognized_keys:n=`Unrecognized key(s) in object: ${N.joinValues(e.keys,", ")}`;break;case g.invalid_union:n="Invalid input";break;case g.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${N.joinValues(e.options)}`;break;case g.invalid_enum_value:n=`Invalid enum value. Expected ${N.joinValues(e.options)}, received '${e.received}'`;break;case g.invalid_arguments:n="Invalid function arguments";break;case g.invalid_return_type:n="Invalid function return type";break;case g.invalid_date:n="Invalid date";break;case g.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}"`:N.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case g.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 g.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 g.custom:n="Invalid input";break;case g.invalid_intersection_types:n="Intersection results could not be merged";break;case g.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case g.not_finite:n="Number must be finite";break;default:n=t.defaultError,N.assertNever(e)}return{message:n}},he=cu;var Ps=he;function fu(e){Ps=e}function nt(){return Ps}var Ct=e=>{let{data:t,path:n,errorMaps:r,issueData:s}=e,o=[...n,...s.path||[]],i={...s,path:o};if(s.message!==void 0)return{...s,path:o,message:s.message};let a="",l=r.filter(u=>!!u).slice().reverse();for(let u of l)a=u(i,{data:t,defaultError:a}).message;return{...s,path:o,message:a}},du=[];function _(e,t){let n=nt(),r=Ct({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===he?void 0:he].filter(s=>!!s)});e.common.issues.push(r)}var j=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let s of n){if(s.status==="aborted")return v;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let s of n){let o=await s.key,i=await s.value;r.push({key:o,value:i})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let s of n){let{key:o,value:i}=s;if(o.status==="aborted"||i.status==="aborted")return v;o.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),o.value!=="__proto__"&&(typeof i.value<"u"||s.alwaysSet)&&(r[o.value]=i.value)}return{status:t.value,value:r}}},v=Object.freeze({status:"aborted"}),Ne=e=>({status:"dirty",value:e}),U=e=>({status:"valid",value:e}),sn=e=>e.status==="aborted",on=e=>e.status==="dirty",we=e=>e.status==="valid",rt=e=>typeof Promise<"u"&&e instanceof Promise;var S;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(S||(S={}));var q=class{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Ds=(e,t)=>{if(we(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 G(e.common.issues);return this._error=n,this._error}}};function $(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:s}:{errorMap:(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:s}}var O=class{get description(){return this._def.description}_getType(t){return ae(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:ae(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new j,ctx:{common:t.parent.common,data:t.data,parsedType:ae(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(rt(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:ae(t)},s=this._parseSync({data:t,path:r.path,parent:r});return Ds(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ae(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return we(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=>we(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:ae(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(rt(s)?s:Promise.resolve(s));return Ds(r,o)}refine(t,n){let r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,o)=>{let i=t(s),a=()=>o.addIssue({code:g.custom,...r(s)});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,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new Y({schema:this,typeName:T.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 K.create(this,this._def)}nullable(){return ue.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return be.create(this)}promise(){return Ee.create(this,this._def)}or(t){return He.create([this,t],this._def)}and(t){return ze.create(this,t,this._def)}transform(t){return new Y({...$(this._def),schema:this,typeName:T.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Ge({...$(this._def),innerType:this,defaultValue:n,typeName:T.ZodDefault})}brand(){return new Ot({typeName:T.ZodBranded,type:this,...$(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new We({...$(this._def),innerType:this,catchValue:n,typeName:T.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return It.create(this,t)}readonly(){return Ve.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},pu=/^c[^\s-]{8,}$/i,mu=/^[0-9a-z]+$/,gu=/^[0-9A-HJKMNP-TV-Z]{26}$/i,hu=/^[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,yu=/^[a-z0-9_-]{21}$/i,ku=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,bu=/^[-+]?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)?)??$/,_u=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,xu="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",qn,wu=/^(?:(?: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])$/,Su=/^(?:(?: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])$/,vu=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Eu=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Tu=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Au=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Ms="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Ru=new RegExp(`^${Ms}$`);function Fs(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 $u(e){return new RegExp(`^${Fs(e)}$`)}function js(e){let t=`${Ms}T${Fs(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 Cu(e,t){return!!((t==="v4"||!t)&&wu.test(e)||(t==="v6"||!t)&&vu.test(e))}function Ou(e,t){if(!ku.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),s=JSON.parse(atob(r));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||t&&s.alg!==t)}catch{return!1}}function Iu(e,t){return!!((t==="v4"||!t)&&Su.test(e)||(t==="v6"||!t)&&Eu.test(e))}var Se=class e extends O{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==x.string){let o=this._getOrReturnCtx(t);return _(o,{code:g.invalid_type,expected:x.string,received:o.parsedType}),v}let r=new j,s;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(s=this._getOrReturnCtx(t,s),_(s,{code:g.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="max")t.data.length>o.value&&(s=this._getOrReturnCtx(t,s),_(s,{code:g.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){let i=t.data.length>o.value,a=t.data.length<o.value;(i||a)&&(s=this._getOrReturnCtx(t,s),i?_(s,{code:g.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&_(s,{code:g.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")_u.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"email",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")qn||(qn=new RegExp(xu,"u")),qn.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"emoji",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")hu.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"uuid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")yu.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"nanoid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")pu.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"cuid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")mu.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"cuid2",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")gu.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"ulid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),_(s,{validation:"url",code:g.invalid_string,message:o.message}),r.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"regex",code:g.invalid_string,message:o.message}),r.dirty())):o.kind==="trim"?t.data=t.data.trim():o.kind==="includes"?t.data.includes(o.value,o.position)||(s=this._getOrReturnCtx(t,s),_(s,{code:g.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),r.dirty()):o.kind==="toLowerCase"?t.data=t.data.toLowerCase():o.kind==="toUpperCase"?t.data=t.data.toUpperCase():o.kind==="startsWith"?t.data.startsWith(o.value)||(s=this._getOrReturnCtx(t,s),_(s,{code:g.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),_(s,{code:g.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?js(o).test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{code:g.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?Ru.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{code:g.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?$u(o).test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{code:g.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?bu.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"duration",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?Cu(t.data,o.version)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"ip",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?Ou(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"jwt",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?Iu(t.data,o.version)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"cidr",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?Tu.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"base64",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?Au.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"base64url",code:g.invalid_string,message:o.message}),r.dirty()):N.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:g.invalid_string,...S.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...S.errToObj(t)})}url(t){return this._addCheck({kind:"url",...S.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...S.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...S.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...S.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...S.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...S.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...S.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...S.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...S.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...S.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...S.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...S.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,...S.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,...S.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...S.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...S.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...S.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...S.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...S.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...S.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...S.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...S.errToObj(n)})}nonempty(t){return this.min(1,S.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}};Se.create=e=>new Se({checks:[],typeName:T.ZodString,coerce:e?.coerce??!1,...$(e)});function Nu(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,o=Number.parseInt(e.toFixed(s).replace(".","")),i=Number.parseInt(t.toFixed(s).replace(".",""));return o%i/10**s}var Pe=class e extends O{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)!==x.number){let o=this._getOrReturnCtx(t);return _(o,{code:g.invalid_type,expected:x.number,received:o.parsedType}),v}let r,s=new j;for(let o of this._def.checks)o.kind==="int"?N.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),_(r,{code:g.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:g.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:g.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?Nu(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),_(r,{code:g.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),_(r,{code:g.not_finite,message:o.message}),s.dirty()):N.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,S.toString(n))}gt(t,n){return this.setLimit("min",t,!1,S.toString(n))}lte(t,n){return this.setLimit("max",t,!0,S.toString(n))}lt(t,n){return this.setLimit("max",t,!1,S.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:S.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:S.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:S.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:S.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:S.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:S.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:S.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:S.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:S.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:S.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"&&N.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)}};Pe.create=e=>new Pe({checks:[],typeName:T.ZodNumber,coerce:e?.coerce||!1,...$(e)});var De=class e extends O{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)!==x.bigint)return this._getInvalidInput(t);let r,s=new j;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:g.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:g.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),_(r,{code:g.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):N.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return _(n,{code:g.invalid_type,expected:x.bigint,received:n.parsedType}),v}gte(t,n){return this.setLimit("min",t,!0,S.toString(n))}gt(t,n){return this.setLimit("min",t,!1,S.toString(n))}lte(t,n){return this.setLimit("max",t,!0,S.toString(n))}lt(t,n){return this.setLimit("max",t,!1,S.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:S.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:S.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:S.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:S.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:S.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:S.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}};De.create=e=>new De({checks:[],typeName:T.ZodBigInt,coerce:e?.coerce??!1,...$(e)});var Le=class extends O{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==x.boolean){let r=this._getOrReturnCtx(t);return _(r,{code:g.invalid_type,expected:x.boolean,received:r.parsedType}),v}return U(t.data)}};Le.create=e=>new Le({typeName:T.ZodBoolean,coerce:e?.coerce||!1,...$(e)});var Me=class e extends O{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==x.date){let o=this._getOrReturnCtx(t);return _(o,{code:g.invalid_type,expected:x.date,received:o.parsedType}),v}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return _(o,{code:g.invalid_date}),v}let r=new j,s;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(s=this._getOrReturnCtx(t,s),_(s,{code:g.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),r.dirty()):o.kind==="max"?t.data.getTime()>o.value&&(s=this._getOrReturnCtx(t,s),_(s,{code:g.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):N.assertNever(o);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:S.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:S.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}};Me.create=e=>new Me({checks:[],coerce:e?.coerce||!1,typeName:T.ZodDate,...$(e)});var ot=class extends O{_parse(t){if(this._getType(t)!==x.symbol){let r=this._getOrReturnCtx(t);return _(r,{code:g.invalid_type,expected:x.symbol,received:r.parsedType}),v}return U(t.data)}};ot.create=e=>new ot({typeName:T.ZodSymbol,...$(e)});var Fe=class extends O{_parse(t){if(this._getType(t)!==x.undefined){let r=this._getOrReturnCtx(t);return _(r,{code:g.invalid_type,expected:x.undefined,received:r.parsedType}),v}return U(t.data)}};Fe.create=e=>new Fe({typeName:T.ZodUndefined,...$(e)});var je=class extends O{_parse(t){if(this._getType(t)!==x.null){let r=this._getOrReturnCtx(t);return _(r,{code:g.invalid_type,expected:x.null,received:r.parsedType}),v}return U(t.data)}};je.create=e=>new je({typeName:T.ZodNull,...$(e)});var ve=class extends O{constructor(){super(...arguments),this._any=!0}_parse(t){return U(t.data)}};ve.create=e=>new ve({typeName:T.ZodAny,...$(e)});var ke=class extends O{constructor(){super(...arguments),this._unknown=!0}_parse(t){return U(t.data)}};ke.create=e=>new ke({typeName:T.ZodUnknown,...$(e)});var re=class extends O{_parse(t){let n=this._getOrReturnCtx(t);return _(n,{code:g.invalid_type,expected:x.never,received:n.parsedType}),v}};re.create=e=>new re({typeName:T.ZodNever,...$(e)});var it=class extends O{_parse(t){if(this._getType(t)!==x.undefined){let r=this._getOrReturnCtx(t);return _(r,{code:g.invalid_type,expected:x.void,received:r.parsedType}),v}return U(t.data)}};it.create=e=>new it({typeName:T.ZodVoid,...$(e)});var be=class e extends O{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==x.array)return _(n,{code:g.invalid_type,expected:x.array,received:n.parsedType}),v;if(s.exactLength!==null){let i=n.data.length>s.exactLength.value,a=n.data.length<s.exactLength.value;(i||a)&&(_(n,{code:i?g.too_big:g.too_small,minimum:a?s.exactLength.value:void 0,maximum:i?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),r.dirty())}if(s.minLength!==null&&n.data.length<s.minLength.value&&(_(n,{code:g.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),r.dirty()),s.maxLength!==null&&n.data.length>s.maxLength.value&&(_(n,{code:g.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>s.type._parseAsync(new q(n,i,n.path,a)))).then(i=>j.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new q(n,i,n.path,a)));return j.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:S.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:S.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:S.toString(n)}})}nonempty(t){return this.min(1,t)}};be.create=(e,t)=>new be({type:e,minLength:null,maxLength:null,exactLength:null,typeName:T.ZodArray,...$(t)});function st(e){if(e instanceof W){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=K.create(st(r))}return new W({...e._def,shape:()=>t})}else return e instanceof be?new be({...e._def,type:st(e.element)}):e instanceof K?K.create(st(e.unwrap())):e instanceof ue?ue.create(st(e.unwrap())):e instanceof le?le.create(e.items.map(t=>st(t))):e}var W=class e extends O{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=N.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==x.object){let u=this._getOrReturnCtx(t);return _(u,{code:g.invalid_type,expected:x.object,received:u.parsedType}),v}let{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof re&&this._def.unknownKeys==="strip"))for(let u in s.data)i.includes(u)||a.push(u);let l=[];for(let u of i){let c=o[u],f=s.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new q(s,f,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof re){let u=this._def.unknownKeys;if(u==="passthrough")for(let c of a)l.push({key:{status:"valid",value:c},value:{status:"valid",value:s.data[c]}});else if(u==="strict")a.length>0&&(_(s,{code:g.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let c of a){let f=s.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new q(s,f,s.path,c)),alwaysSet:c in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let u=[];for(let c of l){let f=await c.key,d=await c.value;u.push({key:f,value:d,alwaysSet:c.alwaysSet})}return u}).then(u=>j.mergeObjectSync(r,u)):j.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return S.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let s=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:S.errToObj(t).message??s}:{message:s}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:T.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 N.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 N.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return st(this)}partial(t){let n={};for(let r of N.objectKeys(this.shape)){let s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of N.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof K;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return Hs(N.objectKeys(this.shape))}};W.create=(e,t)=>new W({shape:()=>e,unknownKeys:"strip",catchall:re.create(),typeName:T.ZodObject,...$(t)});W.strictCreate=(e,t)=>new W({shape:()=>e,unknownKeys:"strict",catchall:re.create(),typeName:T.ZodObject,...$(t)});W.lazycreate=(e,t)=>new W({shape:e,unknownKeys:"strip",catchall:re.create(),typeName:T.ZodObject,...$(t)});var He=class extends O{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function s(o){for(let a of o)if(a.result.status==="valid")return a.result;for(let a of o)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let i=o.map(a=>new G(a.ctx.common.issues));return _(n,{code:g.invalid_union,unionErrors:i}),v}if(n.common.async)return Promise.all(r.map(async o=>{let i={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(s);{let o,i=[];for(let l of r){let u={...n,common:{...n.common,issues:[]},parent:null},c=l._parseSync({data:n.data,path:n.path,parent:u});if(c.status==="valid")return c;c.status==="dirty"&&!o&&(o={result:c,ctx:u}),u.common.issues.length&&i.push(u.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(l=>new G(l));return _(n,{code:g.invalid_union,unionErrors:a}),v}}get options(){return this._def.options}};He.create=(e,t)=>new He({options:e,typeName:T.ZodUnion,...$(t)});var ye=e=>e instanceof Ue?ye(e.schema):e instanceof Y?ye(e.innerType()):e instanceof Be?[e.value]:e instanceof Ze?e.options:e instanceof Je?N.objectValues(e.enum):e instanceof Ge?ye(e._def.innerType):e instanceof Fe?[void 0]:e instanceof je?[null]:e instanceof K?[void 0,...ye(e.unwrap())]:e instanceof ue?[null,...ye(e.unwrap())]:e instanceof Ot||e instanceof Ve?ye(e.unwrap()):e instanceof We?ye(e._def.innerType):[],an=class e extends O{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==x.object)return _(n,{code:g.invalid_type,expected:x.object,received:n.parsedType}),v;let r=this.discriminator,s=n.data[r],o=this.optionsMap.get(s);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(_(n,{code:g.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),v)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let s=new Map;for(let o of n){let i=ye(o.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(s.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);s.set(a,o)}}return new e({typeName:T.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...$(r)})}};function Yn(e,t){let n=ae(e),r=ae(t);if(e===t)return{valid:!0,data:e};if(n===x.object&&r===x.object){let s=N.objectKeys(t),o=N.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(let a of o){let l=Yn(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===x.array&&r===x.array){if(e.length!==t.length)return{valid:!1};let s=[];for(let o=0;o<e.length;o++){let i=e[o],a=t[o],l=Yn(i,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===x.date&&r===x.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var ze=class extends O{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(sn(o)||sn(i))return v;let a=Yn(o.value,i.value);return a.valid?((on(o)||on(i))&&n.dirty(),{status:n.value,value:a.data}):(_(r,{code:g.invalid_intersection_types}),v)};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(([o,i])=>s(o,i)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};ze.create=(e,t,n)=>new ze({left:e,right:t,typeName:T.ZodIntersection,...$(n)});var le=class e extends O{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==x.array)return _(r,{code:g.invalid_type,expected:x.array,received:r.parsedType}),v;if(r.data.length<this._def.items.length)return _(r,{code:g.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),v;!this._def.rest&&r.data.length>this._def.items.length&&(_(r,{code:g.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let o=[...r.data].map((i,a)=>{let l=this._def.items[a]||this._def.rest;return l?l._parse(new q(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>j.mergeArray(n,i)):j.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};le.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new le({items:e,typeName:T.ZodTuple,rest:null,...$(t)})};var ln=class e extends O{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!==x.object)return _(r,{code:g.invalid_type,expected:x.object,received:r.parsedType}),v;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in r.data)s.push({key:o._parse(new q(r,a,r.path,a)),value:i._parse(new q(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?j.mergeObjectAsync(n,s):j.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof O?new e({keyType:t,valueType:n,typeName:T.ZodRecord,...$(r)}):new e({keyType:Se.create(),valueType:t,typeName:T.ZodRecord,...$(n)})}},at=class extends O{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!==x.map)return _(r,{code:g.invalid_type,expected:x.map,received:r.parsedType}),v;let s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,l],u)=>({key:s._parse(new q(r,a,r.path,[u,"key"])),value:o._parse(new q(r,l,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let l of i){let u=await l.key,c=await l.value;if(u.status==="aborted"||c.status==="aborted")return v;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let l of i){let u=l.key,c=l.value;if(u.status==="aborted"||c.status==="aborted")return v;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}}}};at.create=(e,t,n)=>new at({valueType:t,keyType:e,typeName:T.ZodMap,...$(n)});var lt=class e extends O{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==x.set)return _(r,{code:g.invalid_type,expected:x.set,received:r.parsedType}),v;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(_(r,{code:g.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),n.dirty()),s.maxSize!==null&&r.data.size>s.maxSize.value&&(_(r,{code:g.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());let o=this._def.valueType;function i(l){let u=new Set;for(let c of l){if(c.status==="aborted")return v;c.status==="dirty"&&n.dirty(),u.add(c.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((l,u)=>o._parse(new q(r,l,r.path,u)));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:S.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:S.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};lt.create=(e,t)=>new lt({valueType:e,minSize:null,maxSize:null,typeName:T.ZodSet,...$(t)});var un=class e extends O{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==x.function)return _(n,{code:g.invalid_type,expected:x.function,received:n.parsedType}),v;function r(a,l){return Ct({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,nt(),he].filter(u=>!!u),issueData:{code:g.invalid_arguments,argumentsError:l}})}function s(a,l){return Ct({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,nt(),he].filter(u=>!!u),issueData:{code:g.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof Ee){let a=this;return U(async function(...l){let u=new G([]),c=await a._def.args.parseAsync(l,o).catch(p=>{throw u.addIssue(r(l,p)),u}),f=await Reflect.apply(i,this,c);return await a._def.returns._def.type.parseAsync(f,o).catch(p=>{throw u.addIssue(s(f,p)),u})})}else{let a=this;return U(function(...l){let u=a._def.args.safeParse(l,o);if(!u.success)throw new G([r(l,u.error)]);let c=Reflect.apply(i,this,u.data),f=a._def.returns.safeParse(c,o);if(!f.success)throw new G([s(c,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:le.create(t).rest(ke.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||le.create([]).rest(ke.create()),returns:n||ke.create(),typeName:T.ZodFunction,...$(r)})}},Ue=class extends O{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})}};Ue.create=(e,t)=>new Ue({getter:e,typeName:T.ZodLazy,...$(t)});var Be=class extends O{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return _(n,{received:n.data,code:g.invalid_literal,expected:this._def.value}),v}return{status:"valid",value:t.data}}get value(){return this._def.value}};Be.create=(e,t)=>new Be({value:e,typeName:T.ZodLiteral,...$(t)});function Hs(e,t){return new Ze({values:e,typeName:T.ZodEnum,...$(t)})}var Ze=class e extends O{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return _(n,{expected:N.joinValues(r),received:n.parsedType,code:g.invalid_type}),v}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 _(n,{received:n.data,code:g.invalid_enum_value,options:r}),v}return U(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})}};Ze.create=Hs;var Je=class extends O{_parse(t){let n=N.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==x.string&&r.parsedType!==x.number){let s=N.objectValues(n);return _(r,{expected:N.joinValues(s),received:r.parsedType,code:g.invalid_type}),v}if(this._cache||(this._cache=new Set(N.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=N.objectValues(n);return _(r,{received:r.data,code:g.invalid_enum_value,options:s}),v}return U(t.data)}get enum(){return this._def.values}};Je.create=(e,t)=>new Je({values:e,typeName:T.ZodNativeEnum,...$(t)});var Ee=class extends O{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==x.promise&&n.common.async===!1)return _(n,{code:g.invalid_type,expected:x.promise,received:n.parsedType}),v;let r=n.parsedType===x.promise?n.data:Promise.resolve(n.data);return U(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};Ee.create=(e,t)=>new Ee({type:e,typeName:T.ZodPromise,...$(t)});var Y=class extends O{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===T.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null,o={addIssue:i=>{_(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),s.type==="preprocess"){let i=s.transform(r.data,o);if(r.common.async)return Promise.resolve(i).then(async a=>{if(n.value==="aborted")return v;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?v:l.status==="dirty"?Ne(l.value):n.value==="dirty"?Ne(l.value):l});{if(n.value==="aborted")return v;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?v:a.status==="dirty"?Ne(a.value):n.value==="dirty"?Ne(a.value):a}}if(s.type==="refinement"){let i=a=>{let l=s.refinement(a,o);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"?v:(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"?v:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(s.type==="transform")if(r.common.async===!1){let i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!we(i))return v;let a=s.transform(i.value,o);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=>we(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):v);N.assertNever(s)}};Y.create=(e,t,n)=>new Y({schema:e,typeName:T.ZodEffects,effect:t,...$(n)});Y.createWithPreprocess=(e,t,n)=>new Y({schema:t,effect:{type:"preprocess",transform:e},typeName:T.ZodEffects,...$(n)});var K=class extends O{_parse(t){return this._getType(t)===x.undefined?U(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};K.create=(e,t)=>new K({innerType:e,typeName:T.ZodOptional,...$(t)});var ue=class extends O{_parse(t){return this._getType(t)===x.null?U(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ue.create=(e,t)=>new ue({innerType:e,typeName:T.ZodNullable,...$(t)});var Ge=class extends O{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===x.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Ge.create=(e,t)=>new Ge({innerType:e,typeName:T.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...$(t)});var We=class extends O{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return rt(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new G(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new G(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};We.create=(e,t)=>new We({innerType:e,typeName:T.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...$(t)});var ut=class extends O{_parse(t){if(this._getType(t)!==x.nan){let r=this._getOrReturnCtx(t);return _(r,{code:g.invalid_type,expected:x.nan,received:r.parsedType}),v}return{status:"valid",value:t.data}}};ut.create=e=>new ut({typeName:T.ZodNaN,...$(e)});var Pu=Symbol("zod_brand"),Ot=class extends O{_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}},It=class e extends O{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?v:o.status==="dirty"?(n.dirty(),Ne(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{let s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?v:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:T.ZodPipeline})}},Ve=class extends O{_parse(t){let n=this._def.innerType._parse(t),r=s=>(we(s)&&(s.value=Object.freeze(s.value)),s);return rt(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};Ve.create=(e,t)=>new Ve({innerType:e,typeName:T.ZodReadonly,...$(t)});function Ls(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function zs(e,t={},n){return e?ve.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=Ls(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=Ls(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):ve.create()}var Du={object:W.lazycreate},T;(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"})(T||(T={}));var Lu=(e,t={message:`Input not instance of ${e.name}`})=>zs(n=>n instanceof e,t),Us=Se.create,Bs=Pe.create,Mu=ut.create,Fu=De.create,Zs=Le.create,ju=Me.create,Hu=ot.create,zu=Fe.create,Uu=je.create,Bu=ve.create,Zu=ke.create,Ju=re.create,Gu=it.create,Wu=be.create,Vu=W.create,Ku=W.strictCreate,qu=He.create,Yu=an.create,Xu=ze.create,Qu=le.create,ec=ln.create,tc=at.create,nc=lt.create,rc=un.create,sc=Ue.create,oc=Be.create,ic=Ze.create,ac=Je.create,lc=Ee.create,uc=Y.create,cc=K.create,fc=ue.create,dc=Y.createWithPreprocess,pc=It.create,mc=()=>Us().optional(),gc=()=>Bs().optional(),hc=()=>Zs().optional(),yc={string:(e=>Se.create({...e,coerce:!0})),number:(e=>Pe.create({...e,coerce:!0})),boolean:(e=>Le.create({...e,coerce:!0})),bigint:(e=>De.create({...e,coerce:!0})),date:(e=>Me.create({...e,coerce:!0}))};var kc=v;var Te=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()});var Lc=Pc(Dc(import.meta.url)),Mc=process.env.TOKMIZER_FILTERS_DIR||no(Lc,"..","..","filters"),ct=null,to=!1;function Fc(){return!1}async function ro(){return ct||(Fc()?(ct=await jc(Mc),ct):(!to&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
18
- `),to=!0),ct=new Map,ct))}async function jc(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(pn(),lr))).parse,r=(await Ic(e)).filter(s=>s.endsWith(".toml"))}catch{return t}for(let s of r){let o=await Nc(no(e,s),"utf8"),a=n(o).filters;if(a)for(let[l,u]of Object.entries(a)){let c=Te.parse({slug:l,...u});t.set(l,{...c,matchRegex:new RegExp(c.match_command)})}}return t}import{createHash as Hc}from"node:crypto";var zc=k.enum(["normal","compact","minimal"]),Uc=k.enum(["off","light","balanced","max"]),Mt=k.object({enabled:k.boolean().default(!0),telemetryOptIn:k.boolean().default(!0),outputVerbosity:zc.default("compact"),reducer:Uc.default("off"),filters:k.object({enableAll:k.boolean().default(!0),disabled:k.array(k.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),so=new Map;function X(e){let t=so.get(e);return t||(t=Hc("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),so.set(e,t)),t}var oo=new WeakMap,Bc=256;function ft(e,t,n,r=t){let s=oo.get(r);s||(s=new Map,oo.set(r,s));let o=JSON.stringify([e,n?[...n].sort():null]),i=s.get(o);if(i!==void 0)return i;let a=null;for(let l of t)n&&!n.has(X(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(s.size>=Bc){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}import{readdir as vd,readFile as Go,writeFile as rw,mkdir as sw,rename as ow}from"node:fs/promises";import{readdirSync as Ed,statSync as Bo}from"node:fs";import{createHash as Td}from"node:crypto";import{basename as uw,join as _n}from"node:path";var Zc=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,Jc=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function ce(e){return e.replace(Zc,"").replace(Jc,"")}function ur(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}function io(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 ao(e,t){return e.some(n=>n.length>t)&&io(e.join(`
19
- `))?e:e.map(n=>{if(n.length<=t||io(n))return n;let r=n.charCodeAt(t-1),s=n.charCodeAt(t),o=r>=55296&&r<=56319&&s>=56320&&s<=57343?t-1:t;return`${n.slice(0,o)}\u2026`})}function dt(e){return`\u2026 (${e} more lines omitted)`}var Gc=/\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]+\])?:/,Wc=20,Vc=4096;function lo(e,t){if(e.length<=t)return{kept:e,dropped:[]};let n=Math.ceil(t*.7),r=t-n,s=e.slice(n,e.length-r),o=s.filter(a=>a.length<=Vc&&Gc.test(a)).slice(0,Wc),i=s.length-o.length;return{kept:[...e.slice(0,n),...i>0?[dt(i)]:[],...o,...e.slice(e.length-r)],dropped:s}}var Kc=/^\s*(?:[✓✔√]|ok )/,Q=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/;function uo(e,t){let n=t>0?t:5,r=[],s=0,o=a=>{s>=n?r.push(`\u2026 ${s} passing checks folded \u2026`):r.push(...a)},i=[];for(let a of e)Kc.test(a)&&!Q.test(a)?(i.push(a),s+=1):(o(i),i=[],s=0,r.push(a));return o(i),r}var qc=/(?:\/[\w.@+-]+){3,}/g;function co(e){return e.map(t=>t.replace(qc,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var Yc=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,Xc=/\{\s*$/;var Qc=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,ef=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);function tf(e){let t=Qc.exec(e);return!t||ef.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}var nf=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;function rf(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 sf(e,t){let n=0,r=null,s=0;for(;s<e.length;){let o=e[s];if(t.inBlockComment){if(o==="*"&&e[s+1]==="/"){t.inBlockComment=!1,s+=2;continue}s+=1;continue}if(t.inTemplate){if(o==="\\"){s+=2;continue}o==="`"&&(t.inTemplate=!1),s+=1;continue}if(r){if(o==="\\"){s+=2;continue}o===r&&(r=null),s+=1;continue}if(o==="/"&&e[s+1]==="/")break;if(o==="/"&&e[s+1]==="*"){t.inBlockComment=!0,s+=2;continue}if(o==="`"){t.inTemplate=!0,s+=1;continue}if(o==="'"||o==='"'){let i=s>0?e[s-1]:"";!(o==="'"&&(i==="<"||i==="&"))&&rf(e,s+1,o)&&(r=o),s+=1;continue}o==="{"||o==="("||o==="["?n+=1:(o==="}"||o===")"||o==="]")&&(n-=1),s+=1}return n}var of=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;function af(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 cr(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=of.exec(e[n]);if(!r)continue;let s=Number(r[1])-1,o=n+1;for(;s>0&&o<e.length&&e[o]==="";)t[o]=!0,s-=1,o+=1;n=o-1}return t}function Ft(e,t=3,n=!1){let r=[],s=0;for(;s<e.length;){let o=e[s];if(Yc.test(o)&&Xc.test(o)||tf(o)||nf.test(o)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=s,u=!1;for(;l<e.length&&l-s<200;)if(a+=sf(e[l],i),l+=1,a<=0&&!i.inTemplate&&!i.inBlockComment){u=!0;break}let c=l-s;if(u&&c<t){r.push(...e.slice(s,l)),s=l;continue}if(u&&c>=3){let f=c-2,d=/^\s*/.exec(e[s+1]??"")?.[0]??" ";r.push(o),r.push(af(d,f,n?s+2:null));for(let p=0;p<f-1;p++)r.push("");r.push(e[l-1]),s=l;continue}}r.push(o),s+=1}return r}var lf=/\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 mn(e){let t=e.slice(0,4096);return!(!lf.test(t)||t.split(`
20
- `).length<6)}var go=/^\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*/,ho=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,yo=new RegExp(Q.source,"i"),ko=/\bWARN(?:ING)?\b/i;function bo(e){let t=[],n=0,r=()=>{n>0&&t.push(`\u2026 ${n} verbose log line${n===1?"":"s"} dropped \u2026`),n=0};for(let s of e){if(ho.test(s.replace(go,""))&&!yo.test(s)&&!ko.test(s)){n+=1;continue}r(),t.push(s)}return r(),t}var uf=/^(?:DEBUG|INFO):[\w.-]+:/,cf=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,ff=8,fo=1,po=2;function mo(e){if(e.trim()===""||/^\s/.test(e)||yo.test(e)||ko.test(e)||cf.test(e))return null;let t=e.replace(go,"");return ho.test(t)||uf.test(t)?"\0verbose":e.replace(/\d+/g,"#")}function _o(e){let t=[],n=0;for(;n<e.length;){let r=mo(e[n]),s=n+1;if(r!==null)for(;s<e.length&&mo(e[s])===r;)s+=1;let o=s-n;r===null||o<ff?t.push(...e.slice(n,s)):(t.push(...e.slice(n,n+fo)),t.push(`\u2026 ${o-fo-po} similar log lines dropped \u2026`),t.push(...e.slice(s-po,s))),n=s}return t}var df=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/;function xo(e){return e.some(t=>df.test(t))}function gn(e){if(e.length===0||xo(e))return e;let t=[],n=1,r=e[0];for(let s=1;s<e.length;s++){if(e[s]===r){n+=1;continue}t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),r=e[s],n=1}return t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),t}function wo(e){if(xo(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 So=new Map;function M(e,t){So.set(e,t)}function vo(e){return So.get(e)}var Ao=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,Ro=/^[./~][^\s]*:$/,pf=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})?`,mf=new RegExp(String.raw`^(\S+)\s+\d+\s+(\S+(?:\s+\S+)??)\s+(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${pf})\s+(.+)$`),gf={k:1,m:2,g:3,t:4,p:5},fr=1e3;function hf(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 yf(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?gf[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function kf(e){let t=mf.exec(e);if(!t)return null;let n=t[4].trim();if(n===""||n==="."||n==="..")return null;let r=t[3],s=/^\d+$/.test(r)?hf(Number(r)):r,o=e.charCodeAt(0)===100;return{name:n,size:s,sizeKey:yf(r),isDir:o,mode:t[1],owner:t[2].replace(/\s+/g," ")}}function bf(e){if(e.length<3)return null;let t=new Map;for(let s of e){let o=s.name.lastIndexOf(".");if(o<=0)continue;let i=s.name.slice(o);t.set(i,(t.get(i)??0)+1)}let n=null,r=0;for(let[s,o]of t)o>r&&(r=o,n=s);return n&&r>=Math.ceil(e.length/2)?`${r} ${n}`:null}var _f=12,xf=3,wf=180;function Eo(e,t){let n=[],r=e;for(let s of t)r.length+1+s.length>wf&&r!==e&&r!==" "&&(n.push(r),r=" "),r+=r===" "?s:` ${s}`;return n.push(r),n}function Sf(e){let t=e.endsWith("/")?"":e,n=t.indexOf(".",1);return n>0?t.slice(n):""}function vf(e){let t=e.filter(l=>l.trim()!=="");if(t.length<_f)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(":")||Ro.test(l.trim())||Ao.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 s=l=>/\s|"/.test(l)?JSON.stringify(l):l,o=new Map;for(let l of t){let u=Sf(l),c=o.get(u)??[];c.push(l),o.set(u,c)}let i=[`${t.length} entries:`],a=[];for(let[l,u]of[...o.entries()].sort((c,f)=>f[1].length-c[1].length||c[0].localeCompare(f[0])))l&&u.length>=xf&&u.every(c=>!/\s|"/.test(c))?i.push(...Eo(`*${l} (${u.length}):`,u.map(c=>c.slice(0,-l.length)))):a.push(...u);return a.length&&i.push(...Eo(`other (${a.length}):`,a.map(s))),i.join(`
17
+ `:s}var Tc,Xs,to=ge(()=>{Tc=/^[a-z0-9-_]+$/i,Xs=!!"".isWellFormed});var ur={};Ps(ur,{TomlDate:()=>Ye,TomlError:()=>E,default:()=>Ic,parse:()=>Dt,stringify:()=>lr});var Ic,mn=ge(()=>{Ys();to();er();qe();Ic={parse:Dt,stringify:lr,TomlDate:Ye,TomlError:E}});import{readdir as Nc,readFile as Pc}from"node:fs/promises";import{join as ro,dirname as Dc}from"node:path";import{fileURLToPath as Lc}from"node:url";var k={};Ps(k,{BRAND:()=>Du,DIRTY:()=>Pe,EMPTY_PATH:()=>pu,INVALID:()=>v,NEVER:()=>bc,OK:()=>U,ParseStatus:()=>j,Schema:()=>O,ZodAny:()=>Ae,ZodArray:()=>be,ZodBigInt:()=>Le,ZodBoolean:()=>Me,ZodBranded:()=>Ot,ZodCatch:()=>Ve,ZodDate:()=>Fe,ZodDefault:()=>We,ZodDiscriminatedUnion:()=>ln,ZodEffects:()=>Y,ZodEnum:()=>Je,ZodError:()=>G,ZodFirstPartyTypeKind:()=>T,ZodFunction:()=>cn,ZodIntersection:()=>Ue,ZodIssueCode:()=>g,ZodLazy:()=>Be,ZodLiteral:()=>Ze,ZodMap:()=>lt,ZodNaN:()=>ct,ZodNativeEnum:()=>Ge,ZodNever:()=>re,ZodNull:()=>He,ZodNullable:()=>ue,ZodNumber:()=>De,ZodObject:()=>W,ZodOptional:()=>K,ZodParsedType:()=>x,ZodPipeline:()=>It,ZodPromise:()=>Re,ZodReadonly:()=>Ke,ZodRecord:()=>un,ZodSchema:()=>O,ZodSet:()=>ut,ZodString:()=>Te,ZodSymbol:()=>it,ZodTransformer:()=>Y,ZodTuple:()=>le,ZodType:()=>O,ZodUndefined:()=>je,ZodUnion:()=>ze,ZodUnknown:()=>ke,ZodVoid:()=>at,addIssueToContext:()=>_,any:()=>Zu,array:()=>Vu,bigint:()=>ju,boolean:()=>Js,coerce:()=>kc,custom:()=>Us,date:()=>Hu,datetimeRegex:()=>Hs,defaultErrorMap:()=>he,discriminatedUnion:()=>Xu,effect:()=>cc,enum:()=>ac,function:()=>sc,getErrorMap:()=>rt,getParsedType:()=>ae,instanceof:()=>Mu,intersection:()=>Qu,isAborted:()=>on,isAsync:()=>st,isDirty:()=>an,isValid:()=>Ee,late:()=>Lu,lazy:()=>oc,literal:()=>ic,makeIssue:()=>Ct,map:()=>nc,nan:()=>Fu,nativeEnum:()=>lc,never:()=>Gu,null:()=>Bu,nullable:()=>dc,number:()=>Zs,object:()=>Ku,objectUtil:()=>qn,oboolean:()=>yc,onumber:()=>hc,optional:()=>fc,ostring:()=>gc,pipeline:()=>mc,preprocess:()=>pc,promise:()=>uc,quotelessJson:()=>cu,record:()=>tc,set:()=>rc,setErrorMap:()=>du,strictObject:()=>qu,string:()=>Bs,symbol:()=>zu,transformer:()=>cc,tuple:()=>ec,undefined:()=>Uu,union:()=>Yu,unknown:()=>Ju,util:()=>N,void:()=>Wu});var N;(function(e){e.assertEqual=s=>{};function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{let o={};for(let i of s)o[i]=i;return o},e.getValidEnumValues=s=>{let o=e.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),i={};for(let a of o)i[a]=s[a];return e.objectValues(i)},e.objectValues=s=>e.objectKeys(s).map(function(o){return s[o]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let o=[];for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&o.push(i);return o},e.find=(s,o)=>{for(let i of s)if(o(i))return i},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function r(s,o=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(s,o)=>typeof o=="bigint"?o.toString():o})(N||(N={}));var qn;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(qn||(qn={}));var x=N.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ae=e=>{switch(typeof e){case"undefined":return x.undefined;case"string":return x.string;case"number":return Number.isNaN(e)?x.nan:x.number;case"boolean":return x.boolean;case"function":return x.function;case"bigint":return x.bigint;case"symbol":return x.symbol;case"object":return Array.isArray(e)?x.array:e===null?x.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?x.promise:typeof Map<"u"&&e instanceof Map?x.map:typeof Set<"u"&&e instanceof Set?x.set:typeof Date<"u"&&e instanceof Date?x.date:x.object;default:return x.unknown}};var g=N.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"]),cu=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),G=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(o){return o.message},r={_errors:[]},s=o=>{for(let i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(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 u=i.path[l];l===i.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(n(i))):a[u]=a[u]||{_errors:[]},a=a[u],l++}}};return s(this),r}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,N.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let s of this.issues)if(s.path.length>0){let o=s.path[0];n[o]=n[o]||[],n[o].push(t(s))}else r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};G.create=e=>new G(e);var fu=(e,t)=>{let n;switch(e.code){case g.invalid_type:e.received===x.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case g.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,N.jsonStringifyReplacer)}`;break;case g.unrecognized_keys:n=`Unrecognized key(s) in object: ${N.joinValues(e.keys,", ")}`;break;case g.invalid_union:n="Invalid input";break;case g.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${N.joinValues(e.options)}`;break;case g.invalid_enum_value:n=`Invalid enum value. Expected ${N.joinValues(e.options)}, received '${e.received}'`;break;case g.invalid_arguments:n="Invalid function arguments";break;case g.invalid_return_type:n="Invalid function return type";break;case g.invalid_date:n="Invalid date";break;case g.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}"`:N.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case g.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 g.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 g.custom:n="Invalid input";break;case g.invalid_intersection_types:n="Intersection results could not be merged";break;case g.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case g.not_finite:n="Number must be finite";break;default:n=t.defaultError,N.assertNever(e)}return{message:n}},he=fu;var Ds=he;function du(e){Ds=e}function rt(){return Ds}var Ct=e=>{let{data:t,path:n,errorMaps:r,issueData:s}=e,o=[...n,...s.path||[]],i={...s,path:o};if(s.message!==void 0)return{...s,path:o,message:s.message};let a="",l=r.filter(u=>!!u).slice().reverse();for(let u of l)a=u(i,{data:t,defaultError:a}).message;return{...s,path:o,message:a}},pu=[];function _(e,t){let n=rt(),r=Ct({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===he?void 0:he].filter(s=>!!s)});e.common.issues.push(r)}var j=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let s of n){if(s.status==="aborted")return v;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let s of n){let o=await s.key,i=await s.value;r.push({key:o,value:i})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let s of n){let{key:o,value:i}=s;if(o.status==="aborted"||i.status==="aborted")return v;o.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),o.value!=="__proto__"&&(typeof i.value<"u"||s.alwaysSet)&&(r[o.value]=i.value)}return{status:t.value,value:r}}},v=Object.freeze({status:"aborted"}),Pe=e=>({status:"dirty",value:e}),U=e=>({status:"valid",value:e}),on=e=>e.status==="aborted",an=e=>e.status==="dirty",Ee=e=>e.status==="valid",st=e=>typeof Promise<"u"&&e instanceof Promise;var S;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(S||(S={}));var q=class{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Ls=(e,t)=>{if(Ee(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 G(e.common.issues);return this._error=n,this._error}}};function C(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:s}:{errorMap:(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:s}}var O=class{get description(){return this._def.description}_getType(t){return ae(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:ae(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new j,ctx:{common:t.parent.common,data:t.data,parsedType:ae(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(st(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:ae(t)},s=this._parseSync({data:t,path:r.path,parent:r});return Ls(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ae(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return Ee(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=>Ee(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:ae(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(st(s)?s:Promise.resolve(s));return Ls(r,o)}refine(t,n){let r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,o)=>{let i=t(s),a=()=>o.addIssue({code:g.custom,...r(s)});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,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new Y({schema:this,typeName:T.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 K.create(this,this._def)}nullable(){return ue.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return be.create(this)}promise(){return Re.create(this,this._def)}or(t){return ze.create([this,t],this._def)}and(t){return Ue.create(this,t,this._def)}transform(t){return new Y({...C(this._def),schema:this,typeName:T.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new We({...C(this._def),innerType:this,defaultValue:n,typeName:T.ZodDefault})}brand(){return new Ot({typeName:T.ZodBranded,type:this,...C(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Ve({...C(this._def),innerType:this,catchValue:n,typeName:T.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return It.create(this,t)}readonly(){return Ke.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},mu=/^c[^\s-]{8,}$/i,gu=/^[0-9a-z]+$/,hu=/^[0-9A-HJKMNP-TV-Z]{26}$/i,yu=/^[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,ku=/^[a-z0-9_-]{21}$/i,bu=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,_u=/^[-+]?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)?)??$/,xu=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,wu="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Yn,Su=/^(?:(?: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])$/,vu=/^(?:(?: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])$/,Eu=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Tu=/^(([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])$/,Au=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ru=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Fs="((\\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])))",$u=new RegExp(`^${Fs}$`);function js(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 Cu(e){return new RegExp(`^${js(e)}$`)}function Hs(e){let t=`${Fs}T${js(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 Ou(e,t){return!!((t==="v4"||!t)&&Su.test(e)||(t==="v6"||!t)&&Eu.test(e))}function Iu(e,t){if(!bu.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),s=JSON.parse(atob(r));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||t&&s.alg!==t)}catch{return!1}}function Nu(e,t){return!!((t==="v4"||!t)&&vu.test(e)||(t==="v6"||!t)&&Tu.test(e))}var Te=class e extends O{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==x.string){let o=this._getOrReturnCtx(t);return _(o,{code:g.invalid_type,expected:x.string,received:o.parsedType}),v}let r=new j,s;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(s=this._getOrReturnCtx(t,s),_(s,{code:g.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="max")t.data.length>o.value&&(s=this._getOrReturnCtx(t,s),_(s,{code:g.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){let i=t.data.length>o.value,a=t.data.length<o.value;(i||a)&&(s=this._getOrReturnCtx(t,s),i?_(s,{code:g.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&_(s,{code:g.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")xu.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"email",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")Yn||(Yn=new RegExp(wu,"u")),Yn.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"emoji",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")yu.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"uuid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")ku.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"nanoid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")mu.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"cuid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")gu.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"cuid2",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")hu.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"ulid",code:g.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),_(s,{validation:"url",code:g.invalid_string,message:o.message}),r.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"regex",code:g.invalid_string,message:o.message}),r.dirty())):o.kind==="trim"?t.data=t.data.trim():o.kind==="includes"?t.data.includes(o.value,o.position)||(s=this._getOrReturnCtx(t,s),_(s,{code:g.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),r.dirty()):o.kind==="toLowerCase"?t.data=t.data.toLowerCase():o.kind==="toUpperCase"?t.data=t.data.toUpperCase():o.kind==="startsWith"?t.data.startsWith(o.value)||(s=this._getOrReturnCtx(t,s),_(s,{code:g.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),_(s,{code:g.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?Hs(o).test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{code:g.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?$u.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{code:g.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?Cu(o).test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{code:g.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?_u.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"duration",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?Ou(t.data,o.version)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"ip",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?Iu(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"jwt",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?Nu(t.data,o.version)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"cidr",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?Au.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"base64",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?Ru.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"base64url",code:g.invalid_string,message:o.message}),r.dirty()):N.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:g.invalid_string,...S.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...S.errToObj(t)})}url(t){return this._addCheck({kind:"url",...S.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...S.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...S.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...S.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...S.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...S.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...S.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...S.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...S.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...S.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...S.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...S.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,...S.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,...S.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...S.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...S.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...S.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...S.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...S.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...S.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...S.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...S.errToObj(n)})}nonempty(t){return this.min(1,S.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}};Te.create=e=>new Te({checks:[],typeName:T.ZodString,coerce:e?.coerce??!1,...C(e)});function Pu(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,o=Number.parseInt(e.toFixed(s).replace(".","")),i=Number.parseInt(t.toFixed(s).replace(".",""));return o%i/10**s}var De=class e extends O{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)!==x.number){let o=this._getOrReturnCtx(t);return _(o,{code:g.invalid_type,expected:x.number,received:o.parsedType}),v}let r,s=new j;for(let o of this._def.checks)o.kind==="int"?N.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),_(r,{code:g.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:g.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:g.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?Pu(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),_(r,{code:g.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),_(r,{code:g.not_finite,message:o.message}),s.dirty()):N.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,S.toString(n))}gt(t,n){return this.setLimit("min",t,!1,S.toString(n))}lte(t,n){return this.setLimit("max",t,!0,S.toString(n))}lt(t,n){return this.setLimit("max",t,!1,S.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:S.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:S.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:S.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:S.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:S.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:S.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:S.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:S.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:S.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:S.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"&&N.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)}};De.create=e=>new De({checks:[],typeName:T.ZodNumber,coerce:e?.coerce||!1,...C(e)});var Le=class e extends O{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)!==x.bigint)return this._getInvalidInput(t);let r,s=new j;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:g.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),_(r,{code:g.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),_(r,{code:g.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):N.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return _(n,{code:g.invalid_type,expected:x.bigint,received:n.parsedType}),v}gte(t,n){return this.setLimit("min",t,!0,S.toString(n))}gt(t,n){return this.setLimit("min",t,!1,S.toString(n))}lte(t,n){return this.setLimit("max",t,!0,S.toString(n))}lt(t,n){return this.setLimit("max",t,!1,S.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:S.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:S.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:S.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:S.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:S.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:S.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}};Le.create=e=>new Le({checks:[],typeName:T.ZodBigInt,coerce:e?.coerce??!1,...C(e)});var Me=class extends O{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==x.boolean){let r=this._getOrReturnCtx(t);return _(r,{code:g.invalid_type,expected:x.boolean,received:r.parsedType}),v}return U(t.data)}};Me.create=e=>new Me({typeName:T.ZodBoolean,coerce:e?.coerce||!1,...C(e)});var Fe=class e extends O{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==x.date){let o=this._getOrReturnCtx(t);return _(o,{code:g.invalid_type,expected:x.date,received:o.parsedType}),v}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return _(o,{code:g.invalid_date}),v}let r=new j,s;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(s=this._getOrReturnCtx(t,s),_(s,{code:g.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),r.dirty()):o.kind==="max"?t.data.getTime()>o.value&&(s=this._getOrReturnCtx(t,s),_(s,{code:g.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):N.assertNever(o);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:S.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:S.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}};Fe.create=e=>new Fe({checks:[],coerce:e?.coerce||!1,typeName:T.ZodDate,...C(e)});var it=class extends O{_parse(t){if(this._getType(t)!==x.symbol){let r=this._getOrReturnCtx(t);return _(r,{code:g.invalid_type,expected:x.symbol,received:r.parsedType}),v}return U(t.data)}};it.create=e=>new it({typeName:T.ZodSymbol,...C(e)});var je=class extends O{_parse(t){if(this._getType(t)!==x.undefined){let r=this._getOrReturnCtx(t);return _(r,{code:g.invalid_type,expected:x.undefined,received:r.parsedType}),v}return U(t.data)}};je.create=e=>new je({typeName:T.ZodUndefined,...C(e)});var He=class extends O{_parse(t){if(this._getType(t)!==x.null){let r=this._getOrReturnCtx(t);return _(r,{code:g.invalid_type,expected:x.null,received:r.parsedType}),v}return U(t.data)}};He.create=e=>new He({typeName:T.ZodNull,...C(e)});var Ae=class extends O{constructor(){super(...arguments),this._any=!0}_parse(t){return U(t.data)}};Ae.create=e=>new Ae({typeName:T.ZodAny,...C(e)});var ke=class extends O{constructor(){super(...arguments),this._unknown=!0}_parse(t){return U(t.data)}};ke.create=e=>new ke({typeName:T.ZodUnknown,...C(e)});var re=class extends O{_parse(t){let n=this._getOrReturnCtx(t);return _(n,{code:g.invalid_type,expected:x.never,received:n.parsedType}),v}};re.create=e=>new re({typeName:T.ZodNever,...C(e)});var at=class extends O{_parse(t){if(this._getType(t)!==x.undefined){let r=this._getOrReturnCtx(t);return _(r,{code:g.invalid_type,expected:x.void,received:r.parsedType}),v}return U(t.data)}};at.create=e=>new at({typeName:T.ZodVoid,...C(e)});var be=class e extends O{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==x.array)return _(n,{code:g.invalid_type,expected:x.array,received:n.parsedType}),v;if(s.exactLength!==null){let i=n.data.length>s.exactLength.value,a=n.data.length<s.exactLength.value;(i||a)&&(_(n,{code:i?g.too_big:g.too_small,minimum:a?s.exactLength.value:void 0,maximum:i?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),r.dirty())}if(s.minLength!==null&&n.data.length<s.minLength.value&&(_(n,{code:g.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),r.dirty()),s.maxLength!==null&&n.data.length>s.maxLength.value&&(_(n,{code:g.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>s.type._parseAsync(new q(n,i,n.path,a)))).then(i=>j.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new q(n,i,n.path,a)));return j.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:S.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:S.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:S.toString(n)}})}nonempty(t){return this.min(1,t)}};be.create=(e,t)=>new be({type:e,minLength:null,maxLength:null,exactLength:null,typeName:T.ZodArray,...C(t)});function ot(e){if(e instanceof W){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=K.create(ot(r))}return new W({...e._def,shape:()=>t})}else return e instanceof be?new be({...e._def,type:ot(e.element)}):e instanceof K?K.create(ot(e.unwrap())):e instanceof ue?ue.create(ot(e.unwrap())):e instanceof le?le.create(e.items.map(t=>ot(t))):e}var W=class e extends O{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=N.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==x.object){let u=this._getOrReturnCtx(t);return _(u,{code:g.invalid_type,expected:x.object,received:u.parsedType}),v}let{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof re&&this._def.unknownKeys==="strip"))for(let u in s.data)i.includes(u)||a.push(u);let l=[];for(let u of i){let c=o[u],f=s.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new q(s,f,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof re){let u=this._def.unknownKeys;if(u==="passthrough")for(let c of a)l.push({key:{status:"valid",value:c},value:{status:"valid",value:s.data[c]}});else if(u==="strict")a.length>0&&(_(s,{code:g.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let c of a){let f=s.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new q(s,f,s.path,c)),alwaysSet:c in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let u=[];for(let c of l){let f=await c.key,d=await c.value;u.push({key:f,value:d,alwaysSet:c.alwaysSet})}return u}).then(u=>j.mergeObjectSync(r,u)):j.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return S.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let s=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:S.errToObj(t).message??s}:{message:s}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:T.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 N.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 N.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return ot(this)}partial(t){let n={};for(let r of N.objectKeys(this.shape)){let s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of N.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof K;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return zs(N.objectKeys(this.shape))}};W.create=(e,t)=>new W({shape:()=>e,unknownKeys:"strip",catchall:re.create(),typeName:T.ZodObject,...C(t)});W.strictCreate=(e,t)=>new W({shape:()=>e,unknownKeys:"strict",catchall:re.create(),typeName:T.ZodObject,...C(t)});W.lazycreate=(e,t)=>new W({shape:e,unknownKeys:"strip",catchall:re.create(),typeName:T.ZodObject,...C(t)});var ze=class extends O{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function s(o){for(let a of o)if(a.result.status==="valid")return a.result;for(let a of o)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let i=o.map(a=>new G(a.ctx.common.issues));return _(n,{code:g.invalid_union,unionErrors:i}),v}if(n.common.async)return Promise.all(r.map(async o=>{let i={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(s);{let o,i=[];for(let l of r){let u={...n,common:{...n.common,issues:[]},parent:null},c=l._parseSync({data:n.data,path:n.path,parent:u});if(c.status==="valid")return c;c.status==="dirty"&&!o&&(o={result:c,ctx:u}),u.common.issues.length&&i.push(u.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(l=>new G(l));return _(n,{code:g.invalid_union,unionErrors:a}),v}}get options(){return this._def.options}};ze.create=(e,t)=>new ze({options:e,typeName:T.ZodUnion,...C(t)});var ye=e=>e instanceof Be?ye(e.schema):e instanceof Y?ye(e.innerType()):e instanceof Ze?[e.value]:e instanceof Je?e.options:e instanceof Ge?N.objectValues(e.enum):e instanceof We?ye(e._def.innerType):e instanceof je?[void 0]:e instanceof He?[null]:e instanceof K?[void 0,...ye(e.unwrap())]:e instanceof ue?[null,...ye(e.unwrap())]:e instanceof Ot||e instanceof Ke?ye(e.unwrap()):e instanceof Ve?ye(e._def.innerType):[],ln=class e extends O{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==x.object)return _(n,{code:g.invalid_type,expected:x.object,received:n.parsedType}),v;let r=this.discriminator,s=n.data[r],o=this.optionsMap.get(s);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(_(n,{code:g.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),v)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let s=new Map;for(let o of n){let i=ye(o.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(s.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);s.set(a,o)}}return new e({typeName:T.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...C(r)})}};function Xn(e,t){let n=ae(e),r=ae(t);if(e===t)return{valid:!0,data:e};if(n===x.object&&r===x.object){let s=N.objectKeys(t),o=N.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(let a of o){let l=Xn(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===x.array&&r===x.array){if(e.length!==t.length)return{valid:!1};let s=[];for(let o=0;o<e.length;o++){let i=e[o],a=t[o],l=Xn(i,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===x.date&&r===x.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var Ue=class extends O{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(on(o)||on(i))return v;let a=Xn(o.value,i.value);return a.valid?((an(o)||an(i))&&n.dirty(),{status:n.value,value:a.data}):(_(r,{code:g.invalid_intersection_types}),v)};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(([o,i])=>s(o,i)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};Ue.create=(e,t,n)=>new Ue({left:e,right:t,typeName:T.ZodIntersection,...C(n)});var le=class e extends O{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==x.array)return _(r,{code:g.invalid_type,expected:x.array,received:r.parsedType}),v;if(r.data.length<this._def.items.length)return _(r,{code:g.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),v;!this._def.rest&&r.data.length>this._def.items.length&&(_(r,{code:g.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let o=[...r.data].map((i,a)=>{let l=this._def.items[a]||this._def.rest;return l?l._parse(new q(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>j.mergeArray(n,i)):j.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};le.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new le({items:e,typeName:T.ZodTuple,rest:null,...C(t)})};var un=class e extends O{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!==x.object)return _(r,{code:g.invalid_type,expected:x.object,received:r.parsedType}),v;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in r.data)s.push({key:o._parse(new q(r,a,r.path,a)),value:i._parse(new q(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?j.mergeObjectAsync(n,s):j.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof O?new e({keyType:t,valueType:n,typeName:T.ZodRecord,...C(r)}):new e({keyType:Te.create(),valueType:t,typeName:T.ZodRecord,...C(n)})}},lt=class extends O{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!==x.map)return _(r,{code:g.invalid_type,expected:x.map,received:r.parsedType}),v;let s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,l],u)=>({key:s._parse(new q(r,a,r.path,[u,"key"])),value:o._parse(new q(r,l,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let l of i){let u=await l.key,c=await l.value;if(u.status==="aborted"||c.status==="aborted")return v;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let l of i){let u=l.key,c=l.value;if(u.status==="aborted"||c.status==="aborted")return v;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}}}};lt.create=(e,t,n)=>new lt({valueType:t,keyType:e,typeName:T.ZodMap,...C(n)});var ut=class e extends O{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==x.set)return _(r,{code:g.invalid_type,expected:x.set,received:r.parsedType}),v;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(_(r,{code:g.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),n.dirty()),s.maxSize!==null&&r.data.size>s.maxSize.value&&(_(r,{code:g.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());let o=this._def.valueType;function i(l){let u=new Set;for(let c of l){if(c.status==="aborted")return v;c.status==="dirty"&&n.dirty(),u.add(c.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((l,u)=>o._parse(new q(r,l,r.path,u)));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:S.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:S.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};ut.create=(e,t)=>new ut({valueType:e,minSize:null,maxSize:null,typeName:T.ZodSet,...C(t)});var cn=class e extends O{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==x.function)return _(n,{code:g.invalid_type,expected:x.function,received:n.parsedType}),v;function r(a,l){return Ct({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,rt(),he].filter(u=>!!u),issueData:{code:g.invalid_arguments,argumentsError:l}})}function s(a,l){return Ct({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,rt(),he].filter(u=>!!u),issueData:{code:g.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof Re){let a=this;return U(async function(...l){let u=new G([]),c=await a._def.args.parseAsync(l,o).catch(p=>{throw u.addIssue(r(l,p)),u}),f=await Reflect.apply(i,this,c);return await a._def.returns._def.type.parseAsync(f,o).catch(p=>{throw u.addIssue(s(f,p)),u})})}else{let a=this;return U(function(...l){let u=a._def.args.safeParse(l,o);if(!u.success)throw new G([r(l,u.error)]);let c=Reflect.apply(i,this,u.data),f=a._def.returns.safeParse(c,o);if(!f.success)throw new G([s(c,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:le.create(t).rest(ke.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||le.create([]).rest(ke.create()),returns:n||ke.create(),typeName:T.ZodFunction,...C(r)})}},Be=class extends O{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})}};Be.create=(e,t)=>new Be({getter:e,typeName:T.ZodLazy,...C(t)});var Ze=class extends O{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return _(n,{received:n.data,code:g.invalid_literal,expected:this._def.value}),v}return{status:"valid",value:t.data}}get value(){return this._def.value}};Ze.create=(e,t)=>new Ze({value:e,typeName:T.ZodLiteral,...C(t)});function zs(e,t){return new Je({values:e,typeName:T.ZodEnum,...C(t)})}var Je=class e extends O{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return _(n,{expected:N.joinValues(r),received:n.parsedType,code:g.invalid_type}),v}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 _(n,{received:n.data,code:g.invalid_enum_value,options:r}),v}return U(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})}};Je.create=zs;var Ge=class extends O{_parse(t){let n=N.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==x.string&&r.parsedType!==x.number){let s=N.objectValues(n);return _(r,{expected:N.joinValues(s),received:r.parsedType,code:g.invalid_type}),v}if(this._cache||(this._cache=new Set(N.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=N.objectValues(n);return _(r,{received:r.data,code:g.invalid_enum_value,options:s}),v}return U(t.data)}get enum(){return this._def.values}};Ge.create=(e,t)=>new Ge({values:e,typeName:T.ZodNativeEnum,...C(t)});var Re=class extends O{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==x.promise&&n.common.async===!1)return _(n,{code:g.invalid_type,expected:x.promise,received:n.parsedType}),v;let r=n.parsedType===x.promise?n.data:Promise.resolve(n.data);return U(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};Re.create=(e,t)=>new Re({type:e,typeName:T.ZodPromise,...C(t)});var Y=class extends O{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===T.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null,o={addIssue:i=>{_(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),s.type==="preprocess"){let i=s.transform(r.data,o);if(r.common.async)return Promise.resolve(i).then(async a=>{if(n.value==="aborted")return v;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?v:l.status==="dirty"?Pe(l.value):n.value==="dirty"?Pe(l.value):l});{if(n.value==="aborted")return v;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?v:a.status==="dirty"?Pe(a.value):n.value==="dirty"?Pe(a.value):a}}if(s.type==="refinement"){let i=a=>{let l=s.refinement(a,o);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"?v:(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"?v:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(s.type==="transform")if(r.common.async===!1){let i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Ee(i))return v;let a=s.transform(i.value,o);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=>Ee(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):v);N.assertNever(s)}};Y.create=(e,t,n)=>new Y({schema:e,typeName:T.ZodEffects,effect:t,...C(n)});Y.createWithPreprocess=(e,t,n)=>new Y({schema:t,effect:{type:"preprocess",transform:e},typeName:T.ZodEffects,...C(n)});var K=class extends O{_parse(t){return this._getType(t)===x.undefined?U(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};K.create=(e,t)=>new K({innerType:e,typeName:T.ZodOptional,...C(t)});var ue=class extends O{_parse(t){return this._getType(t)===x.null?U(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ue.create=(e,t)=>new ue({innerType:e,typeName:T.ZodNullable,...C(t)});var We=class extends O{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===x.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};We.create=(e,t)=>new We({innerType:e,typeName:T.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...C(t)});var Ve=class extends O{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return st(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new G(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new G(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Ve.create=(e,t)=>new Ve({innerType:e,typeName:T.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...C(t)});var ct=class extends O{_parse(t){if(this._getType(t)!==x.nan){let r=this._getOrReturnCtx(t);return _(r,{code:g.invalid_type,expected:x.nan,received:r.parsedType}),v}return{status:"valid",value:t.data}}};ct.create=e=>new ct({typeName:T.ZodNaN,...C(e)});var Du=Symbol("zod_brand"),Ot=class extends O{_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}},It=class e extends O{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?v:o.status==="dirty"?(n.dirty(),Pe(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{let s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?v:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:T.ZodPipeline})}},Ke=class extends O{_parse(t){let n=this._def.innerType._parse(t),r=s=>(Ee(s)&&(s.value=Object.freeze(s.value)),s);return st(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};Ke.create=(e,t)=>new Ke({innerType:e,typeName:T.ZodReadonly,...C(t)});function Ms(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function Us(e,t={},n){return e?Ae.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=Ms(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=Ms(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):Ae.create()}var Lu={object:W.lazycreate},T;(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"})(T||(T={}));var Mu=(e,t={message:`Input not instance of ${e.name}`})=>Us(n=>n instanceof e,t),Bs=Te.create,Zs=De.create,Fu=ct.create,ju=Le.create,Js=Me.create,Hu=Fe.create,zu=it.create,Uu=je.create,Bu=He.create,Zu=Ae.create,Ju=ke.create,Gu=re.create,Wu=at.create,Vu=be.create,Ku=W.create,qu=W.strictCreate,Yu=ze.create,Xu=ln.create,Qu=Ue.create,ec=le.create,tc=un.create,nc=lt.create,rc=ut.create,sc=cn.create,oc=Be.create,ic=Ze.create,ac=Je.create,lc=Ge.create,uc=Re.create,cc=Y.create,fc=K.create,dc=ue.create,pc=Y.createWithPreprocess,mc=It.create,gc=()=>Bs().optional(),hc=()=>Zs().optional(),yc=()=>Js().optional(),kc={string:(e=>Te.create({...e,coerce:!0})),number:(e=>De.create({...e,coerce:!0})),boolean:(e=>Me.create({...e,coerce:!0})),bigint:(e=>Le.create({...e,coerce:!0})),date:(e=>Fe.create({...e,coerce:!0}))};var bc=v;var $e=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()});var Mc=Dc(Lc(import.meta.url)),Fc=process.env.TOKMIZER_FILTERS_DIR||ro(Mc,"..","..","filters"),ft=null,no=!1;function jc(){return!1}async function so(){return ft||(jc()?(ft=await Hc(Fc),ft):(!no&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
18
+ `),no=!0),ft=new Map,ft))}async function Hc(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(mn(),ur))).parse,r=(await Nc(e)).filter(s=>s.endsWith(".toml"))}catch{return t}for(let s of r){let o=await Pc(ro(e,s),"utf8"),a=n(o).filters;if(a)for(let[l,u]of Object.entries(a)){let c=$e.parse({slug:l,...u});t.set(l,{...c,matchRegex:new RegExp(c.match_command)})}}return t}import{createHash as zc}from"node:crypto";var Uc=k.enum(["normal","compact","minimal"]),Bc=k.enum(["off","light","balanced","max"]),Mt=k.object({enabled:k.boolean().default(!0),telemetryOptIn:k.boolean().default(!0),outputVerbosity:Uc.default("compact"),reducer:Bc.default("off"),filters:k.object({enableAll:k.boolean().default(!0),disabled:k.array(k.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),oo=new Map;function X(e){let t=oo.get(e);return t||(t=zc("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),oo.set(e,t)),t}var io=new WeakMap,Zc=256;function dt(e,t,n,r=t){let s=io.get(r);s||(s=new Map,io.set(r,s));let o=JSON.stringify([e,n?[...n].sort():null]),i=s.get(o);if(i!==void 0)return i;let a=null;for(let l of t)n&&!n.has(X(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(s.size>=Zc){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}import{readdir as Rd,readFile as Wo,writeFile as lw,mkdir as uw,rename as cw}from"node:fs/promises";import{readdirSync as $d,statSync as Zo}from"node:fs";import{createHash as Cd}from"node:crypto";import{basename as mw,join as xn}from"node:path";var Jc=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,Gc=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;function ce(e){return e.replace(Jc,"").replace(Gc,"")}function cr(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}function ao(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 lo(e,t){return e.some(n=>n.length>t)&&ao(e.join(`
19
+ `))?e:e.map(n=>{if(n.length<=t||ao(n))return n;let r=n.charCodeAt(t-1),s=n.charCodeAt(t),o=r>=55296&&r<=56319&&s>=56320&&s<=57343?t-1:t;return`${n.slice(0,o)}\u2026`})}function pt(e){return`\u2026 (${e} more lines omitted)`}var Wc=/\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]+\])?:/,Vc=20,Kc=4096;function uo(e,t){if(e.length<=t)return{kept:e,dropped:[]};let n=Math.ceil(t*.7),r=t-n,s=e.slice(n,e.length-r),o=s.filter(a=>a.length<=Kc&&Wc.test(a)).slice(0,Vc),i=s.length-o.length;return{kept:[...e.slice(0,n),...i>0?[pt(i)]:[],...o,...e.slice(e.length-r)],dropped:s}}var qc=/^\s*(?:[✓✔√]|ok )/,Q=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/;function co(e,t){let n=t>0?t:5,r=[],s=0,o=a=>{s>=n?r.push(`\u2026 ${s} passing checks folded \u2026`):r.push(...a)},i=[];for(let a of e)qc.test(a)&&!Q.test(a)?(i.push(a),s+=1):(o(i),i=[],s=0,r.push(a));return o(i),r}var Yc=/(?:\/[\w.@+-]+){3,}/g;function fo(e){return e.map(t=>t.replace(Yc,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var Xc=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,Qc=/\{\s*$/;var ef=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,tf=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);function nf(e){let t=ef.exec(e);return!t||tf.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}var rf=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;function sf(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 of(e,t){let n=0,r=null,s=0;for(;s<e.length;){let o=e[s];if(t.inBlockComment){if(o==="*"&&e[s+1]==="/"){t.inBlockComment=!1,s+=2;continue}s+=1;continue}if(t.inTemplate){if(o==="\\"){s+=2;continue}o==="`"&&(t.inTemplate=!1),s+=1;continue}if(r){if(o==="\\"){s+=2;continue}o===r&&(r=null),s+=1;continue}if(o==="/"&&e[s+1]==="/")break;if(o==="/"&&e[s+1]==="*"){t.inBlockComment=!0,s+=2;continue}if(o==="`"){t.inTemplate=!0,s+=1;continue}if(o==="'"||o==='"'){let i=s>0?e[s-1]:"";!(o==="'"&&(i==="<"||i==="&"))&&sf(e,s+1,o)&&(r=o),s+=1;continue}o==="{"||o==="("||o==="["?n+=1:(o==="}"||o===")"||o==="]")&&(n-=1),s+=1}return n}var af=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;function lf(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 fr(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=af.exec(e[n]);if(!r)continue;let s=Number(r[1])-1,o=n+1;for(;s>0&&o<e.length&&e[o]==="";)t[o]=!0,s-=1,o+=1;n=o-1}return t}function Ft(e,t=3,n=!1){let r=[],s=0;for(;s<e.length;){let o=e[s];if(Xc.test(o)&&Qc.test(o)||nf(o)||rf.test(o)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=s,u=!1;for(;l<e.length&&l-s<200;)if(a+=of(e[l],i),l+=1,a<=0&&!i.inTemplate&&!i.inBlockComment){u=!0;break}let c=l-s;if(u&&c<t){r.push(...e.slice(s,l)),s=l;continue}if(u&&c>=3){let f=c-2,d=/^\s*/.exec(e[s+1]??"")?.[0]??" ";r.push(o),r.push(lf(d,f,n?s+2:null));for(let p=0;p<f-1;p++)r.push("");r.push(e[l-1]),s=l;continue}}r.push(o),s+=1}return r}var uf=/\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 gn(e){let t=e.slice(0,4096);return!(!uf.test(t)||t.split(`
20
+ `).length<6)}var ho=/^\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*/,yo=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,ko=new RegExp(Q.source,"i"),bo=/\bWARN(?:ING)?\b/i;function _o(e){let t=[],n=0,r=()=>{n>0&&t.push(`\u2026 ${n} verbose log line${n===1?"":"s"} dropped \u2026`),n=0};for(let s of e){if(yo.test(s.replace(ho,""))&&!ko.test(s)&&!bo.test(s)){n+=1;continue}r(),t.push(s)}return r(),t}var cf=/^(?:DEBUG|INFO):[\w.-]+:/,ff=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,df=8,po=1,mo=2,pf=/^(\s*)(?:Downloaded|Downloading|Compiling|Fetching|Fetched|Installing|Installed|Collecting|Using cached|Requirement already satisfied:|Unpacking|Preparing|Pulling fs layer|Pull complete|Already exists|Download complete|Verifying Checksum|Waiting|Extracting|Get:\d+|Hit:\d+|Ign:\d+|Setting up|Selecting previously unselected package|Progress: resolved|cargo:rustc-[a-z-]+=)/,mf=/^[0-9a-f]{12}: (?:Pulling fs layer|Waiting|Downloading|Verifying Checksum|Download complete|Extracting|Pull complete|Already exists)\b/,gf=/^\s*[-+~]\s+[├└│ ─]*\S+:\S+\s+\S+\s+(?:created|updated|deleted|replaced|refreshed|read|same)\s\(\d+s\)\s*$/;function go(e){if(e.trim()===""||ko.test(e)||bo.test(e)||ff.test(e))return null;let t=pf.exec(e);if(t)return`\0progress${t[1]}`;if(mf.test(e))return"\0layer";if(gf.test(e))return"\0resource-done";if(/^\s/.test(e))return null;let n=e.replace(ho,"");return yo.test(n)||cf.test(n)?"\0verbose":e.replace(/\d+/g,"#")}function xo(e){let t=[],n=0;for(;n<e.length;){let r=go(e[n]),s=n+1;if(r!==null)for(;s<e.length&&go(e[s])===r;)s+=1;let o=s-n;r===null||o<df?t.push(...e.slice(n,s)):(t.push(...e.slice(n,n+po)),t.push(`\u2026 ${o-po-mo} similar log lines dropped \u2026`),t.push(...e.slice(s-mo,s))),n=s}return t}var hf=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/;function wo(e){return e.some(t=>hf.test(t))}function hn(e){if(e.length===0||wo(e))return e;let t=[],n=1,r=e[0];for(let s=1;s<e.length;s++){if(e[s]===r){n+=1;continue}t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),r=e[s],n=1}return t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),t}function So(e){if(wo(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 vo=new Map;function M(e,t){vo.set(e,t)}function Eo(e){return vo.get(e)}var Ro=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,$o=/^[./~][^\s]*:$/,yf=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})?`,kf=new RegExp(String.raw`^(\S+)\s+\d+\s+(\S+(?:\s+\S+)??)\s+(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${yf})\s+(.+)$`),bf={k:1,m:2,g:3,t:4,p:5},dr=1e3;function _f(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 xf(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?bf[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function wf(e){let t=kf.exec(e);if(!t)return null;let n=t[4].trim();if(n===""||n==="."||n==="..")return null;let r=t[3],s=/^\d+$/.test(r)?_f(Number(r)):r,o=e.charCodeAt(0)===100;return{name:n,size:s,sizeKey:xf(r),isDir:o,mode:t[1],owner:t[2].replace(/\s+/g," ")}}function Sf(e){if(e.length<3)return null;let t=new Map;for(let s of e){let o=s.name.lastIndexOf(".");if(o<=0)continue;let i=s.name.slice(o);t.set(i,(t.get(i)??0)+1)}let n=null,r=0;for(let[s,o]of t)o>r&&(r=o,n=s);return n&&r>=Math.ceil(e.length/2)?`${r} ${n}`:null}var vf=12,Ef=3,Tf=180;function To(e,t){let n=[],r=e;for(let s of t)r.length+1+s.length>Tf&&r!==e&&r!==" "&&(n.push(r),r=" "),r+=r===" "?s:` ${s}`;return n.push(r),n}function Af(e){let t=e.endsWith("/")?"":e,n=t.indexOf(".",1);return n>0?t.slice(n):""}function Rf(e){let t=e.filter(l=>l.trim()!=="");if(t.length<vf)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(":")||$o.test(l.trim())||Ro.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 s=l=>/\s|"/.test(l)?JSON.stringify(l):l,o=new Map;for(let l of t){let u=Af(l),c=o.get(u)??[];c.push(l),o.set(u,c)}let i=[`${t.length} entries:`],a=[];for(let[l,u]of[...o.entries()].sort((c,f)=>f[1].length-c[1].length||c[0].localeCompare(f[0])))l&&u.length>=Ef&&u.every(c=>!/\s|"/.test(c))?i.push(...To(`*${l} (${u.length}):`,u.map(c=>c.slice(0,-l.length)))):a.push(...u);return a.length&&i.push(...To(`other (${a.length}):`,a.map(s))),i.join(`
21
21
  `).length<t.join(`
22
- `).length?i:null}function Ef(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 To(e){let t=new Map;for(let s of e)t.set(s.mode,(t.get(s.mode)??0)+1);let n=null,r=0;for(let[s,o]of t)o>r&&([n,r]=[s,o]);return r>=2?n:null}function dr(e,t){if(Ef(t))return e;let n=vf(e);if(n)return n;let r=[],s=[],o=!1;for(let m of e){if(m.trim()===""||/^total\s+\d+/.test(m))continue;if(Ro.test(m.trim())||!Ao.test(m))return e;let b=kf(m);if(!b){if(/\s\.\.?$/.test(m))continue;return e}o=!0,(b.isDir?r:s).push(b)}if(!o)return e;let i=(m,b)=>m.name.localeCompare(b.name);r.sort(i),s.sort((m,b)=>b.sizeKey-m.sizeKey||i(m,b));let a=[...r,...s],l=a.every(m=>m.owner===a[0].owner)?a[0].owner:null,u=To(r),c=To(s),f=[];for(let m of a){let b=m.isDir?u:c,A=`${m.mode===b?"":`${m.mode} `}${l===null?`${m.owner} `:""}${m.isDir?`${m.name}/`:m.name}`;f.push(m.isDir?A:`${A} ${m.size}`)}if(f.length>fr){let m=f.length-fr;f=[...f.slice(0,fr),`\u2026 ${m} more lines omitted`]}let d=s.length===1?"file":"files",p=r.length===1?"dir":"dirs",h=bf(s),y=`${s.length} ${d}, ${r.length} ${p}`+(h?` (${h})`:"")+(l===null?"":`, owner ${l.replace(" ",":")}`)+(u||c?`, mode ${[u&&`dirs ${u}`,c&&`files ${c}`].filter(Boolean).join(", ")} unless shown`:"");return f.push(y),f}M("smart-ls",dr);M("smart-read",e=>Ft(e));var $o=1e3;function Tf(e){let t=e[0].split("/");for(let n of e.slice(1)){let r=n.split("/"),s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)break}return t.join("/")}function Af(e){if(e.length<2||e.some(s=>s.startsWith('"')))return"";let t=e[0];for(let s of e.slice(1)){let o=0;for(;o<t.length&&o<s.length&&t[t.length-1-o]===s[s.length-1-o];)o+=1;if(t=t.slice(t.length-o),!t)return""}let n=t.indexOf("."),r=n<0?"":t.slice(n);return r.length>=3&&e.every(s=>s.length>r.length)?r:""}function Rf(e){let t=e.filter(u=>u.trim()!=="");if(t.length===0||t.filter(u=>!/\s/.test(u.trim())).length<t.length*.6)return e;let r=new Map,s=[],o=0;for(let u of t){let c=u.trim();if(c.startsWith("find:")){s.push(c);continue}let f=c.replace(/^\.\//,"").replace(/\/+$/,""),d=f.lastIndexOf("/"),p=d>0?f.slice(0,d):d===0?"/":"",h=d>=0?f.slice(d+1):f;if(!h)continue;let y=r.get(p)??[];y.push(/\s/.test(h)?`"${h}"`:h),r.set(p,y),o+=1}if(o===0)return e;let i=[...r.keys()].sort(),a=i.every(u=>u!=="")&&!i.includes("/")?Tf(i):"",l=[`${o}F ${i.length}D${a?` in ${a}/`:""}:`];for(let u of i){let c=u==="/"?"/":a?u.slice(a.length).replace(/^\//,""):u,f=r.get(u),d=Af(f),p=d?f.map(h=>h.slice(0,-d.length)):f;l.push(`${c==="/"?"/":c?`${c}/`:"./"} (${f.length}${d?`, *${d}`:""}): ${p.join(" ")}`)}if(l.length+s.length>$o){let u=Math.max(0,$o-s.length),c=l.length-u;return[...l.slice(0,u),`\u2026 ${c} more lines omitted`,...s]}return[...l,...s]}M("smart-find",Rf);var $f=/^\s*(\d+(?:\s+\d+){0,3})\s+(\S.*)$/;function Cf(e){let t=[];for(let i of e){if(i.trim()==="")continue;let a=$f.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):""),s=r[0];for(let i of r)for(;s&&!i.startsWith(s);)s=s.slice(0,s.slice(0,-1).lastIndexOf("/")+1);let o=s?[`in ${s}:`]:[];for(let i of t)o.push(`${i.counts} ${i.path!=="total"&&s?i.path.slice(s.length):i.path}`);return o}M("smart-wc",Cf);var Co=/^\s*\d+\/\d+ Test\s+#\s*\d+: \S+ \.{2,}/,Of=/^\d+% tests passed, \d+ tests? failed out of \d+$/,If=new RegExp(`${Q.source}|\\*\\*\\*|Exception|FAIL|ERROR`),pr=3,mr=8;function Nf(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 Pf(e){if(e.length<=pr+mr+1)return e;let t=e.slice(pr,-mr),n=t.filter(s=>If.test(s)),r=t.length-n.length;return r===0?e:[...e.slice(0,pr),...n,`\u2026 ${r} more lines omitted`,...e.slice(-mr)]}function Df(e){if(!e.some(s=>Co.test(s)))return e;let t=[],n=[],r=()=>{t.push(...Pf(Nf(n))),n=[]};for(let s=0;s<e.length;s+=1){let o=e[s];if(Of.test(o))return r(),t.push(...e.slice(s)),t;if(Co.test(o)){r(),t.push(o);continue}n.push(o)}return r(),t}M("smart-ctest",Df);function Lf(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 Mf(e){let t=e.join(`
23
- `).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),s=Lf(r),o=r.reduce((a,l)=>a+(n.files[l].messages?.length??0),0),i=[`phpstan: ${o} error${o===1?"":"s"} in ${r.length} file${r.length===1?"":"s"}${s?` under ${s}`:""}`];for(let a of r){let l=n.files[a].messages??[];i.push(`${a.slice(s.length)} (${l.length})`);for(let u of l){let c=typeof u.line=="number"?`:${u.line}`:":?",f=typeof u.tip=="string"&&u.tip?` \u2014 ${u.tip}`:"";i.push(` ${c} ${String(u.message??"")}${f}`)}}for(let a of Array.isArray(n.errors)?n.errors:[])i.push(`error: ${String(a)}`);return i}M("smart-phpstan",Mf);var Ff=/^\d+ \| /,gr=/^\s+\^\s*$/,jf=new RegExp(`${Q.source}|\\*\\*\\*|Exception|FAIL|ERROR`);function Hf(e){if(!e.some(n=>gr.test(n)))return e;let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];gr.test(r)||Ff.test(r)&&!gr.test(e[n+1]??"")&&!jf.test(r)||t.push(r)}return t}M("bun-frames",Hf);var zf=/^\s*% Total\s+% Received\s+% Xferd\s+Average Speed/,Uf=/^\s+Dload\s+Upload\s+Total\s+Spent\s+Left\s+Speed/,Bf=/^\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*$/,Zf=/^\* (?:Trying |Connected to |Host .* was resolved|Connection #\d+|IPv[46]:|Uses proxy)|^> [A-Z]+ \S+ HTTP\/[\d.]+\s*$|^< HTTP\/[\d.]+ \d{3}/,Jf=/^(?:\* |[<>] (?:[A-Za-z][\w-]*: .*|[A-Z]+ \S+ HTTP\/[\d.]+|HTTP\/[\d.]+ .*)$|[<>]\s?$|[{}] \[\d+ bytes data\])/;function Gf(e){let t=e.split("\r").filter(n=>n.trim()!=="");return t.length>0&&t.every(n=>Bf.test(n))}function Wf(e){let t=e.some(r=>Zf.test(r)),n=[];for(let r=0;r<e.length;r+=1){let s=e[r];if(zf.test(s)){let o=r+1;for(Uf.test(e[o]??"")&&(o+=1);Gf(e[o]??"");)o+=1;r=o-1;continue}t&&Jf.test(s)||n.push(s)}return n}M("curl-progress",Wf);var hr=1e3,Oo=200,Vf=60,Kf=190,Po=/^([^\s:]+):(\d+):(.*)$/,Do=/^([^:]+?)-(\d+)-(.*)$/,Lo=/^([^\s:]+):(.*)$/,Io=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;function No(e,t=!1){let n=t?e.trimEnd():e.trim();return n.length>Oo?`${n.slice(0,Oo)}\u2026`:n}function qf(e){let t=[],n="";for(let r of e){let s=n?`${n}, ${r}`:r;s.length>=Kf&&n?(t.push(`${n},`),n=r):n=s}return n&&t.push(n),t}function Yf(e){let t=null;for(let n of e){let r=n.split("/").slice(0,-1);if(t===null){t=r;continue}let s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)return""}return t?t.join("/"):""}function Mo(e){return e.includes("/")||e.includes("\\")||/\.[A-Za-z][\w-]*$/.test(e)}function Xf(e,t,n){return/^\d+$/.test(e)?!1:Mo(e)?!0:(t||n)&&/^[\w.-]+$/.test(e)}function Qf(e){let t=0,n=0;for(let r of e){let s=(Po.exec(r)??Do.exec(r)??Lo.exec(r))?.[1];s&&(n+=1,Mo(s)&&(t+=1))}return t>=2&&t*2>n}function Fo(e,t={}){let n=e.filter(m=>m.trim()!=="");if(n.length===0)return e;let r=Qf(n),s=new Map,o=new Map,i=null,a=0,l=0,u=null;for(let m of n){if(m==="--"){i&&s.get(i).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(m))return e;let b=Po.exec(m),w=Do.exec(m);if(b&&w)return e;let A=b||w?null:Lo.exec(m),I=(b??w??A)?.[1];if(!I||!Xf(I,!!b,r))return e;let L=b?{line:b[2],content:b[3],context:!1}:w?{line:w[2],content:w[3],context:!0}:{line:"",content:A[2],context:!1},z=s.get(I)??[];z.push(L),s.set(I,z);let F=L.line?Number(L.line):NaN,me=t.astGrep&&I===i&&u!==null&&F===u+1;(t.astGrep?!me:!L.context)&&(a+=1,o.set(I,(o.get(I)??0)+1)),u=t.astGrep&&Number.isFinite(F)?F:null,l+=1,i=I}if(s.size===l)return e;let c=[...s.keys()].sort((m,b)=>{let w=Io.test(m)?1:0,A=Io.test(b)?1:0;return w-A||(m<b?-1:m>b?1:0)}),f=c.length>1?Yf(c):"",d=m=>f?m.slice(f.length+1):m,p=[];for(let m of c){p.push(`${d(m)} (${o.get(m)??0}):`);for(let b of s.get(m))"separator"in b?p.push(" --"):b.line?p.push(` ${b.line}${b.context?"-":":"} ${No(b.content,t.astGrep)}`):p.push(` ${No(b.content,t.astGrep)}`)}let h=c.length>1&&p.length>Vf?qf(c.map(m=>`${d(m)} (${o.get(m)??0})`)):[],y=[`${a}m ${c.length}f${f?` in ${f}/`:""}:`,...h,"",...p];if(y.length>hr){let m=y.length-hr;return[...y.slice(0,hr),`\u2026 ${m} more lines omitted`]}return y}M("smart-grep",Fo);M("smart-grep-ast",e=>Fo(e,{astGrep:!0}));var jo=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,ed=/^[|\\/* ._-]*$/,td=/^ {4}/,nd=/^ {4}(?:Co-[Aa]uthored-[Bb]y|Signed-off-by|Reviewed-by|Acked-by|Tested-by|Reported-by|Fixes|Closes):/,rd=2,sd=1,Ho=/^commit ([0-9a-f]{40})(\s.*)?$/,od=/^Author:\s+(.+)$/,id=/^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})$/,ad=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ld=12,ud=5;function cd(e){let t=[];for(let l=0;l<e.length;l+=1){let u=Ho.exec(e[l]);if(!u)continue;let c=l+1,f=null;e[c]?.startsWith("Merge: ")&&(f=e[c].slice(7),c+=1);let d=od.exec(e[c]??""),p=id.exec(e[c+1]??"");if(!d||!p)return null;let h=ad.indexOf(p[1])+1;if(h===0)return null;t.push({at:l,hash:u[1].slice(0,ld),refs:u[2]??"",merge:f,author:d[1],date:`${p[4]}-${String(h).padStart(2,"0")}-${p[2].padStart(2,"0")} ${p[3]}`,zone:p[5],end:c+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,s=n.length>1&&n.length<=ud&&t.length>n.length,o=t.length>1&&t.every(l=>l.zone===t[0].zone)?t[0].zone:null,i=r?[`author: ${r}`]:s?[`authors: ${n.map((l,u)=>`[${u+1}] ${l}`).join("; ")}`]:[];o&&i.push(`dates: UTC${o}`);let a=0;for(let l of t){i.push(...e.slice(a,l.at));let u=r?"":s?` [${n.indexOf(l.author)+1}]`:` ${l.author}`;i.push(`${l.hash} ${l.date}${o?"":` ${l.zone}`}${u}${l.merge?` merge ${l.merge}`:""}${l.refs}`),a=l.end}return i.push(...e.slice(a)),i}function fd(e){if(!e.some(r=>jo.test(r)))return e;let t=e.some(r=>Ho.test(r))&&!e.some(r=>/^[|\\/*]/.test(r)),n=dd(e,t?sd:rd);return cd(n)??n}function dd(e,t){let n=[],r=0,s=0,o=0,i="",a=!1,l=!1,u=()=>{s>0&&n.push(`${i} \u2026 ${s} ${s===1?"line":"lines"} folded \u2026`),s=0};for(let c of e){let f=c.slice(0,o),d=ed.test(f),p=d?c.slice(o):c,h=td.test(p),y=a&&h?null:jo.exec(c);if(y){u(),r=0,o=y[1]?.length??0,a=!0,l=!1,n.push(c);continue}if(/^diff --(?:git|cc|combined) /.test(p)&&(l=!0),h&&!l&&!(o>0&&p.trim().length===0)){if(nd.test(p)){n.push(c);continue}r+=1,r<=t?n.push(c):(s+=1,i=d?f:"");continue}u(),n.push(c)}return u(),n}M("smart-log",fd);var pd=/^[\s=]+$/,md=/^\s*=+\s+(.*?)\s+=+\s*$/,gd=512;M("strip-banners",e=>{let t=[];for(let n of e){if(pd.test(n))continue;let r=n.length<=gd?md.exec(n):null;t.push(r?r[1]:n)}return t});function hd(e){let t=[],n=0,r=0;for(;r<e.length;){let s=e[r].trimEnd();if(s===""){n+=1,r+=1,n<=1&&t.push("");continue}n=0;let o=1;for(;r+o<e.length&&e[r+o].trimEnd()===s;)o+=1;if(o>=3)t.push(s),t.push(` \u2026 (repeated ${o}x)`);else for(let i=0;i<o;i++)t.push(s);r+=o}for(;t.length>0&&t[t.length-1]==="";)t.pop();return t}M("squeeze-output",hd);function yd(e){return e==="compact"?.6:e==="minimal"?.3:1}var kd=20;function bd(e){let[t,n,r,s]=e.slice(-4);if(!t||!n||!r||!s||!/^\s*Test Files\s+([1-9]\d*) passed \(\1\)$/.test(t)||!/^\s*Tests\s+([1-9]\d*) passed \(\1\)$/.test(n)||!/^\s*Start at\s+\d{2}:\d{2}:\d{2}$/.test(r))return e;let o=/^(\s*Duration\s+\d+(?:\.\d+)?(?:ms|s)) \(transform [^\n]+\)$/.exec(s)?.[1];return o?[...e.slice(0,-4).filter((a,l)=>l>2||!/^ RUN v\d+\.\d+\.\d+(?:[\w.+-]*) .+$/.test(a)),t,n,o]:e}var zo=new WeakMap;function _d(e){let t=zo.get(e);if(t)return t;let n=e.strip_lines_matching.map(o=>new RegExp(o)),r=(e.drop_lines_matching??[]).map(o=>new RegExp(o)),s={def:e,stripRegexes:n,dropRegexes:r};return zo.set(e,s),s}var xd=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("|")),wd=new Set(["grep","ast-grep"]);function yr(e){return!!e&&xd.test(e)}function kr(e,t,n){if(e==="smart-ls")return dr(t,n);let r=vo(e);return r?r(t):t}function hn(e,t,n={}){return br(e,t,n).text}function br(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 s=_d(t),o=!t.preserve_exact&&e.includes(`\r
22
+ `).length?i:null}function $f(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 Ao(e){let t=new Map;for(let s of e)t.set(s.mode,(t.get(s.mode)??0)+1);let n=null,r=0;for(let[s,o]of t)o>r&&([n,r]=[s,o]);return r>=2?n:null}function pr(e,t){if($f(t))return e;let n=Rf(e);if(n)return n;let r=[],s=[],o=!1;for(let m of e){if(m.trim()===""||/^total\s+\d+/.test(m))continue;if($o.test(m.trim())||!Ro.test(m))return e;let b=wf(m);if(!b){if(/\s\.\.?$/.test(m))continue;return e}o=!0,(b.isDir?r:s).push(b)}if(!o)return e;let i=(m,b)=>m.name.localeCompare(b.name);r.sort(i),s.sort((m,b)=>b.sizeKey-m.sizeKey||i(m,b));let a=[...r,...s],l=a.every(m=>m.owner===a[0].owner)?a[0].owner:null,u=Ao(r),c=Ao(s),f=[];for(let m of a){let b=m.isDir?u:c,A=`${m.mode===b?"":`${m.mode} `}${l===null?`${m.owner} `:""}${m.isDir?`${m.name}/`:m.name}`;f.push(m.isDir?A:`${A} ${m.size}`)}if(f.length>dr){let m=f.length-dr;f=[...f.slice(0,dr),`\u2026 ${m} more lines omitted`]}let d=s.length===1?"file":"files",p=r.length===1?"dir":"dirs",y=Sf(s),h=`${s.length} ${d}, ${r.length} ${p}`+(y?` (${y})`:"")+(l===null?"":`, owner ${l.replace(" ",":")}`)+(u||c?`, mode ${[u&&`dirs ${u}`,c&&`files ${c}`].filter(Boolean).join(", ")} unless shown`:"");return f.push(h),f}M("smart-ls",pr);M("smart-read",e=>Ft(e));var Co=1e3;function Cf(e){let t=e[0].split("/");for(let n of e.slice(1)){let r=n.split("/"),s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)break}return t.join("/")}function Of(e){if(e.length<2||e.some(s=>s.startsWith('"')))return"";let t=e[0];for(let s of e.slice(1)){let o=0;for(;o<t.length&&o<s.length&&t[t.length-1-o]===s[s.length-1-o];)o+=1;if(t=t.slice(t.length-o),!t)return""}let n=t.indexOf("."),r=n<0?"":t.slice(n);return r.length>=3&&e.every(s=>s.length>r.length)?r:""}function If(e){let t=e.filter(u=>u.trim()!=="");if(t.length===0||t.filter(u=>!/\s/.test(u.trim())).length<t.length*.6)return e;let r=new Map,s=[],o=0;for(let u of t){let c=u.trim();if(c.startsWith("find:")){s.push(c);continue}let f=c.replace(/^\.\//,"").replace(/\/+$/,""),d=f.lastIndexOf("/"),p=d>0?f.slice(0,d):d===0?"/":"",y=d>=0?f.slice(d+1):f;if(!y)continue;let h=r.get(p)??[];h.push(/\s/.test(y)?`"${y}"`:y),r.set(p,h),o+=1}if(o===0)return e;let i=[...r.keys()].sort(),a=i.every(u=>u!=="")&&!i.includes("/")?Cf(i):"",l=[`${o}F ${i.length}D${a?` in ${a}/`:""}:`];for(let u of i){let c=u==="/"?"/":a?u.slice(a.length).replace(/^\//,""):u,f=r.get(u),d=Of(f),p=d?f.map(y=>y.slice(0,-d.length)):f;l.push(`${c==="/"?"/":c?`${c}/`:"./"} (${f.length}${d?`, *${d}`:""}): ${p.join(" ")}`)}if(l.length+s.length>Co){let u=Math.max(0,Co-s.length),c=l.length-u;return[...l.slice(0,u),`\u2026 ${c} more lines omitted`,...s]}return[...l,...s]}M("smart-find",If);var Nf=/^\s*(\d+(?:\s+\d+){0,3})\s+(\S.*)$/;function Pf(e){let t=[];for(let i of e){if(i.trim()==="")continue;let a=Nf.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):""),s=r[0];for(let i of r)for(;s&&!i.startsWith(s);)s=s.slice(0,s.slice(0,-1).lastIndexOf("/")+1);let o=s?[`in ${s}:`]:[];for(let i of t)o.push(`${i.counts} ${i.path!=="total"&&s?i.path.slice(s.length):i.path}`);return o}M("smart-wc",Pf);var Oo=/^\s*\d+\/\d+ Test\s+#\s*\d+: \S+ \.{2,}/,Df=/^\d+% tests passed, \d+ tests? failed out of \d+$/,Lf=new RegExp(`${Q.source}|\\*\\*\\*|Exception|FAIL|ERROR`),mr=3,gr=8;function Mf(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 Ff(e){if(e.length<=mr+gr+1)return e;let t=e.slice(mr,-gr),n=t.filter(s=>Lf.test(s)),r=t.length-n.length;return r===0?e:[...e.slice(0,mr),...n,`\u2026 ${r} more lines omitted`,...e.slice(-gr)]}function jf(e){if(!e.some(s=>Oo.test(s)))return e;let t=[],n=[],r=()=>{t.push(...Ff(Mf(n))),n=[]};for(let s=0;s<e.length;s+=1){let o=e[s];if(Df.test(o))return r(),t.push(...e.slice(s)),t;if(Oo.test(o)){r(),t.push(o);continue}n.push(o)}return r(),t}M("smart-ctest",jf);function Hf(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 zf(e){let t=e.join(`
23
+ `).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),s=Hf(r),o=r.reduce((a,l)=>a+(n.files[l].messages?.length??0),0),i=[`phpstan: ${o} error${o===1?"":"s"} in ${r.length} file${r.length===1?"":"s"}${s?` under ${s}`:""}`];for(let a of r){let l=n.files[a].messages??[];i.push(`${a.slice(s.length)} (${l.length})`);for(let u of l){let c=typeof u.line=="number"?`:${u.line}`:":?",f=typeof u.tip=="string"&&u.tip?` \u2014 ${u.tip}`:"";i.push(` ${c} ${String(u.message??"")}${f}`)}}for(let a of Array.isArray(n.errors)?n.errors:[])i.push(`error: ${String(a)}`);return i}M("smart-phpstan",zf);var Uf=/^\d+ \| /,hr=/^\s+\^\s*$/,Bf=new RegExp(`${Q.source}|\\*\\*\\*|Exception|FAIL|ERROR`);function Zf(e){if(!e.some(n=>hr.test(n)))return e;let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];hr.test(r)||Uf.test(r)&&!hr.test(e[n+1]??"")&&!Bf.test(r)||t.push(r)}return t}M("bun-frames",Zf);var Jf=/^\s*% Total\s+% Received\s+% Xferd\s+Average Speed/,Gf=/^\s+Dload\s+Upload\s+Total\s+Spent\s+Left\s+Speed/,Wf=/^\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*$/,Vf=/^\* (?:Trying |Connected to |Host .* was resolved|Connection #\d+|IPv[46]:|Uses proxy)|^> [A-Z]+ \S+ HTTP\/[\d.]+\s*$|^< HTTP\/[\d.]+ \d{3}/,Kf=/^(?:\* |[<>] (?:[A-Za-z][\w-]*: .*|[A-Z]+ \S+ HTTP\/[\d.]+|HTTP\/[\d.]+ .*)$|[<>]\s?$|[{}] \[\d+ bytes data\])/;function qf(e){let t=e.split("\r").filter(n=>n.trim()!=="");return t.length>0&&t.every(n=>Wf.test(n))}function Yf(e){let t=e.some(r=>Vf.test(r)),n=[];for(let r=0;r<e.length;r+=1){let s=e[r];if(Jf.test(s)){let o=r+1;for(Gf.test(e[o]??"")&&(o+=1);qf(e[o]??"");)o+=1;r=o-1;continue}t&&Kf.test(s)||n.push(s)}return n}M("curl-progress",Yf);var yr=1e3,Io=200,Xf=60,Qf=190,Do=/^([^\s:]+):(\d+):(.*)$/,Lo=/^([^:]+?)-(\d+)-(.*)$/,Mo=/^([^\s:]+):(.*)$/,No=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;function Po(e,t=!1){let n=t?e.trimEnd():e.trim();return n.length>Io?`${n.slice(0,Io)}\u2026`:n}function ed(e){let t=[],n="";for(let r of e){let s=n?`${n}, ${r}`:r;s.length>=Qf&&n?(t.push(`${n},`),n=r):n=s}return n&&t.push(n),t}function td(e){let t=null;for(let n of e){let r=n.split("/").slice(0,-1);if(t===null){t=r;continue}let s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)return""}return t?t.join("/"):""}function Fo(e){return e.includes("/")||e.includes("\\")||/\.[A-Za-z][\w-]*$/.test(e)}function nd(e,t,n){return/^\d+$/.test(e)?!1:Fo(e)?!0:(t||n)&&/^[\w.-]+$/.test(e)}function rd(e){let t=0,n=0;for(let r of e){let s=(Do.exec(r)??Lo.exec(r)??Mo.exec(r))?.[1];s&&(n+=1,Fo(s)&&(t+=1))}return t>=2&&t*2>n}function jo(e,t={}){let n=e.filter(m=>m.trim()!=="");if(n.length===0)return e;let r=rd(n),s=new Map,o=new Map,i=null,a=0,l=0,u=null;for(let m of n){if(m==="--"){i&&s.get(i).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(m))return e;let b=Do.exec(m),w=Lo.exec(m);if(b&&w)return e;let A=b||w?null:Mo.exec(m),I=(b??w??A)?.[1];if(!I||!nd(I,!!b,r))return e;let L=b?{line:b[2],content:b[3],context:!1}:w?{line:w[2],content:w[3],context:!0}:{line:"",content:A[2],context:!1},z=s.get(I)??[];z.push(L),s.set(I,z);let F=L.line?Number(L.line):NaN,me=t.astGrep&&I===i&&u!==null&&F===u+1;(t.astGrep?!me:!L.context)&&(a+=1,o.set(I,(o.get(I)??0)+1)),u=t.astGrep&&Number.isFinite(F)?F:null,l+=1,i=I}if(s.size===l)return e;let c=[...s.keys()].sort((m,b)=>{let w=No.test(m)?1:0,A=No.test(b)?1:0;return w-A||(m<b?-1:m>b?1:0)}),f=c.length>1?td(c):"",d=m=>f?m.slice(f.length+1):m,p=[];for(let m of c){p.push(`${d(m)} (${o.get(m)??0}):`);for(let b of s.get(m))"separator"in b?p.push(" --"):b.line?p.push(` ${b.line}${b.context?"-":":"} ${Po(b.content,t.astGrep)}`):p.push(` ${Po(b.content,t.astGrep)}`)}let y=c.length>1&&p.length>Xf?ed(c.map(m=>`${d(m)} (${o.get(m)??0})`)):[],h=[`${a}m ${c.length}f${f?` in ${f}/`:""}:`,...y,"",...p];if(h.length>yr){let m=h.length-yr;return[...h.slice(0,yr),`\u2026 ${m} more lines omitted`]}return h}M("smart-grep",jo);M("smart-grep-ast",e=>jo(e,{astGrep:!0}));var Ho=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,sd=/^[|\\/* ._-]*$/,od=/^ {4}/,id=/^ {4}(?:Co-[Aa]uthored-[Bb]y|Signed-off-by|Reviewed-by|Acked-by|Tested-by|Reported-by|Fixes|Closes):/,ad=2,ld=1,zo=/^commit ([0-9a-f]{40})(\s.*)?$/,ud=/^Author:\s+(.+)$/,cd=/^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})$/,fd=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dd=12,pd=5;function md(e){let t=[];for(let l=0;l<e.length;l+=1){let u=zo.exec(e[l]);if(!u)continue;let c=l+1,f=null;e[c]?.startsWith("Merge: ")&&(f=e[c].slice(7),c+=1);let d=ud.exec(e[c]??""),p=cd.exec(e[c+1]??"");if(!d||!p)return null;let y=fd.indexOf(p[1])+1;if(y===0)return null;t.push({at:l,hash:u[1].slice(0,dd),refs:u[2]??"",merge:f,author:d[1],date:`${p[4]}-${String(y).padStart(2,"0")}-${p[2].padStart(2,"0")} ${p[3]}`,zone:p[5],end:c+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,s=n.length>1&&n.length<=pd&&t.length>n.length,o=t.length>1&&t.every(l=>l.zone===t[0].zone)?t[0].zone:null,i=r?[`author: ${r}`]:s?[`authors: ${n.map((l,u)=>`[${u+1}] ${l}`).join("; ")}`]:[];o&&i.push(`dates: UTC${o}`);let a=0;for(let l of t){i.push(...e.slice(a,l.at));let u=r?"":s?` [${n.indexOf(l.author)+1}]`:` ${l.author}`;i.push(`${l.hash} ${l.date}${o?"":` ${l.zone}`}${u}${l.merge?` merge ${l.merge}`:""}${l.refs}`),a=l.end}return i.push(...e.slice(a)),i}function gd(e){if(!e.some(r=>Ho.test(r)))return e;let t=e.some(r=>zo.test(r))&&!e.some(r=>/^[|\\/*]/.test(r)),n=hd(e,t?ld:ad);return md(n)??n}function hd(e,t){let n=[],r=0,s=0,o=0,i="",a=!1,l=!1,u=()=>{s>0&&n.push(`${i} \u2026 ${s} ${s===1?"line":"lines"} folded \u2026`),s=0};for(let c of e){let f=c.slice(0,o),d=sd.test(f),p=d?c.slice(o):c,y=od.test(p),h=a&&y?null:Ho.exec(c);if(h){u(),r=0,o=h[1]?.length??0,a=!0,l=!1,n.push(c);continue}if(/^diff --(?:git|cc|combined) /.test(p)&&(l=!0),y&&!l&&!(o>0&&p.trim().length===0)){if(id.test(p)){n.push(c);continue}r+=1,r<=t?n.push(c):(s+=1,i=d?f:"");continue}u(),n.push(c)}return u(),n}M("smart-log",gd);var yd=/^[\s=]+$/,kd=/^\s*=+\s+(.*?)\s+=+\s*$/,bd=512;M("strip-banners",e=>{let t=[];for(let n of e){if(yd.test(n))continue;let r=n.length<=bd?kd.exec(n):null;t.push(r?r[1]:n)}return t});function _d(e){let t=[],n=0,r=0;for(;r<e.length;){let s=e[r].trimEnd();if(s===""){n+=1,r+=1,n<=1&&t.push("");continue}n=0;let o=1;for(;r+o<e.length&&e[r+o].trimEnd()===s;)o+=1;if(o>=3)t.push(s),t.push(` \u2026 (repeated ${o}x)`);else for(let i=0;i<o;i++)t.push(s);r+=o}for(;t.length>0&&t[t.length-1]==="";)t.pop();return t}M("squeeze-output",_d);function xd(e){return e==="compact"?.6:e==="minimal"?.3:1}var wd=20;function Sd(e){let[t,n,r,s]=e.slice(-4);if(!t||!n||!r||!s||!/^\s*Test Files\s+([1-9]\d*) passed \(\1\)$/.test(t)||!/^\s*Tests\s+([1-9]\d*) passed \(\1\)$/.test(n)||!/^\s*Start at\s+\d{2}:\d{2}:\d{2}$/.test(r))return e;let o=/^(\s*Duration\s+\d+(?:\.\d+)?(?:ms|s)) \(transform [^\n]+\)$/.exec(s)?.[1];return o?[...e.slice(0,-4).filter((a,l)=>l>2||!/^ RUN v\d+\.\d+\.\d+(?:[\w.+-]*) .+$/.test(a)),t,n,o]:e}var Uo=new WeakMap;function vd(e){let t=Uo.get(e);if(t)return t;let n=e.strip_lines_matching.map(o=>new RegExp(o)),r=(e.drop_lines_matching??[]).map(o=>new RegExp(o)),s={def:e,stripRegexes:n,dropRegexes:r};return Uo.set(e,s),s}var Ed=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("|")),Td=new Set(["grep","ast-grep"]);function kr(e){return!!e&&Ed.test(e)}function br(e,t,n){if(e==="smart-ls")return pr(t,n);let r=Eo(e);return r?r(t):t}function yn(e,t,n={}){return _r(e,t,n).text}function _r(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 s=vd(t),o=!t.preserve_exact&&e.includes(`\r
24
24
  `)?e.replace(/\r\n/g,`
25
25
  `):e;t.strip_ansi&&(o=ce(o));let i=o.endsWith(`
26
26
  `),a=(i?o.slice(0,-1):o).split(`
27
- `);s.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>Q.test(d)||!s.stripRegexes.some(p=>p.test(d))):ur(a,s.stripRegexes)),s.dropRegexes.length&&(a=ur(a,s.dropRegexes)),r!=="normal"&&!t.preserve_exact&&(a=gn(a),a=wo(a)),r==="minimal"&&!t.preserve_exact&&(a=bo(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=bd(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"&&mn(o))&&(a=Ft(a,l)),t.transform&&(t.transform==="smart-read"?a=Ft(a,l,t.slug==="read-tool"):a=kr(t.transform,a,n.cmd));let u=t.slug==="read-tool";if(!u){let d=cr(a);d.some(Boolean)&&(a=a.filter((p,h)=>!d[h]))}t.mask_abs_paths&&(a=co(a)),t.fold_passing&&(a=uo(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=ao(a,t.truncate_lines_at));let c=null;if(t.max_lines){let d=t.scale_with_level?yd(n.verbosity):1,p=Math.min(t.max_lines,Math.max(kd,Math.round(t.max_lines*d))),h=u?cr(a):null,y=h?h.filter(m=>!m).length:a.length;if(y>p){let m=p;if(h){let w=0;for(m=0;m<a.length&&w<p;)h[m]||(w+=1),m+=1}let b=y-p;if(t.keep_failures){let w=a.slice(m),A=w.filter(L=>!Q.test(L)),I=w.reduce((L,z,F)=>L+(!Q.test(z)&&!h?.[m+F]?1:0),0);c=A.length>0?A.join(`
28
- `):null,a=[...a.slice(0,m),...I>0?[dt(I)]:[],...w.filter(L=>Q.test(L))]}else if(u)c=a.slice(m).join(`
29
- `),a=[...a.slice(0,m),dt(b)];else{let{kept:w,dropped:A}=lo(a,p);c=A.length>0?A.join(`
27
+ `);s.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>Q.test(d)||!s.stripRegexes.some(p=>p.test(d))):cr(a,s.stripRegexes)),s.dropRegexes.length&&(a=cr(a,s.dropRegexes)),r!=="normal"&&!t.preserve_exact&&(a=hn(a),a=So(a)),r==="minimal"&&!t.preserve_exact&&(a=_o(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=Sd(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"&&gn(o))&&(a=Ft(a,l)),t.transform&&(t.transform==="smart-read"?a=Ft(a,l,t.slug==="read-tool"):a=br(t.transform,a,n.cmd));let u=t.slug==="read-tool";if(!u){let d=fr(a);d.some(Boolean)&&(a=a.filter((p,y)=>!d[y]))}t.mask_abs_paths&&(a=fo(a)),t.fold_passing&&(a=co(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=lo(a,t.truncate_lines_at));let c=null;if(t.max_lines){let d=t.scale_with_level?xd(n.verbosity):1,p=Math.min(t.max_lines,Math.max(wd,Math.round(t.max_lines*d))),y=u?fr(a):null,h=y?y.filter(m=>!m).length:a.length;if(h>p){let m=p;if(y){let w=0;for(m=0;m<a.length&&w<p;)y[m]||(w+=1),m+=1}let b=h-p;if(t.keep_failures){let w=a.slice(m),A=w.filter(L=>!Q.test(L)),I=w.reduce((L,z,F)=>L+(!Q.test(z)&&!y?.[m+F]?1:0),0);c=A.length>0?A.join(`
28
+ `):null,a=[...a.slice(0,m),...I>0?[pt(I)]:[],...w.filter(L=>Q.test(L))]}else if(u)c=a.slice(m).join(`
29
+ `),a=[...a.slice(0,m),pt(b)];else{let{kept:w,dropped:A}=uo(a,p);c=A.length>0?A.join(`
30
30
  `):null,a=w}}}let f=a.join(`
31
31
  `);return i&&f.length>0&&(f+=`
32
- `),f.trim().length===0&&t.on_empty&&(e.length===0||e.trim().length>0)&&(n.exitCode==null||n.exitCode===0||n.exitCode===1&&wd.has(t.slug))&&!yr(n.cmd)&&(f=t.on_empty),{text:f,droppedTail:c}}import Sd from"node:os";import{join as Uo}from"node:path";function R(){return process.env.TOKMIZER_HOME||Uo(Sd.homedir(),".tokmizer")}function jt(){return Uo(R(),"install-id")}var Wo="user/",yn=1,kn=null,Zo="",Jo=0,Ad=1e3;function bn(){return _n(R(),"filters")}function Vo(){return _n(R(),"filters-trust.json")}function Ko(e){return typeof e=="string"&&e.startsWith(Wo)}function Rd(e){return Td("sha256").update(e).digest("hex")}async function $d(){try{let e=JSON.parse(await Go(Vo(),"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 Cd(e,t){if(t===void 0)return{tests:[]};let n={message:`${e}: tests: each [[filters.${e}.tests]] needs input and expected strings`};if(!Array.isArray(t))return n;let r=[];for(let s of t){if(typeof s!="object"||s===null)return n;let{input:o,expected:i,name:a}=s;if(typeof o!="string"||typeof i!="string")return n;r.push({...typeof a=="string"&&a?{name:a}:{},input:o,expected:i})}return{tests:r}}function Od(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...s}=n,o=Cd(e,r);if("message"in o)return o;let i=Te.safeParse({...s,slug:e});if(!i.success){let l=i.error.issues.map(u=>`${u.path.join(".")||"rule"}: ${u.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:`${Wo}${i.data.slug}`,matchRegex:a},tests:o.tests}}function Id(e){return e===void 0||e===yn?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${yn}. Update tkr, or write the file for version ${yn}`:`schema_version must be the number ${yn}`}async function Nd(e){try{return(await vd(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function Pd(e={}){let t=e.requireTrust!==!1,n=bn(),r=new Map,s=new Map,o=[],i=await Nd(n);if(i.length===0)return{dir:n,filters:r,tests:s,issues:o};let a=t?await $d():null;for(let l of i){let u;try{u=await Go(_n(n,l),"utf8")}catch{o.push({file:l,message:"could not be read"});continue}if(a){let f=a.files[l];if(!f){o.push({file:l,message:`not trusted yet. Review it, then run: tkr filters trust ${l}`});continue}if(f!==Rd(u)){o.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let c=await Dd(u,l);for(let[f,d]of c.filters)r.set(f,d);for(let[f,d]of c.tests)s.set(f,d);o.push(...c.issues)}return{dir:n,filters:r,tests:s,issues:o}}async function Dd(e,t){let n=new Map,r=new Map,s=[],{parse:o}=await Promise.resolve().then(()=>(pn(),lr)),i;try{i=o(e)}catch(u){return s.push({file:t,message:`not valid TOML (${String(u.message).split(`
33
- `)[0]})`}),{filters:n,tests:r,issues:s}}let a=Id(i.schema_version);if(a)return s.push({file:t,message:a}),{filters:n,tests:r,issues:s};let l=i.filters;if(typeof l!="object"||l===null||Array.isArray(l))return s.push({file:t,message:"no [filters.<name>] table found"}),{filters:n,tests:r,issues:s};for(let[u,c]of Object.entries(l)){let f=Od(u,c);if("message"in f){s.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:s}}function Ld(){let e=[];for(let t of[Vo(),bn()])try{let n=Bo(t);e.push(`${n.mtimeMs}:${n.size}`)}catch{e.push("-")}try{for(let t of Ed(bn()).filter(n=>n.endsWith(".toml")).sort()){let n=Bo(_n(bn(),t));e.push(`${t}:${n.mtimeMs}:${n.size}`)}}catch{}return e.join("|")}function Md(){let e=Date.now();if(!kn||e-Jo>=Ad){Jo=e;let t=Ld();(!kn||t!==Zo)&&(Zo=t,kn=Pd())}return kn}async function Fd(e){let{filters:t}=await Md();return t.size===0?null:ft(e,t.values(),null,t)}function qo(e){return async(t,n)=>await Fd(t)??e(t,n)}var jd=[/\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 Yo(e){if(!e)return!1;for(let t of ce(e).split(`
34
- `))if(!/^\s*[✓✔√]\s/.test(t)&&jd.some(n=>n.test(t)))return!0;return!1}var Hd=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),zd=/^[A-Za-z_][A-Za-z0-9_]*=/,_r=/^([a-z]+)-tool(?::\s|$)/,Ud=new Set(["-C","-c","--git-dir","--work-tree","--namespace","--exec-path","--super-prefix","--config-env"]),Bd=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"]);function Zd(e){let t=0;for(;t<e.length;){let n=e[t];if(Ud.has(n))t+=2;else if(Bd.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 Ye(e){let t=e.trim(),n=t.split(/\s+/),r=0;for(;r<n.length;){let l=n[r];if(zd.test(l)){r++;continue}if(Hd.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 s=n[r],o=s.slice(Math.max(s.lastIndexOf("/"),s.lastIndexOf("\\"))+1)||s;o=o.replace(/\.(?:exe|cmd|bat|ps1)$/i,"")||o;let i=n.slice(r+1);o.toLowerCase()==="py"&&(o="python",i.length&&/^-\d(?:\.\d+)?(?:-\d+)?$/.test(i[0])&&(i=i.slice(1)));let a=o==="git"?Zd(i):i;return a.length?`${o} ${a.join(" ")}`:o}var Jd=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);function Xo(e,t){let n=!1,r=!1,s=0,o=[];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===";"?(o.push(e.slice(s,i)),s=i+1):a==="|"&&e[i+1]==="|"?(o.push(e.slice(s,i)),i++,s=i+1):a==="|"?t||(o.push(e.slice(s,i)),s=i+1):a==="&"&&e[i+1]==="&"&&(o.push(e.slice(s,i)),i++,s=i+1))}return o.push(e.slice(s)),o}function Gd(e){let t=Xo(e,!1);for(let n=t.length-1;n>=0;n--){let r=t[n].trim();if(r)return r}return e.trim()}function xr(e){let t=Xo(e,!0).map(n=>n.trim()).filter(Boolean);if(t.length===0)return null;for(let n of t.slice(0,-1)){let r=Ye(n).split(/\s+/)[0]??"";if(!Jd.has(r))return null}return Gd(t[t.length-1])}function Qo(e){let t=!1,n=!1,r=0,s=[];for(let o=0;o<e.length;o++){let i=e[o];if(i==="\\"&&!t){o++;continue}i==="'"&&!n?t=!t:i==='"'&&!t?n=!n:!t&&!n&&(i==="|"||i===";"?(s.push(e.slice(r,o)),i==="|"&&e[o+1]==="|"&&o++,r=o+1):i==="&"&&e[o+1]==="&"&&(s.push(e.slice(r,o)),o++,r=o+1))}s.push(e.slice(r));for(let o=s.length-1;o>=0;o--){let i=s[o].trim();if(i)return i}return e.trim()}var Wd=/^(?: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 wr(e){let t=Wd.exec(e);return t?Ye(e.slice(t[0].length)):null}function ei(e){let t=_r.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=xr(n),s=r?Ye(r):null,i=[s?wr(s):null,s,e].filter(a=>!!a);return[...new Set(i)]}var ti=`
32
+ `),f.trim().length===0&&t.on_empty&&(e.length===0||e.trim().length>0)&&(n.exitCode==null||n.exitCode===0||n.exitCode===1&&Td.has(t.slug))&&!kr(n.cmd)&&(f=t.on_empty),{text:f,droppedTail:c}}import Ad from"node:os";import{join as Bo}from"node:path";function R(){return process.env.TOKMIZER_HOME||Bo(Ad.homedir(),".tokmizer")}function jt(){return Bo(R(),"install-id")}var Vo="user/",kn=1,bn=null,Jo="",Go=0,Od=1e3;function _n(){return xn(R(),"filters")}function Ko(){return xn(R(),"filters-trust.json")}function qo(e){return typeof e=="string"&&e.startsWith(Vo)}function Id(e){return Cd("sha256").update(e).digest("hex")}async function Nd(){try{let e=JSON.parse(await Wo(Ko(),"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 Pd(e,t){if(t===void 0)return{tests:[]};let n={message:`${e}: tests: each [[filters.${e}.tests]] needs input and expected strings`};if(!Array.isArray(t))return n;let r=[];for(let s of t){if(typeof s!="object"||s===null)return n;let{input:o,expected:i,name:a}=s;if(typeof o!="string"||typeof i!="string")return n;r.push({...typeof a=="string"&&a?{name:a}:{},input:o,expected:i})}return{tests:r}}function Dd(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...s}=n,o=Pd(e,r);if("message"in o)return o;let i=$e.safeParse({...s,slug:e});if(!i.success){let l=i.error.issues.map(u=>`${u.path.join(".")||"rule"}: ${u.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:`${Vo}${i.data.slug}`,matchRegex:a},tests:o.tests}}function Ld(e){return e===void 0||e===kn?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${kn}. Update tkr, or write the file for version ${kn}`:`schema_version must be the number ${kn}`}async function Md(e){try{return(await Rd(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function Fd(e={}){let t=e.requireTrust!==!1,n=_n(),r=new Map,s=new Map,o=[],i=await Md(n);if(i.length===0)return{dir:n,filters:r,tests:s,issues:o};let a=t?await Nd():null;for(let l of i){let u;try{u=await Wo(xn(n,l),"utf8")}catch{o.push({file:l,message:"could not be read"});continue}if(a){let f=a.files[l];if(!f){o.push({file:l,message:`not trusted yet. Review it, then run: tkr filters trust ${l}`});continue}if(f!==Id(u)){o.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let c=await jd(u,l);for(let[f,d]of c.filters)r.set(f,d);for(let[f,d]of c.tests)s.set(f,d);o.push(...c.issues)}return{dir:n,filters:r,tests:s,issues:o}}async function jd(e,t){let n=new Map,r=new Map,s=[],{parse:o}=await Promise.resolve().then(()=>(mn(),ur)),i;try{i=o(e)}catch(u){return s.push({file:t,message:`not valid TOML (${String(u.message).split(`
33
+ `)[0]})`}),{filters:n,tests:r,issues:s}}let a=Ld(i.schema_version);if(a)return s.push({file:t,message:a}),{filters:n,tests:r,issues:s};let l=i.filters;if(typeof l!="object"||l===null||Array.isArray(l))return s.push({file:t,message:"no [filters.<name>] table found"}),{filters:n,tests:r,issues:s};for(let[u,c]of Object.entries(l)){let f=Dd(u,c);if("message"in f){s.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:s}}function Hd(){let e=[];for(let t of[Ko(),_n()])try{let n=Zo(t);e.push(`${n.mtimeMs}:${n.size}`)}catch{e.push("-")}try{for(let t of $d(_n()).filter(n=>n.endsWith(".toml")).sort()){let n=Zo(xn(_n(),t));e.push(`${t}:${n.mtimeMs}:${n.size}`)}}catch{}return e.join("|")}function zd(){let e=Date.now();if(!bn||e-Go>=Od){Go=e;let t=Hd();(!bn||t!==Jo)&&(Jo=t,bn=Fd())}return bn}async function Ud(e){let{filters:t}=await zd();return t.size===0?null:dt(e,t.values(),null,t)}function Yo(e){return async(t,n)=>await Ud(t)??e(t,n)}var Bd=[/\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 Xo(e){if(!e)return!1;for(let t of ce(e).split(`
34
+ `))if(!/^\s*[✓✔√]\s/.test(t)&&Bd.some(n=>n.test(t)))return!0;return!1}var Zd=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),Jd=/^[A-Za-z_][A-Za-z0-9_]*=/,xr=/^([a-z]+)-tool(?::\s|$)/,Gd=new Set(["-C","-c","--git-dir","--work-tree","--namespace","--exec-path","--super-prefix","--config-env"]),Wd=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"]);function Vd(e){let t=0;for(;t<e.length;){let n=e[t];if(Gd.has(n))t+=2;else if(Wd.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 Xe(e){let t=e.trim(),n=t.split(/\s+/),r=0;for(;r<n.length;){let l=n[r];if(Jd.test(l)){r++;continue}if(Zd.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 s=n[r],o=s.slice(Math.max(s.lastIndexOf("/"),s.lastIndexOf("\\"))+1)||s;o=o.replace(/\.(?:exe|cmd|bat|ps1)$/i,"")||o;let i=n.slice(r+1);o.toLowerCase()==="py"&&(o="python",i.length&&/^-\d(?:\.\d+)?(?:-\d+)?$/.test(i[0])&&(i=i.slice(1)));let a=o==="git"?Vd(i):i;return a.length?`${o} ${a.join(" ")}`:o}var Kd=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);function Qo(e,t){let n=!1,r=!1,s=0,o=[];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===";"?(o.push(e.slice(s,i)),s=i+1):a==="|"&&e[i+1]==="|"?(o.push(e.slice(s,i)),i++,s=i+1):a==="|"?t||(o.push(e.slice(s,i)),s=i+1):a==="&"&&e[i+1]==="&"&&(o.push(e.slice(s,i)),i++,s=i+1))}return o.push(e.slice(s)),o}function qd(e){let t=Qo(e,!1);for(let n=t.length-1;n>=0;n--){let r=t[n].trim();if(r)return r}return e.trim()}function wr(e){let t=Qo(e,!0).map(n=>n.trim()).filter(Boolean);if(t.length===0)return null;for(let n of t.slice(0,-1)){let r=Xe(n).split(/\s+/)[0]??"";if(!Kd.has(r))return null}return qd(t[t.length-1])}function ei(e){let t=!1,n=!1,r=0,s=[];for(let o=0;o<e.length;o++){let i=e[o];if(i==="\\"&&!t){o++;continue}i==="'"&&!n?t=!t:i==='"'&&!t?n=!n:!t&&!n&&(i==="|"||i===";"?(s.push(e.slice(r,o)),i==="|"&&e[o+1]==="|"&&o++,r=o+1):i==="&"&&e[o+1]==="&"&&(s.push(e.slice(r,o)),o++,r=o+1))}s.push(e.slice(r));for(let o=s.length-1;o>=0;o--){let i=s[o].trim();if(i)return i}return e.trim()}var Yd=/^(?: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 Sr(e){let t=Yd.exec(e);return t?Xe(e.slice(t[0].length)):null}function ti(e){let t=xr.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=wr(n),s=r?Xe(r):null,i=[s?Sr(s):null,s,e].filter(a=>!!a);return[...new Set(i)]}var ni=`
35
35
  [YOLO: omitted]
36
- `;function Sr(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(ti,"utf8"),r=Math.floor(n/2);for(;(t[r]&192)===128;)r-=1;let s=t.length-(n-r);for(;(t[s]&192)===128;)s+=1;return t.subarray(0,r).toString("utf8")+ti+t.subarray(s).toString("utf8")}var Vd=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,Kd=/^… \([1-9]\d* more lines omitted\)$/,vr=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;function qd(e,t){if(!t)return e.split(`
36
+ `;function vr(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(ni,"utf8"),r=Math.floor(n/2);for(;(t[r]&192)===128;)r-=1;let s=t.length-(n-r);for(;(t[s]&192)===128;)s+=1;return t.subarray(0,r).toString("utf8")+ni+t.subarray(s).toString("utf8")}var Xd=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,Qd=/^… \([1-9]\d* more lines omitted\)$/,Er=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;function ep(e,t){if(!t)return e.split(`
37
37
  `).map(o=>o.replace(/^[ \t]+|[ \t]+(?=\r?$)/g,"")).join(`
38
38
  `);let n="",r=!1,s=!1;for(let o of e)r?(n+=o,s?s=!1:o==="\\"?s=!0:o==='"'&&(r=!1)):o==='"'?(r=!0,n+=o):o!==" "&&o!==" "&&o!=="\r"&&o!==`
39
39
  `&&(n+=o);return n+(e.endsWith(`
40
40
  `)?`
41
- `:"")}function Yd(e,t){if(/@(?:p)?\d|\r/.test(e))return e;let n=e.endsWith(`
41
+ `:"")}function tp(e,t){if(/@(?:p)?\d|\r/.test(e))return e;let n=e.endsWith(`
42
42
  `)?`
43
43
  `:"",r=(n?e.slice(0,-1):e).split(`
44
- `),s=r.findIndex(m=>Vd.test(m));if(s>=0&&r.slice(0,s).some(m=>m!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(m)))return e;let o=s>=0?[...r[s].matchAll(/\S+/g)].map(m=>m.index):[],i=[];for(let m=s+1;m<r.length;m+=1){let b=r[m];if(Kd.test(b))continue;if(/…|\.\.\./.test(b))return e;let w;if(s>=0){if(/[^\x20-\x7e]/.test(b))return e;let A=o.map((I,L)=>b.slice(I,o[L+1]));if(A.slice(0,-1).some(I=>I[0]===" "||!I.endsWith(" "))||(w=A.map(I=>I.replace(/ +$/,"")),!/^#\d+$/.test(w[0])||!/^\S+$/.test(w[2])||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(w[3])||!/^\d+(?:s|m|h|d|w|mo|y)$/.test(w[4])))return e}else if(w=b.split(" "),w.length!==5||!/^\d+$/.test(w[0])||!w[1]||!w[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(w[3])||!vr.test(w[4])||!Number.isFinite(Date.parse(w[4])))return e;if(w.some(A=>/[\u0000-\u001f\u007f]/.test(A)))return e;i.push({index:m,cells:w})}if(i.length===0)return e;s>=0&&(r[s]="ID TITLE BRANCH STATE CREATED");for(let m of i)r[m.index]=m.cells.join(" ");let a=r.join(`
45
- `)+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 u=new Map,c=[];for(let[m,b]of l){if(m.length<40||b<3||m.trim().split(/\s+/).length<8)continue;let w=`@${u.size+1}`,A=JSON.stringify(m).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),I=`TITLE ${w} = ${A}`;b*(Buffer.byteLength(m)-Buffer.byteLength(w))<=Buffer.byteLength(I)+1||(u.set(m,w),c.push(I))}let f=new Map;for(let{cells:m}of i){if(u.has(m[1]))continue;let b=/^((?:\S+\s+){4})\S/.exec(m[1])?.[1];b&&b.length>=24&&f.set(b,(f.get(b)??0)+1)}let d=new Map;for(let[m,b]of f){if(b<3)continue;let w=`@p${d.size+1}`,A=`TITLE prefix ${w} = ${JSON.stringify(m).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;b*(Buffer.byteLength(m)-Buffer.byteLength(w)-1)<=Buffer.byteLength(A)+1||(d.set(m,w),c.push(A))}let p=i[0].cells[4].slice(10),h=i.length>=3&&vr.test(i[0].cells[4])&&i.every(({cells:m})=>vr.test(m[4])&&m[4].slice(10)===p)&&i.length*p.length>`CREATED suffix = ${JSON.stringify(p)}`.length+1;if(h&&c.push(`CREATED suffix = ${JSON.stringify(p)}`),c.length===0)return a;for(let{index:m,cells:b}of i){let w=u.get(b[1]),A=/^((?:\S+\s+){4})\S/.exec(b[1])?.[1],I=A?d.get(A):void 0;r[m]=b.map((L,z)=>z===1?w??(I?`${I}:${L.slice(A.length)}`:L):z===4&&h?L.slice(0,10):L).join(" ")}let y=[...r,"",...c].join(`
46
- `)+n;return Buffer.byteLength(y)<Buffer.byteLength(a)?y:a}var ni={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},Xd={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},Qd=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,ep=/^On branch (\S+)$/,tp=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;function np(e){let t=ep.exec(e[0]??"");if(!t)return e;let n=tp.exec(e[1]??"");if(!n)return[`* ${t[1]}`,...e.slice(1)];let r=n[1]??n[3],s=n[2]?` [${n[2]} ${n[4]}]`:"";return[`* ${t[1]}...${r}${s}`,...e.slice(2)]}function ri(e){let t=e.endsWith(`
44
+ `),s=r.findIndex(m=>Xd.test(m));if(s>=0&&r.slice(0,s).some(m=>m!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(m)))return e;let o=s>=0?[...r[s].matchAll(/\S+/g)].map(m=>m.index):[],i=[];for(let m=s+1;m<r.length;m+=1){let b=r[m];if(Qd.test(b))continue;if(/…|\.\.\./.test(b))return e;let w;if(s>=0){if(/[^\x20-\x7e]/.test(b))return e;let A=o.map((I,L)=>b.slice(I,o[L+1]));if(A.slice(0,-1).some(I=>I[0]===" "||!I.endsWith(" "))||(w=A.map(I=>I.replace(/ +$/,"")),!/^#\d+$/.test(w[0])||!/^\S+$/.test(w[2])||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(w[3])||!/^\d+(?:s|m|h|d|w|mo|y)$/.test(w[4])))return e}else if(w=b.split(" "),w.length!==5||!/^\d+$/.test(w[0])||!w[1]||!w[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(w[3])||!Er.test(w[4])||!Number.isFinite(Date.parse(w[4])))return e;if(w.some(A=>/[\u0000-\u001f\u007f]/.test(A)))return e;i.push({index:m,cells:w})}if(i.length===0)return e;s>=0&&(r[s]="ID TITLE BRANCH STATE CREATED");for(let m of i)r[m.index]=m.cells.join(" ");let a=r.join(`
45
+ `)+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 u=new Map,c=[];for(let[m,b]of l){if(m.length<40||b<3||m.trim().split(/\s+/).length<8)continue;let w=`@${u.size+1}`,A=JSON.stringify(m).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),I=`TITLE ${w} = ${A}`;b*(Buffer.byteLength(m)-Buffer.byteLength(w))<=Buffer.byteLength(I)+1||(u.set(m,w),c.push(I))}let f=new Map;for(let{cells:m}of i){if(u.has(m[1]))continue;let b=/^((?:\S+\s+){4})\S/.exec(m[1])?.[1];b&&b.length>=24&&f.set(b,(f.get(b)??0)+1)}let d=new Map;for(let[m,b]of f){if(b<3)continue;let w=`@p${d.size+1}`,A=`TITLE prefix ${w} = ${JSON.stringify(m).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;b*(Buffer.byteLength(m)-Buffer.byteLength(w)-1)<=Buffer.byteLength(A)+1||(d.set(m,w),c.push(A))}let p=i[0].cells[4].slice(10),y=i.length>=3&&Er.test(i[0].cells[4])&&i.every(({cells:m})=>Er.test(m[4])&&m[4].slice(10)===p)&&i.length*p.length>`CREATED suffix = ${JSON.stringify(p)}`.length+1;if(y&&c.push(`CREATED suffix = ${JSON.stringify(p)}`),c.length===0)return a;for(let{index:m,cells:b}of i){let w=u.get(b[1]),A=/^((?:\S+\s+){4})\S/.exec(b[1])?.[1],I=A?d.get(A):void 0;r[m]=b.map((L,z)=>z===1?w??(I?`${I}:${L.slice(A.length)}`:L):z===4&&y?L.slice(0,10):L).join(" ")}let h=[...r,"",...c].join(`
46
+ `)+n;return Buffer.byteLength(h)<Buffer.byteLength(a)?h:a}var ri={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},np={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},rp=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,sp=/^On branch (\S+)$/,op=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;function ip(e){let t=sp.exec(e[0]??"");if(!t)return e;let n=op.exec(e[1]??"");if(!n)return[`* ${t[1]}`,...e.slice(1)];let r=n[1]??n[3],s=n[2]?` [${n[2]} ${n[4]}]`:"";return[`* ${t[1]}...${r}${s}`,...e.slice(2)]}function si(e){let t=e.endsWith(`
47
47
  `)?`
48
- `:"",n=np((t?e.slice(0,-1):e).split(`
49
- `)),r=null,s=[];for(let o of n){if(Object.hasOwn(ni,o)){r=ni[o];continue}if(!o.startsWith(" ")){r=null,s.push(o);continue}if(r==="untracked"){s.push(`?? ${o.slice(1)}`);continue}let i=r?Qd.exec(o):null;if(!i)return e;let a=Xd[i[1]];s.push(r==="staged"?`${a} ${i[2]}`:` ${a} ${i[2]}`)}return s.join(`
50
- `)+t}var si=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,rp=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;function sp(e){let t=e.split(`
51
- `);for(let n=0;n<t.length;n+=1){if(!rp.test(t[n]))continue;let r=n;for(;r>0&&si.test(t[r-1]);)r-=1;for(let s=r;s<n;s+=1)t[s]=t[s].replace(si," $1 | $2")}return t.join(`
52
- `)}var op=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,oi=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,ii=/^… \(\d+ more lines omitted\)$/;function ip(e,t){let n=[];for(let r=0;r<t.length;r+=1){let s=t[r];if(s>0&&e.length>s&&e[s-1]!==" ")return null;let o=e.slice(s,t[r+1]??e.length).trim();if(o.includes(" "))return null;n.push(o)}return n}function ap(e){let t=e.endsWith(`
48
+ `:"",n=ip((t?e.slice(0,-1):e).split(`
49
+ `)),r=null,s=[];for(let o of n){if(Object.hasOwn(ri,o)){r=ri[o];continue}if(!o.startsWith(" ")){r=null,s.push(o);continue}if(r==="untracked"){s.push(`?? ${o.slice(1)}`);continue}let i=r?rp.exec(o):null;if(!i)return e;let a=np[i[1]];s.push(r==="staged"?`${a} ${i[2]}`:` ${a} ${i[2]}`)}return s.join(`
50
+ `)+t}var oi=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,ap=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;function lp(e){let t=e.split(`
51
+ `);for(let n=0;n<t.length;n+=1){if(!ap.test(t[n]))continue;let r=n;for(;r>0&&oi.test(t[r-1]);)r-=1;for(let s=r;s<n;s+=1)t[s]=t[s].replace(oi," $1 | $2")}return t.join(`
52
+ `)}var up=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,ii=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,ai=/^… \(\d+ more lines omitted\)$/;function cp(e,t){let n=[];for(let r=0;r<t.length;r+=1){let s=t[r];if(s>0&&e.length>s&&e[s-1]!==" ")return null;let o=e.slice(s,t[r+1]??e.length).trim();if(o.includes(" "))return null;n.push(o)}return n}function fp(e){let t=e.endsWith(`
53
53
  `)?`
54
54
  `:"",n=(t?e.slice(0,-1):e).split(`
55
- `),r=[],s=[];for(let u of n)u.startsWith("WARNING:")?r.includes(u)||r.push(u):s.push(u);let o=s.findIndex(u=>oi.test(u));if(o<0)return[...r,...s].join(`
56
- `)+t;let i=s[o],a=[...i.matchAll(/\S+/g)].map(u=>u.index),l=[...r,...s.slice(0,o),i.split(/ +/).join(" ")];for(let u of s.slice(o+1)){if(ii.test(u)){l.push(u);continue}let c=u.startsWith(" ")||/[^\x20-\x7e]/.test(u)?null:ip(u,a);if(!c)return[...r,...s].join(`
55
+ `),r=[],s=[];for(let u of n)u.startsWith("WARNING:")?r.includes(u)||r.push(u):s.push(u);let o=s.findIndex(u=>ii.test(u));if(o<0)return[...r,...s].join(`
56
+ `)+t;let i=s[o],a=[...i.matchAll(/\S+/g)].map(u=>u.index),l=[...r,...s.slice(0,o),i.split(/ +/).join(" ")];for(let u of s.slice(o+1)){if(ai.test(u)){l.push(u);continue}let c=u.startsWith(" ")||/[^\x20-\x7e]/.test(u)?null:cp(u,a);if(!c)return[...r,...s].join(`
57
57
  `)+t;l.push(c.join(" "))}return l.join(`
58
- `)+t}function lp(e){let t=e.endsWith(`
58
+ `)+t}function dp(e){let t=e.endsWith(`
59
59
  `)?`
60
60
  `:"",n=(t?e.slice(0,-1):e).split(`
61
- `),r=n.findIndex(i=>oi.test(i.trimEnd()));if(r<0)return e;let s=n[r].trim().split(/ {2,}/).length;if(s<2)return e;let o=[...n.slice(0,r),n[r].trim().split(/ {2,}/).join(" ")];for(let i of n.slice(r+1)){if(ii.test(i)){o.push(i);continue}if(i.startsWith(" ")||i.includes(" ")||/[^\x20-\x7e]/.test(i))return e;let a=i.trimEnd().split(/ {2,}/);if(a.length===s-1){let l=a[0].indexOf(" ");if(l<0||a[0].indexOf(" ",l+1)>=0)return e;a=[a[0].slice(0,l),a[0].slice(l+1),...a.slice(1)]}if(a.length!==s)return e;o.push(a.join(" "))}return o.join(`
62
- `)+t}function Er(e,t,n){if(t!=="compact"&&t!=="minimal"){if(n!=="git-status")return e;let s=ri(e);return Buffer.byteLength(s)<Buffer.byteLength(e)?s:e}let r=e;if(/^[ \t\r\n]*[\[{]/.test(e)){try{JSON.parse(e)}catch{return e}r=qd(e,t==="minimal")}else n==="gh"?r=Yd(e,t==="minimal"):n==="git-status"?r=ri(e):n==="gcloud"?r=ap(e):n==="oc"?r=lp(e):n==="git-diff"?r=sp(e):n==="tofu-plan"&&(r=e.replace(op,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var up=/^(?:\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|$)/,cp=/^\[tkr: previous log line repeated \d+ additional times\]$/m;function ai(e){if(Buffer.byteLength(e)<2048||mn(e)||cp.test(e))return e;let t=e.split(`
63
- `),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(up.test(s))for(;o<t.length&&t[o]===s;)o+=1;let i=o-r,a=`[tkr: previous log line repeated ${i-1} additional times]`;if(i>=3&&Buffer.byteLength(a)+1<(i-1)*(Buffer.byteLength(s)+1))n.push(s,a);else for(let l=r;l<o;l+=1)n.push(s);r=o}return n.join(`
64
- `)}var fp=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,dp=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/;function li(e){return dp.test(e)}function ui(e){let t=e.endsWith(`
61
+ `),r=n.findIndex(i=>ii.test(i.trimEnd()));if(r<0)return e;let s=n[r].trim().split(/ {2,}/).length;if(s<2)return e;let o=[...n.slice(0,r),n[r].trim().split(/ {2,}/).join(" ")];for(let i of n.slice(r+1)){if(ai.test(i)){o.push(i);continue}if(i.startsWith(" ")||i.includes(" ")||/[^\x20-\x7e]/.test(i))return e;let a=i.trimEnd().split(/ {2,}/);if(a.length===s-1){let l=a[0].indexOf(" ");if(l<0||a[0].indexOf(" ",l+1)>=0)return e;a=[a[0].slice(0,l),a[0].slice(l+1),...a.slice(1)]}if(a.length!==s)return e;o.push(a.join(" "))}return o.join(`
62
+ `)+t}function Tr(e,t,n){if(t!=="compact"&&t!=="minimal"){if(n!=="git-status")return e;let s=si(e);return Buffer.byteLength(s)<Buffer.byteLength(e)?s:e}let r=e;if(/^[ \t\r\n]*[\[{]/.test(e)){try{JSON.parse(e)}catch{return e}r=ep(e,t==="minimal")}else n==="gh"?r=tp(e,t==="minimal"):n==="git-status"?r=si(e):n==="gcloud"?r=fp(e):n==="oc"?r=dp(e):n==="git-diff"?r=lp(e):n==="tofu-plan"&&(r=e.replace(up,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var pp=/^(?:\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|$)/,mp=/^\[tkr: previous log line repeated \d+ additional times\]$/m;function li(e){if(Buffer.byteLength(e)<2048||gn(e)||mp.test(e))return e;let t=e.split(`
63
+ `),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(pp.test(s))for(;o<t.length&&t[o]===s;)o+=1;let i=o-r,a=`[tkr: previous log line repeated ${i-1} additional times]`;if(i>=3&&Buffer.byteLength(a)+1<(i-1)*(Buffer.byteLength(s)+1))n.push(s,a);else for(let l=r;l<o;l+=1)n.push(s);r=o}return n.join(`
64
+ `)}var gp=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,hp=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/;function ui(e){return hp.test(e)}function ci(e){let t=e.endsWith(`
65
65
  `),n=(t?e.slice(0,-1):e).split(`
66
- `),r=0;for(let s of n)if(s.trim()!==""){if(!fp.test(s))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
67
- `:""}`}var pi=/^(?:(?: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|$)/,mi={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}},pp=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,mp=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,gp=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,hp=/^\s*(>)?\s*(\d+)\s*\|/,yp=/^\s*\|\s*[\^~]+\s*$/,kp=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;function pt(e,t){let n=null;for(let r of e){let s=t.exec(r);s&&(n=(n??0)+Number(s[1]))}return n}function xn(e){return pp.test(e)}function bp(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 wn(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 Tr(e,t=()=>!1){let n=[],r=null,s=-1,o=!1;for(let f of e){let d=f.trimEnd(),p=d.trim();if(!p||yp.test(d)||/^─+$/.test(p))continue;if(t(p)){o=!0,n.push({kind:"out",text:p.replace(/\s*─+$/,"")});continue}if(o){n.push({kind:"out",text:p});continue}let h=mp.exec(d)??gp.exec(d);if(h){s=-1;let m=bp(h[1]);xn(m)||(r=wn(n,`${m}:${h[2]}${h[3]?`:${h[3]}`:""}`,r));continue}let y=hp.exec(d);if(y){s=-1,n.push({kind:"code",text:p,num:Number(y[2]),pointed:y[1]===">"});continue}if(kp.test(p)){s=n.length,n.push({kind:"legend",text:p});continue}n.push(s>=0?{kind:"diff",text:d,segment:s}:{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,u=n.filter(f=>{if(f.kind!=="code")return!0;let d=!l&&(i?f.pointed===!0:f.num===a);return d&&(l=!0),d}),c=new Map;for(let f of u){if(f.kind!=="diff")continue;let d=f.text.length-f.text.trimStart().length;c.set(f.segment,Math.min(c.get(f.segment)??d,d))}for(let f of u)f.kind==="diff"&&(f.text=f.text.slice(c.get(f.segment)??0)),f.kind==="code"&&(f.kind="source",f.text=f.text.replace(/^>\s*/,""));return{body:u,loc:r}}function Z(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function _p(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=pt(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(Z(l,!0)):(/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)||/^\s*ERROR: Coverage for \S.*threshold/.test(l))&&n.push(Z(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:u}=Tr(i);for(let c of o)c.body=l,c.loc=u}o=[],i=[]};for(let l of e){let u=l.trim(),c=/^ ?FAIL\s+(\S.*?)\s*$/.exec(l);if(c){i.some(m=>m.trim())&&a();let d=c[1],p=/^(\S+) \[ \S+ \]$/.exec(d),h=d.split(" > "),y=p?{file:p[1],name:"(suite)",loc:null,body:[]}:h.length>1?{file:h[0],name:h.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};p||(s+=1),r.push(y),o.push(y);continue}let f=/^⎯+ (Unhandled [A-Za-z ]+?) ⎯+$/.exec(u);if(f){a();let d={file:null,name:f[1],loc:null,body:[]};r.push(d),o.push(d);continue}if(/^⎯{3,}/.test(u)||/^(?:Test Files|Tests|Start at|Duration|Errors)\s{2,}/.test(u)){a();continue}o.length&&i.push(l)}if(a(),s===0){let l=null;for(let u of e){let c=/^\s*[❯✓×✗]\s+(\S+)\s+\(\d+ tests?\b/.exec(u);if(c){l=c[1];continue}let f=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(u);f&&(r.push({file:l,name:f[1],loc:null,body:[]}),s+=1)}}return{failures:r,summary:n,reported:t,counted:s}}function xp(e){if(!e.some(c=>/^\s{2}● (?!Console$)/.test(c))||!e.some(c=>/^Tests:\s/.test(c)||/^(?:FAIL|PASS)\s+\S/.test(c)))return null;let t=pt(e,/^Tests:\s+(\d+) failed/),n=[];for(let c of e)/^Test Suites:\s/.test(c)?n.push(Z(c,!0)):(/^Tests:\s/.test(c)||/^Snapshots:\s/.test(c)&&/failed|obsolete/.test(c))&&n.push(Z(c));let r=[],s=new Set,o=0,i=null,a=null,l=[],u=()=>{if(a){let c=`${a.file}\0${a.name}`;if(!s.has(c)){s.add(c);let{body:f,loc:d}=Tr(l);a.body=f,a.loc=d,r.push(a),a.name!=="Test suite failed to run"&&(o+=1)}}a=null,l=[]};for(let c of e){let f=/^(?:FAIL|PASS)\s+(\S+)/.exec(c);if(f){u(),i=f[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(c)){u();continue}let d=/^\s{2}● (.+)$/.exec(c);if(d){u(),d[1].trim()!=="Console"&&(a={file:i,name:d[1].trim(),loc:null,body:[]});continue}a&&l.push(c)}return u(),{failures:r,summary:n,reported:t,counted:o}}function gi(e,t,n,r,s){let o=[],i=new Map,a=null;for(let l=t;l<n;l++){let u=e[l],c=/^\s{2}\d+\) (.+)$/.exec(u);if(c){let{name:f,used:d}=r(c[1],e.slice(l+1,Math.min(n,l+8)));l+=d,a=i.get(f)??null,a||(a=[],i.set(f,a),o.push({file:null,name:f,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(u)||a&&a.push(u)}for(let l of o){let{body:u,loc:c}=Tr(i.get(l.name),s);l.body=u,l.loc=c}return o}function wp(e){let t=e.findIndex(o=>/^\s*\d+ failing$/.test(o));if(t<0)return null;let n=Number(/(\d+)/.exec(e[t])[1]),r=e.filter(o=>/^\s*\d+ (?:passing|failing|pending)(?: \(\S+\))?$/.test(o)).map(o=>Z(o.replace(/ \(\S+\)\s*$/,""))),s=gi(e,t+1,e.length,(o,i)=>{let a=[o.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:o.trim(),used:0}});return{failures:s,summary:r,reported:n,counted:s.length}}function Sp(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,s=pt(e.slice(r),/^\s{2}(\d+) failed$/),o=e.slice(r).filter(a=>/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)).map(a=>Z(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=gi(e,t,r,a=>({name:a.replace(/\s*─+\s*$/,"").trim(),used:0}),a=>/^attachment #\d+:/.test(a));return{failures:i,summary:o,reported:s,counted:i.length}}function vp(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=pt(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(Z(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(Z(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(Z(i));let r=[],s=null,o=[];for(let i of e){let a=/^---- (.+?) stdout ----$/.exec(i);if(a){s={f:{file:null,name:a[1],loc:null,body:[]},lines:[]},o.push(s),r.push(s.f);continue}if(/^failures:$|^test result: |^running \d+ tests?$/.test(i)){s=null;continue}s&&s.lines.push(i)}for(let{f:i,lines:a}of o){let l=!1,u=!1;for(let c of a){let f=c.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)){u=!0;continue}if(u){let h=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);h&&!xn(h[1])&&(i.loc=wn(i.body,`${h[1]}:${h[2]}:${h[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 Ep(e){if(!e.some(a=>/^\s*--- FAIL: \S/.test(a)))return null;let t=new Map,n=[],r=new Map,s=[],o=null,i=null;for(let a of e){let l=/^=== (?:RUN|CONT|PAUSE|NAME)\s+(\S+)/.exec(a);if(l){o=l[1],i=null;continue}let u=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(u){i={file:null,name:u[1],loc:null,body:[]},r.set(i,[...t.get(u[1])??[]]),n.push(i),o=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){i=null,o=null;continue}let c=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(c&&/\t|\s{2,}|\[/.test(a)){s.push(Z(a.replace(/\s+[\d.]+m?s\s*$/,""),c[1]==="ok")),i=null,o=null;continue}if(!/^(?:FAIL|PASS)$/.test(a.trim())){if(/^exit status \d+$/.test(a)){s.push(Z(a,!0));continue}if(i)r.get(i).push(a);else if(o){let f=t.get(o)??[];f.push(a),t.set(o,f)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&s.push(Z(a))}}for(let a of n){for(let l of r.get(a)){let u=l.trim();if(!u||/^goroutine \d+ \[/.test(u))continue;let c=/^(\/\S+\.go|\S+\.go):(\d+)(?: \+0x[0-9a-f]+)?$/.exec(u);if(c){xn(c[1])||(a.loc=wn(a.body,`${c[1]}:${c[2]}`,a.loc));continue}/^(?:[\w.*/()-]+)\(.*\)$/.test(u)||/^created by /.test(u)||a.body.push({kind:"msg",text:u})}a.loc&&a.body.some(l=>l.kind==="msg"&&/^\S+\.go:\d+: /.test(l.text))&&(a.body.unshift({kind:"frame",text:a.loc}),a.loc=null)}return{failures:n,summary:s,reported:null,counted:n.length}}var ci=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;function fi(e,t){let n=[],r=null,s=!1,o=-1;for(let l of e){let u=l.trimEnd(),c=u.trim();if(/^-{3,} Captured .+ -{3,}$/.test(c)){s=!0;continue}if(s){c&&n.push({kind:"out",text:u});continue}if(/^E(?:\s|$)/.test(u)){u.slice(1).trim()&&n.push({kind:"msg",text:u});continue}let f=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(u);if(f){if(xn(f[1]))o>=0&&n.splice(o,1);else{let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=wn(n,`${f[1]}:${f[2]}${r===null?"":d}`,r)}o=-1;continue}/^>\s/.test(u)&&(o=n.length,n.push({kind:"source",text:c.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 di(e,t){return t.push(Z(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(pt([e],/(\d+) failed/)??0)+(pt([e],/(\d+) errors?\b/)??0)}function Tp(e){if(!e.some(y=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(y)||ci.test(y)))return null;let t=new Map,n=[],r=[],s="",o=null,i=null,a=null,l=/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/,u=/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/,c=/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/,f=-1;for(let y=e.length-1;y>=0&&f<0;y--){let m=/^={3,} (.+?) ={3,}$/.exec(e[y]);m&&!c.test(m[1])&&u.test(m[1])&&(f=y)}if(f<0){for(let y=e.length-1;y>=0;y--)if(e[y].trim()){l.test(e[y].trim())&&(f=y);break}}for(let[y,m]of e.entries()){let b=/^={3,} (.+?) ={3,}$/.exec(m);if(b){s=b[1],o=null,i=null,y===f&&(a=di(s,r));continue}if(y===f&&l.test(m.trim())){a=di(m.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(m)){r.push(Z(m.replace(/^!+ | !+$/g,"")));continue}let w=/^_{3,} (.+?) _{3,}$/.exec(m);if(w&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(w[1],o);continue}let A=ci.exec(m);if(A&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let I={kind:A[1],id:A[2],msg:A[3]??null,inline:[]};n.push(I),i=I;continue}if(o){o.push(m);continue}i&&/^E(?:\s|$)/.test(m)?i.inline.push(m):i&&m.trim()&&(i=null)}let d=new Set,p=[],h=new Set;for(let y of n){if(h.has(y.id))continue;h.add(y.id);let[m,...b]=y.id.split("::"),w=b.join("."),A=[w,`ERROR collecting ${y.id}`,`ERROR at setup of ${w}`,`ERROR at teardown of ${w}`].find(F=>F&&t.has(F)&&!d.has(F));A&&d.add(A);let{body:I,loc:L}=fi(A?t.get(A):y.inline,y.msg),z=b.length?b.join("::"):"(collection)";p.push({file:m,name:y.kind==="ERROR"?`${z} [error]`:z,loc:L,body:I,exact:!0})}for(let[y,m]of t){if(d.has(y))continue;let{body:b,loc:w}=fi(m,null);p.push({file:w?w.replace(/:\d+$/,""):null,name:y,loc:w,body:b,exact:!0})}if(p.length===0)for(let y of e){let m=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(y);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}}var Ap=12,Rp=[vp,Ep,Tp,xp,_p,wp,Sp];function $p(e,t){return e.length===0?!1:e.every(n=>{let r=n.text.trim();if(!/^[-+]/.test(r))return!1;let s=r.slice(1).trim().replace(/,$/,"");return s.length>0&&t.includes(s)})}function Cp(e,t,n){let r=mi[n],s=e.body.filter(p=>p.kind==="msg");if(!t)return[...e.body.filter(p=>p.kind==="source"),...s.slice(0,1)].map(p=>` ${p.text}`);let o=e.body.filter(p=>p.kind==="diff"),i=r.trimDiff&&$p(o,s.map(p=>p.text).join(`
68
- `)),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},u={msg:r.msg,legend:1/0,diff:r.diff,frame:e.exact?1/0:r.frames,code:0,source:1/0,out:r.out},c=r.changedOnly&&o.length>Ap,f=[];for(let p of e.body){if((p.kind==="diff"||p.kind==="legend")&&i)continue;if(p.kind==="diff"&&c&&!/^[-+]/.test(p.text.trim())){l.diff+=1;continue}let h=p.kind==="legend"?"diff":p.kind;if(a[h]>=u[h]&&p.kind!=="legend"){l[h]+=1;continue}p.kind!=="legend"&&(a[h]+=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(` ${dt(d)}`),f}function Op(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 Ip(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 Np(e,t){let n=mi[t],r=new Map,s=e.failures.length>n.bulk,o=e.failures.map(u=>{let c=u.body.find(p=>p.kind==="msg")?.text??"",f=(r.get(c)??0)+1;r.set(c,f);let d=c===""||!s||f<=n.repeats;return{f:u,full:d,body:Cp(u,d,t).join(`
69
- `)}}),i=[],a,l=null;for(let u=0;u<o.length;u++){let c=o[u];c.f.file!==a&&(a=c.f.file,a&&i.push(a));let f=u;if(!c.full&&c.f.loc===null)for(;f+1<o.length;){let p=o[f+1];if(p.full||p.f.loc!==null||p.f.file!==c.f.file||p.body!==c.body)break;f+=1}i.push(f>u?`\xD7 ${Op(o.slice(u,f+1).map(p=>p.f.name))}`:Ip(c.f)),u=f;let d=o[u+1];d&&d.f.file===c.f.file&&d.body===c.body||c.body&&(c.body===l&&t!=="normal"?i.push(" \u2191 same error"):(i.push(c.body),l=c.body))}for(let u of e.summary)(!u.minor||t==="normal")&&i.push(u.text);return`${i.join(`
66
+ `),r=0;for(let s of n)if(s.trim()!==""){if(!gp.test(s))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
67
+ `:""}`}var mi=/^(?:(?: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|$)/,gi={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}},yp=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,kp=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,bp=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,_p=/^\s*(>)?\s*(\d+)\s*\|/,xp=/^\s*\|\s*[\^~]+\s*$/,wp=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;function mt(e,t){let n=null;for(let r of e){let s=t.exec(r);s&&(n=(n??0)+Number(s[1]))}return n}function wn(e){return yp.test(e)}function Sp(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 Sn(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 Ar(e,t=()=>!1){let n=[],r=null,s=-1,o=!1;for(let f of e){let d=f.trimEnd(),p=d.trim();if(!p||xp.test(d)||/^─+$/.test(p))continue;if(t(p)){o=!0,n.push({kind:"out",text:p.replace(/\s*─+$/,"")});continue}if(o){n.push({kind:"out",text:p});continue}let y=kp.exec(d)??bp.exec(d);if(y){s=-1;let m=Sp(y[1]);wn(m)||(r=Sn(n,`${m}:${y[2]}${y[3]?`:${y[3]}`:""}`,r));continue}let h=_p.exec(d);if(h){s=-1,n.push({kind:"code",text:p,num:Number(h[2]),pointed:h[1]===">"});continue}if(wp.test(p)){s=n.length,n.push({kind:"legend",text:p});continue}n.push(s>=0?{kind:"diff",text:d,segment:s}:{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,u=n.filter(f=>{if(f.kind!=="code")return!0;let d=!l&&(i?f.pointed===!0:f.num===a);return d&&(l=!0),d}),c=new Map;for(let f of u){if(f.kind!=="diff")continue;let d=f.text.length-f.text.trimStart().length;c.set(f.segment,Math.min(c.get(f.segment)??d,d))}for(let f of u)f.kind==="diff"&&(f.text=f.text.slice(c.get(f.segment)??0)),f.kind==="code"&&(f.kind="source",f.text=f.text.replace(/^>\s*/,""));return{body:u,loc:r}}function Z(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function vp(e){if(!e.some(l=>/^⎯+ Failed (?:Tests|Suites) \d+ ⎯+$/.test(l.trim())||/^\s*Test Files\s{2,}\d/.test(l)||/^ ?FAIL\s+\S+ > /.test(l)))return null;let t=mt(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(Z(l,!0)):(/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)||/^\s*ERROR: Coverage for \S.*threshold/.test(l))&&n.push(Z(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:u}=Ar(i);for(let c of o)c.body=l,c.loc=u}o=[],i=[]};for(let l of e){let u=l.trim(),c=/^ ?FAIL\s+(\S.*?)\s*$/.exec(l);if(c){i.some(m=>m.trim())&&a();let d=c[1],p=/^(\S+) \[ \S+ \]$/.exec(d),y=d.split(" > "),h=p?{file:p[1],name:"(suite)",loc:null,body:[]}:y.length>1?{file:y[0],name:y.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};p||(s+=1),r.push(h),o.push(h);continue}let f=/^⎯+ (Unhandled [A-Za-z ]+?) ⎯+$/.exec(u);if(f){a();let d={file:null,name:f[1],loc:null,body:[]};r.push(d),o.push(d);continue}if(/^⎯{3,}/.test(u)||/^(?:Test Files|Tests|Start at|Duration|Errors)\s{2,}/.test(u)){a();continue}o.length&&i.push(l)}if(a(),s===0){let l=null;for(let u of e){let c=/^\s*[❯✓×✗]\s+(\S+)\s+\(\d+ tests?\b/.exec(u);if(c){l=c[1];continue}let f=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(u);f&&(r.push({file:l,name:f[1],loc:null,body:[]}),s+=1)}}return{failures:r,summary:n,reported:t,counted:s}}function Ep(e){if(!e.some(c=>/^\s{2}● (?!Console$)/.test(c))||!e.some(c=>/^Tests:\s/.test(c)||/^(?:FAIL|PASS)\s+\S/.test(c)))return null;let t=mt(e,/^Tests:\s+(\d+) failed/),n=[];for(let c of e)/^Test Suites:\s/.test(c)?n.push(Z(c,!0)):(/^Tests:\s/.test(c)||/^Snapshots:\s/.test(c)&&/failed|obsolete/.test(c))&&n.push(Z(c));let r=[],s=new Set,o=0,i=null,a=null,l=[],u=()=>{if(a){let c=`${a.file}\0${a.name}`;if(!s.has(c)){s.add(c);let{body:f,loc:d}=Ar(l);a.body=f,a.loc=d,r.push(a),a.name!=="Test suite failed to run"&&(o+=1)}}a=null,l=[]};for(let c of e){let f=/^(?:FAIL|PASS)\s+(\S+)/.exec(c);if(f){u(),i=f[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(c)){u();continue}let d=/^\s{2}● (.+)$/.exec(c);if(d){u(),d[1].trim()!=="Console"&&(a={file:i,name:d[1].trim(),loc:null,body:[]});continue}a&&l.push(c)}return u(),{failures:r,summary:n,reported:t,counted:o}}function hi(e,t,n,r,s){let o=[],i=new Map,a=null;for(let l=t;l<n;l++){let u=e[l],c=/^\s{2}\d+\) (.+)$/.exec(u);if(c){let{name:f,used:d}=r(c[1],e.slice(l+1,Math.min(n,l+8)));l+=d,a=i.get(f)??null,a||(a=[],i.set(f,a),o.push({file:null,name:f,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(u)||a&&a.push(u)}for(let l of o){let{body:u,loc:c}=Ar(i.get(l.name),s);l.body=u,l.loc=c}return o}function Tp(e){let t=e.findIndex(o=>/^\s*\d+ failing$/.test(o));if(t<0)return null;let n=Number(/(\d+)/.exec(e[t])[1]),r=e.filter(o=>/^\s*\d+ (?:passing|failing|pending)(?: \(\S+\))?$/.test(o)).map(o=>Z(o.replace(/ \(\S+\)\s*$/,""))),s=hi(e,t+1,e.length,(o,i)=>{let a=[o.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:o.trim(),used:0}});return{failures:s,summary:r,reported:n,counted:s.length}}function Ap(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,s=mt(e.slice(r),/^\s{2}(\d+) failed$/),o=e.slice(r).filter(a=>/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)).map(a=>Z(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=hi(e,t,r,a=>({name:a.replace(/\s*─+\s*$/,"").trim(),used:0}),a=>/^attachment #\d+:/.test(a));return{failures:i,summary:o,reported:s,counted:i.length}}function Rp(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=mt(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(Z(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(Z(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(Z(i));let r=[],s=null,o=[];for(let i of e){let a=/^---- (.+?) stdout ----$/.exec(i);if(a){s={f:{file:null,name:a[1],loc:null,body:[]},lines:[]},o.push(s),r.push(s.f);continue}if(/^failures:$|^test result: |^running \d+ tests?$/.test(i)){s=null;continue}s&&s.lines.push(i)}for(let{f:i,lines:a}of o){let l=!1,u=!1;for(let c of a){let f=c.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)){u=!0;continue}if(u){let y=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);y&&!wn(y[1])&&(i.loc=Sn(i.body,`${y[1]}:${y[2]}:${y[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 $p(e){if(!e.some(a=>/^\s*--- FAIL: \S/.test(a)))return null;let t=new Map,n=[],r=new Map,s=[],o=null,i=null;for(let a of e){let l=/^=== (?:RUN|CONT|PAUSE|NAME)\s+(\S+)/.exec(a);if(l){o=l[1],i=null;continue}let u=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(u){i={file:null,name:u[1],loc:null,body:[]},r.set(i,[...t.get(u[1])??[]]),n.push(i),o=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){i=null,o=null;continue}let c=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(c&&/\t|\s{2,}|\[/.test(a)){s.push(Z(a.replace(/\s+[\d.]+m?s\s*$/,""),c[1]==="ok")),i=null,o=null;continue}if(!/^(?:FAIL|PASS)$/.test(a.trim())){if(/^exit status \d+$/.test(a)){s.push(Z(a,!0));continue}if(i)r.get(i).push(a);else if(o){let f=t.get(o)??[];f.push(a),t.set(o,f)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&s.push(Z(a))}}for(let a of n){for(let l of r.get(a)){let u=l.trim();if(!u||/^goroutine \d+ \[/.test(u))continue;let c=/^(\/\S+\.go|\S+\.go):(\d+)(?: \+0x[0-9a-f]+)?$/.exec(u);if(c){wn(c[1])||(a.loc=Sn(a.body,`${c[1]}:${c[2]}`,a.loc));continue}/^(?:[\w.*/()-]+)\(.*\)$/.test(u)||/^created by /.test(u)||a.body.push({kind:"msg",text:u})}a.loc&&a.body.some(l=>l.kind==="msg"&&/^\S+\.go:\d+: /.test(l.text))&&(a.body.unshift({kind:"frame",text:a.loc}),a.loc=null)}return{failures:n,summary:s,reported:null,counted:n.length}}var fi=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;function di(e,t){let n=[],r=null,s=!1,o=-1;for(let l of e){let u=l.trimEnd(),c=u.trim();if(/^-{3,} Captured .+ -{3,}$/.test(c)){s=!0;continue}if(s){c&&n.push({kind:"out",text:u});continue}if(/^E(?:\s|$)/.test(u)){u.slice(1).trim()&&n.push({kind:"msg",text:u});continue}let f=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(u);if(f){if(wn(f[1]))o>=0&&n.splice(o,1);else{let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=Sn(n,`${f[1]}:${f[2]}${r===null?"":d}`,r)}o=-1;continue}/^>\s/.test(u)&&(o=n.length,n.push({kind:"source",text:c.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 pi(e,t){return t.push(Z(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(mt([e],/(\d+) failed/)??0)+(mt([e],/(\d+) errors?\b/)??0)}function Cp(e){if(!e.some(h=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(h)||fi.test(h)))return null;let t=new Map,n=[],r=[],s="",o=null,i=null,a=null,l=/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/,u=/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/,c=/^(?: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&&!c.test(m[1])&&u.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 b=/^={3,} (.+?) ={3,}$/.exec(m);if(b){s=b[1],o=null,i=null,h===f&&(a=pi(s,r));continue}if(h===f&&l.test(m.trim())){a=pi(m.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(m)){r.push(Z(m.replace(/^!+ | !+$/g,"")));continue}let w=/^_{3,} (.+?) _{3,}$/.exec(m);if(w&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(w[1],o);continue}let A=fi.exec(m);if(A&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let I={kind:A[1],id:A[2],msg:A[3]??null,inline:[]};n.push(I),i=I;continue}if(o){o.push(m);continue}i&&/^E(?:\s|$)/.test(m)?i.inline.push(m):i&&m.trim()&&(i=null)}let d=new Set,p=[],y=new Set;for(let h of n){if(y.has(h.id))continue;y.add(h.id);let[m,...b]=h.id.split("::"),w=b.join("."),A=[w,`ERROR collecting ${h.id}`,`ERROR at setup of ${w}`,`ERROR at teardown of ${w}`].find(F=>F&&t.has(F)&&!d.has(F));A&&d.add(A);let{body:I,loc:L}=di(A?t.get(A):h.inline,h.msg),z=b.length?b.join("::"):"(collection)";p.push({file:m,name:h.kind==="ERROR"?`${z} [error]`:z,loc:L,body:I,exact:!0})}for(let[h,m]of t){if(d.has(h))continue;let{body:b,loc:w}=di(m,null);p.push({file:w?w.replace(/:\d+$/,""):null,name:h,loc:w,body:b,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}}var Op=12,Ip=[Rp,$p,Cp,Ep,vp,Tp,Ap];function Np(e,t){return e.length===0?!1:e.every(n=>{let r=n.text.trim();if(!/^[-+]/.test(r))return!1;let s=r.slice(1).trim().replace(/,$/,"");return s.length>0&&t.includes(s)})}function Pp(e,t,n){let r=gi[n],s=e.body.filter(p=>p.kind==="msg");if(!t)return[...e.body.filter(p=>p.kind==="source"),...s.slice(0,1)].map(p=>` ${p.text}`);let o=e.body.filter(p=>p.kind==="diff"),i=r.trimDiff&&Np(o,s.map(p=>p.text).join(`
68
+ `)),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},u={msg:r.msg,legend:1/0,diff:r.diff,frame:e.exact?1/0:r.frames,code:0,source:1/0,out:r.out},c=r.changedOnly&&o.length>Op,f=[];for(let p of e.body){if((p.kind==="diff"||p.kind==="legend")&&i)continue;if(p.kind==="diff"&&c&&!/^[-+]/.test(p.text.trim())){l.diff+=1;continue}let y=p.kind==="legend"?"diff":p.kind;if(a[y]>=u[y]&&p.kind!=="legend"){l[y]+=1;continue}p.kind!=="legend"&&(a[y]+=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(` ${pt(d)}`),f}function Dp(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 Lp(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 Mp(e,t){let n=gi[t],r=new Map,s=e.failures.length>n.bulk,o=e.failures.map(u=>{let c=u.body.find(p=>p.kind==="msg")?.text??"",f=(r.get(c)??0)+1;r.set(c,f);let d=c===""||!s||f<=n.repeats;return{f:u,full:d,body:Pp(u,d,t).join(`
69
+ `)}}),i=[],a,l=null;for(let u=0;u<o.length;u++){let c=o[u];c.f.file!==a&&(a=c.f.file,a&&i.push(a));let f=u;if(!c.full&&c.f.loc===null)for(;f+1<o.length;){let p=o[f+1];if(p.full||p.f.loc!==null||p.f.file!==c.f.file||p.body!==c.body)break;f+=1}i.push(f>u?`\xD7 ${Dp(o.slice(u,f+1).map(p=>p.f.name))}`:Lp(c.f)),u=f;let d=o[u+1];d&&d.f.file===c.f.file&&d.body===c.body||c.body&&(c.body===l&&t!=="normal"?i.push(" \u2191 same error"):(i.push(c.body),l=c.body))}for(let u of e.summary)(!u.minor||t==="normal")&&i.push(u.text);return`${i.join(`
70
70
  `)}
71
- `}function hi(e,t="normal"){let n=ce(e).split(`
72
- `).map(r=>{let s=r.endsWith("\r")?r.slice(0,-1):r;return s.includes("\r")?s.slice(s.lastIndexOf("\r")+1):s});for(let r of Rp){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:Np(s,t)}return null}import{createCipheriv as Aw,createDecipheriv as Pp,hkdfSync as Dp,randomBytes as Rw}from"node:crypto";var Lp=Buffer.from("tokmizer-bundle-enc-v1"),Mp=Buffer.from("rules-bundle");function Fp(e){return Buffer.from(Dp("sha256",Buffer.from(e,"utf8"),Lp,Mp,32))}function Sn(e,t){let n=Fp(t),r=Buffer.from(e,"base64url"),s=r.subarray(0,12),o=r.subarray(12,28),i=r.subarray(28),a=Pp("aes-256-gcm",n,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}import{createPublicKey as rm,verify as sm}from"node:crypto";import{join as jp}from"node:path";import{mkdir as Iw,readFile as Hp,writeFile as Nw,unlink as Pw,rename as Dw}from"node:fs/promises";var zp="state.json";function Up(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Bp(e){return e?.dir??R()}async function Ht(e){let t=Bp(e);try{let n=await Hp(jp(t,zp),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=Up()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}import{createRequire as Zp}from"node:module";var Jp=Zp(import.meta.url);function Gp(){let e="1.1.0";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=Jp(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}var zt=Gp();function yi(e,t){if(!e||!t)return!1;let n=e.split(".").map(s=>parseInt(s,10)),r=t.split(".").map(s=>parseInt(s,10));for(let s=0;s<3;s+=1){let o=n[s]??0,i=r[s]??0;if(Number.isNaN(o)||Number.isNaN(i))return!1;if(o<i)return!0;if(o>i)return!1}return!1}var ki=`-----BEGIN PUBLIC KEY-----
71
+ `}function yi(e,t="normal"){let n=ce(e).split(`
72
+ `).map(r=>{let s=r.endsWith("\r")?r.slice(0,-1):r;return s.includes("\r")?s.slice(s.lastIndexOf("\r")+1):s});for(let r of Ip){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:Mp(s,t)}return null}import{createCipheriv as Iw,createDecipheriv as Fp,hkdfSync as jp,randomBytes as Nw}from"node:crypto";var Hp=Buffer.from("tokmizer-bundle-enc-v1"),zp=Buffer.from("rules-bundle");function Up(e){return Buffer.from(jp("sha256",Buffer.from(e,"utf8"),Hp,zp,32))}function vn(e,t){let n=Up(t),r=Buffer.from(e,"base64url"),s=r.subarray(0,12),o=r.subarray(12,28),i=r.subarray(28),a=Fp("aes-256-gcm",n,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}import{createPublicKey as am,verify as lm}from"node:crypto";import{join as Bp}from"node:path";import{mkdir as Mw,readFile as Zp,writeFile as Fw,unlink as jw,rename as Hw}from"node:fs/promises";var Jp="state.json";function Gp(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Wp(e){return e?.dir??R()}async function Ht(e){let t=Wp(e);try{let n=await Zp(Bp(t,Jp),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=Gp()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}import{createRequire as Vp}from"node:module";var Kp=Vp(import.meta.url);function qp(){let e="1.1.2";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=Kp(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}var zt=qp();function ki(e,t){if(!e||!t)return!1;let n=e.split(".").map(s=>parseInt(s,10)),r=t.split(".").map(s=>parseInt(s,10));for(let s=0;s<3;s+=1){let o=n[s]??0,i=r[s]??0;if(Number.isNaN(o)||Number.isNaN(i))return!1;if(o<i)return!0;if(o>i)return!1}return!1}var bi=`-----BEGIN PUBLIC KEY-----
73
73
  MCowBQYDK2VwAyEAj/kMlXlhTIGHRKxOKMuGFa1S1ybxxwgdYcAE0YM9fgU=
74
74
  -----END PUBLIC KEY-----
75
- `;import{existsSync as Wp,mkdirSync as Uw,rmSync as Bw,writeFileSync as Zw}from"node:fs";import{join as Vp}from"node:path";var Kp=new Set(["0","off","false","no"]);var Ww=["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 and the plugin version, nothing that describes your machine: no computer name, OS, hardware or user name. 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(`
76
- `);function qp(){return Vp(R(),"network-off")}function Yp(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&Kp.has(e.trim().toLowerCase())}function Ar(){return Yp()?!1:!Wp(qp())}var Qw=300*1e3,eS=120*1e3;function bi(){return ki.replace(/\\n/g,`
77
- `)}import{chmodSync as rS,readFileSync as Xp,writeFileSync as sS,mkdirSync as oS,renameSync as iS}from"node:fs";import{join as Qp}from"node:path";var em=k.object({payload:k.string().min(1),signature:k.string().min(1),enc:k.literal("v1"),fetchedAt:k.number().int().nonnegative()});function tm(){return Qp(R(),"bundle-cache.json")}function _i(){try{let e=Xp(tm(),"utf8"),t=em.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var Rr=k.object({bundleVersion:k.number().int().nonnegative(),signedAt:k.number().int(),filters:k.array(Te)}),_S=k.object({payload:k.string().min(1),signature:k.string().min(1),enc:k.literal("v1")}),om=10080*60*1e3;function im(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:om}function am(e,t){let n=bi();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=rm({key:n,format:"pem"});if(!sm(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(Sn(e.payload,t))}function lm(e,t){let n=am(e,t),r=Rr.parse(n);if(Date.now()-r.signedAt>im())throw new Error("tkr-daemon: rules bundle is stale");return $r(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function $r(e,t){let n=new Map;for(let r of e.filters)n.set(r.slug,{...r,matchRegex:new RegExp(r.match_command)});return{bundleVersion:e.bundleVersion,signedAt:t.signedAt,ruleCount:n.size,startedAt:Date.now(),fetchedAt:t.fetchedAt,selectFor:(r,s,o)=>ft(r,n.values(),o?new Set(o):null,n)}}async function xi(){try{let e=_i();if(!e)return null;let t=await Ht();return t?.signingSecret?lm(e,t.signingSecret):null}catch{return null}}var um="tokmizer-default-rules-v1",cm=/^[0-9a-f]{16}$/,Ut=null;function wi(){let e="XbS1NLQXohYf3VjYwySg3tyEpjD_14OmLipUWCoAnqknT6T4_Y-PRlONdNY_s0t0fK40VBa_YroIdN5vLkJ_EFplzdm1STEl3jRJZNrmGiwjmRH3qGEJeImkMIm2fJ6SBKa79UbdMUzfvQCnu5jE-eK1Ii3LI__mUSA9YlN3e2gh8lzV685ODkIgmfHxtz1WzbzXzfsU3ZkhwcMOp10Y9a983fTXayhZmnlRurq9J43RIs4UIwEvPo3-2LsE1TfRuWi2v9hR5-L4jLZp7TlOs3p1zHxmOo1NZ9VZhf5PFhaFtmDSkkem55nGn9AyaFjdmf57V0scD2vO_U0IKPSvN6Fvh3XhMR8OcxotBP8-z4tRJ9Oyx4Yo9hbJiZ5d1V1Afy8it7PqbLdttUpPpNJO3C9AwhG0N6PO9nX-dNJqvpMCwEtnm3k6XVd95Ey481ixbvtYnnbnZPMNjYpsH9ETbof3qOcPkIXjZ7Oee9FsZpCbuX5_JyLlw6-v2uho724dkGOlGeiyrqbgTUbuVBunv0aJGXP_3G3uBDQkQh5fbAIQTr065LxoLpjpOR5W5JSrZItb-iHTfgnhGPS8IJAxw-Ob07WjJr8x2T--SnuRKjftyW9tgFCqUHbBhqTHMUldlS2F5FwN5r2b34Hy9iw7wxDOlk77TN--lndReOovwAOA0ubPf9bIhzUEmSt82UAs53ncx191JQ-9z_ZW6On7xMaegGHMD_t9mzh-FtuK3wu-MUmG-OwnWgqGOp_wejgtEcFC0cqZKtHSN70YIMQ_85VdmujSHbO4AfipBHeWZIWBtbblCRLpuHo4ixRGptkHiI69FV_NV7HnQYhq7D2C2ZLDTwCEFm-OtT-8KKAEOTTvXuxRcCtTWX-SnPKIxD2mLBVxw7O0OZdQeaLbGW_VTGNtLrqYL4unzWzX-6eCqpAHnmBaGBi2Brun5oJOSaLik_WR8c8x4eEaKrS7iJCNWjbtxewderHzRkFj7WFDXDBWpEsbuwZAkff43p1q5fiNZzxNqvxrh_4C4Oy-pajsFAH9Uf9eNmdOIa4RVND6FqLi_SIuPsCkiUtI2hhYy8HAGe0cCzzsFqz-H0gGFAh5PKADbOwQFdH6BGF4My-USFJ2AwgsFNzf0KEMyZm7oJTMe3wzldClxj1ZQ-ZFaoyApD7GniA6bK6jkqDq_dPZR7wPhgLURrYZRewinKnPFqntx3cK-ZuMNKaBeztUAtcBi9-cGqMit2Z7v-ZOKOb6ZCKf1TddKnsNH-ITp2jlO64dTwOUKfAsXgps4S0ZaemFoXU1-n6w6u0-cVV63QFQ21JO4mMpCTLJv8bXHn34GC6wVDH0GjElhBqXzgXQtZqb_GeoE2s13Y4d3Dmi9rL92IXXA08Uhzmqqh57DSL9gGIcoA56vIBP7PhZu-g0pMSyHtO9CheC6Xwe3KDbC926z7Da2KL28V4jgczF06pA7s40XT4ehNZim55j3_X-Ohd2ReMIrqExo29eQXaxNQi3_MZNiUIWbXFHAZdqxBUdhMi_5gkBqfudPhBx-OhTblRtatzRbyFqH7LpWYnBTCg6J1QsbnSQkNoxVjrFPejAZgFIqL57baieqcZFlmvUfihlGL0OB_Z_0_-pua7H-ukeaun3XXsJcRJrbOhTgmXVNHjT2KGYvxE01hXKzf87RIG6BZeXB8H5b0t-hQnu2CvKom_0y8lEqamXY0nKlLrbCnNvxvrNuOiqESVDX0DRIeJVJU9nuWJzsaiRaY3XUy_VhcOldovRgd3-Fzviqj1MOP4Nbzyh_MihMXS53VT4mXVZw-MUtuBLyOFS3lYjCmHn7tP82Nu48vsAp1y8jNr4PEbTB8_2QYDRvYrZsZL10uLr7mkbYFVMF_6rro2kpw9F0RU5-YFbWuOqOsFuVsrGFVUMJeUY8_rtwpVMj2N6yBcFEvq-Zu97ip8ZJXCscV9i1_gcvfGqZgeK7stGH6yMkncozjM_k5zJsJqq1N-qnQdaIqwtW9MUS1X5UwUQwT-nen9uE2uazY08_yLWlZprcAN2KLFTd0TVBSlB5nzMx37Dt8_QGv8I9h6LqAxAFyqxzBUrkSLkZBp-9l6wBZmfE4wlPAlLCCr1j8i_Dx40EaW_TJ1mcYrfbVEYFQMgySEOd8wOarZRrEhht0Y2m6wRVZT5u85erF0yDWwIQd5Mc61k7vmA-bWfYXff-y7-JIARq1zw47V4Co0tCudcS6TZDgO2qsGTZ9hZFU0W0u6UpJ0D1ZjQVWx6q6mrDPoF-9kOAYqORVLstPRbeKlKZ9WmghbekSqHBB3q6Hi6WIjn_A8Zur-amGvo2cFk0ooF5-_D9RTlzAZQWjuub-lMtEKJmlv1ZNX0IpRZkEEVZOsQsaXNpkcAiLQJ6AqiafP5AeGB_WOU8JmWfT6imi5wf6cgXl-0z9Apb3vljopFDvqvSqQBU9OAH3bQNpuK_2TYjRjIaWb-x_J2NKiOmv83d0bsNwXsiGIjW0doqXJ7G82LSmeDbT5PieqX3qtFdINv4Zo4CZYrys0jpawuNo3VnRn1v2IWxcU8FLIbm2oLefLSLIJLTcQ1gji9cOydOMtQXAUCNsla027WcvY7HkwAAls2VksJyOFVFGVDK4b9O6bU0S3PMkqODYeWTdgNgTgLNw_qSyjqVsaJ2nrrJikGBS8BDirvRYSszREyktbW5bEosulpR3kk8x3f5BghG4G4UbxYhivtUP4MxujOaN_dOQhYoOC1SW53yfBM0vMbQzEQchmHePO2dO6O3SgB9hvYlyRV0ttKjujrtGy5EXQxGe2gsZ3jFl8HZDapF2li4nNlNI8LEZdwvGktmJNc62pSXo528dT09VYKOcPZuYGEbnKWpzDZaIaV-ffy8HurqiC9YqtjzMKjZIxOgZPd2rbnlsbp44F8en3EabMN9TnSWGyodhMDEovj8YqKX5kwtRfMElBiWr-7Bd9_T13g6u3TtPZfwyvq42Cos-OnpcAFdMfhmYlWYzLfrM9idcgt38GD28zxHDCAYaGx36_ikLdYzfY6vUVp7WsBkiOTcG37_WiZyGDQBLgYDn9KXssKDJLBKEGVeuWkD2BN9U_5sXjApb18L9P4Rp0FlmdIHmMlJR1uxmgLSx5OFTH-CTqRJbqNbAYQKHIKqEzySLBrFgxkZeyQqfngstfHN6WCdz-Ee8Uy6wlJ1uOZ2zl7u6t9IqiquilR0ZUwYbF7LMveLUDVV9TJO1RBu3NC-5q-RjMOuF5v9mZ3T781bL_r4OIBDwv5-_SDwmifeLHNuG2Ib8LPPB5Ocf9db4syOFkXYtpt459IAv57giq1DKBsox1xRl8AgWNg6nQRrKsil4bAJ27lLKwr2iNrsFDKRr-oS2LsqNtTkWsFSK0-hdNS3a3lbNxLNo7lb9wTjCkG5CLR7j-J1dAsOqP69cazc9U0N9s0EF1ZZKYRXHi3BwbIr90uMYzJzuivAefUQVz3EaMYpqVCrQWqU-UK_67Zfn6nlEpqArWKVbX2_B8K3OkyRhDwKAI0n5F-iURYbmAsO9QFatt2Wg2-sVIW_LLXOnaVmHiorCb9S-_qP8xxwivr4IG-4WPIGG2rwg7QizZCThzgGxznXs2AMtjQkemekgd3VJgLPwnhbReaPE2B2enheBnWnBRVnPyjXFVFo8AlkQHl03K2xl8VdRc5QZETDvupCFTP6zd1VHR3dLkhyjEt9s1v2EdOtpkJLSC1hft5fGxCBxERMMXtuvFofZs20pSCfo-z4WiW24OsJDdFjnQ2sZ-60qvNsb0FrEMbRPyAyMThb6WAre1IT-vncMXKVPSyeOi_Ci6QB9n6wHPqgaGS3D9zfMIxahP_vrHzgA1REPYw0s92LdTPwGW1XoJSwuE8LEj5WQgYiNX77NgLvJCL_bUhhYBw0ioITZjwSsQIioaBdm1IoUKaFym6PTIo7JvLKKTuWu0iVcRQGChpmOXkqariNahC_Fm2PS3wHXmbEA-TS85EvWZB8f3Hwz_CPX0AGmtPQdn6qekvKkdTWLPZsgW4k8WlMKzATIpZL0zDVbNUhKBLx6fqdrXfhlarzmuPCraxnm08qVHYJi25rr5VbFvssmIjuCzZ_gt607yk6gsFfCpqd_YodH6NgTShcLQ2GkwigGL1Owg7aT2Wk2LUODOPo8GeSSIHEuwlqWgtxLEHBwSB9WRX8gd6_6uIzTRpm0JIV7c1f-pP0alVnK9NIKK2qpiZfBzC-mXgT0iIgLUrvn2sbBXKNosrNVRcGwYj-PiXmPad3d269nFzaYojQf-yrIBPg5fdARHXE3FF0SFcFKOM-TqbRrHLD4atwMBt5CNRVV0kvUWDZ59vccAhMXKsWGbllq2EblDUyG2yaiSRTtr0tLV_0aKnRqtRuCiEmddQb0bj6nrEEROu7aSKMX59YYC78kyyPQ7qAj1fKHBBKj6aYVaVkYIz5vJWoQ2306PvEO1n2UwaM5DhQxq0MA7k_1rTpG9-BMdlQVdXtDpMmckjiJv0pSpMMhnYIneQTulr0d4WNtwhI4rhCdwlTn0Th93SwMLQgppvYty6M0S8rQ3AHUbLQS5p98rt83ufLYHg8LyVpwES9vTP3VPxUE0Bb0ZCsCR2VRzUsFtOlB0z09R9XU9-Nqf2TwIMtVEWR2X2vqeKovZPgLfcw6V0ZVHeaf0CzKoWjV9rg4j4Zlq6ORltaZabgi0gXkqY08AySq7L7uj2KiKseiWeq8p14Kxt6FWD8MIyqlOY4fREgR5NL77ehspogGKHk0MUiDkAUny-UqW437w13FrawxykqVGGy9SCohEOKA3tsI6opNGlp0y5VNBCRSQG9Ceffheo0roMbO_72quXm46_vFfWrCVZH8aOHmIqgzOUzsuTwDnuoJ84ORnXPJBLI3yrVmPuQC4MNv-R4RYri7kufaNeKYS66l3fo22jPO1yiUJh1YPtE5-77PG9E2S2DqwjtFx3x_WwH23PN_CPf7nPF7Xu6NEpxagSsaN3E9Cx2VovbmiK2wCc22G4AEiS6vfYUR5iw2U6aq813PXELa-K0ripCyJduHNswVAMYHhnUnVXP1gDU4u-gQwkLfjCs7Hhx3bzTLl5hQXARE8i39A1ZxL02ctrDZC7t0b1DtLDcHHQn4oZYuF5CjxO1bsOatl4tbkFZh8l3kGaqMLZ4c16NZQuLRJ_RbWgvfmG4inRYn71MXm5gf5MXdXkCrt_h-27FoTkqP5a5_JotXIx8firCG6OUBs7uKuZ3EDlZO_l8TDMn3cKNhZrv-gKvO374pWu22EEmEn209Wv15T--x9DajVQ3lpZuW46KtD0uAA9P5dvExrq_HGRnUDY3PaWkf_66wwnR8CJkZrxbuDw6wfrXN0h1IHa9ZyDfOjWFLee6UX0xZhczrTnkuvZKkxd1_b-VI7Hkr7wE03lDWYrxTF32lYFESWrjboI3pWxBDKN5wCHQYWwcSgm5r5Q5lVA966y7WYUuCZNVtagb4dEOllhqou-Ma7_bafoaY-6heFEBEGSEHs-cXlMadYnle3DFms-J6JTHu4cDNnMdZbnoF3uj-HtNzsrbDItfy5K_i98EDz9klgg_zp5Id8dCZs8gGh3bpdFkg6pzh6R-ay5wqdCfap-mPuJpIsUdGodFGWOG4HLI2BUj0AYucLdB_QxfrXz7Mz7kxcuUb9mDC9WO0re7l5tUVFQpl-GaB4Q74rj66xr81CkkjIEXLZXBAXA6DIvJAQatoegJkezS5QVw7bz9uWa0NGLP_dqvq16hGZk2EIUU0mcZ1-YSP5zdtrbxZTNcJDohKr_6HD1YT8qOn55WMoR3QNH1J_F7YFQ3ivmS_Dflye7CMtjliPEee_u-yyxbKzpkzDecaU829HXBOOF2mb5WUFwFn2oDF9bIFgOQS4WdQ2ipMmxmncXddXk2INaqkZTxFW2YLIef3AWVpQhQM0nt1zFWvuliBdv1z1pnJufUukFIv2eUhPNpnMDN86SA9gcnIZoQ8flu3qaKIaLewiMYDnYZKmpKcSvzoQHgtcGrEzZX8DP62YHimrWkvKBj0rtu50k9AFWmEivk6ReKrdiv3ZdblPOVJoQUaiSuc8-FFJtuOqgf2UOh2WIQq3YF07bz5tSYG9_tJ_je2eqmJiuuONby3h7_sRcoXEVGJABNvIFtqLpXLSuoSqwcKcxyXUnGg_4xFZhdL2uOOD_Ilgc5PW5GL5tHgTlwxuYn5swWDqMoPPrwubvyKIriThevZUjHO5KXk9bilglpIE8BZrTrW7qWnsngGYsoeYRM8z6ZPJYakl32-sN5m6mXErCkyLqJNX2DbdsZ7-H8I_M13pSL26d6spJGomvkE_4_T6iuJaJHJupANHPYLu6imvellci7FHCmuH04OEqVdMHALf3qoCfvZ8YhxhxKT6d1H7U4NrYOQ-xZqFHMHG9ViyfIvKvpOubDyFtgor0fuecNYFn9jInL9c3X_B7fAS64p-JAUGkh2aw8fo4MET4qCc6yMxNXqYI2ZltLaLbhhNsZGQ7hsy7DUjLD2rH3LgxfwyJvI_cZOMWNsWwLbVwQx9XTVn5LZrDrkOWnE77MyBvBseyDmHokuKEs6yvp3SCrGoa8LxuLAYMI2YyVnfR8R6SdP-grUgi9FIRjXKOVlQFF9EBbXLh_UWDleI5tKCYrZjcfFJh7BgulOOYOdqYHqPGGr_tehGyYlshcSU_xhFHIpOC644zrp2vckquwvz_OzTyLk2MAUg-NfnQFsBEiywR31jtS57CtzkB735HaCBDRXpgFCqB6SzpGeLuTy_t59wMaZT8-T8Qk2KmCHESZZ6--IYFaNR2X6L4H3yLzFZo5EtB-YwZI9VBBRONjht4DHTlq3WN8aQaFVpLVw9SyW1RfFwo8E2WvMd9HEuIINP1M7GVyth5yrCEiWxExq9IeoqwlWv-DtGkgkym_x2oa4hGVcMIJE_B-y22a4DXBNYApmI9pcU6owRFdugrGmrQQrAgMMhlzdMQgo6yoCBqH8cwic9_YjNCqbb5wGguYzS0WFp18kIz2e16zGqutN7pniPD0rB4ZwQmTnfW6lqHR6IMoAYHX586zPtdjyVDINoLCr4-qGdrq1U607Opy7JzVi31RHjyY6fPs6UP-jn-pOV3KxfWJQtKNDJI57G4N9oKRmlFQXmAAq92q603-xkTEQsNPTiWWmj3ftwHl4huPB-BE1ORkjCe_NHiqDegs3EqMsa64WEtlIh4tZnNzhDOKcvtI20Rcz1lvKclRv51ZM0lYqwy2sc_1svq608b8hh3nIB9kQEKefw1Bi21QtvtzDuuxaWkvIz2a8kAYm_c5E-FBZdZ7_hoBCUV-NCuMzYmh2TjQ2fYM7c84pKEchJKEuAgYZ-SipOpqTSsoLtqn0laSM7A6ZBUP8ZPmcDQEGxH_HYl-Zua33IfmXCZNOELsg98hI8sED0_082_1WvoNiOI2DbGo2R9buNhpU2RE76Am7p-wvXKjgAuTcMq3gvKns3u82WiNw55ebCx4XDt8dE9E6TFY_zIFZ_KclvrsXthfxyuu452Z3WCiVzWD7k29NbFY25YQK3NqyRwlt6v2Dsy6gSqLnN_0Aklg2K6qxSOOCijhagpk9d3PgJ9yZnwzom6q8OzKM490L_CNmQjpok6pC1G4A05iuyI5FDrdZrbZCS9HS0Jf2GOnUY67BA-WMXV_3o2__K94NZPzHjQv4mXiierRxDk_b_GJQ42en2tFujNfyNVi0rCmw4NWNqClw78Uq4MJiZDGY-IajzNnHCRwfGjE_P6lOPanTJyfIwLa2b9B_nBsURl2qlzkB5TbZ0GjOgK3Frz4cQvisDPYPz1rhns0yC2biQfNeG0EkwrI-_r9lKOwLd7ySoVGFlMvZv4qUj-MnDVXTrgVuItwLUL_kQKnl8pqVGXEiI7NB_yfNKg99rYQahW0eq3E2h-h_Sav1acqNB6v4GRe5Zi934P-TtMpLDmeroF7zOzF0APjffy8o-lN3u6qna0mVd74VXaZkCrRQzFOkVCYWGkjBgmMSEEzTD6vOkv0m3yVMMIblz5qsMCKiDGjpKYSXR5BGWR5ZTppkwnyQyEMApmoOLTYrgkIo3u7As71D4grSsJJuskPFlGv9QRtRyo5l1XIt1WkUJSwgEkheYp409M1UFYCB4x0P4MP98xMR_GZt4Mxhk9JYO5SIO0zAkX9FE8tv4oyRjBCnqyTK2AU919nIZEfO0Dh1uhv-t02FJGhfS69ODi20ljqAi8EGdpne_7JzJZYpV9ykxZRUYAuhh7xzPVLGdax4utUols_3TR-KL61DXzmHCruxVcEhCjdklxIowzS6f5jJZH6THxz3OcUiOOgyP6Jr5258pgLrMly1G_17zSSffkYLkI0l88QpvZgtGi6IaQiIllTX_GEZCKwOSkyEFfBVhm2iTyPvwUi2EjTBogUZ5HUJTWTkARPz-XnsSviyuHvR8Dww07J27MLQ3rtjesMlhwgmlENQdFzdmDGi0xy_aF9rKhIZnPI-OGliAGCWbDTHfZUikGeX2sP2Urqw1cXnLdKoBMjVE0N7-bwibrvPLwWY3BlmdyQBpMT-to6regxx45ebe7BNpj-mihOu-8Jy_vBdGybxpcCWF-EU5dKYDVEkwC_I_W2LL5XYo7_fCqXjXkKSr9aSq9dk3oj4F-kIXND143cVzwQM4r5wzYLOGMWV7GyJmryw49EwG8XI4K_D6RK25_bA5CXWuf_a7p_TAgxaHBwQdDxFQLkQIp3-78bwBkoXM1ON2lhTHjCyDTlpwhaR_t1NmaiT-HYGfR-kCw_8Otn6i7IIGSDcr_C3ZM3mSLHccQMISbUgLvao55E6629Y8reWBLsoFvJ1ILIlpaeMOp0r9SJy_Bl0czlq53VC3a4p1nwNrm022ppk2-VGp-8OQNB9N7GcMk2jMq7uSLxN325UO4-kPVGUc2xzJuLzgolYeZe_2kf4j4ArvIfYWWpWhuCzaj7kTOawn6u_uMN-FNGnGSoheywEwt7kAkbU0m-Jw4jtA8scXBCzLllzT1gJjzKWpzm7TkNRoFit6c6fkflyoYV0MQZayJ767yWhOIFRoAU9fUCgq24Stv1pDkf8bd3zfKYu8Ws-_4_Cwi_EJtODA7uQ40ITYjALO4bepwanlvlGJKALL9IG5Z1U2wkUXh1jjc7jQWxSaa2Dg_jNHmyXq7d3FIIxHdthh0l8ywPRfAhvI-eqrkbTVfJIQmLCdl_29o7UsbeML9g6uPY3QZhihrRjykMct8zcRaMiWPbpuezE4ty0_JvGkgQMZixO1m3FOLKr_xKCnB73Ce5TyKIBoIDjTpH0gAZxx6JJcA3vCB5KHiTBGvwfz6hDMbtyjrgETU6Hp_ZbsRcZlGGjZTV7F9uT5S_4NVWy37lA0Qh24nWt_KiAtuGyDZ_hz0PgXpVm1oRikoduRSEOFlMCHsbQ1GgW-MwJjS9z12MzZp5pyb8S7n9gvipLRoiEELrGuRIZtiVutk0r2AGhtg7QAqB5POV_S-29li4_znqme6gen8eRh3kTtvmhcTgAh74Tloc45Ovf-u96pTIN9zs-R8O2573TU-jZeioD1KyzZ1sf25MW8R-P46A6Zi4KRQ-l-hySLXmid1WjqeL0ugTf4P-y602ma3lTySMXfjFTpNaUE2w_ihJnX3hL7KUesbsaumi2ZFZraMHr7R0lX9ADfPY0ws4PG_plFP5ZeU5Hhbs31FyJkOf-KsxYDY9_Teo5OUHbr0Q-uZWOiQW5mQynxDBKuGyz52a5ZY3zvg_sgg8RJf96Q1l8aLmAGcHui2QWL_zb_pfzGW59vnSRF8014IbwsLf0CLTqCC3DmO1fz0FDhifb8NUhq7j2_pQPhR6o4i0-Q83LFcXuEsBFhliFWOXIla0jqP2JhLcBErowuqus-a6rGwOSa0U3bFveg8NveyeNwT9eTioXCCSGrkP-_FJbp1biKrYFeivKFe9VBN8XpyuxqM9s8LXeeawtGEw-WNvIRPWJD9uwgx-AjdwgemcL6tLEvf-yKzL9S1Re8Z8XxEIiave-yvUSlJbMQr124X_p2UH-A6N3aAhhufGlzto6VUp2SE2njbQSDuC8XhkGUFiwpsMbPXgkc_ivpBgg3Tu4yBYmMDW_N9AaBbeqx75OVlxQDSGtcwT0T6SYvt76DD2nuhIeEzsUmW3MsheiKTHuVyo5BXaI35mVJT2SkPUlC2qQGhJz8MvsnMqgzGGSAGqANr9gZz76XC5SslticNJ-ZmieMfilo3r0jj7j5C9RPI3m4cF_IowHp__mXUUPQyK7RjMA8o8rdkVeZu4A0RjBdraFfJ8yLQ_eJ8iob35xF0SrMsp5E4b0P8p_rC19-N4eWbw7Ga5z-NhPP7297qnbn8sZU_77knvwGx7-v0KDWiqF7wXCaxnI6yRD3BP9k3uYmdIxYFnztWQVGmX2f4ld_92EAgdxizwHnlPpjFJYfRCv_Q_mYRS3eRBDAiJ4NplbJIPJdMVGoUa9JRdqY1NxllW-WAv9JNaiR0t1tBxaw29_8UCmEQA_fNEUNdBmtiVa1fNK6ByFWyq3py4BDuXLHU19d82faFxcJoTM-LxXZR8T6Ks413-cPhPTbBF6GTZ9FaMimz2D3e9NTXLXjReb8brEbQiOBtbt_2KqDpjfqSDjyCwd3maMUlMqX-rlbFC4UdHdMfm_0IzNcS6caZlZsHI_JNZMV_4m5oMEvB1ZmTpgrT9h-dA-jE_5mLmdzWyK8PtxlqIOldMByMp-4zk6X1blaq85h22oDJNI7WEl0eCy2XzUmpt7J7cAPTpUfKrS9n46_NCHb2ZuXUs9151yN308-TP5aPxUd8HX86Det1EnaVZhQvsfMVSyjwZQH4dQKtsGS-OR0SOqB1klHESUeTppOZuj7VnfRCGVw8E_o5dQerVLuUEeNYoJmcfb9ilSQ6tUIlQSU8ujyf3gJ2ou-P4_ZLqKXCEwry6j4ht5zHVH_2GLp1D7tCiMOZ7SYZADIHXCN3R83zWTXRgEZFQAH1qDt5n9Zf6RBrsP3dN--v9AroMdv7c90blIMpvzDAiBwn1VVVmH3AUEuOqU644fBfzsfo2tZDox153mGSQHDkzoM2P4Qv17tFCN6kj6Y1sv38zZ18r65Ii0n9KMWQHLmVclikaDTrfLX1GnRTtnZXfgCSC84qbPvfF-jQqvmunXGGnRCDrw3vKxgZXL71m8EAKvgf4feDzweF9u-1sSeYdWYCrZBNremBlKEKlousPaETTWYqcJQBHSmf2mjBfPNxJgPwHDQcTQi2m6t7jC0b1jz9-filkHu_f8kMgqLbnlVxG-7yi6p4zPZ97hwNQb8rfOvMY2IQUlK_hqywvoNLsupceU4Nn6BAZ7bLL_d0cxJKkTF2YFG85wbWkhFQh032tV4NifBjx_lXwnjNneVCSbR15hTjxeTcN7I_cNxYNE3YpPQibXV5H7fMgpgjqQUOBXghX89vThkMi2usxcsZwJWNLDXW64tGn10A9oVo3HnksRgErrn4jGaf3X4jyE8llwvx1RKhCgtcOdwU2LNky7Xx28Pjxq5CdumkA0WPXPCQHhV9xxGN6crnNvH34LT4HabLb3YOumsj9dBdNc76WZKKqzQc6E5U1_C9bgpBkmKymFNNE2OJp7pExJ27FqlRVb-dxo6SGV_0O8USCe50fMv8hNY2kXaK1qmzuPE9XPbfeH6WMICPtNG2t7NINF2OvAUieYA0VoHG5T994nT8K7JoBwjBEYofboG6kibFzYjPKDY5KZdYGyzavgWao1PY1zf1ZfLAWKCPvF36zZ3n-f41Q6ox0xF2OD94gfY0pRkoMnAxkwRaMpwBMdkl-RK0FWfJgWsk6WTUhd2SmeXI7aTMFs8uPQXdONa0gV6w1UjJIu9Rpedux5rf0X1sfw77GdNY7kAP56NN3ZwgxaEP1dQhunTjyzkE3pntiFjyVJmAw4q5nMPB8OSAXi48m0fn6sp5Do2EhdQlZ9N-eNtJDlqTj-kSgx8UWJfMWcorhLGPfDJQhCKeiLr7kyTIhvEmpyAA0xv7SlW1lEkS7XgcQ9KxRX3c1q2bbdxZ1b5-hoXqx4vvqU4Bft7vqfU66mabIG156aMY99FeaZqoZNv6kRaVzA82XBL2Btj7QD0pEjs4O2LnrZHPNX_UcAuYWhCzw_9V3N9pQVZmAx7G_5ZZj49j5j0DctCkd5ZhEc2NvMa1X6IAUdVFPR7Nc3VMz08yEBnYB0z1WDut4WxhlNoqqikPm7AHwkDPUK0Yddlsu12usqTEM37XjfPrW0rWd59l9g1UUMjXDekj1I-b9L-qKacdiO7XVC4k1gGwra5BAbQcduon6hVV-hWC4476ByeMRIGPqOHndfBZzvQgGOt-9sx7B5gtKHOEDCr2Fv7FaWwEaBdv4qyuT8ydhrg3DBbnqnW0h1vKq9vJF3EQ0C8UCUY4w72dfcC-BhJ8VjnzxgLJ3X0E_05URZ8tdDSgJooZvrMEGQFTBNW0-5tNr0qSqa3YEfIFxtsz3hnjYmUmjj6uSnGD4dq18BDNR_nhqCFE2Uk38YjBijfKeN3AbIEnIJWdxjye8MXLrekTUNldJJZtv3m0EYBVgZaBU1auRGow0-GDEkqAGMXW8sVs3D2ZNy4Y2fvHOvGDIrpDnROftwVpPdSI9w4Qa-SXetaepM_xccHA0lpBhOe8RFMY9jbTTBpSwJ9ABGgvhTcfli78AB-UlSrF6UxO0SfO-ANaDSx1O06xQioT6oBHLYJo4D1AyF90lWg9gl4zTcWyD_6C0JdL2n4pbTC7YrFliAToI0W__WriXaG3ChhUzOFJ3qzpyBi5fl4pzRtfM-54gxR8m80lEYdgtAY8lrfM8QAAHhXTUvjKkU5-Us2y3XlYBrOp11N_UYbNsR-XybHlOjKmW9OvFtW-MJV2iNSnvH8HAO5p8062CExqmb51-sHhkcPJLS7t8fLO2B8Gff9W91uJCBfnV4rJeU8uQRrEOLi15TcPvPgtchvV09UBGON22rDghs0cHNdFMieBZSJatV4GVMQzVsA8X4Pvlnnb8wx31tvfozYfWE5K712MsXxHTnoefZIirglgizWrGH1dASGoFjvbiXN7KeBoyIriwBtbs6DjUqUFnA4qWTJjUNSdowZ2gg02zN33cKDWBOp1sp2XAkpREDCd3GwbeEIOTLNG8sEjyhZezzGpQVzxOVu_kmTf9Y5h887DFNn7na1k1tQIYuY1mC0I2WBYfGaAHpgpcppvxy79pl1rRmGBLXJCbYM4vtvgVa4NV_AuAw9gcmkQLeC6LcR-mN3HUmNuhmO0SS-_7fi47fkEfmD72K2AgmoqAs5ZLx00AAoiktS_fFqtwwD12Ugkcfd7su5SDpjVfat9x_TaXoakS9gCKrvv16Z6MHyIybwcNCdh1cCmo9KIELH14uDbdRHBUgwAdfwkbpvZhRgC6pOhAL7nB-nAjF80ePnXmyDRn-qxDSfWbZEwsVP2YgaxVDomvplQqSpilk6fLSKpQmo1L-oQDtGY_enushPPAKHiqEf8bZTKg6wyY6qo7lWbgqiTuKpl8EptdgcqG6ChNmxhDqZ5ecq_wljwJEsDYqTZHkgcIOzQz7npmMEswrpC63dYLH4HYjM44RnQPT5e1ZA9VOB688-P2XM8zyGkzPm-I1cRS5e0L4I8rsf4HOKmbc2RP53QTXBJXeNAZXBxF0GFvQQkbM8bclhSK5wxpYuBEsGnLT9sEAQQ3bLKKFlphUbzfFYc5i6ROoYlXnWdNamKm14cu0OH0kpwghSHXfnP3QvASGhzEGf9xlKQEIOFsS-ir_inlpYF_ttAgWvdRM8-hBivYLExZHv5Lb0W6ulgKCkOzIlxJz-S6IvgVQWvmc2kq4pSdQFyW84TQFcaQ3Kbvz8-PMXja30a-yIqpCq9H4-sATuGAfUSlHP76uy8xz5eTSl3tXe8mTxlMErUezuzIhuxN35hL9WC2MuWhpA_ArjdZhrizjH8DqNw3am1g1V_OJwc5Xl0AKYzEiqOq5fJZIHIBMPosDM0l0WMrGpKLQcMuTQ9OiqW3zqkn2HnvFjJMoTYn6gMjj8M-05Ai7PIQio65eNuFNwJvT4RNMaxMQyWRY8pG9qaU4C0CtSiyxENK68_OZLpCPJWADDtSDSSCLlT_sMEgzgvqH9WHj3ncW4nzPTdXLB58Nb169xVXMgEgC-MkvLl2E3w3_bhj65k_8h2zq9A-IOsKh8_UxDiV13UT1NpQ6HPXFPGQyuG-b0yqXEE15ZHIwYx4hLC6qkVRmi_gOX4swII9NgU41Kf7ss6ngz2a5FtD4TH6BFK4dWnPsIXbxOKSHBxtdNm8BckyOuXQOje0_DMc0lbUAmDMA9KZvxlIEujDAj_remxEoofkXqmM9FPEP6MC43KGS66EItoB20MenUbk8SduhFlI2i93TkXJqYez-BrP5CcxLsq8Y3JIWRqx-l4TpJyq-YRdRwUjIrZM4L27tNWnWwLiJ29u-Kpp0VBy90ECnI8Ao2Vrfso1fRQmLFkeI4UETJWmqcELmKszhVHbrgkd4VqAqQNzAFqhfMps7Xu-p6vtPRuwfe-imHJvxE8J1Gb8sVCuID2OEpK-uTIWD6f_vuCu3iXJ7sXaR43BVC7UmbvoXGMKU2tLqf0p7PJG-xPqDckKyq8iEUGHJsDr8veX-TZ_Xj2T3lUarnKVcAQs9KpzmdQKdnHIUCGeNVLmPe2aRVH7nCANQerQKOsq4ms5B9BDI7xLgPStBWSwkeo3PIm22ZXwCyNvX1NnImx7fV4tkWEMpoweXjPntY9dk9wJPVHY75h8lvFA102ZdCzDs3o-qoolfaeRUWhpM2oMBO8ffhIR98sgcUcyUyX6tK5RKihj8_lNhIKUBJ3qh3_W3-ebCgfp9g7SnXYHA2qsM4HJTMaw8TWugDeN9NggNyQTA0rUGu58I0E-6IJwrkcuBifvX7dawyA6_RJAjNKMjdJw_moReVwWxfiKGW8VW-zbG_ccd9RPpzQRy8fOCMUbMEZHbSUC11zSy60UB-OQnI3fbqngYzwGI5mX2oed15GQwRX2vdGprOHv4OQCVwy5ocrxua2xZgclf9KHngG2OlPbNY1yuRhggQK_uUsD6CtIPfHNeaik-gjjglJl-2mgUaCV7H5B7BId_am8XXmHqS18nOTb57Io4sicQAZL3UPX9P11DdGXeQa6ne0po1HfD9SP5a1r2vFAmomK_CczKEYQVaeB3uljaehJJ6P5Xiq-prwrs3mczdS5E0IuJ02NN5Wmbu_12EOfs0f1WKXgqSjA8ESBBfwRX94AIPHhQyBornCR_t07BDT3rexfkOIMKG8MnmwFkUIyQZagXR1faaCwKhvo676-nN-YdACeilylqiNJ2nYWTg2sybCj9kAfs5ZaCCNcxIFQip7T8gKLYd39UmHE0u98JyPu-pgDnaMDQDowe6RNxrx3cTJbVORT0I6oPh5-wdv4xwBIM0q_-Lp4gfC1jyyMpBbfX5-rThK6gZA1x8s6zS63SrFk1ihp-HWEjRpP7jblvY3OIQvrflQ_UH9Z_kwJ5sFx00lPBahiHaoAT3xKjVz0FJsv7-fm5aF3N5hCYMpYHmYaPwjYypYeEPUd9tSb8neYzUQGi13fOQjmRRZ8okhiGE_2LKAQJU21KjCkPe-OCfXW6zy6jI8S3uMRdWGbwDpGEfWBAD61NzP9bpDiSzj1LfAZrvQC_UAC8p4eRvXGYHIZ2uXSWh_LbXa8ZBdvdv_IHuJYtFJJXqV3Jm6R6zyvnDmCE-dEX2acD-O3QlUL1PJK13MJTlxwgHgIGyU-mE8mSUrtixxYpcMylTQCxihRhMi4bpvyXP0GqbhvMOYimiiSNsucaTByRHASvI7D6SZk5SyMjK7UQYPidHRvDsrKFbNwXU6qxXZMW_x277atNBCSCQz_pDXqvAEJlK4vKbj8cluCO1mdpfwLr8nCmsJkr2NoUMrVg6S4C0ywSvjB8Xe7aH6AAQxFTvoSlpqtusSebpR-kPcZeI4xRVdBLDJOOn4D1y2fZHy1s8HHt7iOE2pzXx_NFaF2iCnrVv5Ojnl41H-42xduTpH59qbobV7ty511h6YwT2oujZvpN1905itSFr3FtdJqjRv1hF7IMwpzvf86rcmetQ7ZA2oxaJ1vrMgBl1fh03t1EHIXypzVULs5iNf677vXM-KC-SL9mv4SludOuqq4Pvb7aX5BkEjAnNMZ8c0F1Wsw05W1sFePItlx7x8-uqmoYLGhQCxM9Qyca99EO7LlWvQKfIu41Rw9CbvZb_RkyuPGMaCwsOGbhzITeH5y6DXBp5EyqqR_5pQhftA4wFygAzKdGp_NIiC0-7wgK09inKjbbpgJn0XHHyQakDW9l3_wqdWSH2DxnS8cpmWUUL7MA59PBs23FVkbAzl23BHgvHHfBQ3FzLjHi18jFpT5Qdj68qthNiRAZjrmL1AYTKtJWyu3L5uM9YFtX3E6bFaBE4dUZNsfAMcm5rbr3AG-KP3_ZtTrWJbZ3jnsYQIfLeSEsuvPottO-vtu7mp94peugOvrHBrKB8QOpvfjObMG1prS8uCvT9E9WK0jhzUyqGVFLj-APnuLhtqXYcxe-C4YxRX39OCDTDHe-1kS85iCZHx674OvLtoNiejyP_e_V9Mz-GV6feBBKEJcInreu4WssqBkgmc-cVZdt766Z61YsA4Imyxy2RvoyTD9ViH64Q3VDgB53yMeFFgmFhHDOclypdfMxDClY4UqeuUxVmXmoiEYnUGKLfySzIulTAHj45zxgiWIWx4Q9aZRGi0LT4FSmZfi2c0GewK7Yq4ayrp13z4lxKixU3i3S_YLtI3dyiIeQoNivQa7jUAVCE86rXw5OSoAbVnfZqPD1BuvJhYIU414LCDL3oNQ2BQs_pQDbTGrIL-Z5P_ebfKc0YZVuBB9w-t_qfvWclr1DIOQNmv-C3nACZ1IF6vIyuSX-kWPWxYVbgT3iPxwH8MMUTOdZiHeXqSEQEiBN_216eLss1oPJOnDNMrIQZomja8Lk-_KoHRS8ETZy8A0VHbunzUQurFODZeYV70wZkUYbZfhymJnCHj1Z19pnw99T5zep-bifKn-RQjY6bueAq2SpMCI3Lbh4LXaX6O34MMQFOJlTslT13t44JubKxnvfwmvH2ONhI3BKZzeY9VSQuimQFzkfGRDsq325lPTRVGJn6iBIOB4Eo8Z7aiIt8pGRmVffKYnQxizxi3q01MX25WqW30FtJSdMsmzNYp32737lc4_zsmCR2Wl75V2hJUPW6_CsjxQssjvp44UhOQTNx9O9TtkPxsQXsvqGh4TajBUiB1VPJxyZQJT4sNWonL_eUJTXj2ubR80BtDp9uNlI_UoXQtFws3bFnTwF6cJtmkMhqwlkxpQFvHKvIAKp2R9DVRBefO6NotWlxGKu69RKncZiZV0ZB5TEHq6-Q7PXNXYUY20UUs_h9Jvh4aMk6B-d7I3aVqnSPxx2Fjxhzfd7VlNVv5prePFtCsVfL-VhLJzA26NqV3ZZVOvSsHO9SMyYyc4nzCCNDrOpoP7OzGcG-HQKzxp5FYcwOA7WCLdHfAezL7vlIyoe_Rds2KaZk0BebLOoVmP8BHO8iPfOUKJR1doD7dblTdjRAjmj7V6m2txeVqope58T645q9TYHId1kBKwUn0Ne2DOut8NkFRla0jJ1NQMIgEUmksD4CtOQ6xy56U7RYD7tgw1ke94CCMkwE4GVXg_lrpWEpUBm-2zBeYVDlG2PqnF12Ok8QaoyiiwI60-OecA0BD7-j61a-3rwnZuzjO-8mFwLZFS2npPO6bN8Oz2dyGozrwRIWDjVrk2Y13dGkIbo_8Ca1bzpuTl1M0ZGvG8nkMukTvl-hkPBi34Z4-sARRrTweJ-OrheFdhTU1IZt3QDLeNcgrhB3Ia0VH7xyWQZowR4lBSgsSSQr2H6_9S2jb-JoaaBBI1p7ZTZRHFHcQ2pyFA1lL8CnnGm7J63rHW0Li03_YRqWifEF83v9dCSOsWKXS3WOz-i4ZdDrzrgfcPA9BilKMsVY7kl2u9hFKK_x4G1dqigjLxVnY2yX9lf8CaQqC9ZdcTdXf7ja_nt8hLg_TJOfULgIDFwaw4BYfjkdzVi2Yuj8mKdo-VSXrw0JgKelgVnrfVfYskUav3ji8xjd0yqoUcb8CDUD2ZtjaKyw1H4rcEs37Scil4Tphp6zYpK1dRpstRjp_pVFEctOHX8X2N0CTYp-BKxr76O1xX7Vk9md5TDNKs8v-lSJKGMeHGdkdND-7kBB9m1MDN1gXL3UWEn_ZF1QXpVN2Pkeh6EJ8h1ym_B3Ny2igdSz6ueLPwXGcnIYUQ6G-s2J3npRmarPPD1YWhqZh94Hnf0yg_fK9_hI-sS94MMa8YFt5c69yf-ch3RV17_7OEQ1nI1Z8LjlnSyaGZcLSCYh-zpmcB0XBf9KaKiVpTdJYmINnzzFFG7PRw226VwoxnwK-ryOJRDztURsKcnhGGOvdUNfi-UBMoEIp4Ky3VlrGuiXNsnkJlqY6NdZIib6SeuJ0Np1mFMaasLYk5J2t5rBsbcCT5x0fb8IfeBWIde1Er1y55m8rCYNpRCJpvY1pOAABeHabfZWzmPZ-qALQwLMqpwcpghURgFT-_NRI_69zMYATY-XfZwjWbagKDwuRBnoGu4KwRxI-9MIsx8jPmkC7djLpm4g5xNcAmo9lVBwp-Zi_lNX0sMhgEi1vRgFkqhjhWC5WAHe7epak6h1lIe2LGvj-xqPn7_uCtFIhXNRp73e12MbMnD0TPDAnPf-ziBH66bRdhbnDQmdyC_EAPOGLVltbM_J1-jSsx4uxv_uNOSy2iyk_XLLPvk1fjchXWMy4oVpGnlTxj2Zl-26RlzvJQt6So_Gx_Vl8UZverdJ3oc_bmyoPNLz6FRI9A96OjNha7FzFEdPakEXgaMWcuRWayE5Xl_Y4Dqwk2yBPy7A_W7Yd5i6ONHmtE-fDGNei9lVsvXugX9lECUfX1PzrQ-1x125kM0MbzLabkhXdBkRFSZoxfTs8Q-c7pSEP_RbdUr6QH3qSYWTISnMX_dfwBe5y5g3XoHdysoJkZqXrI8U6qNu1uE6gYtCKIoRmICiHoMozDHyv66Fp7MQs8a18pPSqlB-znPQiXPb4yst6X8Pz2B0YrB9dyVOmzxai1SiALKLCdMBOZo7XMLHmhEsntjJeGfAhQtN0bothNRT-zrBEwOxPLFg1tjNa86QNGDtEtKmnGcaY4TJS38ifkk6aJQ_TfDg6zNrJinj-sEteK6kN4C97JhJIK4RcIXzWxneCDaKVP8VkTW8O76haRQq06eDTuW52hv7NssakP6RlCCPlfv0C9AD_vZ_DVV3hoca9zdD0tRUhetQ7lLm2oN3GFxDJvivWd9wjAC4unABpowhA9NfKDeZ4yWHHSDTvJXw3iBBQ2vO6HoREsq5VAkEmjggHII3TfPaQ2LFaDgtPb3O8LE_sGYoamaABJtIVV_Kt6E3IOyZTAhVLwlIiAtVdLsUTWhs1zYKISJuJlt97y38AhKup_AMizWAEnWPBufmzqH1LP_BKQSjavViTzkvOnM7x_pouHFkT_tEWofAVHoMpEy8mZ-iQdgCqcPQZuJ8w2_s-ngQKGtKTAylARIQ_GV75Oo7y9hk0g-EmSI3fPNZXRhmAVOrwGVBYCrapNPrVXyrPCve56kv_ve7KIKs5KROZkLww_gVfw5kFuGYLYOJ7_G1Hcvs2pHv1GTuE6tZQ_QYaaFlUwETqyHHusKyaZihXWZA-HgrSbguZS8aK-367YfmjljMd7gtI2pD-MwkYJbVd_Ufn8kR7xAAlqkYXjh884Bu4VzW8v3YvkLC0ISCdjzuzomoRIoSn-SLJUGDUDUYJF3-L8QxSsjcGcRqiP-MwFjnPfs4BbU-D1AppHH13LoBAd6SgeIIDkbzCEK4lzVsj0OlcUnzO2keLiWlNxjACkOSikgW9DVZyS3aLxweWs9gxuagV61Jw9htb3Fcs8xmn6j92VOrF8eYVxOnUg1cx3XpIDqLR0Ip0l5XdUOwJsI3u30f-wNj_por9J4KWD-sURC8HjCUVCAs5NokRl0pOKBhOEQ3Uq75P8nKt4zE-Ls1HWZcf5KBYRhWByrwi3aBmYLlFl9PPsoSl9AQWEPZ-AbUUCS19sXvjyr4Y5uIgOoMBdst1woFdFBhx-z5h5SkuFJsdPYW98MEXdWU81JwnTEz1mqigJvfcu1u81rfgw5p1DIu0_WvPmHKVym8HB-uaMblZ12FcOPJ1S6nhq_H32Nn6unu3cV_UxQH0jU3buSdYSawjgoAPardJPD3L_6kPBmZcNU-Hd5hKk11r1GIbRGI0758C2L4mjFHtwNgSBv_zH82OEz1EYVBJiFUAya_3vpSqiUnWk87Z9OleiEzPwE4cFMvMBJzeGRTcMGQvjXwHZ_wEhKhoGWdp0DOvtKQmsONMfRzWSMQ6A5u1uJrdBC-FBevHj69wQVNBxUOgFvTvidvg2YJ3m9IU_VInQcsv-tG8t5sLz1d6XqaPmtvHrdy3FgdJLk1OT4o9Vzr90quCwAHKWd0opBMOiKqLlanCPfm4lvl6LvAKD3d7L9gSNlgIyAx8cL5vnEc5bpOaZ1GMxiDrDqQ0iX-roMiioWn2y2wQxOK5qOAjZaTp7fwdufnaTunZTrdEcq-Fzvs1xlgQxxUliuqQqPxWC8A2eF6eTKM9acFK1DPy-iiIQ01q18Mjus8EXNW47TwaRTyaQ5Z3q9DGf8Si3TlwrTIuwrQt0Lz03QwXpD7WTK4HxOwSemWnhO-P1jHCBMiMvvLzInUC9SQAein3-upV_h-b2QV5qRbXKNJAVN7igDsiWle_ub4r30LKGOTpoL68nl_EbVc8xsTTbiVNFdjfIsOLLptRGMT0hymV9mc6_z9NkfxspmslMtDpoVM0V6j7_S_22nDNsCWbUVY7VwlQYYor8YL6rtipokjL6OykQtEFy0A-hOm-ODHJdtG459QVuheBGN7uWyooUE508qjZTHJHjWHSbHS9Ihg5pJZUNGwJB6qXigbC0HNTATP5JZwC1vidSsmpeFNBmYUGBAMayarI04kBXJvZjjffCUwUTdhBmLuuCz4FryWpvRat5sHjEG-IwiBm7DhifCbgnWDUpvot2iZNyEf7XW4huBDgL_cKJaHdrgl1RquULPsw_Cqxb4-hkNgXk_kN3BdfBA7DmCyR2twLTrX6R8zO1dAjI52SQT_2cPKVlAMIGFiLTc3deL04MxQQW3AGX5wdDDcF2pS1PchMAgiLHEThA5FluwrvrB5R_YAEBYgi3VIqN8HXppaeDEZWh_iYIelzvD3gDY1GNGN5sr0h1cjex32QMZTitpYvhFhjA4uvYmbZqg4zdot8NAhxCWcLKXBnl1_NxSwXg8WZxITEgjqa-bfH02FMwEanoslfbAvuHCcshJqKLmwTX_1hxEx0lvQBI-J9f_BjEMSerg1Wl6h1_xbJr94lhd7GwsYI9TPW0jYl72Fd2GdfAjeeA35HhVCW46AXHtaX9hbgInWpJ4qmUtsO7Mgs4NgLmHvGD4SsnmNbu5YwbT5aF9iA4jZltTH3SE2lrDNp-ypF90vOQT60eCR2BcC3aQLWPq0pS5N53T5dxrOmew5jGC8XUlyjIo8vu4EkRM-Q9s2MQyQ2xWJj7w3aKnjGlQvf7CQp8kCtMj9PveBeETkdZFYVClGEoI_z0QBwj5d0-0j9tLU91KM-LMupVObICznFEE1REyB5S2p9b280WfU7z-qD2fMoOUDfSW9scaZRIiYii0wLkCfETJ4Kt0CGTVtrGBiy_Z0B1vgNFYbYwDp4iOJ8lYjdrU5swJTmYsXz-TLx-6P4_ccRB_XN_pv05se1DZ3mzHrp-UzMmh0uB47Y7sitxsrXN_KTnpyiJMEuel83iATLTuqO2A7um9fXBAXYcCPz-iqmtJsAaH1lB2tnI6BqrNFrVYzUgMqg3pcG8MyYADWe3iyDHfFDvID_rM9hkkr-BcVCaLEi26VBE-g9ULkVNYsjs0ptagSn2WEizAleNkB-NCFkU2IhKragP654rEE900b0uMBUZPxBCHgYtotWhLEhDuP7tqXlVrRGZ6qua-5CjyhMD0x9TPqS-FmWRovW1y0yR9jzVdwL_BeLXyA6G6nh83rSk-rceRyqoJefzI32oPbF79YyYy2MSnnQp3AWn2Qv7Ik2G_cRK-8bP8F8bwDp7IlGeznPMcZB1DZ-b6oNFkoAiXkdrtSn6hyP1stoghxINbWOc0eeY4nXY3NCrkNRmzIi1EDx6AeCzpLZRKrA2CZAdW6t624uq5USDfExzv-E_rEAQ5i3dAKmHzhYIfzFapkq3WjsDpIIjnkPh1mxPmPi9xhbwNHutTey3NPwWjYej3KlNVluydTcn837-oUdUV7X48fzfQfLXQqmUqMC-CXRegxEUVhi93A0h44ObJlnHmYsIn5SiE_tjQNhE3qcwzTcCDnZAFpsEoSEgvhMIE2yPcFDfBbWhUGIEVTg5hvnaMoocl3ct9RHYrkhlqcI2ltcd14nZayfrGrSO2A-RcM9TG_MQWsx4ZAgjcnd5VFOhuQbMDqBZORCEruT9hDfeq5BYHwjyIMiRej1qcz5CLWpJhIlg4xKy89CZlgeJ53SWHAVUvMEtNpupeJ8VG9rveeS6NXeFE_jwhieALuhZ_VHStegAdlAX0UKYlKmIwdCiTUE1havPtavnZTJJNpyD37UAXwxCgi0p4WsfbP8KaZ576EoNJDpYp2B-HmWt0CevERfWxTatvv1NWFWoOP5yd_Vu3ZLP56gLHOfI2wsaso3ppBFsADLrHPSxLu5BfwXFKDb5eytko-n2h0WlOevXHDibs86EfchsEHR3lQIv-8Y0u56w59gprJGFYmC7S-dgoj6_2RFOCI2EMD-m6VZXggX952rvBHUi3p1mQTGMM1st95nwVI_d_DxdUt4sw1M3rHTJFwmz0sRB_NPDbo5GEX5D-C355cl4A-XP4ge3OfVOieQXNjtwG1X6wdlM_NqFHsKl9uA9U4FK3t2ugxDSLcKb4yx6NsRUdcTev-_GqO-dy5Mj22Ki0hAsjoCmVbhyejYgw28Ic0bZwEeyoce50JIS493kW_SDB5eCl8nMvGMKdE-1Tajxh60Lv_pIg3OOF9PfZ-xIR9zt-I7rI7hUVGnB0xE6MVdwDRazEP75iDkMNbihV9elJFWKX4ET_ByNQFUWJic_m9mj-xNUrvU158mWVE7c3PrIuT9IQWF6Hu7e815SvrjZ8d2bfuPEsWW5B4SW3v5fosfTZlALprQh4dqw9w8tqyJNlX9p4H941-mYWh7_q431pMY2eufwNB-w-UMz-Lm3ZYEpmJkXsqoRQyyNb1-KuY8JizCBJyZhmHZstpIPvnI2_8MsGPi260WQKrIwMpD1Dca0LaUBQm4dNoFhnaLUcAhiI1i_cH2ssnI-GQnNtJB9D3HgMKLvKQqR4JWK6Vjgpe-yhWkAf_VORscUo7eSpvHu2HCVZQI4Zsyi_Kijth79VasivafcEmi8bCCYbQ_ncJIPTtmy1Xe1AmGqykejWuSO0MiygJ_DPdOs-xLuHhX_laBirVJhUmsmsZVb-RO441fKLaE6l12pKvBjK8J2kMZDVF2jopWKdGudb6TXOfQ1iPHPEK76yc9mutFaSD5EVt9vUUNCtW1mmAex-JJm7ScSzqfM09Dhv4XD0vGfBoX9mVToHRjichMDyGXWhA1dUalXcWcffe752_Zx5S5dAPPvnwyGwd0kMEno21O-ZXWYdxBceWJ-O_w6NOS-1dYtkiB1nhDoG8h5prS9zL7Jq0s0ck3dFGJLeKt-sD34CSEo3fk_vCuXphi6Y57Vi6ZlatQhh0GSljpWiNs69sOlSSCDlptZUh1dX-6RIrtTa7YFRX7utHBK5l3S-BYPtqmC6_C0CuvwRgweUYanbOUpm49Jwdl8U3owPFVvwNG5LK7ADwO04ovsWYjIoksjZNqc5IjsEVyB_XBzQEvGHMxovmT1jxPC2--45IQUvIK3J-B40Rog4DnFx8YM2EyLYeo-MetudlSZbzz35R6QQiqxCTuXd8GJch9Z-rpA1al2vcixL7HpJDEIuFGVcZUe6UWsn0MI0aNUUo-mXtMgNBzMVWSUeUK41ui2AhfDsS-LlBQOc2PtGoY-xy8VlJuPvqKmA9MUTLhyf2YLiv9nTqNcmGfXcrqbtmt6AVdlRCdt3FnQfGW1sK1Cv5POHbZBXTUZc7PxlveydeQ7Sym0KRpkBOG2mOsUpMrlBzb0ua8Apll7Nva8zkzPi-J2micW2MJb1K6E6FQnCEO3Cv9bnkx63EcVRYbsE9AUX7JGG4oVmHeZI-Z0pPxwQKAK6no9DWe5C4lt7m0NbPMJF4yFYrbvkrHLVTs_d3_T96T27dRz-a8UAnZIVFToHwbsVPyLWo3v7V3D2bfYfgywI_jBi_XQ5ZJ5wX8NrM6XGD9_xkJkhmUvvYjAAkMsnr_1ESaOT69DTExDtoEVzOYo_MUrghoJ2RNAsnkIvu3PcHTa-op21oLgiuHjI0fb1JrMJW9fFQfBoDX6vvb_zwC6X2yt123ckb0ehkhtBy4JKWwuyFFvs1-j_R5hKkcGaciesMOBHBszCM7GltVcmTDRnsAgQ_4q1yk5FRcOx-AOsYpZTGOsIfKSAcBtJosMn043-jGii5S4FlXYby_WktVyGhPTY3dQjhDcxIcRkBD_DBuY3oRgjMciYFnhiYo3-UuMO5s__XzlzHwo0wARRpmhTuDE_1bJiHbr-6SI75PyzrdUffEDkCcRpyL9bATswkCq32Zj1D7mbJrVs9toelOQeX7HJBLnPJ49T26Bk9rSvedzFEbB6r2x3J6T0Y32bco8i9_ydaTc2eJ3cvOf_iqfxEK5s8jjJ7PVYhaducawc52azxyEuwIYvSvzMYV0MjoLQrbh81vdYaf81pLAFubyIDQUiU4f0xUtF9tps1-myYx1erc9-ylWFmNJ6mSno31MxA9E21sihykktZem1nue1NdG3YcNGPgyVZvUiw05tf18HT_seHxtOXsIRN4o1qZ827dsKoJS7VOOMG_432qAE1gZYHPlaBjdN7glBYpGuscL1OCL35bmHXlNoAMXtmj3XZfbg7zBsrQBINHycFVrNKKhbvluTijZXAclEPKoZOa6Q5J_DsqvIfLhUHFl0arskrwt1iy6PZxdem0OwIrEDKxJXwVEJpy8rxNzZv-OpYmNwbHdhppHz3Fe5NBNc-CrGgl7169u-HxwNq4UedY-pUPxlO2TMQM0rG9k4qhifQ235kYG09PfCe-WlRIFOj7WaM52Q3V-8tDXW8P8ulKXQ42rTNa8BDpH-Qh4nmBlKStpqMe4-lqXFUJtKz_c_oGKag45TEBGYqoch1qNp_M0HnI5Sc6z9UU0RLill_XU1Zyq6Vi7nFcfy0R6o8wcX8FJ012YtehpZI2fobwoQbB2HuZ9TFDhv6HRjMdaLVOQSLMIJdi948FSsuOuMUme9LgMilev_7-kc1jf3jISkOnVVNcClRqJpWpo3kkTubh5XKYLdmWqDfG5F9UWNfw5m-drRNKI36uwYPPOG5rTVzsZ_hSXObeAoKf8ao5gI9L_ZwBKQEqkMMyM6sWb7SMQk17AOXZzzayUf9pCauCv2eYSFfdp_bMqQjjPp_eS3QIr7dZTs77sabHTTUdFn949Nh_0Dtq4vNAiDmlu_4SnEssy9CmDuUlORPyohSWtIpI8QIm9f6Vqpf7hTQjzMQlkO3FfKs2npEIZlV7mLrRmdW6WBCWpX553dbcynp-Nqv5lfej7enc4BBGtEMclQOST_dniVofoEdoH_452Cy_f0als2sN_0Ff3sQdD7OLYTq7lrR-hPb5BsLJSoxym1hY9JsSFGaMybCCXvVc_AhDWORfVA_S-BrbC84EqSwypssZ19Posr_bz3TcSjkTQWb2ITtznbvVGQFq54_Is2NT5yFpoBHZv2YU8a_Kn5p-5fFooucTrCRxhwq6IQHvm5-s6woW3iIlhFU_792ngO67m_7Wq3LErM7iEuKwrn0shUdtNTNsH54Sjtm2Cu6Nkh52btwgSCLZ7fri14QtVnbiSxH1UjlgC25C7yEXUG69v0nlyr8fxAArTVOM5g3FDQd421JRYJs57EoyiIO2dqypf8r9HbUuEYVNzCWurs9HdKZd9BbjJ_sb7vcu59CaurV_cVxj6GreEdGj_cVganGVY_6ik86B5SpDwwc2vhM4cCMS7UzDu5N2xRRxA5sUTBFqyVgHK--MydTfIjN9l64GzRSQNq-0VYMZtDWrz64R5PPTHcntXHFFYPB_KKhaPhA7J1VPB5si_xoxAcDDHB47bMZmCG-LKIhuNZqjQDPakYL8udt1208BszhtTYhR8oariaXgXCt24x_pwn01eboUkmmL-5MyrapNapRbntJRJ-9HYEFWjeeVLhGKNjMfcvWcRiSrPLD788JGD-wzXtyhrgvs5LDI27zEZqvcN-kA1y3uSq19i8khCMTB6SFPc3GZEqh7ik2UFv_bCaN0BvpZoLTsXBvTynjLVCeeXefH66h79ZUZJj8_4JvJcMsJu7JVROYHas4vA9ZR3FGZTbTXzm4y7JWtyeLQY8O2SQIs9VWAazoh-RKSenB26yg0k-Zs4vlf_7DeYJpdY4WGtL-GmIVblToGUjGG5vRohrV-R27_xkuAqfWOwvTBLCsQ_u_A_9scAKzxhOIsP1rc5bkFv5TsdIPMyy56oERFldWOO5x-qwP-EwHD8L_S7kHOC58Qam_R_-qmMZiLSeDk4rJnQn9Jm6-uysvksml0BBaCfSbrOqzJDZbCddwcoQPtqk7O8Oh5F33q8neGHENw2j02xB2cLpQcEI646xvgDSp4q42Vt-Y9uQNyM9Dlg317gQd_3sIs-0yWNpGEGUUyh8pHWs_Nn0Q7QoECJUOrgUxwTsZRalnxsEx8ZQ0LOwTeOrcaRO9S29M8LjyxGs9IGVA1Rdy3vO7E5EZ0yNX7jQyY4BN9Dj1jRRTXZ4EJVSkVa_c6ufeBAskaldZfTCc3MTHdKcTdoeo6LQCYpeQ387KqlF38yEEFfV1MktY5bPy82sSlnTtNxl_LWHkNe3Gj83u890wwmOwexmXfOa3HmFGz49-IvK7HOMNBOe541PHN0YReYbOzw_JpmroqejLHOoUGv8qrGSttqBFH89oo-L4IYblUDVueZd6rB5NebUcKqh6VcrxFrNE--6zq9Z4DDuCxXsFKh68L18cGtKpeb4lCPOoRxC6Zh50MdnLpVKtUKBoCyaA_TQF3A0TMn5fUo_JNc9-OHNSenZn2tUR0LAJe-5e-vr4Wb-7VyRLZDVH8X4T_EZ0xdiK_oqQvOSpdpnHZwwjLFLvywcbHtSPxaSpMHqcocUWX5hovzSQegafVc3KbfMXOvfti8p1slo8yrX8Q7pBBkjk23MBO0nLGFMHXl0bSxHtGV5srAwjiPPrvbmoQjwq3YrYf9p0knKMJyl-K8ADbxxuI4g_z05bd7uknjABygWOasFCx_2DaWynpzBVzcb6M_HeS4VNZVmvitL0YzhBv5VZFAhdv6QcbAXUpks6AawaFg2lp3Ckqxg4A7DF0zzDcMXKhZ4iPzrIpmfzU1qsMom9ElD7VAlHb8vFb5mp3WBT83kowbkcxfIpfBEO29A4NweFvPlwVhMfgh0_RN9vdCdWCJn0sPWGHZ9r1OsiYF4WH_OastIK8bWHP69Nfv3Da6Swa6OB8uchHAWkontf5w07Ea1IQJsjkuUrPJaFPHA6eioILbVkxbUcp16CS82f4nWhnFZmpf03alrPcPxVO733wGOaUSaILYjTRoZBGFxzsxWtz1Z3R_QMQqo4lGneqd1tVJGMP_cJ5wVWidgHkNO1KH5PtW3gD3QPgcF-PdZLRjOpHyL719l_KQxsLajQa4tmAQqqjXqjWcHe9Qv1wGgtKm9Vapw7uFlcp36wb5s3rVrhIqZlrmxR5dW7A3pet2VKAvTBXW4fjHemesslXZCWcs3vr_unibSkrn6cJ496rSBR5U_LRRTos0VrVRf7qqb0rmTTppdNvIJqVUcqVbX3MhJSc0E_Ba0n7yfkRwBb5QxZEWY3i9YGUMJ87wrhT_-iS9Sh5_XVYYfTSMiiDuHLYHidwZ0k3wg2Te8XOxUeGIQ37vj01lyU7cGuqyF65xXiFplnJFmBw5mzqHiGWuWoNp5P4IqrIGqN_hSdgfPDrRe0veqSbk5Rk30gtrtGt7qlw6Y5ujXtgolCrUvVvDgZIREMgtviUC_17hKO6wDyS3de5VXhmczWH3ulbsVLat9qK28XSiphFuCHaAOp9J9m6LOMWLr4gYhpI2v43NSw0EZG0lH5AImQSWpcwXWNLSaXC4c45G33lAWrKjKj_IVO4CyK-pQfPAYd_AWcSt1iYjvR3qMkTufUQxoSxZYVV7NBjX8so3Vj-sGCKSjPEQFEdXSYq2xnyAk6urdcEqg3OQgyCpQ-kPZGMFts5h2IYQk5cYacfWwcn6TrBM0yBEq5p3dvplZwVqUtnNbKPKXujlC8xHfgy2LV85lGK-FNoZfUO1ZvGRhX_GYNQ_KE1r6JHQvI2TXcFt7-Z9ELoXqdwV1lTIAwWsp6wm2X0ZfE0wsZhERCIpGaEOeYLbQDBwFq75ruIrWDL-T5-gSb_dc8PpXChFi1GH6XVrVQwQ1X9QcSJFj2JxeRV1nNo2RJnZeASU_4NfltTxAinOsasKk9GB8AX6e8tDqC-yOIzvZ8vG0iheqx_y5vVgoubXq3G3h8cwECHor1YbIDhoiL_QFxMukC2sbs-FmU9wDyZib96vAnrvsxNMQh6GOhJPTKIUYCVtHvbJARgTMfBo4LcVlb3AuqQ2E2uaHDP1Wcy1qP0SCw-PDPexCkbJ6cA5YShm3kOcxx8k4r5DiNWIyphb53WaFHewreVc0NFUIe74n7svz__JZZE2QfcvIj6l2aKxDuKxv7grzg5Evh1XcLJYj7qy5gZetms5Fcu-aT1uQZxRccpuIkRKd7urND0BjzN-eQ_YB4LoruqQ7wyX-vIJIFIrbmvjAtHny3Bpi6olvMMB56MaUHlXvR0DRSD7XKA8GNxq3ptC1nAl5yuu4TNAxLmbT-YSw1h931iEXDv8jBw7209Ji3GG2flzZ76wqrS80nEW20J8R7Rz1db2VkRTt1aGjHhmHiYDO-6M5uFBl7Th7iWhM-Us3hE4yKmw1ObDESQfbQuryMs9LATzfgPRtxDqmJUHqclJt4o6-3q5AvlE-AAZFpRlILqWTXl2VBFsjAwz7MRUw5fy89eAnvrBjLLw790TZkRBPBD7zQaa-8Zn8jQTSfnJWURJzzff3BlS8M4LFVm1uw-ccVihI5Xl6wFr9ohL2J4OepESoWbmbcviQskalLbhBUhweq3BoUN3LflIE11QbXWl3DF_GVDEFG-mWgB8WPoyBcAZAKDjDSpgYrZdGaZObl6FKjduEZsKbyaCEzVoFglDCuTkjwE1o-wZxUbsVd2STWd04VLgXDQh9PYxCF64nh6g9aIwhGGtdL_EVdhAxRe9QO2y1QvfHkb3Y0cQP1trBX1lR8wu1s66hYiD46J-jfHiK09OKlLMxmrGIS8yzF9SsSIlOL_3cTbQY2DaP4J2qHbs-0mbVHqIsF39sWDH9I1XIwVH3XTsqvlYdOk-KV2-g2IVqN8r7j9Xn8sHsfwctkIMc_fZBeh995uWHxhN4D4EfvWlyTPr9D5xjUJkl2gFp6iiv6DRLyE2aV1Jpel3q7I7qRQ1OGeMVteaJZIDN5w5cTlvY5Z3Lhb8j_u1faO-uiqbRgNr4ZxmnevQrXBYCn7Est7CXBwu-mavmXAmTMII25zX9nmeTVHS-ikxfyU8TNtYiBJoumhzgBJknDvfnm33S_L-r1_TiGLqDGXS10U8XO4JkggMO0bGnTb8gq_J-V7OXLwmUpUuKRFLqG1VxicJcMSTmarRXw9n-HS2-b8xHWfvEoIIs9TeGtkmkm6tDXxpNZDziG3wyfWmTDnQ0UU_oYY_DyQZSeAyhg8CG8_5q9PMNfVuF_Ljkq2OpSThNHO7GgzTsN5ilsV6gQM87VcHVHngQseb_7Hwa62ipVOV3Jb-axFGtxAVeLWE9uFTJZZTnTB0XAfXdps7CmTDuHsEd3zdJRatCzL7NfAGJDcsXU1H_-k522A0s53Cnikoj6JQ1McZqe1auIX9YcLdWHHCTHLs4NrZqEKuhlvDED09_tQsmvMS8I_eXR-qswbA_PbSUJwazSRNpwWLeD2gw78eDO7vvRKIl0FclNEzYHh_hlpVScDtmPwO95ANhVcEq1spwU-mO1uAuHPm-LVbOu3qD3AZhop992W5IZcZa4boraUhkGy9RfZ4LcCJ6maCA-oJJe26rwm5A3jbZprw4vKSFJZK9ybS5ZsQdZvuuDUY5ZXGSu99x8uBJWidilzhnOrvbLUgjJk86k_rV7fbD3zwA9Ai_Oe0rptAW357sHh6HnClx5XPrs_q6Z7oZ7bUxkxqmjspr4I-h4DjU3sv4u6F6MjRgRyDjimDP-UU9p8eHZeYu4VJ8yjrirIYjucUkfGfzCvHCwxG6dRqVGtDiWdSNdd-vcAKJ_EV31_AHgY491yT76uFCHSdmNlAMj9OejBW-6amudzcNCxNZrucre6wZBjaSyvFFCxQ15vtZP7JFapvck2PwLOOiNqEVjD4NITECzaFIIajwNZ2ZLb6W6QaiRKCFfPxLfxFRq-Ha42ztrVe-S_A_5oVxbhd4CO72t5rtLXMu68B2nrZqC6xtlMES0OzIh1qRCRVZE56_6RNT_dRzkiOvk1tU8DLhiepVVxTb9uvfXN2kVuY4ixb1tdqdeikgOtHaNYra7lPcTjNLDgGrsVo67OpcMWRFUotq1HieQ0vQVNjK7zW6khDukYDGJDR7W0CA-wD7abfJNkggjiuTm1LBywYgB4ENKuOUV75Xf_zu6M3E-xczQLbbu-6bzTzoFh0GTlJmWW_2n294OwvST__1HERhToEVKceYtFZa_b9bC80PMyF3er_Xh4-X8lDOo9pdb9WGsx4JDQj4w5zpw9nXHm_Ip76iWQotf6sx4pJDcO-2GyZV_3-rKHams3inMrkCaH6iDDNhGgaxY2XWB5QIvCgPEki9akYvbFyVX_p2tdfeVfh7Ufv6PhgQSO-ROslqQcPjouNyxsHVz6g4kb4Q08nQOo3Ksxn_15EtuhBjzvP_RKIlq61E_RHKOcm0q--f0dXzyjrRcV91lYsFXOMqtZYs_b_PcQ5ZnNYjjpOjWPuWd1s8gBvtgdcD59pwTG1mwsz5ZnL6figWegyrCP55VwnZ0HgrzdIB4vFjo7BmhkCisg_Siu7zUM3RJecj-Yi3AgvBJehLrgyQ4AuhO-uEJpRoMS8mfnlo2MseSXscFUFZlXCypOK97AFPQO75P_KipUKELRURY1x7lV5bVXnjKPcdEd8GLVpRnglHX02ddeGju4YMXU4j6y91L5iohEtX_1VSgXsPxQvQUlPvfDQHx9jqp45hCgiqQiiaEL6nIMZk67alKUL0vpiv0-drqmd49z1rs67P-Zi7xUJBpGtMtXL5gxxpXg2T-LAkofaU5ZrMhLLM57X3gU9tNciulrs5n6Wt7x-eXsTSPylWavtploDgmWBBgKY8-3eUXEf2FwWL4FhKQqDdjXD16IyvgB62cHiMRzm8yY7JQ1BzyupzKSn8NUllJARXTvMWKB0zYGXEQoNt4R_eAaIuhhZbUIaGBPvS4JYpnuayyEyoLUfjcAl--4i07rK6jk1UWf68E3VzVRGk5m1FZpRo9hXtppP63mr8Mkf5eBxilf76SQm4cFI9gYd0ooliaKuQOXFUbBEOPU-ja-rdkB0gS78fmwYOB_I0iQn2CMsFT-r098SG8JDNxgIkRT9H92ihj5wesW3K9YQxKHIH0PVIkQeR9_f1cIABRtfDCzb7eJdv4FikACoVVjjfdbR7dn8Ljn4CUFvDVo-gEGOeQI6-r83OgwsJgkK3NoEZV7XwOrANWsmHuF54UurIQrBQjGgUVoqsUZTnJxZhMmmuO9waNXSt-Htay-OLWVUtnrUFgtStJfz-rlJLJLB7SE08an1lBAwA6ek7T19p_bqecQn8LCkn_FXYCXjdWXIkM8297W3ue1Fk6-8ErLelTeuTtc3X74eutPbyo2xIwpgMVC4yIviIjeifPYwB5IsDks8VxyfaTC8uBdzmCVCKTMBZtzSQDW4y7MnTADMELHQjQYXj8XwABnNt19lccwBhCloeGCQy4jA1cQUt9vIQ71HXyun25J7rayezNIcToOufCnOwEJiwxNNUoMCuw4yVSM64JNv31v--mbVD5gxLy6w_OsttnUUtGen2NqF4MdSS_hthYDYn5inytvwNDkUiVJoKiQwAOjQOZqL643WXZDIcBiK_XeXH761aozcCvcN-bYKtxmWA2e0bOi0Mpby1Xrt_lRex022FTk1UvNsXTesvIHP2uSw4mKoaLl_Cn4jmS4HEz6N-pr-NUtZVGHmpAPwfEcTKgaUYGhwgEL4LcPjdrUSOzPmvJP7k_ORCNQbQgI3IbbNKp8QdizzU3-ew9q8W18q1gjDGYhjxEUe-tNLKXEvBFtpVjCqsQw-6lmfNdIMV3bBN1K6FkFEeK5rRrFJA7rxqsA2glt8Ag3Qb14DkhStPH2icoAph6lLegU0Bfork_XtTdk-io-GAvdhjN88IFkpKb_9xeG4N_AGr0LU8N5bAPyy_eIXwEHppw4GKFgKtvsZ8sa_8OAZ9v3ede7nfTNnfVUl4L1LL3HKHVxVp0ppyubSSIQnra3_RRQQPXjW1v-rmxlj86OeW5dLT5xj3rAEGMhlR1cfJGwLbnUHbsrW6wn2qEfRom68F8BAMFTfj8ewYQwXKipq4OhLk9fOxVeKqIRJZF0epJLGyXESYTCPvdP-P8gEfXAwknVQVGORHDEkFZ-tM5DDFvIA1OSxhxOMwMwByEIw-q-KpWfpuMN0_QdxyKtXjjVj_7hD-Vsh1WTUMjYXTEOS_xTHUUlbM1FxlZ7fQ95I9UNazVP9isoxbj_YHtF8jGBZ3xiyzK5z-Q6fF8BxcoVtxS0UoMfUxn7s5M7LSyuPu3YR8JIf_F1IcvknWQOOMZnMBbDR8nfv9TUNK5lcN3ZMlMROIP_6OZSUamB9zcq_jSUhjPaahM0VnHKuzibCNh33QiSDisWm0aC3JsMpXeRSRptCkGbLzbSYLtlyj332oYdl8wLcUFzNteqgSbEdqcOXi5OWzFKN8BGKzzatgLUK0z-uAeKr9np94bCmbpW-ShmrmaQFt5PtB2s4TfmuOW3mQA4g-gNffEbFhH_KU5b0J6Ft29-z3guHns1OaZr2srjTyWh75sQXfZ06PbizMbaVP0m-P5nFrPWEoQ-VXKDe9LzZRqYVdmgsYvUUiIWqm3TrrBTzrH70QicMs5tM_nzCZr3pE3l3gKmOjGV5V8opdLktSGHNd_Dlm-tAgdtVegIpDHcAKccHP-fUX_2i_TlnGIO9MAxbFGkcEOiFXrKdJVZCZ2NBMWCXajVm8_6BPXgsiuLIwf5UpPQPaXta6HCTI0h5OG5nD0xtIuHxMW0qEj2NhcAuHKruowcDmjgdQxLkVCXO3J_dgkR7D5NZvdcRFGj9DtGwNiIzTnT41c1psyimOYRgoRrSwlM9zq-aCUAutA6_w27ywwkltfGEcsjazfqMM-c-OpazbQOBNt3h7ULJVV_t0vlz_vEGsHMiUwUCRRpjOJK_amxIQwqAQrAs_lwgLSUPdK2XjIejDQOSaRGtnc9JKnnjQpQmwJQNgZWeir_D9o00zS4zjkEXWdFi6U8z5AZq1TnstAI7whGWL6F4hF5W-UMPnzroKrMFtH64hB740xyAzil2cma6p4Fl4McndfNoRP9wt5MjwAu3a4pjOv-0N2N8hQGQyjLOGEHIqS3dpQE6w3Qlz8m6aIc7ONVvml8DVytzN4FMlbZ-koiSKzXlbtUtzhNqQnWtAG6EmvecvOn4gBK4rdr5Gm8BmtsrwuxtgqkgeS33AcLBPAiSIuLUhfpksa9PSzTHpigGzDQbGL36IFziynoBfxbVcMHawW5xwIb-vWy01cEVcsxDdHpDdBID22INrJNSWWj3hJCNk3KLUWka-DgDc27NQm-4PW57hw8j2pJT7yt3_fmrcrxKR4d1p4oAdvuhRWitZ64WLA3cMvKXBhyHNZ_Tzm5ZmKGExPhuiVsVJ9QCh92QD0EX9D_AXFl6zvzwx1jSKiuKFJ6TE-CLyuokzdHFEcvWNVtFTEeUy2rpjHZDjn4I0Hf55zPwOYZ-nSRgL0iYFS4T3eSktNbAgAt4R1n2DeMkZQn0d4xF0Qg_5NO2DhyHbwITuZa9nFkGNOguoqMgQ8599lT_DTxKuwPu_0TLDUIVb7xlh9ELC7nBjFXUQX6yYv2BkQEekNT_o5E1vTn_Qo0SWGMKx344B_kvDAjPhD5mZOXRC2CZTUtG2iDeWXR03TEbk9jVgbyl1m7f_erS0XBglf3FH90JDzViqTl4TkKZU1O-ksEyI7af6O1Ry1UCDmHmOPCbi0NFZjjSlRpgyVLcV5bqd7PN3R8m507r4K8Pv-0FOm8JR_THMcmMnAFZp-aZUwKv89Pa_y__O7AxsqTOixU1R5sXHLiR-iCeZoAvvA2BAvn81dv-GTGAqonpRz-0YEWqBj6kaEyNOEGdoLgSIEsYW0uWC5lNV9ZEKm1GsetakwiwqoslnZdS7upRIlEKAmiqCl6Ga4wF7BHxgLLQlj0GzF-dzRyD6chbcopPwFyDrBmyE62ngic_TkgoPtF3loHR9ixULm8HJ89D4KOo_bMO2VCg3IJDh3qQ_WoqlLL9u9eoRa4B4kKOChJ_97MNrggxL9d7d7EL1GKlk8WVyC1ORpHoTXjVMT8xG0sxjJa_bnagWfpDC00449bD_Kdqaa6YcAFCXF3siteLDYjujNfJ7cz7GKmy_K5G0PwFSxWneAXBrZ6QGwMRIkJXi8EtEKb5MdaV6Tirs0cxkGh07mcHg3EhW82zyg-TmO6bp_zZg-6c-9-oOeUYnEdF3a3weiBcVKl-MH1VVvfkQrBsMvF4KjWSto2fSZjpjfuCy1ZY8tsdTZQks-xFWqKuIu263vPJzNtj7nMG7mhl3yWSYQ5rQeSWkos2VYpdm-j9stHCqeIRvQ0EtE0TxKQkAS4nBUuRKHJ2SkpWAw9GEhPJbcE2P3vivmAmc0oMPfmkBBVll873qZJLW2E3PtIWXzVmF2WwXZXEF5Tx1upY4Wypp91NGgJiiLPK8Qct3wqiyukOXGiLOoWcB6LPHU4qocxLLnjmAn6eQlO7hs0NLN_4EK1gSFNXMrjDKsFHKu5_kv5MY1o1RwJl11HoBbLDhSiV7ObjfdqJ6MSUcsHVEbJyIIjCFxLAHvntoME3NBjMnIXUmnipOF8RwkQZQ5uG4UEWmsmUK6Qs-8zDE8TvKl95sjVPHYrcfOA2irggKR7PAekFK8oiV6dl2aUxmZqX7cACl_IM2D9ONwzd2Hz-80nFyciUKUTctY5_aXY9QHSNKZAWmAXSuxQraOzmFUvIWGXcx5FlrLEIHGF8812EPT2uWEEmNCBYEKmQOi6B80feG4muBR9dwGdTYiu5wttGWF_ixJs3aqpdmXBzpUFtCPG7kFOPyJrs6x45_Txn0z7-kL_iyoyzyzNRU-xl6ODcTxbqMRvqI8AFD4IJpH2vdJ_rvaI1Q6WtT-xBzLNoZv9G94N8yFG6r5QGED3BNHIt5pOaQTfLwysmgy9E5qfAHQKlLPgXjWarEiC3Zp6hmQf9By56v6-Vs3Rtixliabe0tc8dnNFMLTNz-e0FMt8Hl1KR2JKnLCkXzW2bFOfMW5KZaMLVI-0AGEin5p1xhrnUvYepRDVOWjeIG1iVQPTXnX7D2shOGZ-RoQwC4n5zAH4e4Zoktc8C-omv6w0pW7xSp0xXlQLn1G7LwIWSg5TJ_jkBAPLoHlj5VIsc1gK7B0wiYcubgQQqsfSq1WUHZ3XDrzmu6r9TGvmccCRRXhZI-Ybz7CdC-9_YPsgxt5RcmR1ns435X4ylDaTXm7O_jh3aS2xYqlTNBNP8athq7O16LRtoE2xEiAMP0OIHyhJXwevayeIImCBhxo8zRMyDcGFoH9YdQV2jBltmKHRDavoHuDQV8VoqisJwo4hBnv07jldisv_CYDKpKWWWFt0QAzI0D0v3cqrq_bGvJV9cCyKkiTSf6vI0aMeKzjOyGqVqC6ILN4sFVpkCc1CbvrnKEuELWoTeW1_1Dri2LQylr3CAxgivgIb2xsaNtz0NUTbluOIJ1CX6Q_IMit2h7Ar6qthcLcEruKQaBclv4uBxBOSYJOQAcUPFi0dvtPBTlXB53h_9GOliTKkDE5AHava1LqVejMufQsOzxVqjpCUvR7O_RmqndYy0rPL8pv8tPjwZbRyy9Tk7n-t77iHqTtn4Gtwyokl0c4u2vgGjyiO8kMnuqVkZlfr45uGIyEnEiYVCvsc546V4o2B4UMhOvicQEPwvAknQEogQv48lY8DcsGrU4Cy4thl0BKh7ug_CGp4PVe9PntNCfslE8uojpV6hPITIA6V2QGclqun7UB3GUjNItICkSfykAEc_shhcS6atQ66AWjevuGw0sACOFzKnD1O3HKJcTKEsd9yCw3cPrO232fSGSKfbQvs6mqtFGMKyU6XwJJO6SiTCLaH4I_4UvlPtgd9DHKxWXw4e1Bf4Ufe1ZbNQdkK4v7wZL70Sei6K0-n8tlwdNd5_bE8fvuBN7Ulj0RM4JXTmsIUQjd2wJvW5UHoMvHISFU7XzQnAaH00dVP0S-NMTONTvjabtIK1Hm0UTuzxSUG14-l93DT2p0rMs6zgIOIIy4O1AWyAQZNrL_l-funbWx-PKcor4hsZtb2T5pVx3EE70HZlQ5M9jONSNyswNYmaMh410tAcNlf0RG0brRoz24OjgMKg5ZmPLrv5W6NVHOxj55vmAPvKB7P73K-ZfDtwAUQ7ZtPG-hRLhDR24fugUwC8t15ZlMEm_LiPNABTwQevQawsTKLtns1N1BTKqn-Ub286z-qpWmZ1DNi-uhymXoF5gqSNBVO3BTVC_C4uQpEWgJkbpaW5yn5_t3DGzGdrJCt5p8JG8DDT2IinG0HebrtykBRFS0a2wS1AtJC7Px-uoe6HpG6AQTolkb__ms34jIJ0ugnQWYJA14HbPHp7opDu8uYUyk6mlVYw_vYhd8cYKIFrZQbfgYFqk9lYGoPjiHElzNByxXuxiHo2UJU_hbki45eCtSGjPIIY0N1KevfhlHbREBD-pxFaIVO0dQr2Pbo04VUJX1PudPZ9X-QfKEKR6Cag_WXw1-0m6_bT9aKlaLK36WOE9pUXPn5Mg4Inj3k4QNwZqP4X7kDme4jUUdVSDxBkGDYN4AEDGKzpRnuVSRlBbzFMcENYUoXv4pedcOFFmw6mz86XfTgG2R98OoF7AoPXWBxEhJDaD8pIrSkT96uA3ljCXEhkMlhxdceHPszojHxxJyy4VwV9ftfk0acEmU_4VJapRlQQdEReNY1BKdTHTeAVeixPegg6xN46D_RqTlesiHiGfsshiIoehg5f5jk-qATiWbSclPGBcCb-W2E5voIFTGb1z65vbRuWIfG2cCJ9Q9W0i8Cpd74ThoG-NJXIp2-HR1HWusVQdS-QXDxmNAuC-epe32nBRPPoci4HYZZ7XfMqncWMdsNK0RDRe57WjOmooQV_QTv4thVsBwHhgaIjM8y4lqBoFIUTP4_IY-2dpAjXv2vha9zhhzva3zBv5NEbF6wAOtQ5U8_M4qSseggGahCijwFaspPYwuGjmx41bA6fABuSvV_ub5Wkw2Tkk3Q8ijfixvMXXBeOSyET3_8Ojt4tvwHiswdg9PGURMdCZt3MjUZY_ofV3ZFOW_JJK5MbBX-PuzOECvtVDvFUSOZQmuXrEivc4P-O9DNMryr2N7sFx8yWHTzU9q2Mjor3amHTWCY6uQZTCx00H9Bujw3xEzUs-R5wIwgp0YAy8GrnhmaKgvd7FjsCst83Y8mZpI6Cp5p8Dx8ZjjWPps7vEr2VTibHP9Fnp3iMEnFyUUwGtOSxpASYu-CY4DntdqCBvP9XVBMWXHj_hDtqMq9KsLbrYS1u7ur8TJ7tTGOm8V1CFyOU5lAniFV4SLfJFZXaB7vDjBI4gHwZJjxxlip_B4pb1MFyfOEeKxCjYTOn9MARocXvE-KHeszGyDcTRqkmQz9UzwvD5ZMRx4B4xykZFTR7mRkhweOBx7B3mJAcKrbMpN7_KpQRgIXF1zWCfap-rDRPSf15T5-qXdAE1eeDreSdWDjIBj4N3t02IeubFW8vX2pH15wSlHiVoTLnao1vH7GtB9AsZ6hvkByXMST0_fXlmQSczVCHsppAbfM2XX455NoEdsQhYiHK6qBI87T5Euf0auW4W47RHMXzW0eFXa1LpGWq_-Ez9l4CAKVS7Z9-aNsOvXz5w8Bej_1SDQW8AqLOLNGIwtVIqQzMMc-8JYr5lN16mhzUZ-lUrW-VxitC3sGHnuMX-veb3oGQhNtk-0fJV51GtI5lRz5QoWJYhtLCeobftM8x4J8bek-4-Z24VABR44Rsco-QOMBhj6XVNEEvYzXG8EfAB0rx6f7v9qtjpWsvNW7oRfWp13aMZ1Me6y8c11WJ-uM9rNEtUh3tz38ZAJMQOOLP6CKJqYFqnnlsc8L0uk7kaGvTbOCJMxfZmVoJ1Y7YXYO5sf0ZmXyi_AxJUSOgSlBx_6KEdHD5mKvwY3sMzLj7wuO-keiSbHmA7Qpnp20XZ2hoAZOxou6QaXU1LIrA5SJGG1fjMWtpXLmxiUzTwnhjN4A8v80t-EUIReDLLiQqgKoko6vz30AP74TG5rEd2UlaxYxzqwD-k1DUACFpm9ZK59Tvfs7ZBVqxMzZ3E4tWauGpLuWC8xQaPKT21935Z2gZ8HlgKeP_5flbYVL2od8j7zK-N3darLdMj_Jsw8xC6CWefcbDc4nQccHZOJIKmztwzCvGRiGnuZYMasT6MdkGJ3BBajH4MGEWjSrujALsSNuyK8UJugYhHEkb8kVPYqTksY2priWWJ8X9jPhHKt9-TurxEE8hO0aHEUloJJNrByRdaRvv75Sf2TyFYzL55IOwrqbD12tTp0T8BxKkcgc7OyWNe2bRGF0xaPi4kaQTmW_Ko8ibz8w5ZQQm1N0PYGm8LM_qlKd2ojxY13WIxuY11euk34SfGsahEaZMlKNt21KNywnkiBmpwzChoxF1cAeDtjhVe_ilOZHtXpJfg2zqb8D5s_xifQqReu7nN90KY3sXt0UDGddelRlNGXlUSUm8UZ5XyU96JavvVJw21KJNzXZMsbL2vZRRF7SK6RkgTpgXuFVIXbtj6qm0n_SD7Juh1FaFxtUaJO4Luzi57t77KhB2SGhtO3MXtg5E5Gpb_M0g3HZx44zmoK6823E2sx9RfPvri03dbYxSEWYuS_05aX7sxnGCdFbAseuahrMe0fZOwtkcoYtRbnAbHlOQ7lscVfd9AhfoETh7zepRhF-Ndz9coRdsTf27vK6klXG_0c-xVVw1tlErnt6JPgWUv40DT0-_SIL7tQ0Ex36sOvtbQm6dkh7XdOZcXqdibvySPjpOEt9t4pZYcvHKy6BMC_8ImZmq91TGwGu-9y0b3_L7KRVWYV-NIcjzraWBp_AdGCBaVtDvahie6D7Icm507VY4LGVnW9_pNEXipqQOvJKgkOnofVrKwk5jO1a9v0qxw16wOhTtxQkIFg5vwXkGXWiP_0sL-a2-mTNxf2NdH6aXesTrDp3KCbD-htPiHmDrIZSFTULgPrpZQxxirfWt4uJS3TX5rdrx577REdwS0rDdd_AAtcwTK7Aw_ACvX_uA4alTzVw-ck21hn9sB8WtEFR-lQRDMKcUzhvZwUJZZXuOOsYeLAgL5CdcZM5lxB3LNVRbVzz4JZwJAZ1oD4Bh_FNPxntOZSMURhvPJe8TaDQAXNVvpbBTwVdXL0uH4lriGjCI57G9dEEIwITAWfvkvpkUMrDbrwQnAKulQ-ZO2VSb_nUPNZ28xoJ8vBZVpAvDSSC3tfP0lXwNxfb3vS-SUcwamN0BRzEu0ZJVeRa4nOn2A-trTM-f66KL4R82oti5k3qyhgsYIDRI2usdUfVZdOUPQeI39WUBNtd_W9lLXQbEClzKOUHXG1VW5HP1TgduuzaFCO3SklHqI-wC_mu0keueCP2hAlI0yiNJJCWPMiZCkesGvr5NUrNG8Jthi2GDVFpG-dK2Atuy9HJISh1MqAmtoEZZK0v8SjSYjmfasKbEc4ROllBtzZJBdcQt_MekVu-f03eD6fo65tI0k7Xm-wEarn3lyMzGnYS4tTxJPDp-gYCebSq5qQ6Udl5LSM50o5fqkgHnFv6ba2mhDreHlCQdFF8egFs-RwAaLcOKecRDdJlq0J0QJccderjB3k7zDnsy0r3E7Y6QDNyJ-5srZszgd2_VU3mRecekq9LtIPMIeWmvu-y2w-LEamOv1dijlU_g-nERFK_d2-jCwqFyOMVZf6qqofr5oGuPA1tvviL7xRCyJW8c1NxOPBKsMvC4brNQ68g0kLFY-BcxNDV5p-2LUCyQ6U4Ieh4PzS3nGgrugYQgtCaG-DS54VJ-eaRMNjKMH8r7w5S0KCZ0Je-Vay5RGfeMc5zk-t6BAodZ9sAJ_RRkQJ2Ot7dLRoMgC-E86mX_vMk107C5CyfUmtjSefYYzw2IFU5xP1eAvyXVkFM_x_GdcZo-32XXkYxYbCOBzXGQTfyNiYdnIxdMP8DXBYIUQBYZIDbacIa88-JeNc8V_DJlPTI1jgjnCY5ZmSYnJptx5HDjQ8pn4L93XWtWwrcFwzZuB0h-LTuO0KkARZummMhpuX4rJNtrvo8lGyACRvhVPXJB3dUE_C-DvxWfY95cN585paFg1u4R_UaHxeytIGZ08jIt6je3N_ruYYjyxusQOuXFnluRI1lcvzHvlEG-YnMduR_czU_n0oyQCpQd8AfETCwwFugUYeRgjZjIBFffwzcdMRrK2Os_pvmNKqnVdZG8b_t6bEjBoPuNuZnGKrPi_yxPUOppCcy_X9fCNCRF46PDDgnfVJ5vVXdqXrBPrUYlQ-d4SrB2-LYqvIP8Hwvv6ESiH4wu-_qKleX4g553RtpQPVEta_64t-yKn2dSDc3F0QAZ0eWNHsHdpHjlCDMdBa2g11XQsy-_SImeLxbhaCL7xEPCBGOQJ86IdxJRcNe_iwT7TR4NkT_KvxYVgOMfwDdp25kmMC-9SyZ9SLha4OOVBemD8CqaE3SPdiZdYXBd2wT9E0dsyzSgwUH9cxJ9PnO7CV2suTQWyCNZ89gmLRMLhwipKfRJQXReatjG8-6szf9TP5gxCX-H7z2U4pezmkfhfLdM2bD-vJ-exx_zTvQLp7-DML1MnShfMpN9YdB2hX4pPw42vbRlD3ztSHQkORSNOARVNaqg8MlVrI-4ss2k_TX1fCRqWgOJill1Z36jVsGI4E0pk4NJ-JpPrP3b6o5Asi0NymKGydNNw6S2VL_fdNsavuErdg_EJeH-F3Uj5FmPK94D-UpzzEBbmS68cHLXJl1TApEybAQDjAjxmSRRmrgSeQGJW04DyOiQgD0_Zbel87fvHo7lQIvfmu_vZ16ESWT0y4Ka-OgLZ7EBST-SHwJa1aJGgnxqDrAS5Ix-hEBmbZeb97AbtJuFnAQ-yth3aVyYVCjFmOpN1wTp9a8lvsyU1ajFUTVwTJOgrNLvkr6y_1hSPb2v6rMXHH6RESmv868bDBeXRBzA34HuvPskzaoSyqXEXyjdebAqVLniMTLUNiqJIvGdgepZ2i1zBJ3I_qKdrzgSlIa6W6LGiyxMKnWPSDReOqeCdG8Qo94sHhPOglciMSnFiCEnuoflVq-DJ0CEc_TrUx02Pr4S9DMyJeE2B6xgoLZjpvEerNWJoIn94WQ75UD5XtqtLucdOuvudBG3waAzNOzx3ZeK-W87_-ZFvBU8vu4NvB0Fe36H42UMf1rA-2lwEu_wMPoy2NolHjGM4Br6AF2RctxY0YrQtlziXJfO8hKY_qQ9mN1Dqw51o01t8iBndMD0lxq5xY_MPZKe0vJYn662rsbFeeBwGXDl0RSBH6CYotRBsxqxAd_SWDTBWXnqSvzyHLw0twyShoeFO2h-4ih98gkBcVmFCzfwk2c32lcQ8DI0PxW2u4v3D2P5KQZ5hPGrlmTKcqcWdwpbMIbvpqyqUq4bo-NaQl9o_h_oV49bCqJLyn7ftEi_EAplzcbklGH0yh1NxXAEb4vfpUWktwFbj3zYc9HKFNst5CuK32h2WJpZ3AiQ3RJgIPuX9oAUaBzQQT8kwwC9lLXIibZ_MflXbEyM4lmxTsA2g3LgAwIaV25vS508Na8jc1AllWs5MQJNoSDYgML19Dj5cwXQrp7AxP9fsvR6TJHa_rFxssWBtsxV-EWc0IERnY1E6-uVditq9kWbzDgC7bMKXcnrG96b8aza_78C6kwCR95KUmjiRd10KzM55PQJP7EEUYMCFUhpEoxTy34S2DFfMGqCSsiny6oOc8dide-LVfM6w3ymXQSw7T4HjXbj-sEoYvvGxlj-mJp7ukUugWB8qihTCcZjUvtE-CwLn8DSzQUwwd7kYpXqYfoV_z1L5UYkAREhnZr_k5SP1bdH_TL8Q6ezyqIUdljJqF4tfDQpCa9frk0-LCLk86QZef1X3yrnfMye_pj2Tu4HqbuUbcoHfS-_sT9D2OAVvKOCSm-pWw284HtBjD_wCbngwkyJkJl6dl55BoGdb22CzxGX_aZwk0X4diviZ1zUnzuthUBYg5LNf3uR1fLRmVDNo_PNt9GKV5COsiHB5VKXqqSEnetyhWNcFAuioSQFU0BbCTmzbYWYZpF5Gee69LMAvbvbjKfp4YBx8gomzc2mMGGHYWr0h_CeFVJe4HPfaUo3ECorDqQxdv3ivTeurNc4U6jaij3A_uGo2QhpCHsZrUFqXr5EQqgszG-P3Po7FkU5k4yq0AiE_MsovazzRxGlOsuHdYCqQ56lIOXUb9iGXjketOzStKLrWpe82599zGuAYAvAbH1dVFG_a-jiqETTCcosQJxgWqFaxS60lbZVkNvp7DZpfBbilShApRNsEosv5wUlech-tW9D49TcAW4yg7vIy_pytbASuk326HZG1xQ2UIfevcvk7J3mxqmyofMwPiAdLlVhTtXlNFsNOwzcMa_FP99U1adYzTzigvAYc3yp2uKiC16MQfxzBUu4DrfSlo39_E-Gj4lhfEQ5dHyu--SUATahl7nZBJCW1plh5VPvOy02PUhctQahFMa_XHYSrISUYY5bCKDUkXRlLXPUmLjKaNtAnrRB9b94ON0L5YoyIOx0qzdUKD1aPUQE9cc-Dkv4r2934E-AowXgPxsayQ_u1la_jPOlyg1O3oFXM6__GBv37kAa-8jUP9aL8SQcmo4mm2VAQrDMWf3-pKA6WFfmzpQwMGDmYYYQkQ9IcAmgaSXsYuHLy74ZyyguDqM9TsdY4cKNFOq31fd_WdT2dWj8aZxgOrk7kQvFqCE5l-W737C3vR3ks8aw4GWFPPIIxQgIHoVR5TB2-P8PdM0TfK8LXrHFzAPtlRL2vt4x_-BtD-GrvYy9h6h6vib7NILngEV5SM_cmXNlzuIHD0ZUoHT2LTAL4IGa1j4-q49pw_fMtQiFv934mTXDn8LecmEymJiiwyb4cecenGVCX8C1uigK9G12FJx9-yZ6OzcDurOHlX0OEtNxgoTL5mEEppkIOdHQK5DpgK28hm0OIHjTFiwW0fusw3yeQSUodRpC6dpxNjppa5iPQPxWxY2bSxKfIbmzJ5K6AbIFfkqb_9EVc43bLvJe89aTF7vJ4a7pwqY-VFPgG_UZrEXqjchhQB72iyJNaN6_FmUuFkn_xu_q4rW1QUVKo3L4I1TjD6F_FDun7WrGGVbc-dnlWL2EdVbX0Kbr8wTPpxYNuocHocZi6T2CAJVCcWTHcNcLBVreWHmNGQUspoiWZevgO3y0TUqB01aIzF_QppUl7g7ZdIAQCFI2e8DaYTkB2iigcnxSVlHvImcju5a21DNmwxHzAhhHo9b7866n8SqoFd1P5ViOd-yWsP7ZLSFyg5AudYRDoxwqmtrlJq0l1m4WUw51F4yDf9d45GDfiILFZeVzJ8LBY0_f5QT6juBDVWY9q9nO5No7c1S0GQvlv8ioCJu31iUQncASYdIxa71cRqab2Zgk23zWLS1uFcoIFhKtb2zDF4GlOScOGOKzXMygZJAB0igKQkGDF-GgTYkxop6LKkXgVgkwfDxBOQQROLY3u7H7oCR-EQztJOz6gw_WhxonarYf6IZmvCnbqD0gLO7_Kv9JLj9RAlH9H8LzMdoDziVm48Qm4m-KwHUFqRiI1SB45T6DSB0US582-SbzHmjAxSoS2T5KAthsRzFKvS9s5NHFnh9DqyMamdDLhtIogvdg8KuKG-MoUBSFHT5GBS16LiCWBlHWL-9YjoGLL_I9DWwBSBgEoX48s35RDmD3ZEx4Q0rdb1oLQ_9myZr-vx26_Xe-1Chc2bJvJpUQG9XQVtbPbyLyZTzd3aQ5RzMP5QwXtOGmK0pPTB4YechTrt42EM52w4A47uCIjbzIPkRyW-Ok1dXG46AXRqiFc4vSI7NxVUaCFkR0rVDtDmKF2iSJVeZBPSrWOIiCtZdVa3ge6fSx7urCvN6VFmRB0uBv2k4By_iFZPOvh8pjoQLVE5TMVqZAReg2-AbTXN5upEK-jMKxtHD27o-1IUiSxgLqQdJ2wYQLdueI7ur6hAgzP92z7FgvmbmaN_HPdcnCnAJ4uOTnoRNi-3IMZuHU8ErBV8duUULZDmuLca-gWqWU0_p0zegUQt24AvfH_bLuyYOVyTgI4k9jNIhC21rBcZZKIjYKFtLjwobZb31G0z-iudrPvjpmpgtS17JzIfIscr_2CCtQb5CCZQ3vt-X8dG-kx6UtpCWKVNz3ftPYW5ViJroWRcnBIjFiPR0KmmknNIrU2eYUFPdkw4KKpeIkXAnhH6TAncaf22PUyuSsaaxWPNoJll-N_p57mMFV-QWDxO-HTwvMPg8ayPOG1eiezkdI7n49GdAY29L-WYRNDpu11qJ6wSu8xFhfs19tvhyh3JYlN4xoOaPSXjUfdgNMc5yfXJffgnpFG7ATM4Avadz4Ty5Uy7G4zWVxmyKoucnhN5f7LUPMcNlDvsCOoqLjtRNCj7LOlJ864HtAqaNs3R1DtzKPWgU82moE-TP_0SxXNrTT0UEO-WmC3O8oJQoseqLHoyExHUqbObL2UVMRUuY7hFDas1yvXW-eJZQqIZ_7KjpLIYf8EzeUK8iPuPUwm130CJUm-IL5lsNZ3Dx6-jrP-H3H2TBuKOGCA67US_HWo5e_mrHdhpdm5fdfZN7WGzb9wL_0sFFwTL5mqD_7xB7TvHfEaIur1VUh15lS5fT00iNwAzQyKBXFUQRdAyJDEMowPuJlPyfYwTwjDdKhA6GZX4tlIhsp3bU7v6QH6mA2TYA5U3wGPsAOtBI6vGPvCmBWxzDt2OYVdozDylW6vkVoLUJX1i7WMpwYRlsOZi1zgGXMjmXC6xpw_uKm66D_zNq_SjLqplcnRpbvOkzaN50NCzBXL9fA3iLcoVEOO2h4wEmJldtRFntW8S99y2cXxHwKzUdy4IH3saZSryW4ZZulWvEkU7uuOgov8ZZy35BOZW2eqLlAQ7VGzlEDjRL6WQd6yrj19kL_oq31zzfBMm_ccKYfnENH9ZKjQAbGOR7J1b1s1dA5YOEPLucyd7473jbst0PYnN_y88MeJuaz-sRGBML5R0iiFzVBWvcttIC_BDcRbScfym5Tn-DvsYhOo3Wj4JvQdVwtuoJS-kXDK1ezq7EHFNBRUlmXa19qozyHR8tKABBIJU_uVeyLO8Gwz7-T_pzsUAc62ET0a7vvD6s5QBIn65WesFo-qGpskiJzF8LehAXdR6b97tGP3dQB9lms4v-_j9Xbrq0EeVWi0WruE4yVe0ZGLB69mOqWQuK8x4BdAZJBLbCVSl0s7pd8s2ZuMPQKgJsPEU-cl9gjG2949h8C_XdHaQ8OoPD-RVhkiEjEgvTr_QpsRk2ux8V87vlZ8lbrrhTIsYlVGgeIAGlvVOeGS93Ic-6ll1UL_Y6RwV0GEP1PjW4F-1KJH7cZ5lZDs483Hsfd_DGfJZhQmH9B1IMjx6lKz4VQ-BKzSbQOZNWaj486yDjSvzb7Zt9MBXH-5fFkq_VcmbyABPw54RpIc9Oc72SFf2ugz6Z4MqNUrO68rrOMTyKCD-29fx_kDLP4EfzNt9YnuB4IWq4-zgsR-Y06nSBkhYyajt6iKPVxnjhU5wdYTIM4PIBvkc2uwVIrU0A_rbwM51S3ZQ0yXv1UeoOS0FFtQUW1VYITKUKnMII0J52hyjwo2RvzoowSHaEbpTwHQmaifB-fJamJ5R2X-vZ2JaVTiAeh_6XdSG-dmy9Xkvhub4aY2OFgzRkTJa7oCDH1bVU_wPD0dwwx_UtKk98sjHV2j1-EM4vMfvGavceyjCZA6Fg-hnfsDXxvqFnHBhWHrTEBxIL_Pl19jGSL6IdXQ4ZCn8y9aG7sBJ12NHEF5mOmqIn8IxbsCHKIC_nLPpwgxj10XviBuitXYotyLrHIDG6XzXhd2O-4HDUa4e5a1zRODaVLLB7KGNmroykYFk_qsADTDxQOxOhV7r_4HlS8quMnyduZZoF0Q0haZUQhQoLJGLoa5CUSqMJl9-YFyXD6WuvjemlA6fEq_3BMKvFfTnEKo-W2cJ6Psdtya3P2gDlhzpbXOKg7VvurYTZMcbGUmYQmJMr6-t75sCrTX-QeZKrvq7yvXlgiBx1sbe0Icc5BEoNosw77-5otp64eQUxYJMjIMKwPl2LF4UJA_LOUSskaoy8pcAuGrUwOPTjnH5ZuSCGP434EOlsSZ4lDtqyYjFTWLwWeJ-KFpR5bwZYzi5tFqFHc-69t8iMtccc81ldoDAemYuO3Z1ejOj_edZw_wnS-ubog0LirxjPoNbX8RL-PVpUGz7rVcMw0zId8rMEPA9TYZKiSB3DW4ZV5KRHaLhIgVGo1HH-oiNdKwNG-Cr73Zr1ak0IpQ09CyUyLFdB7jIX25r9qQ9TtpqazhC-ZFDvPunwtLkAIRR2X9MdfFKGfwHdMuWa3omVGuqq_57ozxVXxSkpfYOqb29f8jnQpgBI7y8fVvzxrADcjOa7aOVH2-JU0svMLI1x8ni_s_3Z7wpXLUwXoYxc4zzgXtYdtLYG3Uh4e1jkRAwn3FnjVg3zrIu4hoJ0bQsFtLRniPVwR-Vjg2-RVUnc-H3D2kTdokQo95CCG1jrF37FUYM4rxU1fsg7Wsks62xsQqHXpsDoQbUvxqWx8_QvdayJEnVwLvcryT8H_xujBxWf-3_p_rK04QBDmEd3mvHm3jE66Lyq9K2fRaQlxrCpTdoi_38I2abBXvFQE0z3FNw_R80fgXSfq4TPKeTtq9gnaoDKEG63FYy-eHg-Yw__rtktxuCQ18sZOPouu-uaRd2wDB7p7qCf6jAcQDl_VsvT5s3gbE4l7A2S_lsAJLzaz1po10us4vfESHOBd1qeAmRFvHQS0JDQ4fIiJWAEKU_p3adjDcY25EI6sfwZByiPVYjzxyOmtZql2wgwFn_54Qbt0_I7J7t5mUExMxLx2-IVQ-h3Kiz8_me5ZHZdxwwAjSQAhsnTt2kG7PIGDdex92yivb7zJYSpe6R06_e92wr8PY3sUzJ5JPPGV88vWQvUcTJfL_z2cfPrLbtv5GERcW53MgY5yu6snMYHUa4nex75d1KSQRTFEOW5uAEu88AeCyh-s4zOhr7epaiHk54Xjbz8-uQHjnNmAdJVwVtwZbb8xHAxgpMmgBRkI_rdmgezz4UfMD6nRWstkV4ePZ1VpVQ9CB3Xq16dngRvedXz_qtYmX1AHaTLuQQEDY4VHGi4HoFPVwACLnVA9MQMNqZTGWFKGwg4LjJBWt-tbCuZWXn0HI_BWJ-rbTO2yxPz3kqUf3iSmUFC4gf2zOwJv92WmXMJG5gQtwbJD9aIq3zBqI06eEK_6yTs4uiMTxsEQ6zUseaaUNXkqdAyDQuHexJvFq-bjXv2KO3FbQruzGKKV198gByFkudiUYWRSW0QUbCJinXKkO1E7jzMDwkcj53DubEloOKs5kPuqYiOtUUUZK-coNP6HeF8sheALQLnQi8MwwyfKxAfqMW2elpct33uj_G1SxCpe0l3sHW6PymYTryIJGrgP0z2s9aZd7oW_k9dx8qcSBol4UYmv5jsByHlC_x5VrTrT6hCKAB6hMVFbdNiFynaP8bunKK9r06KvPH8MuL4yH8CQJUTONOayrp12NHXfrJ6abjkTnu21MO5Rpwd7-_HrUd8b53ZLHxbP-U0YVPk5MQWd4hZjAvwK_sExzr3kOjhEC3sOyYBN-t26HWeBGBY-LXJ0I5bDfpqmRoV8IhvaE1LM1mt3KBlb9fRhQHyezE4QSNdosQg3FOdUn6yN-JBnHxvApKfe2Flut6y0nwl6OVs1Wvpfy51WH1nrbL1tkaov4K9XrcPVN30cTZq6avTmujgo0jcbnY0bXwEapT_VCPnV6Un4Yg6Jg2xudpO1vzX0_mjcTqBMm-CrwbCCesovA48JlJHF1Ejwiaif44Ck_6KNfatHsTGWKzoUEjEaCvw-ccdx0xBDX8f5DYRzSRYruV_PbgrQjB2tsW0R6X04R4NVFmq8z6utIWCIq_CLsC4ExEV-tXweNKJC7SR3BndgfX4LCORhlWpv9J8g_dNPClPF0twNr3Ir805ZSJUVeYKlqbYRNZWk49E1CHcVdMZD1IyzNvwxz0QVQPtWIFH_ohghK18Lp1AaOv9KUALkYnhgoLE8-N3JUqDLTwCvbMegK9SkgfrDlQiqKhK4nFRtCpYgtnF_Z8XiHapWoddbXhDCsUgSX1ank7OCPb40DI0QrQ9DIV4yFxY58HogQov3OJAU4ZHQx23vsgT9mIMB3sR9md0ezdYRQk9dPsGLflurggmExi9a46qZbGVep8GutcWS-bdWWGtN6-1cGvDgrLKfWOhvYeZXz47_ryw8wYvxRk95Fahh00qdVY-sQ7N63bsPBAaTrk6ReFtY1MoFniP2G2Xj3gr1eeD5qFAwAUZstzgQU_Vd1vme6zgG_DvgkZRyfTp04VbyYpoEQB3ATpzFzJez3oW45al88DiJXUM-ugjv2dkVpfXRv7BNU-0Zm4Hn4f5j7Hv4z-eM2HnDATLNij98abXmx351uHl79Tu5_0bTEZdwvJSC6Xzlcqn5NdxGv8Ln31uP_NYfnU60IESMwFfygWnS4wa9ZF0-nC_gzjjFa_P0cnFznvvULGUAUOtN3ped4BWvOevMg3I5RsCO-T8jF8BHZ2VkJ1CqCMS-_At3U92_IWGc6h9kVc21uVxYdxeN83b_TCdnZe3FqJ_ZRFdIlCkJLKsptkM2EeVsfjjogJLE4cgjrC93ktt_ZGDDq7A2djRcYlGOzUFtGbuB628vv-ctBqcZR717D21exi5hktfFHXwETOtCfH-jZCNfNYglnTxnGiKQNFQ3DPoEi9c0zrDSnIRtCVc1VrV8tIKylgBh-MXnVhWbeyo0y0968Er3GDjiVcqKMakr7jTW9J3F7hSQouK8iKeGTONtujseUtaz-11hlAhIsW9UwmpvjLCElPm-NW6NLtVW5TXKdygMU4WF1eLQoFEqKFsFMWdMaJC9R5S2_bfoqVGxnWNWENBUFSiAOJ1eaG-iV_04dLbT7zeVd8BftxrRUAMoCfj_YhzkqZt1zQsjyVbPMGZtqZZ5pNOCg5lcu9hPeJgpbS_UPzzXs7gLkzoIjj9FNyd1BXEgx3ysg74rL822EmLCFE21zNlC_4gOn-vS_6bAG_oXfcxqAPfLdV9oHVqCRG0E6ioKl-_ASBEaEThdv7GCDqRl81WYI3zdkWcPg9CgDI_CLFv1Ryx9LAjaECLOeIfjLh_fcjaJVQ8gqpJC0FPHv9fPiThl2PswhWpI9ik2U7ehhq-ROXoPW0AReq02OoEK0N6UwSdcxN_W5gdFpVyHwMtdBqS1MB4nE9FIUtPHkg2NyvpAya8IItPbM0QHFJqholszRtcwd9pUG8eI-drldfzggzXXMNYsYqeE-XQl9fMy1Qk3BztAs22y7xquhSO6myTgLgCsnu0RK_WJq7Q3nLgQMpEtiKirNX5_RCohg4T6uJe4Icfdkir3KdTla1RcwB4Mx-Spqbl7BkPyUdkFKQWZNnbiUL_h8UgVdLUwHv7uwyZ0mZjn-aX9smGwCOtNQ6GyHmwYOieYE6BMuUchNveXAM-GHqg3_2ScAWRAr0ls9spugwYtBFYB0h2FksP7cwa6BOZWZQi_iPMyV0KBmxEDroG0mmS27HfH2j68_OrzCPDvJ_amHEgCdZw2JjC_eeGXq0n5fRIRP_V-AMo_a4OqUBA6ycgYAb1mllhZ0Bl-kw7KacvxHbE4oQxFBbEh4ViBn26lxIRM7B2W31nQ1c-HlU0XyCQwevMbGt6PbfOr3qoeyWSKnxcslCpOrvgHG1Wq0BUM4Jr0O0-MdwjdduTBCW83Z4AfKG5pnEqAr_yr8mZtO5i8rsnTcdycNnYq0r9f_SmAaNwKiUwk12UEIAS2Ovn-cyRFcB4YBkz1iKK-ileyD2N9PoNHwLn_pmdVdzPijjNBAIPKHnBbzTDxhk6_Jvhn3WXRfZctjWmOl9O_ISwixnfJAOS3QA0mfyONG6r4XHi7HzFo01I9gYju9oA-ZNtz3__JbDgnXgbNb30dSe9RSJWncS7N4nsb3BWDnGnymjHp9ip0Qx4_tT7aTKeWvzg2Ua5srPxEk2WTPPxS_TySsdbZU8HxFByNp3oALpu-LGZ8GU8d9vOTKygv7PG5-EHgDSolRkawiddzNC5rSXONB1_I4OcfJEobzSAEGY40Kq4ne4vFGluLQmxl9OLOyvmc12O87TyL4xrO_jfFhNcJSex-OM-fpkyNA_j1Kg6450vtukS_FCFgGx9UzdptZNLFPGpJAN2osF5Z8M_w_nStHmPmZVbWw2iyF_blshWlbvPk6KbMoKrDW9uj_P9lcqKYCmGGQy2iuYEyjfNS7tjDKuiU7xB479xPx52plrggT-cRtE652ezJncfnyzthWWHrHJwSGymRnzCDUIHD8cHpYtErnxaaEjJs_yFk48Spy0K6n5GghCodNfZz8QkHoVUXmI6X3WxM3LoFFBzwGg7RyA8OBXxs7ud2-WbN5lhGaorUNgvFj0Cs7WFj1MgPye79q2Snh0c-oKbP2MzOq8IJfGd-AsxpS2BufZrmlALD-Sz5_PAD7-K5798ZJpjFGSijENH91jHoCVWZ6sSbU3Sbh_R3icrV6cqQtTrXF8bVYc1ulj5yN-u199i-INQ69jteKlzRrwnqb0lRjWC3SDNOmHns8o6TCY9Ddct1Q9TjEn0HuhLPS7cORuPVqkkPr8EIJeXHXE_gnR-7WjxCQjXgPSn9-a5TmihWoUxnN0uTexIleHWBcturtOiCDPcn4FUFGGlbwCG7piZTe4zC0dHB12f_AzDeQ3wCaqIk9uRVrMmP6SHn4rLxUL--wjTHhEMqNZ6nkuNmFm357l9yQXeFOFwDvEn0H6K_02eAGdqmVP32pK16V-Ld70_-hFfIBhsAROaWW_ZbMsgt4SPo4RGuxh960X1vZykrc-rMnzont7-IBP6G0EwyGi0B1OXXsmEb_lhyQMusYXKiQkGGYwhDBtSiVLLLfOBdZwf_B1dM5qNzblhqQlc6owYHbzZBArCujT0rNraz-qi1UfFqTa9Us8YATSyVb1Wl7U8WpDiHT2stANHzjC2FvTYt_wJbZdfc5Vfrb-1hv_XfmHzeHnRwDrwvxrlJ3mBhlGfPFiOkXfLT9Ac-0S9f9Tj0eTnMuCEtQ6mNMw8G9me20cNdaZsOlIOmu0Z0mSkGOCgQvMz7OpJFFosHj8C8EuI_gUzdKOIgTZnH0kgIhyHHSquKJWr0pjfEs83gHmRSpKaZ4pMtgG4C1PA7evgpPmaPomyXDsN_6YdvC8l_WohPpxCPUaks-PHKSzLp-RHsX8HZ2yOXdOHm4spHFPH7NmLfFU7uRD2M0nB8V95p2rfCscGm1_7Ltj94lyFdOsoxpkVA5MT-2WYz3b0v3mUdsw77A6-SBQT0SEUKD6DyPpAE0Zt2paLRNbulmxQ10KDY0IHFXaYTUmcYsE72TH4PPcKsiX9wXDgKJkGygITvowX5tjAPtHdwXhWLdX9XcKfVpHopXA_gwDNN1-TAyuEHaMEKHUcC4M7OTyrYHYBgSKen0lNP2dfkLPHAcXM6rHY5B_CzuIDFH1SHG17BYa-StJVuVo8uH5txSNE6qzYOQxuDI2R4Ho_HFJIEvA5OFVUeHRijwptPLxUk-J2TS5i89NbKtVtVVBEqCzjZlNr-2yZTYbepwyYShSToRGkwJ_a_WFhXX8IT4IK48UBwnMST5ryDdBF7AnLU0eWYf0aPcrnmeBYaadiMZH-6HMLpjwt1mGSOiyuM0PGn58JRkowsmWCZkCSjYv9NxkjwDIEpLUvsPEMOt9SQ1F-jNMNxDHKf9ckWAbGbmFpxrwn6-qhbHC8YaSz3W7_R4X-BDDzx8Br1SBxL-gfsUyrLBHh_y-1Z4S5XqaC4BXew5AzR0DFHkfOCrfUAyDVNdGurxJVNEN8BDCma5rvqVTLKvJDeN_6wS2kT88Xd5o2vzMlFCXtVYjOzh3smX7Mp6ass1HSPMbJeg1OwsElHBptbb5X-W8BqutUuCEfgvBRqS-aXVgOf0edOuwAm-hhcKUxJ2Q0f_UkzhGyset7-lnEtd1LsfBIrEN-VDw6RyfTRX0YSqtB_1vb4j5qdhpcoK9VG8c3NzS6t7W0bALNnxgS1r4HwO7ERzlBvwpL0xxsT4trv_kLsGJwrW53cv3k5ZJ_k-Hj5y-gCqTMVev7Gnq8kEynDVryUnnxJT_HNec_HbYTpu3LRwRJtReOcuXQZKhzs952IIU5b4Q5G8IIvNjyPqd9PO8Zt3yAg0ZqSPbLX6V09oks-aG_SZ4nG-PRCjt34dGslFNMO9IzNZjmRCnuA0EoD8wKjgInwpmBHCkh9ejGeFu5ZnMRqIC-JXP_7hCK3TgwcM_lTYKrUVYNprZQVx16haoZfsteS2NHS-ejbhpEXjz0HNTBBiHrxEXtbkg1XMdJKaDdyKP8GGluZLcIV9BAixr6GRRzUiUO1DzRkYHJkfHlrwlD-Ocm6zJbFB8cmp_KTiLuYNSQi5bWbnymM1K23pmU9oFI_M-7etD4ONuQNDTRV9ou5yOxObo8cZJ2F9GOYUJx_2ykDNeYfvLOt0UoYo5n5LGx8WFMFKyBfVtDUaWOwtJiWbXWYADH4h-qGHzqQlE8_IO2um6JruJGIKSFtJRX6slIeeqSyQhwAEJWiAi11tuFn1M4Ym-kfux4LAxvcy1CL0maD0YfogoKrfVbUz_f2F3brwj2c0mQsghfi14nBFFO5R5ob7OtTP1CCcAn9Lq2zC5ZsWo1C3RDNwGuf3AWL9suvAzyCdukHKSraUuoXlil7GT4WwN-l_Olb_viKNEXppP5-2gAM7PQRHJTVPgYkEHRonrcsClrJLd6_ltX8lTZppQizQK5ld5GZpLxp-Z5-A6a7Fkz1ZtL1kRkolzgvBFjRylcNfxiiOFMlfotynFswhr2V8XdMm81E5Yfsqwf-NAAfnotZK3-124rrr01TH3-Z5bWo_2A9biF8FBcbAw4BJUijfHWXuUUtFeYHzR0iBoTzchpszl7CEfywcdt79H1wvwjD4P8dKCeaK_543BM5tAYp0eVff6fNI8m4PzrJpDM6ePk-Eha-9PI1RQPdQBNAU8zu2ug-XTimp7Vc7Qk8JJLAH1F4n_pR25k6lJpBUYiMrhzvrBKVxV-b-oYubaC5hIQcr9uePJxYyYhDTSn7YRfOTpU2VYabyIGjg_Gn3BqyZBsTmR2K0N4zNYeQTH1xlnNUSvqb6jUVyNRp07d-h8N0dqHpGGbC2OLeF0yNJkcLmOzZ8cqQIg5xG0OEYRq8nSDFNl0IHH_-5pv_Odoxu1vRzDCvgAujRk_Faq6lXTJaRk7oGw_4dnf02TPTfNZ-xJF3Bn1_DyEWC-tZiu9vqA37MjuIh81c-I_vzLsKqy4SsmfeeLYsM2-qCgA8DPVL-dpyYTXxubcvReWs-FvfiBm7c184Geb1cdIgy7C_XFa5zmYv0NmRUgUdnMf5v5O1NsaPe0ug_OMBY8fFvJQbfMBXf4jYlSUy7F6TE2aUW2uNTce2p_9Z-H_nLMJaDhRuCwOcRTg2VmoqtJ3XsGuFJaVe5c5V22uCV4Pk17-piuxNEJDAHJTt3YbPySPsiam0wDbS7nhhenQetGyFYxVNIwjFzTV3DB5j4a97KSxwsN6B-zunD_-zVISohVY8sFFAHqLNgAqdTNS-EWdEWr__ofe_xnGqYgKLkmMA0KijFxPJn0ZMcXtFyv4YpdmzM_1qtL24x4WOGm8CKWzCBwcdBxzF6f9kf6YvSDaM6VCOs-sfN4-uOKt1Mb6eR2UNkh2awHbk7s-jLu1I_TWAlxhGW3tyKRQv0zx3o7t7nxk7KhR6XjBY7iq22dZEuaaD7GyVP8cWcvICv0LvqMNX3-x1f6HH3jp3RvW-6pHeZCUDREaQutqoPMEizus-biHqzdX_9E-BtzvFfcFtMi5Vq2qBbcH5r0T2mvpkhcre5ILBV3hgLEvi26Uz0iRYj-hfRaVK213rxF-whpbnZfdTf9aRzhoalJoJ8IrO0TlrAU6f2PLrNzmZ2WPvIHd3MotxrEiDc-5AQsdYqw8fCLBLk5xTZwAGtroGz52mujf5HPHccmnyX1mgbi9IIjrdIyeewHCWZENcM5bpKFz_PEU-YId82hNrVohgut-KoPX3FlDwIXkOLWDeuSo9BFSC7XSFK_VIp25BwV3OSK4BcA8AQ35no9Cglf4EMExXlFBNJ_iB8m6YXbpRQkERseMBb132GFV2Vlkuo4Ga8uZJpRedxmAcx9pcB4eVelBPzQCU8r1fu0g6bMtXM_xghHd6WQPkYd3HKR1p7T8zMJ1QCFfkVhmIlLJrrS-K0fGGKC5Sr1OxHD0kkGIYvJtN0wd9RUTZbZZrd9d5imMga0G2DE1uZTgYV9Z6hRSpF7D5Qv_4darNR_0_wHL6HzvE8y5VAHypK-KcZ8YPWaWsTk-yzFVkiuBg4I0hSxZqEdcePQDIeLgSY_lUtIXQUewJ0_4yHB0sQpbL2UPgRGM4XJR39P7KRNt6TWx1Gbw-T0srg_0H1wgZMb-74xYdpEsZ9hY1REx26WtFI-yVFMcLOs-ADbkDuIyI2MbtZfUIIH7eTADQCifyN0bCaF-D7uwlu_l2D78s6StTY7TA0p0t_ovl0A0-MQPVklQlVTHOhICKFf2njmPR1IGVD0nIlOA3oBvhjh9mS1dg4fkPozSjWGJNwMKS9gNyCBU9y8No0AFDoSLlCvOOtQcXVQyMFKbz1QATcHqWqhENdEUzRjbpy7riLeYdf2I_JedaEg1J_C2X09QcaBQkDQ5aseVTFcibjeKBOzeA0ESeOy-fiYWbOSFH2FvCSbNuUFfr2AnfsxlP7mleaHCtTWJW6XtOx8QB0g_lW2x6cikMe9lLmdi_QEVvWfcIahdTqhiKY28WRldAr4tNYkVT_PQbfMpe6w3ZonlRWGzQBcQL6_fYLzMHlThWg_b4eeIu00K5-jw_qvS8goxbgg1AdoLchHYEEhf1GohLlgBOGQflNqp48We2I2ThZD8yaiAtrysSa9qniED_q4So7EKCXM8JjzgyzzUs87ap19sX7q4s2x9Qawifj_vS74g-2sbiuzRBladkCQy135TWdYh-CXW21zGWDTWkbmCZNfQZwOWXjn8g_z5WHVhaSEW_hJlr0zZXNgGIj_w8DKJritEgV-uu9ffvJYLFhaOfx098qhKbzecKneAiPWeMNhpX3sQhI5NTtYJ6v0lFS4IFiSe_DVORq8N6CKSVTfotvESCi_7nWACNinAdcvIzMBYWheQTcoUfGE3c6jpwlgdlWgyzSmScLnZeQKWi9pH-qdasG-z9bZNVYBm9faAEpghiiHGHQcAZVlc-wLREEuF2QP1hQjbx8NRWcZjjW4Qy_EmxGQU9CpcS9mECwHOxW3Ed4YhUdk1PP9iKv2aLVXlXAqYgOyXvUAerveG_7wDsNWFte0hIyo-vkgSIlf_oVTrlybDCbLj6ElvAV1qT13WYWwPTqCaGbxBoyRzlQvJlq_MHCeKSvJ2RYo00wxpe1bId0HVkoOE65mkuGWqOxIgv-phlJZ2LO__TP7LXpK8XeT94H6d1GTeCEdtkdNxQ9dSTA-kmDBZ4KpjHV0wlRPY925zVUPDWSnYsJNkoS8yaPsMqwnBMaGPcq1mpPd8_uyE4ume3Qv0PmbKjp2w9Qbb5lchA_5XVAamUXEaRMWv-l3UIJx7hT9W0iiv--6zXGT9XDzkIurL4hsZZNRs-FjkOvtL9BixXwexkfOjdCSXicYUwfhk8Fgk6EOMxW-6Fgepxc53gQ9g852XD7u3sbxmwe_QzMbTtCq1yjcUotg3C2Kv9boQPJzmtrkPPhQjG94ZMtgzQ93XmeFXxBuE-dMjrl2VJKE6YkJ_MMKSW5m8_uK-ejdhAWRyYXwQTQnKbsSBPVVp3-nH4nAMTEpkytj_mYTmCkWntdQLzjaZrjVbLQlzFFef1RxWBARNdxipQb_1cz3re3kntbED76zTpFJLKOCS7T_3g7wfKdQAXSmeIFMdggM-pwgYxMInC0PVYjSn5qw0PDPpLjFmkKXOkaVkmgEa_EjiembsKwRKRX6sayCefQBstzxrnf5WtQvqbuH-WHOE3pdt2eJPpTMZxkGUN9RnrPnqpkuBBz0lX7VNhgvQm6kn9u2WSM_r02e5FYog29A0vEp-po6lmqqCopA9yEEUiqBLtggxB1g33WvAyxaXMfB6ZF-qXgmD3eiTieYMMKjPmKMnqcp4qIcLc0pjquNhltkwOXn6EqO4bb0B4l5f2EtcXWGX_BTYVrGem5b_EFMTRqWIfa38lDov4I6QGMDzeExuFAqXPk_wUAe4xTMUKR1OMa65TOhu82jbktCAzlthwyzBCic3TlrbWXMkd9gLqKNoYz5JLvi_6T1fLcchtANtEDzskCTNXcNPw0lORQeCplafG6KeGHz8VUyO_YwcPQrw0vg7QSdhE_4P0Ebxsdy9qJRjugy9bTMFSt65Sp2kWwUzu5l9UBmcIE0NQye_IBhHboL69IbTqPpn3xWm4cNlgd2bvTTVITT4fXPilaJPbIEohmCK6TJV1uwx9srBzn3vuYVGXL7pFRc0l3w7wVJCerK7ZJ7v2Rp9Zi1bJZFttkkUE4iqbJhd9m9orhTrAWJf8BPW4NmoTpdeWEoUYaaddjRrYSlxKrAbKkj2rx1TUXcv3TS5ZYMG1nE7b-Bm5irxAoC8Eyg1Cws_VXwdg1Wx8J1foRtDd_9BLOH7n-Nb5MVMOqKZ6PJFKvd6zCtKpfySZrps8ImTnTe0Ab9Le0t9Gc3Bf-ZgFQzhCYHJnwujU6UYiH7BD12xLKbyyy3VSzWorEXEXzW0TQvdtBAaH2eIz55ZYbsRAyIweKbuE_O9c9GHyAZZRqADPl6RVTIM1nsbHMhrRtwthe_X8Ew2wQeGQ_zcfg7Rd3uAyusVreXJNpXaqBCiAcTP-yOLBROW7I6NK3R01DelZImaIPIj8k9rRTcZtlU7QPmZzsgAoiLgHE9AjD-P3OvgV9LOti-B-VfHvzrMWqgcK6BCBygyHViZbxTjCEuJ4J6ptNbn2rvL2B2yb4TXjXmWmKiZK3CXcRt8sibLYpwYvCL28BwLM7inhiIyCqb4njWwK0xk1hhVJZdnypSZnxey4R0E7Rv1cAl21ryA0RNnFWajo4LU-X85ENT9fyJWwNvABAHgRq-_IapjfQGuP874fFMK30jcgFCH1bneHBMB4DfRDhipbhdB8aH_l2V0pv0no4opXtPpnKljw0V62EcsWS0kETonjvYQRxdz1y8o9uv0HoMqllAnQXLCdqbmmLT1CrSVWD3ncI28ycjDasPmhxQ8WHKop5RRr3z1indEtsoyfrCrFDKgOQIgIq2gWNKaNlpdKx1B2l4LvEzruN4qu5OkB3kygBbSzI7cnKbzTs1YNFP_ZV6ovi2sAQVQXYgexbf7S79FZ6ilu_YgtJWXWYhDUeVmGGy84p72YpfyaqJmVVPd2h2yenhOBF8PznjaO7Uijck-XJjBaWeF1NvYrMHCx3bBoiwOmaZ90x_YyIlaIDM_rAPi9VEYGqUPYuVkIJrxzwbE90YVWgCDnYGNgFg3XcoZRlxsVUyTg_Mxtfqq6-2tQKOK4VkVNAbSlFgn8gABp3vp1mAh1uqLIpFLpFMBWSB7Mryhgl3JSktETNGG11DC2G_TlCLPruGQRecqMiMjTczbIkFzHUzBT_0WPpGv7lsJwmplOdixhBouS-KeCDsHG7JkLnAXy8Ftufws7wnR3eyPomQ8QcU8tEpNjE1mD9RPUHos5CjM9uERnDq2-14e8aPW0VM5x57vhjx36v5tbcdpBOayhzAbXzXZNmJSEhAgKpUQFGHLVwsDQpihZeEhbZ-JC04Fy0mCwppSQM1JKU9fJG0geHEGazdVn9mqXKPPJ-qFGwzO3WIphN1nOF1E3pytWNUaKEST65Jz8_CyNgZaaynyvxwV154HmCHyVdluozPoPCmliUA5db5nJ8eAaGTqov8-xR3cPnZ_qygCKNVR2pBzZAV5DS3kBMCD3LSk0hbGjiG6mJvl7_OLAZJwuLI3wJFN0orEIGlko0VZ7c-d9slfGq0kvz0ADK03D3I4EtLD43PZMuRLVcL1f6NRdo4MskgxyTchYO9w-_oNchL0Ec5vllwDV8MmWVnty2y1yL1bqp67e9k_sMYvjYtZg3fh64a999EHROwI60Ap04fgPij2r67D4ZPdoyQIm18eK-3zhQmhht8QxljdbVtzXOarnGZT3kVikfYLV7A_xIz53UhE7cjxjEzgqAkGev9iLlZFvILuVcB05ZvmUn7Lf4anEQ2u7kPbzqB3P1DemwOqk8TgXE4UUxvGZxA_W6u7df9AguU7tTM8jGfZO4GG-zpF7V61MQ1aF_drKSlihtBaBPXaNiFdn4lPbUSXlR2QXDC6eBOJ4dZrRt4NcAxaDqoEju5HOZ5qXTx40XK-O8vWmDAmmFWXHrRYsaI9Bn-AsBZ7gvOQGswyWC2i6Yrgv7UYwx_I5zf-KLY73HAPjVLBnBYQqpg31Lg0bITOvjYCA-9G2NQRsUhukOHZ9qy_SbkSBUjyoDaKCwyVzpOSwdIvwzzWrape3SfeDWWaYhndZUtjYDwlJJOh5_r5GEOmZfmmDip4iiWb-xd31gBS3g44QTgFnHbxVB97p5-J-qTNcNJyf8ICsvra0Gd0rJ2-u2glVn7d39wxoR5SG5OR0dle7YPsw8BZ9XifkXy5A_mJ9Wuwm2LjGPHqg6gJXfsGBGrooVUYzy1BEmf5aUYe9ZkepZKnFf6otd5xpBlfpNUMXYIYDxZzD8lbc3qxzsZqaLZbS41AoTDSdgxkv91dpYDE5MDPS6gggm1nFgPJfjklr7CkAhbzC97i3dyVyHWSfBiW_GCe6WJJEx_hCJa96Wziv_irdq1bVKqKhY_bKhgkYmRydjEM3kTBwEzTPxvaK92_6nBkvReVNBkdiIRRbgY4TS9829ZpgfqgXiVS4-nzo6Iq1dc0Mew54GWA9lGHLgvFlFj9D4ISKOZDLB_xE3dsmPDGfvBbLh1z_lfMi8NXuZNmD4j4_aSHCGw7cd4yjsSV6QlBe7q-gZ-TU0LwpSiAa2KaSBLl1R-v-_h9iGpo1TVeVIfr0eyq8gO_I_2QpxhoMzYSyZo26qTCzkkYmILyKCqpGP3-yimbWlqQf0Sx-jLZKO4qRomoDMKnnLgPVq09AeMfJWmAe_CxpGPPIBioTFwcn83Pr4E73IiCaCRYD2tHH779mHgh8HVpWMLfvSeXtVWNnTsxI_ZOiEokOcv8hkIg9GY4YtLT8xZxTeGkhJ5svqwUyeGgJUrj8BB0RKO5QS4ZeHScCMgI5CDqXeKtxhcVceubdPOH1B8ggxgI8xKHF162Kh_RBBwNtdrkU2QprXY648jCZHq4ot_omRho9l5kyr-kozFJh8cYAtdfzk-AtbMdgWN3ovx4HCWnGIMJ5tcIt_XXfdDgsmgYHDrpi6l7j8-uQ9obyewID8-1QQhm1PlliISpOaUoLIz2-qTyvKj1a_Ok0PjR-8dG6YTodh3OKUrIJAZI7vSuIgplDu-hUHS_xBvwwIwJ-CAfZMt0fDEOG2yza8V_f_SosIET0R2bU7zf6od7HR8M82czI-ak9m2uX1tA2mAWhSTTLd3sfoT1ma8MLTlvgkXN1KzYNac4WvNeuKY7bWPY50o61ee9lWyvoEQNrGytOHGl33RxjkMja33q19dH6T26LDvbyJqbUnsgpGm4U0keyih1B1D9VQu2GQ3SK0KsQlVuCbR1M99WWCekLXB5woZfAxmcTfsE2ol8hNd6LoFPimCxqaFrG-CsumX4ywuKCWd0wlnjIb1hvWYoZ1pI3Qjfy6DyAHjZxtAUyG75I32h8JdtgwcLDmMDxz9daQyhQFb6_GsbxsPzRwD3IELhm2dQJ-VRat5myyPqAUNW4CUAWXqTr_RX1fQMPAY4XT52TUGX_U8HCGyr4n2hZH4HMgpdNNtkQXWpqSmDpHhXZ3lG2EKdfJRqV8RV1GkPC7FQm-yim1VtKUIXvg2BwdZCLA3vpuFZ8NRsza8Lp7KrPqVCcEAoWVcwiYsRHYnZ-B2TFHJf2LW5_A2Rc5rq7Q4YX16njy8QfD9Fntqua04IV8OZru5-jUfNZYOsu3JXJbyLieps5RAchwKDqZEdPEMDkK_L_9KSe1wyv2wdISZhC2muoPKQhAE57K2URyw1TyChQdkXOZXYpzXc7EtoY4u8E5JqH9WUJhqv4L1R3MHwoM6S_cnbUwIQQesmrrzRZjdnnG1VD6HPp3bQQWkbPO8fYsGPsUJHxX8o4OtgcOPwe6HHSBKJRLdAVfUwRhyR_Esgv3caEtABHPdyhNZWNgNoq0KM7aF-lpYQUxKNuGkWVPx5z2aDlqnFS3JNVX7BVIsf5TKQ-qJ0DDeh6cNvIgF9_Aa71XLwj09r4lCRiqKgMXnb9o_T93W70PrF2B1DOJN7PWASoX3JhM0ouukk7BlCERxElFwfs4Jj9oe0xynApj-ySfckbRDTMm9g4RomYxBVB_k4-eOCyuITJemC0oTu0k6zmfjEWVdNvDd3RZXiu3mdZhRwkJoCLx2GuHvalEg0M7gUfjct5wUUdq-68fWUIo4p5-lU6Uh3hnzoO4ne7un9DxkY27zQKIeL0a9o4vbabNRqF215k5SSd5xWSXob_dZBduks5BpizelRHhk79TgBu9CKT75tgIYvtcmG2F6SVaJiIhBWxje2qilUNdC8VHkprHJGl5xHw1sw3eaKmH1UGSrKAprx8G0akmi1YGiUHbM31E-hdBBe0oLOpLEhvYQ6Gg4EBTkIOZ3BS8xfMVaWy-MLNyCw3PwBRjx0JepHXLzpYHRDBVXBOipshi0oZ9BvvDX11yiQN6SvhcprM7yJeKdwFbyrEjZeUgBRfelXtwcTWx6UW6uwuzRcoh2zzu-xQtCjDFFIyDmMMvGO2ao08cWbKEtk4Y0Vnz_iyK0hkRQZZXysgp7IEuIwLFuv4wrLJ6b7cxVmukHT7svXPY31trlS2C1Zh3ePnlMwrLMyRy5wqBLnx4sxkTEhFTp_SpSbQSNP1q5skSG45k5sjMNRz1UUPf78RgV6TwJ5A6pc4nqsQhqfWmrVCxtL7QRG9uWkS1wueUrFaEu7_fIebNcrpkSgEtFcjc9jsMMsE4oDIDa1MVnye40ZDCd_5Hn_bUOYkraK1sJsweexj88fpnPIwShcnDAWAEuN8Eg6kVZbR4Xq2vnSi4u4e1WIam-OQJ-ABWZuoFuf-3SkS7ibGTdL5ZL6zPeVuJTf_w6zV3ID-uzAhsWMZE_jvzmNZY3K0Eu4TnlbOYM5WJqZLakAq3wUA_HaRSEN65jQGcH1nHZGKE6GqCQMgT_aMI5fTUfHUgTHlAQent5ulDE2RxOYpoU39ZeusmuylPOgtIYzb01ET610bcwZLtQFmghmPucArqaULswjiHfCfz3b4hl27A28tDDtbkNfGpB7-kGXGe1DmfMsjXrzass-ghUqb12ZrDpMD7GtWdrPAfLAhvUuBYGqCKKMQjPlopW1fIiAGtmhyTewlhCmb_-0nwvLvczhNocW9jDiM-wq61DnYEZwfKESz870a6uFmw3whB8sGOtzYHOq1LSsveBkEM2cfYcqQo50XBrThHQ0G9QXV6cN8RarcS7Bxq2jX6_K9BsKII7Z-fbBOpAvNzkfFCPMgJurfL1i37CixQbKb3jGk57aVNJgMMvtYU6JAPPx952PQdUAECNiojuF7Vi2cY1dymSSHlNGIUSvKX4vqpVEiNcprm5TPB4rSxANQv6fIUa4E1WtXDgNy4irKFYtUFSdoopg5B1v5AeKTGNoZdb1ASMPN3dhGJfnmYrcS_XPL8kyrMZ7cXWSMxJinM5gHqsVs9PzQYGFbJXgsPv7DymWYFIjju-eNuHfozqw1iEuC_s7c5IouxEBW24iUaeWXKXJ8Ig4kd0TtuS-w7d7iORnhrgYPp-7iIpCbphbq8EZ3dPVMLo6nBlzz8A3kfzygDvVnz8E47U5YsUy9wtY2yg0bgmSSQlMd2QwXdiHR0OcXaQ_8B560mFpfOHRSkRKzOpQ83bwHF1JQK5vmdV6ux4eJvGaI_9mCxTgpkQgjP68BQ8mPnvMd7Hfiu4rUsOYjGsK7lQ5_1BHJI4Ym-mZVwYyeTOrC7bzBXYLW54g0pHbJwG-giaCktSM0N-05uh4eiJ0T2-OGdqzmax_Ga56ZYqOc-_joBK9aLsIEC7b1hTZ7ZQEdVtiWvZlperGgz8fv15BYqQDIm44Rk5sgEbksnypaKSpmlN0BIvBoXj3-FoFIInp2TU9nES8t3-F4uK9mGOendYdSFpRFZpqiMsvQv7ZGY5ciaOqhxZZ0izBnlLfG6BKQp29sYqNbvrth4ykp_JDBkUqGhgAz0wbH7axXsQRKv2Mo2GSqZGHCJhOUBscP7AaQdN6E5oe1QLd25qn0XGqf5gZTZc5ktKnNWWRh69eyuumIPqeSnUF7WI1gBh2n6VEbhORbe4OqvrDh_uVz50f9a-VbqFgoZAWEXDvJTWTtqDWKWu5RlAIJr4uzIjW6Usrrmydnc94I97A2rvD0WZl4Be-xOkVMSTwamnzEW7WodhLFhAgQrzGigpPUb4gDGfFaYa2xgo-Xj-tGo2-BYmVKM-bY-IMi0FAm-Iof06YYUvkcYRC3g_Srypbo4rTkybA7QJHP5TKpTgo-U-UGXEXkttOXwISlaG7q_hqddj8kfMDTxUyqTGSBIFfo9Uknk_7Iq_ThqWaRc-z-kpRkEb23p_0T_0_WejK3BXGuQCHsgpGvxa25ev5nbHiyOhQVXUsfQXkqaTbp2UPLy8ShAUHPnB_pkNy4aglyAhhcvufvJNjzZ6_wU0CWOuPpYWsI2urfKEjYJjTydBl674Nhykt1hO-tVmBsnMyLysyO2nokkS_k5pFHT8M-PR8HgybhaE3CqZoagbBQ6nNR8FNF0MuvTjrmvcPCXqV9uj7gUZIuyg4N51IBI06-XF_RD2M18wf2DLzlOVoRkz4xIsMnB98PQ4fb4_WhIlgxps74JlkabT_qejfLuMV31mXPQFx0qmncaXImoWf0jznm7CHg-c2a_75wQWiG02VOXNwd2Bbh-pdofPJMv037gBa8U41puFw43cVhs3FuXYMe8fZRyfw1kmAUHNGdvdCRLQzOMhxECfweMJgmCyUEViP6uMSQo3maB0QSUiqov-tQVicY7pB3hCeq1AZqoPWr9OVy_almU6bIsRhSuoaWa2YQUzyiotRmqCdEKZqeq5pK7NrTNHj50--Ca3o1E4783dwmzdShwFqlRmKE3EgJBz_SywvlN4G43WWCl7iTZZ0pf10DwrBck6X2gDJQy5qoQDdKQD53zPZr44FCTku2e8ewX4WVthKVRSvAVAE1SQEgLGJcD_nNq-Wmy7_u4RyjN3Nsh5lU_6JXujzDa3djYAdUo7AmBJ_W_M5sYGjiZ_JSeWQsML07X5v7W26YP63os4jk-M2tu70e99kR-Cp0AV1SiDJDbR90DzsUuVZQeKaMJpvJ8H2G-gP0eu53U-I4DBHc2eDWZdzLfoJy5hw9YSmD8SfmeNMIQmW9EYhu2VOWYPhk1zaysOwjK67vBgyH7oHB-_h0rb7rOjN9qCUtW5xx-MX1XfTSMXrPrqyHCUXqvTDC1uvRGW6vnOxzcsPu2_ZJTGzwCnh13ZrgdffxRuoUpxct2nZ_Ug-xfr27Mg-aooAB7_E_T1_XB9U5U_1wvMozEgDZpCJV6mqB-6r6UNrOOfmQczw5Z0KjntA2vjD_Ez-acNoznUnzbGiYafHqfGRrxE22jr0jwFTQu75oxxYmcmsuKxIEBb4VGUwFIovxVP58tciXa-lHXkOYsrw9LFS8UupY_XJnLZh1pVBCL0Qv1FRPbcsCW_l1mm_A3eRVnv1yD6JkErJUJar_n3WRGGDYHcF2ubjDXoxP0BMUeNhWA8YUt2UZca2aQ8CmdS368-k-hgn77LgFeQzAS4XoUeYwN6TPB1VdPqKwk7yilZjXxylrzvKTxNlpAdq6WLw-HqrtUMpl5D3AWVNxSzpcr_45tEEZWFXuXP3RNGlY2XT__8pBFWfJCDgg5Qwhl_PlyDSAmianZeYssl9E1uejJxybbDdB_EuThqwRaFcQnC0vNsuS-49ApySRrYTgR3HmYsdivQn20OuA4WlPyflIC9XGcfZkN82gdlls3LQ800xLGwlVgBoieGB2S9tO5YxuqxSeHY0OjpA1SDdXiYSLwkR4HMTm3ouFMEAoIZEDWMW6epN-vyKj3qW3aICFkLk0DVV5_ZZUaKCBDlXncUEOeEHVmI9u4K6D3QIz-S8DBJwFh3YtMazS9dEXE00k3Pk0Ord_xW1jQBoOwfzN_XeRanKjl3RLjyXYByhh_EC-3NF7dz8aTlhcvyuTMOO_bYLU9LstcsLDAv-1Sd6nCaiMNT---hCNCsG3-KYNpOA6CbFl4sHqcTUjxnUPX66QhUxNxg_XveuapbpIcnz69fWDh6zV7NFdqmCqosUzWKqi-2W9H12x_spwz9Hu-LoAXDHR4c76rb5SgU60vPtSXf0dI2wCJgxbqjPy_gIjrlD9GgWHPVccfbodh3npZLiz63YSBBel_it8srCOdoMbCIXPTZYpsuA1Fb2sGGygQ3DLLOH58dOCLZUWBxNMTYZZMk3z1g-_egb-IYvMd1ZJUNzWI89mKpe1-pupOVkITSOpkg47IzeSe8e5itbRSq63M9NX7CIGCYAQlZ5r8hPiq3h_Xn8ps2JH0zQrdwgYPAbTFhC0cmDkE-CG0YnKACf2Q8OBghxs07HvqL7HoBGyVlyvoauM3dsrBCHUAi-HQjZ2bwQRZKsEs_x2Mj9O-5iGLEk1Nku-WaKGo6294UVfEdCJngG65P7470yXgUyn2M3c8O6PCOxJUMlc8GEqYbNrZFkJnjSEgrPvhvEkEX6kwKMyhVgoJcmT1z-KCmBi_s2SFuC0rYHnPOe4URx0Nxy8X0aJ1W-_iXUoXudHnf9x1djUVsw48Eh-eWW14i0kJSBiaSIRG6htxYpRK1jD87ECv6_1pSTfL2pT_a3fg1ghgF6wNTek8Nq924MxaZ930MbC2BjO5i-rUX7al5Wd_qvuHWHppe2pS7toNCpRpqM1CwRmdo8G7ZmixiUmQpjYkue0jcwiXuueZotMMRm7X6qGAm5L83phzHqh1ZD1wtyDIV03K9nvz8QcG87HVGw54602yqudisKJeql90dLUN6n3aaN8YR0P5FGa24F4y6x8Kd0mGGgEIaEPPCNrLnq2dbAEyeko8gOPeRrMInLZb9ExUt3uzTOGoNouxTIRWt9RiSA4aMU9LxcQjBjIUruj_m0PH20S7As981lzPbSgKHQDICI0XO98ypl8zF4vcKc4FNPnSD9YOcj20KOB1A9nebASVrmJSEY2HiMM4r_LZVo3Opn88lCn9qI7a9rXi_4fGz9v9UT2keUmad7wpI0DJJe7XHon67KKsaexA4iu9Sq_dCm4a-RgPgMpJChn3Vch4253G2tkHTNV7B9ZIZT0YslX8mcl4bmwcgxKyuAkOfWF0u9XhJFl8pkk4PTBcKSexaNLjbxtnpMGRw6xEHAi0s4hPLRXXfovi7Der37iVguy1MY7bVmpp8Xd-B32OAlPVo1OLoAai97At--bvmWo6mQ3_xZgsY5fxNlsdUPn01UoCkBFJ7xEJ1N0DClAZ84ANhS6jxnKwoq6IPgUGuEKomX78euWCPyceTF4eZPdcQcWxuqdsKkSdPipZJeZeo5rQXnKvsxtB2qgCR-QaS_OTWn6Af4GOfEYVQZbBuidck-cCpTqLvfvCS63R_BCgu3lp1xl3cck2px28VTXb5OwIl3xsJtdJd_MSFrkZXpf4v5DQEYqYgL2jTEYhN5lH7GDtfthsackxRHqBXzPu2iDlZrHpydnqX--eS-ZQ7LmWO2BiCx-x9esEgNJueqL4dqpAl2vmoVLlUo2EoWxdBV7nibKIyD_6HUW4PV_S7yaGr9R8M2SCOGcZR-2r9UEeuiVA1zFcIPPYeyIjCk8kFLwLjB6YBs2kMMv76Bv7R0CY_vdGdHlA_vDneq5ZxUV3YPqYM5OR1-6Supy9XRG1ynblMRLVH_23WI-WtojG3bH5YCfUoFUSOuSEgv-Q3FYx2zPBT89oHSL8G3EV5mC9b2in71DL4h5RdL9_jJeJQxQysm_CUtN7oUGlqtv_5mOUpmw0LSLdfXyO35tvwDcV9_Hh2yLd_x-YsRZnjoGTzW3vCIFxJTnCNtAbqLUfE35BHnhBGGB2PshTWAoy2H9cy6EX017zhoT_JsFmFc8m9b_TZwNCRxOnrcoCWXwA1cb2doUWy1e49W3xZjH1VLunsh-yX6BMKPEDMtZPmTmz-fmqRWnkoKcF85qDIdQ3b3zPEG7-SfCXOmKnB4AzXVKuFqJ0Cpk_ImbqC6FozoAQGUl7S6TerQQrGnNLMa2R-dZaZbArooI_l2GYcSboC1H2EjpBhSrHMYRoNCelUHh3qnvs8fpcHz50fgA4jBnoSee4nnuMg_x9FLj56fAU9POcS5IjRepFCZK1gIOOd2r5UpkrtVetUVVOMUQJoFhdvxwbugnfvYXW_hYMea4rHwdQExKlqlXJ9t4wUR1f1pg05xkvajxzOoLjWHYiJXmx9M78Q2YyBKCG7UwhPbRNiCloEAWa12wq94WstMbS8_UjXaacHBrV2k6nOc2_rJGUahTeTj04URohS2ETDPks0GPM3oy5c36lpKFsQVNGt69uft6Cg7O5CgQx-yy8cMhB6stvsin2BWiaiG7riQoZae3mYVWqGii-mDlfLO3BdWU7FBiSJ8mglZnNQlapeMJwwCvmhlfV2HrTlXtTNV4eRY2GHsWY4-NY4MqWLSVwig6fJqPuSgOEFaIEqGdn6fTfNHSM0C6i9GB6k69wTRxehYARWrBtalwNg7ityJB0Ta7qO7R6VmFR94B7VyZAH1YcSlJ7bZAUn4oY6bnc2QyEHfDp1GAJqkwSsUXEAQDP-REUzVnExP3lBJ6InI1STtK-p-didVIc0d91vGYUeu0VrZAcn-dtYYmNiki_LAGi-juxUTjrx7m3E9QbuYz4bpH-WFzxsTjKa0UMau3nOmzkVdjip2__DZ0im7PyqyV6hh8jIy9YcrxNSIVL9ViHwglvGskim-oPslIecNxr5e-Lt_Pj-5afZubwli1G8O1TIoYCcTs5p1bhYmnV10cTeXmEDWm5VGKi1FoKlcU10g_0AUnXivdNDgWD0hS8ZHnmcEiMzLFosSAoIk-IbQh3FvWiJYbNPHnQRH-TA5y9tT4y6MPhIZHQLPT9a7_3gndVXK0aeorGV6DrrjuQYxpl9A9CRXXeEhRhb0JFLQ6rNm5EVGp4fAFZ62GNF5KYww2LLJ0jM5KGG05XlLfXCK52l1qfv_RNuImSd2HyRgj-C2dkolkISE26SRpmBFU-qgjlICufz_3hh8syYsDN5hGtPniO7unVxgEY0bXqG2ep4LNUTvP4ClHIci6_ixOXG9zC83BTjGnJzfhUQBFCBf34MAlgS1g3n1RuP_aCWqwWf8Wmo5CySlj-G3tDJGXViFYBgem-hu2ODZ8L7mKJcCfh2pblZeqv2cc_PvOYWDL8Wz-cqU8hEaB9WnS3cSDGkccKcnSV2ijHTKorFj3APalKOUZFOYI_ArdOvnm94pMj2LttN96cSSEIMeMUy5_tISsAKwDULoQwmA-ckCIk0a0lGdImid2CzEAWSvvvInlyKW7acBx-NI6N6H0tWg2OL4KLEbiiWub2pw2yLDn9AyS6SuM6xInVxH40-hjrOq-FlJN1rJtGOR1MDdxn2s-x4pj4IgIIj00bVrzDMHDebz-jNuX4fo8X3fnaV7Bpr2SkK9vVTlRNE0NmVFFvzaBoln8V0MONOnaWOFoz6H1gfbTpnww6WWpn5b42_9c4GOQoQT2uTGQ3fbd1JKYWnjXXU73k5ozY7Drx02LwzvWUEZvYt1aWzM8DAqItueH9IlSPlL3Ioe0by2o9lbzMHvW5EN2O0pblQApcwpoVVXx1niGET1OA6qfnLHkSkLorWHAJo0-wwS_1IZXmXFyOWnuOa1MM0R_NdjzbPohglOYWXyVvfd3vLY6lyz6xE6FeWwIzibMdNw9Z8rmmQeUaPsAQqUyxm2F_8Rxu4qQ3DmqYNzGkUy7TMEMVPqk3bLlM5gtHhbhLJQpNuY7mDQ3tCc4Cb0pqMacIDk864XxntzYDaTg6bis0V0ufCma6LYAptLZP2cFw0PY7CL9B9Sq7ySjyVT1RWKThjHN3vyMPx_GmxwaUDPbeREjySzVDi44lASUY4PUW1GSTja9R0OSoTag8WKgthCA96M1L61j6rcztuQuyDUhRlvua7pBJCff3uYuKCd8IP5wfjW7j_ucK4lRx8b5ymXsGASMWpZWa3-r9oZfYat7pLIPeXMJTawqrKmHcVUcW2AZrMp7RpfVctirPUgPr0aEVo2FUshlgxrRXPHqqUyucM2EKLDrKfgnreo-iyE44JIqlC0WCtkz4VwoB0Evx9DtTDAYHcy1gJxdM7fQNcDV0pUd1BcizYrofqeJ72U-vF7dfb9LPeROWx2L9MQfCPj0t6EKV_lhRBjzr30nsb8iX-AYZNBiKHoBNJ3_wbpu4ZfO3YUQV0DwWUIijIKjXwSvYDBwa1tcXELE5nBUheXKfoO1qWNbGYZkC3jhieEfVDKLGXVBX2CuFpXqOyQmpqVwXpkp7wuwulypaq2VzE0MPhrl5koFUICRPIOqUJQuu-eN1jFso5Fgvs6Y2aiW52kO_itwcjAzVMqQEwVlXmcUCDlrnellYspyuAzuJisUU9T1Bp5asq0IvL63CNvQPH0ZQnI2mLbFaS8Khm0yOoUCwdmloYKFGuVGu4-WJTugSrRD-SVjOKw_ZVmZF8VYtCNOz1eC9Y16fUcMHIh-8R18XlPOxMSqkVCOP-6rPDn__Os_REeaAJBPSGrLLA8-P4_RQSntFpGGsWKcwbFEJ1dHINPo3IaZhkyrWCyJ1hHSv6e_PPGgGg-mKKK07B1li10oM1wEv5S0UMXAltqXmBvsmQFrE5NbYfgRZutJAw137ozUGhtXdDVTPs8zp7Voz9ZXfJBQpK4QRehChC-F7zstX-xWcg3ctqKEVVGm5Vx77pGfKuWpyR_oS3WG4HtD88v38YJBfyPy1AmJgUpJi513wlQAMI_hdcgMYJNGCNJ7Z0s2l5c976m9ls9es2fH9aRIDDoLLqmZZUyjG6bIERmWgIZyOcNJk0xvMiIswHp5asBil3AqlrAVWHAvsxqrCRAcXKb8hWTDC4R2WfUOywFrdqaZFoK_p0ClAze4OCumEKakUDCqWkLRYYBRrBMq80e3hvS9G4arsx1TSz2oEyw1WfqQmfoHinyiV477oKNH7hxfLladOtKz-tuCtxq0JuBW2Ner1udQYYAgc7uzyWxJXNYDkRb8F_OLp4NIFcAlDp7ST2A92oa9OGJusPN78r2IHuIWQmFtbX-djLrC5k0QLfnIqPj8b6rfKBboC7DZyxJLHD2zCcVqUHaK_Er_1xxppsGJOGOIXEi0w8gLZKS8v0F4Z0uOrTfUgNICmD9GaG20KKNt3Soy865-aYlGQMSGuL8VxD26PZWNgE6vaztLEeeuDocoFH4LbBU9uQytaagCpoESDj20bVXLzSCBCtsdcMspDhjs5OiKtKzHGUwoOGj-Jx4wBZ-agQhoG7hNRRAVivSkm661svuSionNGpqYicQdSiwDDdaTufQJF31OFf15zDclqm5-wYQsZR_jMHpSRvd4Xf01SlkPQzhOXfiJeYV66dWAcMa0H5TL43i7dMFgYwPNOc0N39Q7W4fiN2FOSDL7Y-zhV7PNEmcNAQAT4_UUyZ8IrZXjXgnngopEiSdb99Iydti1HmHdrS78ct412O0En3UVdNvgWZvqygHduBeaIoKaW3Ux2CwXrVfH4fYnl6zvkughunZcfeTGdGBtD7GKmIhqlL5bnBC8QSxFB5oo92ROfQC4gkAMGeqNW6ILSPD2G7KRqkTEai9FVWga9ybNjiLo8QCdDu_qOgntKT9bXEbh2W0qOr4ZJlKMT5nr32QqpDGPZGMqaGGA9LTGCHVaF_JDDSnZae9JdS8g7BXUWoP9k8DvERt0PBQWaCljHmTYtJQZGWSwXZUKGre_gCOmb_5X2SNgyp6e8lf7mgCCdNlrv0feKVMLxzUsQDuTDnuB92RAkkvz6hdOzSjGoqkpSNdM8Ps26eY8YBcsQtPHb-bVtzLWkk5G9kXFaujiEVmV2EhtIRQ4q56r2CMr8KcFco5R3u89kDGuJALPDvAwDRbfa8uRPchgJxdJUMRRAWo7sWVSPqBqUaPDk0XgjsPEU0uaXmamVsZ8vFpX2nVuK5dUZgKi0Ix7CLEiCgMWWJx6r8jhlRwi6rtCHsDhj5Mw5C5BQUM7vX6C1hqiNGAxY00-SteEzBa_60_XAPlTDwH3cmbB_QTpLCLDbtIgX4aCB-HMxXa0o4CgtCbHTUkYRXCcwf6OqS7NsPhkSUj62YvqCLS4cdxfxz887WSi7oF9Np_sv3gdJ6uTQ8FaicHoExP_7kKk54znu9-e9Cw02HsHQMrtFR7NsEqTKL4a-BigU0QwTy9VWpTTzx-ZUcNVCpEtvMuVsA2vut3uyIohiMhw3jFsBhMECDKctmemD05CiqPXMB3HuIuhMp-J4MLvqmk8c5wFTXmUQjWN01qcj0yzzj5uihE0lT1O2vPBdFYjJhA7ueMCL1h3Zfu8yJ8Dk2pYI5vr1wvCKiNN8v3dPR8CamXAXJ1Dk6JRWAkxi9iI7g6IY6iT8-Y0q7FfWE7h5rAOZZ4QrKQyjpfWBXYc6Lx2Mck0g8xgsdaIrVUusRdGYlcxJ6sCAjJnmMAgtKpN4C7Qv3oVi3WVqAq1ldUWSbC2VvxX9QGTZVqII8sCyhIfQl9XxrJxYvURIG3yjeNiNxsj86rxq1IaJ52TVjWLj5BsWkTGhd-nZUohHsHiUZsvxbmQY5y20NqKzOLIIIJdgX9n3AzCcYspCgDp-ZNm8tsrVgygWU0HdHkvjGpu-iVdCNbA7mrNysu_wurMy9tGOFB8dp_tqGwMAo33jNrlHRBF-s_kEuLE-7k4O9v4W5H11vXZyGkwrlkIuyJrVYPd4MwDNI2bMCeEK5y-Q2zQIpwhcEd-zqZqRGyW0vDDrxzDZtmqARCIO5QbVe3VO0gKe5KWkeHqlaF0C9_Es_jfd0qv1cX0vlVtvNFPMmVg49JHPlDY6y2FlIvZlBIug8rFl8O57GMN9urnisiK1dBAyyns04MY88ux2-e5Ezuwe2MhN-2h1FeeEJwYBCKROP6EJM-QG_2BLRiM2ChlBkxe_LqmL4jucGar9hX-dNkrs5NWdAH1cyHq2_CeWGUBVGt7uTi9rMtmPJt2if5R5bfE3B9UjXodutJmKMeiP52876tWk05i6fOCtS2bItc-rHaH2oEnHWxZsoUXnzU0lVYLi9JXtE_60MkdQkUE2FdyKYp8_b1IGUMTi7zmcaOU51Qn_l6QaOmpQ-z86pbTbX5yrEyI69ZXvipkYWgoB1nmUtVf4t-lsVe7qwFBXYREPniTSBgm-wRvPNv7vgBEv7g7rk70flqkJQaeqTXP32fiA_VsmQVShY7UaXki0rCWgyCyoqjuOQKTLPqOM7U1fPo0D1uDojAFxfXD9f7Cgh3ftR6ZlvfUuoYeMCJgPiYmxDSjAXWM8P9F7p0qFD-F2bgRTgxtBhFVlYFBRyJICeqa1BhxB4I8Gh4Vg9VEU9IXowBIzr5LOiHMC1iOpvJXTtWxfJq6lI8lpLPOleDTtnpL_sMPaxBBhB2lmn1N3KmRhuVrLQjJM-Z6KEbDfyDcHQmgVpmkLP-IaRpxUbDduW5JPC0rFR84GV8XYG1rfV4xv4BJTbMouRTgtgR8oRGnlJODf8Ym0jD-Ha17Wq4WYw-e8GxB8McH2nvmVE1y4G3zDwJ8mowWQGHFx7cqNW04OowNy3MaOaEvXHTl1lYQs1TTVDbbdBF917Gt3z5DxtA8Sna0OZy5R8etb-De0ru_BJwYcr-B13J0cGlJEm-OoZbTxZEWe3iLI63aSNDb_jgC0-x1SmvLwB8uO2rstjQF2IunSVuFSNm7In2UMXuSk5invw9_Le-s5JNHx2MDEUnCoWi-gD177sYVqVRhf2z38McwpBPxkYIm1a7k0B5GnVfr0GNxjfAadgQrNMCZZ1phiIl3Hp1w8LJjPHT_ZaTIxvy1qd6Lp1D5tIej7vs2oLjv6E0ZllKz33tDR9hqqXA3FgA8eK3_-LGa8Ig30qEtp1tkhvCFmj8e5dXrpEJpHkkZsMYCkFbMv3GToINOdrBCvuI-w0x1mncrWGCWz3nYbywAlzKME9wK3avTFHrCzCO2WKmKe12w6iT_SeOVMMdn7jZhsoeA_7wOBJuiVD-m5vD_uW45B-hMUYF25OO1aMQHKmOB99PPNfiA8wUdT_S8WiFr8YDc0uvBuuVQySSU_NKLn2sQnjLmbHxvMw49btnVLm2faHjfG3zRPs9n33Q6_XUVGt7zWZmTvePm2JyN48ZtUwPkDYLer-irgCDO2CEAMPcP2438Up90_lB9zNQ9FZmPrVzvNeiJc7M_eepQCPTgHXWFoh1ve8XolfxZr3F5EQDML8hIN_OxMXdJBR93Oh1VacYVnF8e6S3qu3FoqZwucYMD-knYJ7nZKkF3qHobmdwMiRjSuoBB3zabx0E6zoo-BAM4yMKw9ppAL6IcmVxawpJcHk0u-NXqrXPnKSOTgzmSRi7vGiesv4eEHRNlMOJF2sBwdoEvCnu2-vDbrvOhwgsuLBLwgr79K01AnV5fDyI8tiMnL1zby4k2zB56ejf1abaJHDWpDgIjJmAmI-LhbSuUelzVlqNhRNRc8L-ZGj7s9-UBsZeYvqKmZcLot9Y0YXM7kDIoqk9sAzXUKx_CcP3tX-m9rPhrzKYbSCHLjhwgtistTkZDB0awotgrTAqfe_i8gta1tyJOob5MvNSAjT-wT_5jMrsLukonqBMUfcEaxIxnq0pfrhN4XoDZjLDdqqf1EoYRJ2n_yWlJny3-aRtAYYogQN5NqdM8BLqAbQq6IErauC91erLPbf7HG3xvA_NtnqGgVVor3gnn_jcILysj3qtPI7eSePrELL2WVLm2cmA2eSVqB7WKR6BRTjjsn0jvShxh28bYpEUjRitfP2P4h_gQngmpmKxfqM8x30B8gX4ZfEEdMPN3rri35rMxtt1p6tMp1FBB7EiOUzX5A8o6QE70VDYIj18fBdXKPxm7MxU1SXJJDFn8yNinyUrckX9bfJs30hKIXcFTZS88ZU1a4Rn6hxz9ii96gBox2AA55rW12wnAGogu1A0S7jkSzGbLz4-MM9F_DivKjuLvxXbQNzf3W-VY0SauDiRE_5k1RrjC2Ec3J1hjeF6u0a1U7bRtWW-cVyWdgA65DqcUZOb2BbAjatWILLxNShpi-f0hQ0Oxa1c8GrGJnWjUfA5fZB6rGNwZv2q7VwgDpi2wI5fOcsy9EWM-niJ-0BauXEerTckV8gtG1a7QgPKbnXgSBJhQZaNLo834ceNFJtfemBqnpQUB2YAka1EP3bTWlBf8LC511gK3sgQ_QrvHsDoP_xEJtJI9RvTaRHNN4jotsmvPJMBo8u8Iue4H3n8q85uoqiTGxN1IHO-stS4EU9_TNKRh3KfuNgSQadih_xp_6qkuOyQqUQWoswFQGBmTu4bqPYm1084XmbCHILzfpJbGFD94ho1FB31eaR7mA9pGK5MP8XlnE8ZOavAiehXra0anHxzum886VfILS3KtwXzt0FKwqCP1STsxPb3vz3apb-nNh8QHchNmenoK-YNJUD_EklkcPOfZiIhSwL2XtLiVKOoka0WUQE4sB0HP3UIEO3YGpK1Ll7IshKk-58HT7vt4NY8nRM0ubi10xUq1mPiJ9e9LpnhcnmDlqcICPhK7DuBlTxJQJerHYYE2gMIxTBE6J2gtV2UrkxLwnl3WYjaO5z8VrtdVV93TMPrcVKQZRhWxdw_swkOlv2e4OrvuyUDGsn4SY2BN0NVRwJYf_Uc_5oTv0jqfD2cWnPe-TcYaOGNvCKoXW4cHyiKB6olTjFvQnhKkLy8hNw_rSohzxvbzVCav0hJfAngEFOSS94pEnuwZ4rtOVneAysz80JruWguWoasLdylIVLpIfcI6ZYKCdYn3Hjk_RmLRXPM2J_YabF05dEUu-hj8TubWBaIDBMDKFcp2D1GC-TuYr1kurkD4Qo5G5ikZw_1T2IB2r73rTgmI8k5LdPxTx-rMp3NumH20-16hY31jVTarRwXEoYyZPF-0AeYhJl9qOZ2WxFR-6WKvxJoGrolkmdUtnQ1WlHn7tpLE-qdJLquB_1I5c48iivVTc1Lr1xXCEblBdOiisW6c6KPmwy8yfMA50SLBXPXipvKkN7WX4KrwMGxP4HbzNEAHYxARVmkdSjtNa9XyOJHZSchxv_Z3r13jlugce_K8vD6I4Hb8kWGkzvoD_Uxhg3kreASMd_92Qe8Wz4NNjScrNjQQ_tRaW_Gz5KH3fqMY16FJaCdeAXdbkvETkkBhRwRba74sTI3l3x948Wo5dhYpyvBOQ9UdPrqSLGl-YORwyEPWsZuKh8-MQd0bnXNT1vFmNYRp8u4HF_QdvCVWf6M_e9mU2fr1MLaYCvVeOYHpLdmb_oacQ1620D5rWBN_4Mfd-XwWO10fNnne9We2V9e8Koi8Qie2KYaNEkLQqtkZcxxYfZvCUhuYgDBxCsjKUR08W0VpCFuLPr7Xps_ijfx57jV7HOBPHFAS3jXNwoNBn049SIJE6c9ziWA3lsKss1DE2lNSbQr8J2rq-4uWhJnLOYRsqDW3hpki96BeMI0bVVPZQg1aQ84yGHMm4aL1daZw71tZ5wWalO7wgyIb1lxtad5j16wj-SOkEqLpLmArl7gBl2QcFC39MKlLt9gvpXOfLiI9Q6Xhd_zkbJIPeetbTJKP-rbMPAHW5J0lfr9-n8CLfqOh318-k3W-01QENdQgj_Ni-oa1UJPEzYVqyOomn7H91edSPVncN-io6tiaHc_NYKwURJU9i0V1FUK0OqgTjyK08XbLFBw_r6LTgUDjtxYwCkuYITCm8adPNp46ihc8jUkO20iBZAGF5rGuC6yhrRvP-cnOfarGYbYi1lHxp_cTZ_JM8-DrIZC4u4cbsFveLmfmO75QS-ZvBmJAhLtra4UCBHioZWOOWaZp_cjFMlHI0PAb1IPZ5zED1M8s_ITHOk7_h0YoTgYXPoUxnkP_T2stxK6W25XRlm-JtAsfyP61yhyiCcAeWcj_Je4G2qdzvo7QUWF_f6IvyozuQlJmZmJ6B7bT_RYFLpc6-7heYB4ePZAODFhEuO1eEP5Rowhtugzh_PST73dqpPM7iV5Ofi8tegZqlPwzfAXtuVPwbeB-17VdPHdHc1ZKhC1AFUC8_mXfjjEg1EreDfZovu10ixnXjjUzcuElt9HqgN7YXKM87_IcJeCQtCEG4VoFoYO9xdDeuTW9fAXrB9h9NJWAi7s5yEBV1FVMFtpZIlYw_BsDpvWUkyjmcjWsr22wXcGagUZOkhRGJHsPFu2YTDbTSh9TdhHHlu8APePmjmXC42bKsAtvQk9mycAnLidS2TXa8Dwt3ydHl11_GpEw7S3xveTQtNTVFtXYaqG_PQeKlqGwRvJ63PlVb-fyfNO46L5wO6R0yv0rgZW5cdLzGhqeVd70XKCHhZYEM1r-A3GERjdG5LIgk-9RPuhFd1mHFNFZ8C0mrED4yKFjkQIRQUUGmZgtiGM2qkXYkqKv3QQgSyvLkHFpBvN_GosSJSp-A8bdmsOOkx_6-TSusUbasdZeGdR8QSm0Qow4pnphfwj_Hl2SCK7VkWRLCKHwvvmpJrEh36Nr6MtrkF4hjnXPB9rav5Y15Tgf_h5473RVOcXEQFLxswZ1vK3m_wx48LOpGlYvSUgzDopSbtbwSBc2J8Ya0kGxIllDqt4BbjrNFmQ5k_qr1kt9wkOgovnTr9LWdQpiSrG8fiIuhK-07E9IoZDKue72fGMBBgezxb9MQSSxeQjhTh43hUPE1_zp1OEogplpWNrz8x3z0s3RUcqcX9-vpeGOKN384I_K5K8rqStMd8rkcFTnwpyMvtUe4Zm4oL9k6yfd5dAfvLGqHDmfr8p-sm0KeSq77MvRLDKoct0EAqidMPQJ301nukRwHEuNaq_o-xxQFTbZThGywBxXXqbwnae_9ukmB-W6XzqrMGH2mEks5yy6NPeSMROMTVhIHp-1Px1P76RbFaeNOlGTu10KZQAdJg-biWze5WBb4o0FX7XDTuUVAk6DmGsc1Ml-ikOaNKxpA7G_a7ZLac2o2UY0xhP6gqM-hsF7PieVEyhyZM29lqnnldY7Ydk0N5xbI0ZyAZMMJnZ4QR0YqoqKrXuOKQra2u3Y7V_UTZUG2UExJEsR8h0CIEx-1IaVD2AyRDfa4lagM_DCmiLzVoo0V18bk26wPNAL0KPZQ4iAiEnx9kuclVZwHD1n8y72YRxuLFpK6150yIK45qvqrd-_tsvU_J6OK2SP2YvuFv1EXVgB9VkgMUbOy9_ldYUFm6WK3e5KV8trVklNZoGcwFEaDahjE7pqllh1iL1tubJmBBcOTQ5-d_mry9athW4xxiKtwfU1UFITDpahaFb17MPWmMdU_JbyYEXYOH9cU24AfrjD-YCfgE7MMGxtTVfxCBFQvrf7LzolFnnGFxmGnKkvPVYb-nlKzY3erp_gBOGKtYTBtkJHI46vFqF_4BdzFgfnT6WgUvC7QkQy5pXgzDJ48narrFNqNsXCxCZibhc6yt3mgwo5CO0BMITBnWmXQoT8OgXHEKbB0f7Q_1CIqXaBT7R39j7mhwuZuuj4lqSlEgLEEzsrEGxKjxph_W1NB0upZzHDhW0rSaRJg3naOxIBzDBUfyPEQzwF0APDTS1qBVa-91Lq2vDRGW3aV6HZdUWlcwtb56fsItlgrAn_YALT5_MPWZfNrVR1uuyPsHU0Z0QEeSKvWdXxuNqNBdJFongJsmvakZoLUGMJcXGxM1Js_rqTjXqjwfXBacR0Y4EZr3KuIB48PKM2dIXbfiMtDVVhxKVFPbiIZwEVaZB0LQFh1ncjCkKbtAXZLLXI-4wwxxnSd5PklcSoNAptIZwC6T2jxLxp3xm9XWwkz4LWmFDpTrqXeWbuJ5g6HMzfgHmovLlndofL3zQGonF9h_VBJVOrpIuetIoWv-g7_dRrOe1r3vlQZUpsmqlfGT6Z25juBDC-I4RdSy5yrqH1R4YBhqjN0zNcD_9tfNeowFnbBeH2tvPV32rwY0qw97BQvxed4qcMh_JcdDdMj8YD4ullC5MH1Wnbnw8PwG99N3RiNs7AUO2eniHXtUCFmdTUmPAuW4Gu74qoe1m2vGK9xARyoYELHjq7Ztsvg-331SOMgmD6LcnitmngetH_WrfPBANr7AABp1-7WshozSHJ-SzXEJ_Xyb8I00Rn5FnqE9sUgSZmLHU9oupLkx5wQRhw_dw4P614-dgANjMHPJLdeFAXbYVmzW-jkNwMd8IeVcChMrMxW1JYCyhYku9ggCV_aQ71ppF_BSkYnCFOYX6c1fy2xRL28H1Mk1-zp4d2SsqDXpMM8r2FzuJ0PrJx-CgayjgdnVL3xa3NJX10glzCYjT_dzWQpVqNotz4ovHi4zRt-M5VeoZmUit8gUhDTaHfUU-QpTWL-faYQrN0U-Du0_c_3xzePwaQax5K3BvBzHZPs_13nWSF5mpg8_zLLG8Jc_djrzxJ5PYWbJQUPbt8qfnvIYhVcDFgjn8PobEoZuuk7p8zkOdkfl74FzEJ3zd24_RUiTyLlgnLPz3bRuJarKXrOFpa9OGB7tMwraj3QqcNXl1lb2l2Bq-5VkKwUN_fOWY2jNu3GIoqJD70_JvUZuWz_6V83heiUdhCM59L8tTGTaSorff2bDbhUv5u4AAduyyh69EduY10vAdyjb8cZAZSK-cbs1CpuS4AXybqhZK4BptxC4szGI-yYkjx3kaspE-gt0YV4VujHbxM8nwmcgWQXiwDrg9KDedmbLqM48jv9uyU1VTkOLNcUciRmIbWLfibjSB-uAitgElGmIvZV1kWd6SeajLUFo2VWuRUiOVFGcvZYimuYeFlGwI-OJD457WLyoWco11b-4Pqg_8BfHqG5ydIlM95XQFdPq0C7PK_qnnd-Q9lV_T7wX1IAuuE5wWM98sc7Bz0CUabrCEwZT366qDnmA6gqRDWcv28FoCoQOrxYok6hrNb7DUD8zt6CsQHP6IQ1EeUHBH1h0Sj0bin3UCKmxQFhXksb0OPIOpeDcGSwXMI0JVRVrr2TbfiQpz65NsE81R9f7tI09eFSoWXR5LtbdzP-vDCZGTyeCgijUpS2msvgJ20d_qSwHvazwoilGSzvkTOJuQmfvi2tEgJjeRrcRiHOouiSNRcsoexI7TZsFtGDpfXKmT_JQbeFydlDiTvvI9WHJBjjawXzyYAUpB2dtvMgpYl6UE_-Zof2IcEZOlICo4pWtHvzjT4ujl617fn1XpPWuWgNKqk_90fQHwnica4tUDEDNsTm3q8erSwQlpbiqHX4-WDQ0EPWCRPLnmv4Yjf1hG0UKxGbK-t7zW473cYcDTFApk5vIQcc0EvNq6WMp6Ebg37PwXE6KKLV77biWE02PeDil4kEy396wYaicMZaspngEP7jZSeKt26TXn3AheOMbqFLViwSlCCHiKRHf6KtvxB7rgMcuTTtayZ9JAuyomTzSDeDhwVaOStEVby6phARds59eLDVhw1XysKn0koBzLw6o3mQtd3XYJgJjMeaXH0JAuKNyMmVR2RyyWEBtiyyAb76Y4f5iZaA2OnY-YphE7OYVeMrZE1Rq8JK7G74XjIz39_iRajz1y3QitDIm4W4M-cgpHQH_yCRUeXcOSo4IAoTk14KC3GKI5x8g5dOA_oKc4oUsUGOQV_ilFc99pkY6Vr2-40EaMMxB3ghn-7IfUay1YwVQZMPd-5mfw6V0C2KCl95E990v8sPXPOYOr8XOxF04RVw-3xDI16hHykHfhhaSMZ5qGjr6MfnbRVPT9lH-U7Puy40-v7m5Mkw7rZKvyNq1B02H3hFaZNQ54Z59TrpiWu1kuuDPHGhY7x7hjBUKKDcDhoSXLnhJYTF8HJ7jao1A7hcNczU4mMoJUUUWjHKM0rhcZtG0GiHqeYfqWZlJ_ap5IChGHKD8UkMrbrSvDTIfxaUmFxv8M0t5CtDSZG-Sa_KJrdRZ6W_NQXj3tFhdFe6oPp8cwSwCpTuyeUwaQj6JxGGr3pyorsz746iWdv0IP0jCGLtqxWPzeOgMFA451M6iLe2RQeSSvpLONaLL9czekuq4TZL67ahh_I6q6Tp_l_HSqJBmaRx2v9fHaZOGGTqtNZqylvgGcfMx8rFopWqipiUDtfx83Ij-wtgvt4Uw71Fw-tM0duocf6pU_56Bgt7BaJEyRR5d6g-aMNBns_sFSthJLh4M7KqpEy8ORQaOdr4ySn6NFt0GNWy1fCJXdobCPImZLvapauy7KbPdlDmfi8UWnKbJK8v39uMtwhA2EYTmk19XV2v7KSdDg8VYODhlbgRX8HcJu8kNrCNsUwFYqFT6FnUlG2OaQ7eLsWCGzesAtl3mHp9K4RDokS6S-KysuD8vCzKa3rhPQjWDmgjpRoKBP24jfBbMM4O_BJ66u4I1pK6Y6zI84Wsaqlf8bVVgVcmYoD9SuTRr6d2bAiPK0BRl3TP5J0-V1LEYng2nsBfzPN2ei6UEu98VCqkbPYkeh7gmPFKdXzA8Q3UNfWImRRu8c9HDwowXCYlVcSkrWEGWTd8cZTK8n0r-3CVvcSQG9jY-NIA5OHyO_lR4PdK0WYKnz-rYg3QxNdPMJIL4Fccok7nWBtfXNYRoh4aRElKOCK9O8wR9qE9h4tV-CyeBd5kKRYkuJU6koheGFlHSf2vtA-sUYi0boE5y8ptVlKTl2NSQWrQeF1vSV5Klm73fu97GnY1_jEiWyV3Tty-89KdtXubIaItZbcpOrmZphuxwzO-WqFK97kinCQlLlvwV19SPkxFPfXmeYRfHfPwYzSuGBRirG3w5bVWVGHMm_9C25zYWpW1Eo5EYY48o64jfLxN0oBYlC5e5gksiRCc_Xf6CZ-wuFfxNMcojk3k1XAx_er0a7spUAzO93B-SVycV87OeuiUWw_pwGBIrxvg3V_x8J7UyJPFSmxlvOZ0gFjLknHYo51bz_p2tlVg9y63w_XITyryoLVsCqSfuonikGCVhvgGFC3l0PI_DrKHwuNIteGRM2mznn6oLCl_WJwA0oaUwKPXyD8HJXVqyI5unpU5I8IJfLeNY44YUqjR6RKgnOH6dJm-oxsA5W5Xv1FOx3WjzzGTurqOSzujFOUI4DbYQddndqBlRaRYBk03PIGJZJb5gUjWcmLFvT5IkPfR2XMURQsY1iF9ZfoH5DF_xIZ1kFBZHNobCwjjVxssE2oDjpT9X_w061YWkvGwEi6rnCgeJCumadh0enWLN3cHb6Pl7zXFgu1h3fbcGKIizhARcW8krc0ViqJg6Rv1UiN2olUhan1Fvk3v_6WvNdYlqJh2D_Sd90SI0NjbJEI2-VkAy1_HwHuQfs7UfeVGVlSJJu342Wq4FG8K2pEFcspv3t-G68RXwMe9GIexLYC07C8p8eUo3jP9lN__JJNK_GBWa1myvezD-rCKTsj29PCXnhp0HVNd5G1A-thLVANDXxSnxDTM2IA30K9FN2Mt658X62tLiFaxCdmMjPBNng2H9bIGsZaGDmOSAfrlQslHwMfNMLpnYYCReIIpRyAZwK7QSrydb7uWGqNOqzlk0-Z7zm0X8obra2hwyH60vXFo3S5SJchjagj-NtiF7x-jsGaLvGTB7I1OYVkJNrY9rwHKO-VK9j1I7f8N2VVw_k1N3mbey-DbGgejY-K7bx3XhzqLZZwCeWr4Ice37yq3C8cpBAst9890pBW_CRsU5ISSxvddSplIBEh6Eg-w_iKlMprXkZDRbwBrBRxh2NfvlGeG5aySxF1fLUQREhpTna17gyI8u3VnjIXHJ-bLOj_c5EEZBpUa6gMTj_r4X4t4fWkayYh7u8qn1fi42XN-c28vWGw-KbT7pFJX7OkTmWOOEpnEFe6rzVdYHleMhj82V8yhd3g9JSoQuc5HdNnqsc_2mlr83UPuictnleTLhlv_BCc6dANA3VUqMQLbMnbCXKLshS0v6fvRWz-G8aK1lAp1ASkcBmW9m-b1khHL4qvaBmUqhuy8BQedZ6s9WOHsVdu9D3NkMB42QNuYF5bqQhRpa_sakkPelsRQboSwsBI8hz0jUkz197TAD1xP4AIUAbKAENeg2FRg8p3XllRZO-llP0UKnHS6SmCSs-YvMhUnRPOSzQrAnth44-JwY8-71urHwOw2xKmhnEn8qkg6Q5U5Ozlp8VrB7GB5eNOyN07fKDWVuem-TtSaC1ilhnWqQYyIGHVRRdOZgxkVbw4SajCfYYuolfN48D07W4xNKJL6Vlq4Fuj3T5vlwpYEv85UOrEdnu155ftFsv_cm3tSI6kznZorl4lE-VGD-Rx5UfdVjm_oi0Oieq2yfld_g20Z-ZY4EJOP-oSr5EtmP6LvAi9ALVG8IskY_KUzfmSeA-0r6DwugX_A2l-pD24C5ag9IjoaHhJKKpkHiAQ4IU8jgcDRoHp4lIS-aZSbDSVATXYMJcaB83zFIRwCHRTOSNsw9KIHGyzAcgSxCnSgkog_zGGAEyP8N4-yw6dwGa1ikxdXRaUh7E6psIlF15nhN0t88WNLzfAakv7oQRAvn9AIQpnY0PTDFR2a5QAW7xpI3kuPf2YueyBOeazLU-NaFIt-BzAj_dQGSwMaQXcY1ViovnhEM7-NAQN9xSU4BORYg50Nbo3iq_zLDrP76yz8ePdm9Zn0uy0RQ7I2uwAjzG612d99e8en4P4wbFYJGUvobrKlx5bFc5qmkIBo91EeOlb5kJBs4R4JPL-14hI8S_ltDfID-7YXz7rG5y-7BjkeJqfFjoxuV6X6y-D2cXyiuSM5K9PL0TCBAI_nqY9WvmSRlgtc7OptVctmv3qIwfk5k2UG06hAxNxjHkD8nDY-Pcd0X3JQgdeXvVmuikGVN-xutO8WGp-GOnXfavQFyMZooJmAEf7StYfmGtvGpYluL5IPWMKGa7yM5sgla6zwo9PxbPDfL49xDdPJ16IlGi749YetKKda3bRc8rhzkZdPp8I6Q59Ic_Mkm6SMWJd8Vf-572o28fJOaiPvy3NtXX2bfTaOPCHIozB39VB0Dy8exQ6fhr11r5eCVx63wZHItLmsBF_WKG59RLZvK8pdQCNn0UcHu7UzbaZiVpV_Y9JoYyb2CReF-HQUtLjoQgixRxLH8DlzdpWkm9XInaxDmBohX-U7IOB5eLYgGczlqYn6gbGeZxxECUOhAHwUScNBvgYUCye1vTTlU5MLpLJzBoLghjgPhZTEDTHKagAz3iGeG0WgJNhnHWr07hTlo9G2kR2C0dqvH-4oNyICHFJN1Jtk_hUN3tA4js1JuAixGg1s8h2-XCAIcyroSK9j4MvURV2SduhUuroBoloimaWNBBlJqXN2gP6ag61yf66TYZ9KGbLn3k0BjdVaKIUKFfLuh2b0q4Yq_Nv9cAZyuJ1x_dl_yAe9-Vs7vrFoRdXVcOqMo3dQdVV0-kANzQIR1j0CNDrnHWIjbK08gL3VEgfBt-to5odbbWog9uW_kNDKyIF55xI2kxGYaPks4J_DPY6UW6jC062WOW0eK9doAXopvk_BjNrvzHtFVZ25m9-MRzwKaMT0NBxpaE0YMCPZpyAzrhTqD_6RG05vosJtIbppWoe-nQvkrBKlnd038Ypmv6lUv0bnuY4oZRqqvqrsa6hjq-l-vZ1DyYz7YSEV9xDsf2UGJRIe1enQd4AbPqmAe4riP30JsdfZqc1SQjTVqmDjsw4JMABSQ0cMj31cJzsVGuyxx4E7XRRU6Aey7OemO48L0FYQeXr0mlHH7FN7AiKfPw7fDSMf3pgcl6ck-1Lvr752O3f6CTSSggf3Zqt_cRoh-vFoH2k3BwFwRwHr7QuTauSiKuSMfh1UEWWSFfJAGvKPt7DEuluJqSoNndjiqihvjlSJqqXEyYjT5xIjxiH3KkFlWBd1V9rCtvFhDUc3ZPjW7rH7l_WC2zaDsz9tBTtxtg46wjzBSOF4YE9tQ2uhzHzGuwSkLJk8JQxW8wOlVGoXC2HYHV10Hc5sMzXIfw87ibXEKY0Oxa5pP7D83ZOExqcrrewE5_vpejhnemEsBVFYjZGPFjW2iL_tymIo1ur6Y2hgFNpAByEpwEoPPUUH98YZP2U7D6tacfK5y99m8G867p0RSw20FvytBN1ryABXW4K5ErWD2nZlQwFj5KzFrJJpGy_Zj1pPHly1rgQ8wZUkIVUFMMoUsUHRN-G7R0qN5vISEldtoE_0EeeForZ9BKeOqdbKysH9xvvpt2BMLnL19H-RZPgLJmrO6engJMlGKg5Xz5u6jx4LHVXNKg8L2fKFqb9537Yj7IuePX56puJH5rLD0vz_yE1E1GpEwcNKLrK5qj8JnqpH3AiGu_Yf0ba5dJXPDH5YsHOCGixaqr8tcxW_FmIo13f4zkbgeaE0cU1P2C5u8y7v6dWGLtgmOfYsLlGniewd8-U211R6GpTsU6xlvqApxOs4GaxNNrDpg2fqZtCoSUW6gKg4fvEYNvQ1Xs7tnV2JseD9umIoKdmssc114OfkoDzytF9IHBTv4lm64cCvfFNZg18XhAIHfC18gk_lQETQTkHLshUDHSoMnO8z2CL6Z_IQLDZ6IDyB4oGrrwiB1oQviT8qSiGJiSBSkcIWWLOuFZ5V5ECIv3C65GqGpNm6wyDcwlyF4akNwGAD3mGpKXibtBZu5giM_h0_kaAfCQxrHGHDMvevxKLK5ieSF2OcIVsf6JfytAtRNypiFPcqCVcdKK9ZA7xECUKZM4A-9TZ98gZIOXoR7aVlNgZGvZFz_A1-9IaQRaXPJegW7bpExul9ifHTDBhGqe19ihPuvljsLQzgprHfd1Khkd-9llO0IsAnsRyc_V1ONc0B1HoxI0wgH_i7qEso9Br0YBpSR8_1nSkyrO7Bz3N4PHY-GzbVFS6TUn264H5iuji0kCvSPtqA49sdNzEiQN1eN5Nv9k2wqdrlC6nPCL4GcC2ywrVvyDyktCB9mgvWjK_9u0knEsQdi2rmkMzDIjatGzkjJsk8aE0z0Me6M_whUkBHzaJPeOB3_55mq6yyP9CrZfD_LFxqTWImNHXdex4s8wlhCo5JiH5Fsjb5wf9V9hS8U42rn38L0cPX0p6sykcovLHkj_rbuVbGOcL5FmJ8p4rNIOr_uLqs464hPiDPS_4HzewQ2TwP4-ViDAh04SHTQOMI6uxsetg2mgfRhsi-vj5oSJw-HiyHIK0a231a1an9kGZWurpzheq9LCgOb257rTf8vVMOSuuHqWfRiXR1KM8Biw2uiKZNVhFw58qAVtfNKOwY8Uu8L4o8mxOgLtytDqzPV3wjQrzTjbGtq5K04byGZ7-HHlT4we7gMjEaOARQwejViE5D3Qvmo8nhwyrQuVkoOc7L7N09Ol7oVHtLW3w6jS8icpbbqa1r-E0Qg2efwiw0OlstmWhwQiH7ZfVmggriLSGazfH6CwioaDApXPYyTgfzj2Euu9Fq38tTVYxvfgH2YdXOnOAVJswOUxMAMpjNjd6bm5I_mhuR-cNewTOe4xgRtrMKHjUBUqn8UbQVDbFU-gMH-rpYzdNjRTxOtu1n86xOvMij_kGRGB-1lAuaLQcDRP-0I4inGRFuerYFfHNH0HS6WnuOJOmMLdzYvD-4IrwEWuEfo6is0prrlAJdt-F3m-JRklJNnhGVuy34TI2DocXbp9qfwbpz8nlRA013nBvLfcFA7sIf3eX64H2g6n-fNn6q-RvVAASVBZFyYuh-75OlAl5pd3oZbp899YFAVZJWbPaJ9NZy6lEuwtMQSd3Gt7TBAOTnWMPbZE0ZwHpvXJqKTdXmKN91PkUb0YTD7C56ICjqHewRtbQWeoo_19hPTylXHf11XP33DKfTe1Xzy7Vnt0drY6XCGWXmugNXDa6LiFzhz517X0uRgI1AiiEHR27VsI-4-6w13c5Q52nGc9Kja18WQcNoqcO1VlJ3v93rrdWfHqP6HyuxXX0D_NyFKyl9GH-uNQ8GihIR8Lt0uSUqkzMEoXqZsCgU4_GWiF5KbeAvoaM5bq08HL6x6tYK0blifHX-aotQxFKdBQXZVB4d7cz2koyyL_vX-KM9EtxvY2CSKcszBDuPuS_BT5BGC7oaiyVq_Uou3V75BiC3pQkRnAIsjm1Ncn0o6hmaUxxGyWfAzBQdrmVTdnO837guiCKwBzNx9ghzZ8TTwGuqVUBtsVp_vXu2ZiiOXAzVRw0tWmxMsKKJ_LbGE8ptLG1lxYPqMZsAgo8LC8J2BZ_HYULxvHWslVNLpE7nPFp2XL3jKVkfK1hs6t8YZ0aJ2xcDdKSgUoeJTyqRMvvmHWWeVxkezGItYLIesGH9-dcGEePYrC3uQGh45dzLlE1n-rF-Ao91ZpDhd5C1wwz_QDiCYMaBa215DDYlIycVIg3UTm1damSP9fmAtvmSuRO3usCF8CjqknQhjdzc2GwP-TVPxGiJ036Zz08Tb7_gXd7maGHp36D3FZEoTKLQWiUfJiTiVXyxURTvd4R1wiX2bQ8TWO2E3o18bV_kTSwVeTdNx-B1qk1Q2cLL3NIfCrgo9frzSF0J2SkmnXapjTnFaoovjDiSGUe6T-yNDik8AUbzNyNs-j_Cp75_q8ul4bluLUL5cfAewx2vavhQ-F6nMiBGhasZ_C3cH7iXLKF-8bt3HzfB_oPkx87TbKE0mHTRgAfOoelBX1vz_VlZlyuOrTs4P3mQ3n78-z3Si13yXCdarW22vk2UywPhtyrLXK87BPgZI_Xa2eK8dUm3zFsZTFsS_StgID9uwn5Zhn6NRYpwqJLiKTmHdlOEuiuO02C2pxqhjdfqhJYXrpy3vhL9B52lIUetLoRS8XC8TM7JOzrH5naBEd43GT5W0crYhIRj57X0QkkAVLx1qtT3l-YSfYNehSaZ9W1EFnW-amY56lrGH-a9NGXl25UUNd3YUuqSYUcDDGdhTyNgx3OGfobnMDXb690RZ2_eeLIRQSO5egE16JhfJxNAjIv0FO_TUu7x_Wv34fzhReROTRrrOtdz-NmxRV7FN0UJu9jlKdTqWmo8fEXx8OI5SPNN_LAkUpSfjRDV7W5L63YJzY36rnulRiF5Qlmzmh8VfQU07D2jgDA6XCBMiqd1MMH7zf9lsGbemkpLXGxn2xwzE6wH05nOWMCejZNS6xXeb0SM3z1MwBqBPUFvJFIPwkxLlK3yG83Wan7bDSbk1ZTQ1A-c_kuJpGullEH5Tyj2fftzL82a_trpnDoakEnDHdopa9SEBsRvma1_TKyoUJ30NdoYZRbD_b1VkWOTxq2sZHzfK9xJvu12PPnPfVOQUVfSAQYF7A2GwjHbBlLi_olDCAzex9knbHZ9VSylwC3YBpeX9mLZVJexQh4hH8Oq8WIqb1OLYQZnmMheEXb9gk5j0eMtj9qke-D7nL-ME6x59vTRv0wv0QdPfoFNcMbi53pLCsOLN4IbHE2qJWr6I1zJP2Dwwwo9J73lEmosgmVvfK5MmV92WlvzzDxfbv4igc2moeEZtqx85HcT5ukuBuYO9LJCDg-Jnd_QpWWqnlE4jjSBenxRyuJRaRrmFjS8hKhAmjBMDLypzAlAi_ggj_wW__5B93Bw9NaAKE52w3wS6GxMwN4sE460rkedhdwGVbi_DYoMEvhc1bimYjP-FK_JBsJPyFaxfupke1GiZDnOSjWrd96KVur7febp0TeIu4_xyhde8OWPH4xfdRl9Bng1Sn5k_Uw916RyADml2NDpJGsKiPoV5mmkiXWshA1-9vqA6IVArETbph3aB1e5ua78GsOtvNbXx7SFLTrkz-mOvkQh1nBVuYJCiFtq7AevqN8ADpwI2eVHIGlHvjG8bFExn1VezmgYakvVqU1wRdsx7Vt5OmBM1so3FXMguzwFhNMx_ZkaHkfP49OtCwKb4quFhd2oVJA7l2DpU0uU3MkqqgeTlLrBdy90My4w8i7MlxKE3VuWay4FOv1ksKazVhDN-DGMzCajbnv-e0BW75np1qK6xS-ZP5zTeWvu9pqOk8kgBD2l3_l8zUBm9OoP_nzFlBNVzmB3tzki5pvUw24KJLVY2b0zKy5KgbhdAOmFN3XTPMQK7X96VIITWTO3G4FBQ31D3DoH6w_WvZD9R6zI_G6J2fTxb0ey6X0vd9Tm4y5a8LKAoUtC3J8wFlX5M7EIuGRT4wfu1W4RAcxKFog_HTZnF9vJgS7_rdSPQP2MDx5hzY80OVoa-locvqu6s2ToJcFWv3GAiLTPLHPwfSoVDw_Onb7KnY4G1eIIrg_Xxmqabqbzz-p8MwwN-LF5PhfXBzmHel9kdA1I0jEWGS-DBj9IT-EYZWiSA7MoPKxRpUpmGpc_RXOVIHATMXOOd3luCWmBiX4Ae6CQCB5MAMD6mzb3CoiJjp2Y2p4DZd_UOu6UPy6ml9Kdr9XOu1GfX_0XjQ7VXvr4IKBMRD3TuS-s26fMXnufTJlBpLADf-szgv2I_eN23TaNLkOGyxgEjE658kBtc8RJSxMLChrf2cXgO1SMjNuiaZRM4MYqCe7fWCyvpbeUf_USDAzHzg5xM7BW4QgYOztDNcUbMMt2uKOlaOj_rUMlJMEouqhKKLLddkwjmccenDEfaapnzfQXTbGN350-9CCrnIckE8L9-8WTCigGrwOhb_5BCrKtCmJrnzz17BvV7q40V5NO_CTdvTIlZmdp9609coDd5t5rdy3qyy0899GQNLnsFSO6Y_AqG7M_sP1LnniSwwCKNokOQpBnGSiGm0aAaGXmPm7bKhDg_ZTz3JHbnRTDxO56R-aQ70Iptv1a-BIWRPGGc2HkGS1XfnS4urTI_JbIyyDaa8Ox3tU0Z826kqOwWmPj1C2ka5y2xooosnysP6VmPwjD9SorM9WtxHHSZmFj8dp-cyt9_QfIAQIeubfxtiyaO0cEZVlOXm98_EWxMXuayZXL34EWk8yNE6p5U5jFkJsm26o-3yTqu-8js1cHHs7jyfE7xWG6fH9jTUR7lunLeDyjg8-rzEyD8nFQOd4CubqYiJuV4yyfz4xwB51fAuiPn5tsuFROnYLQ0VaWAZKGZ3pFXzJcy0WuSnyEdBf8HIj0jigB0HB7dGxWpADYTo9jlMD2IvH5OOWXomUg8PACS7Uqxvcz49vAZBFnuygtF-YMOOcpgHFLuUOlhy743zA4lPlPhxcKylHRGNhRD5SG_o2NFvI6YS_fubVAcG_LJctdgwmEEprUTk6lY2bwJIrRzdFtaeD0ThyHGlxW770inRHVjyy68qK5hOg0PfXFdBAuAovnPBDR_6N1372kKU2wBHIDhADXuN1BhJL6Nrq2VcXINQSuv9kVjSTgcGa2HnG683yK95jhZiiTd0361My8FaAznkwdIROvbliySLrZOvlx69HvC674ikLJSXiohlq6u3Up_aT8pjerMVYBpnXD_z0Drj-Klh2QfHJ1QAn5Pa797CGN8FkkirQCxIcf4msaeUfG0KV01hOyPp6Slm4ILGZTE9RkvoE24oqOs1X2LpvBUJiNI3H37E3Qi0poQ2Gvqk_5oMln7rheMjZV2SR0h7nLNKcR_ppHZWSnxz4LDL2Z0mqyxp_l3oqRMNaD9BTrq8YGI-9TsO8dcUwIE25A82C2eIb32VMMVaodiBMx_kG-PPArA5Q0FZW86SNJJ9VrqO9u9nW0q_V-hsXjcT9JxRyYeAbK8Y8ahfvhERnLpDMKJL29CONKbLSdszomuEHZXq0_eXteJaSYRCsL5L5F5R_9rOkS6k7hf-JURu1fGLmQwR_QkNxrYjeXrfgyxU_PzUFq3rMKFDQ95cA08IcdG0EKQ-L5N2zXSO2JTHXHEZtgV3kX2kcKLUwYyfBh4UZHFuhCXkD4ZDQtWPOCaWA34nVRtpLbhg709wvZbwJdNmrmiBez9WwxMWsHxbVbAGyMsr070X_47nEq8hTCb0_P7W3CzlIYx9laoGiw8Jc3zAthG0E4bM67FPG7uBrtkgTEbBSn5vr3EClKlZkQ72NqP2gHp4NagYJ7-DStgeLKchlNT_cAYVZD7KronYn-q8diBvrbN9Fp7SsOfEVTtB0i45m9XbV118fHnzx4SxvbQZXyyVh6YMKZauU-kf0mZiN34pPE74TMBnKw9p151xnBHAqQgKVH-HM0P9FHUy_peX6xTlWxSwmK-dfGllDXdYUp-M6sEMt2aSH4Ob91UWwPAKnarfppJekhlw-42aFsNwZvNgdWCpNLFwpAmxbeTI9fpm6iuzEQwFVlizwsxU-rN3m1fPfHjDORvtMrNiFPuqVGSulZxpEaCTKNj6_5e41U-HAyHBgqysJQLQVoULWTY8kBTZtpEH_4bOxx4NlCY-K2otbQncAJ6AnoLtQ-FbvhRQ4vMc6EmFQuKw6KV8a06bxshjviQsc8Fcj1liUDH8e5M22w5XaA8gVAKw1ki5AiFZTuCGu6bmSzxYxo4RE0nmCh5jdbWZckKz9OEQnmF8ABUgBN3kIEIx0hQBqhAoe8NsMQQ6Uup-1WgK9oubdsYo5lDSp0a_2UnivuBSgoRz6viCuz1N1a3XOV2sVuu6yT4cIiWyFHGTM8152EPGRXSVqElMTOyb2BjxMXvQubpiKc-w0DaM1fjEB1DQPFeLQAbTKrbP2NBWiJab4RaFbd1I4296psHhN_f0sEib9xyNEsnHLJ7EwQXKenHM8nuED7JJG23S2dZCiwvSjybR3GOvUks4Ws7vnorj8-36VjGFSqrPWiPe9Zk3x4PkUjmzgGJehl0hyEFPlF0HK2y7OsBJtW8tY5-k81dzSkkowdew_jaRV5q-an2D6DOu3llUM5y7mQMOzoU5s_kvgRTzDGHj6dW8P9_Exl7rCXb4AVfTJy8Tdki11M0cjq3xRVCJVTjD2yF1Dhn1Ms9e2z008Li6HaTqDZutxirJC_W9Dz1Wbvt0hEUif0N6NpG0RUr4O89EfvgMrWWAEcNYtlSGUqcrqxUvS4ddTVRoaftzI7Qobx8Gft9PLPmOSvqLmJdXGjx2ZAtjAXz9jQbNVx7uL4fMifiC2dWTPm8kutPA0fhkTr3EFphfEtU-6Rqxwt-c7QLz94VMEDNJ1hAEX8YOjbno2dXjG7xJLN5bW8eL0rwHDvHiXjzizD1NlvltRZ4TfbRcjfHLzHeJ77FsEeNYvA97ugKEQ5qiWol5JGdtgEGjC4DaP9gKfLOlWno2aB3klMnj9nwV9rHB15ygC6Sl8xswRt0QI2Fx9qnp7g2eeldq38O19JyCvagU0Hqdw-eUXv_-G9gBBU31wvnAqDSkvcKWW6VXdJjLH-ATRUwZnTwqrBoyJ30SVKVuhdO6YTgfYaJpcyJ3aXMEc-FZ-dEygie6x1yQDp5UflZ0YkvleAaaC6_6vbJe14kQzkm-3G2SWfIjbc3ap4Hi0NNsojEpWkBNUF3Kc7E_xEzRq1rouqdfXvuQHe-K_H2RpmPp5ptmmEDuFOuO5nHnJf4aVxwD8swyB5Ydcgtc4fDwBDEvy-LQHhH1Pn4b3AdWNUwnEgnvHrgE9qMgmb0A5q2b9PklWxDpLZ1KppvjsgSE6OBrfPAbaoz0M05czFQZy2I0--iLJgBzN2F4d28wJzdtVE-ldkoFooFO5X-oYGkKN6qC4uQs7MLQYkcdKLR9_L1cz-Y9o9hvqtNopKhy3LY0YyrNjSTn0PR-bnrqYlU0cwN2zWLMW6lvJmggg1sTbwVduMw9bJoZAV8PyYQjUpIeL-ua6akWR1IyVs56nm49UUwg7mxHZ87cr3lkXhYzFHNzgFIGwNXAJO2zny0LHRIEKgVONQbMRfxpBxgdRbTdGJEkdSG3NgAJ6GqLwNE2FjlXsPhEVPWSJqe-Niq59ibiUgdWjt6Z_eLhz1SqWmz86-nxZxJ7TpKYCndM8OLlfZjN85QKOoCWvQ0V2k29VZl2mRgqqpP8E6zH-04XHvwKDW-95XbsyKJUTI1GwmoSNzXY4XUCohdndw6bPp-zBG6togEOm-o7a2Dxxo3xsFkAmMIIwQfjJP_tTTVCO-N3WJswkFNy_a7iFIuote2_9WUS8eX8TF-7tiYar04ZzYmiraYKl26Jx_KqNhXFlRkhwsga752E-N89ShM8DmoNQ__nXEjep-6UnRKMeWn4Me5ajRtTusnG_7Cd3uzKXl9d1OOe2Py5QfO8O_LiL_Zff7PYeQO46yISNrwtf2kpkNKHa_t8VmGSOJjLgc-oMV6MeroXFD8xD1_18f7uPpV0_N-s8SsT95heGswaF_XUOdDkhswL9B6mfVtzbYDvzZE3nXnaBuvrGxOKLcT5R2XS2jbY72aa1b2QIrsleD-rKBz99LcIvtWLKyqECZbs2xa-IWnB4Rw6ugRMvqJULXbHQNHCXfOS0p5fTc41G0JCEDbHYYW4cw43jUkrM7FBOaa1qI5XQfO0yv_VjmxddjqQVIHQ6tmELi_b_tUYg6Hh9hqLK9DgWmtq33h1JLZmmQvvm3odtPmbdWvMfTvkhSWkHyLB7UbCJvseO1YJYaQ7TiDNihpcjCEPgPgF5tuoaPC2NrT7XrAmvzrzjkGy5nItv-qGrBz5dUi0GEWzLKcv26dMes6qM3fni9Bc0_KNfNF8N6_Q1b0eGVbNEJwRFkVJ0gsZ0SuiXnI4zlHxmCY66lD71w2C37PabFh2EB0bppe1S6VPhrXq4CxATCROdFh6jcATR0z8axox0YPfJ5Ikly8WdVUMUiTeAYl5dvQOkWz8h8JF9HX4UBMzg-IhYIvN0YYS8eFheP4-WeBPTBv-ebyUkjnQOPr1CMNFdyclYE9FnQ9pTXDdPlNaQAVWAzyEPEN66KZznpGJ9WZpe-H47U3E8QxARSo_g4BPMgFy1IWBkrpbr1XvB4d-Cm3CEWismiVKCLYzRZC-ETA4r0CFfyA-4yKiGU6DeMoaEVOQwrKBzOZa4RzIuduXm_ff-D0J9Crus3wOnxi9qoaW8mf7nUgToBLps3GbMS1VeF8WhECLt7GaxoaMxKk6Rtf-VEASCascwn56YA15cwPw78Mlx78IyLFlOdr9tFjPjLJYOln4MbkGNh305pc7B-grCCZv_9PPbnELrto6i6BGHiPrMv2Y_1vK7n3CYB0aByqiSqNnHGNiqAn7RTkzuOg9Y4Jy2lqbupEr2x7RKlbK0iZnfb3NAvLK87p57YmrSJfpJfmF0DV8mSv9EsRVTIx9CEQulurZu7fIakEkIpANIwdSJHfupo4DT3aAu0eswH3SxRDTkfnaQLXsWExZAY2Mws_GmRVsn_buE_wGtoMvpzZRlcAR2nK95uYAZiDk1X36YvQK4mpbUYJq1-pjK3VpgXlKPVt5tKe-k9RXz-xMcDwGBUR_MtbEMeIItSGmek6TdmQbXSTfDCSyTvJFKtw_AQJHgXgDOpdSZoXD48E6-bK90Q3en809-U_clS9sfRAZdXOb5JYJKM-bqxlEvvZm7A2QLUA_eUqrt6bht_ofhb3VYwexPOIQH7le2mJeqJHtGNOh8aRjaUjWEBlru5N3cK9vgQpDaN5OQZii12IVJQvUUGfLXxaCalYUfqUoXgui8VPJZVQ5aI3R6MknkP7XI5KEPjCyEaUpzF04oT2RUvogIL5_jywd4ab5XryuC0PhGDFNvPleqBwDjxZl-y8MX1UG3UbTJMMkt-FwYh-SRgKM7QTeHQV_hvHj1yL-DBk7OQA84Kry-jSPg0n8kFZNPkLcLZKWQMkjiYHfpjcm9y1IHq-luZpNUpH6KyKEDNodQyRDS7iADnpCVQj7N9przpIUzx6jLysxmis1XdYyAWkxBOcWHjZhLgUs2TLO1yxytp5LCPnnCyKs5vDxQf7CYM7HUOljSa-QBHgKlaNpPU9OWdgGblT6q6RYHlT4Fxp5z23MfuxrgcPCX8ag5l_Zvm8bbABV4HGQQGv_1ldIfsMkSLHu2S6iNpJ1IrYoWFHtIvYeGZy7KCw30iVc0qDbrfZ5rxLGkrHWyB0VEPLUXFHUjBOPQW4IyIayFDkbBki9Ig4hg5Z6oA2-HsySPOgGO7gslR55iTIs3yLmshBKBBR75RAosr1LGcxzEkGhtH4sbJ01dJuk-k0vkwdhH7eSgQhKoLTYGzCqWZnFrBIEj3zC7nXcg-uOd0JQN7Mf7qEL23RMI9m_uawxUpLy01y0ztQunnyweMuUg6JdizU6HurK908e-f9rOPeirxOJ4_CactoWaND--L0W7mXVkHzq0YgK4SUxja3nzAFT1BYdY8o1UWk0c_VP6sFrwSy5nllkRFosg1tihlpeJEIU-SeK6lVNYeexh-14cH91y1-p9ozESxdmWDLYQ5cU6HeSCBGnuj9gr1dPE3_GnRYY9wTwjpcKA6ppm7nn8EZpj1yG9QdSMQUpHydOV3gZ_QJgPoTYpqCsSsfdm0fPLvpM_fBv6qnQCiQ9om9EuxkHNSuy3sV5PBwuVaTR9JNP_gUTjefSbLuFYh4ykoQEvuluZLsQ1R6gPAgSpv4kpFybkHevF8xu3ZNZnFAAESuXgS3XaIsUeuDKO76v9_6zrd7VYM-fbwr4EkLPiTxzc368u_6J47M_A1djq4x65Wh7h5zIylSpLbpM1kUwnp7wkCjHzEl7v1c2o2tDGyo53aWnON31JLTAA1-2_k60n2hmH2ZlwIgR3aQTsbHXydQEmQW0Wtc57oJtkrbuGO4d-4YLpG_7FUmAX1HTsNYB83hR4p7xlSKwpYAPuS4cvlBoKqxEG-W1WO0iAlDXwg3oHgRp92Qt2fenIOn5BSfIDAs5UXKTMPYou46HOIiYuB1cQrNUhanPn8ULBTJoqpkGtX0zlPWYC0KxatBGMLpPaJhkVBJYr0wmCxLgRZYebaMpKtaJAJXTiTeaRrvlak2cN5fQlJicg_PnDtaxQ8Gg6Y1yQHq6nIe9HyODq0GQmmzuD0n1RfiE8gVqRDRYDVMrDOztFZ6f5RhVvswv0h1ANo4Jolwpugs5uYCteNps2XOIIVOczfXrnBExmpUsQ3OCCVyJpHrC7w7RpGj_zcVnw2C64DRl9SySCTZJIJAu8-X-ffYkwScn-qg06Ww62ULNBl4YJThWY7YRsaO-mwrcul3j0rLLgXmowY6buyr2rJLVc2wd354AelidwE-Wf-AIfsrIhajWgMe0AjlxpoOXhCdIrDR8ga-wFyjSFH5VlK46pdeXHIChXXG9h6u8aHAcVkm-Ow32UL4UiJ6ssGNnYzn6zyTrhA2y3wdrF92cVnAEZi_XZzg1ZTvORSmnZtogkU8gUrjia-xedqnVqQkG-QPrCNaTueF5Qa8ag-9xr7SNd7RMJ2EjHJ3BCRuTOF2pYhvcaAgRC3AQo5QIupnCAJ4W7jDTEe9zVEsI7VrPImvwTjsjDFuw_tiASGVrP4SXesAfG6n4V5Zns5nBrx3WS-eh_5wxGOiFT2pUWKejOnOqcmOLTtxfEFk17oPNs8i-sFRiHuybcd43QLLg8Yuv--T5gDFlQEw3k8b34TcAChFHktdycyN-MMcXUnFvflji49DNd7k7JcCqlZErXV-4ScDmFBIQYgQjRcajYo2RRFSM-8JONFhFMjJgd3kPzxqctrwoyds3squpuNSnMsZckoHoz1BVtEW2FMcjf1javrI_rRzPuB8ecBRPCmk8Ah0zRkV7QJwhddsrbI83J1TOiMgAnIdwp6acM91KKlQmdt_DbAotl79bdSCnkIzmHpHH2UdU6mcefDsgPBvc_qO69EKQb-c0TCih64toC_N0tNOJ_-5U1vpdDKs8PGSVgUUVf3XrgvRYhMtoZEfd7ehNjMViVp6rVhydK2WXoeOuXCG_se6h6ugRIL-i9MhTwxnG8ybaLsS8H_4PGR1_mxi9jQ4lV5u9LBnXMJTJOf9hOj8ygKUuOANR2zV_ShjKw9HXGHSeotDEjYCVk4h0kTrzTEZzSPnl1SH65ZfxDN2y5Z9CNdDfufuhLCoXeoGGl4g4oNWWg07tQwNqoSVTdQWyhbuzVZvMjNeVvUJ1RsfDdeE-d4vPH2Zg1ppASIBlPa-4nlNnPJ4qsYl-s7nDske7y4j6VR-crdKvZ2j5Yk8HjEY6pL2vN1Z9TRoR3e1QNn88Hltv6CLB_d2Pci5LVTRTlqlOBuNNv2Z_z0Lx-zgVoLFLeF7W-nsZo7WpuK6etvo6lUvRmfWquMRxnzP-2q8xnK8zII2ZSt8xOzUkM1LZln2YD9ER8CgzuvOcRgNMzdEjtAGNb15XDTeAz0HkW1KyaTslxwMNxkGGH1GYSkC5sSqE4srJuz50iH69ZkjD3pxZDt3QF7z7-jU0RvRMd2o-DUdMIcyET_8m3yKB8CiZ4sEf_bZ7dI75kT_T3wZhT3DNXOtMDaUm3EcAnVp4NH5RMdK-gN3kgADUsaDk86SUBNp9748NSFPNujuWEJbeGoMXgryJi3KS2rvx1ldBQEJ_P5PaQ6gj24fHrtSs1v6KdUf4xXSsW2DuxN4MOdQLTHm_H7PUli7_PtB7gsIuDkVGSM6-OASP9ykjXScRqNzoJP4NawcDR8iVR8LVHs0rF7Mflg";if(!e)return null;if(Ut&&Ut.sealed===e)return Ut;let t=null;try{t=Rr.parse(JSON.parse(Sn(e,um)))}catch{t=null}return Ut={sealed:e,bundle:t},Ut}function vn(){let e=wi();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=$r(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function fm(){let e=wi();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>X(t.slug))),e.keys):null}function En(e,t=!1){if(t||!e||e.length===0){let n=fm();return n?new Set(n):null}return new Set(e.map(n=>cm.test(n)?n:X(n)))}var Si=null;function Cr(e){Si=e}async function dm(e,t){let n=await ro();if(n.size>0)return ft(e,n.values(),t,n);let r=vn();return r?r.selectFor(e,"free",t?[...t]:void 0):null}var pm=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,mm=2048,gm=8192,hm=32*1024;function ym(e,t,n){let r=hn(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 ce(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
75
+ `;import{existsSync as Yp,mkdirSync as Ww,rmSync as Vw,writeFileSync as Kw}from"node:fs";import{join as Xp}from"node:path";var Qp=new Set(["0","off","false","no"]);var Xw=["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, the plugin version and how it was installed (npm, Homebrew, Claude Code...), nothing that describes your machine: no computer name, OS, hardware or user name. Command contents and output are never sent.","Usage stats (command names, token counts and install health counts) are sent only while they are on, to spot when compression gets worse and fix it before it reaches everyone. Check with: tkr telemetry status.","Turn all network access off: tkr network off. Usage stats only: tkr telemetry off."].join(`
76
+ `);function em(){return Xp(R(),"network-off")}function tm(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&Qp.has(e.trim().toLowerCase())}function Rr(){return tm()?!1:!Yp(em())}var sS=300*1e3,oS=120*1e3;function _i(){return bi.replace(/\\n/g,`
77
+ `)}import{chmodSync as lS,readFileSync as nm,writeFileSync as uS,mkdirSync as cS,renameSync as fS}from"node:fs";import{join as rm}from"node:path";var sm=k.object({payload:k.string().min(1),signature:k.string().min(1),enc:k.literal("v1"),fetchedAt:k.number().int().nonnegative()});function om(){return rm(R(),"bundle-cache.json")}function xi(){try{let e=nm(om(),"utf8"),t=sm.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var $r=k.object({bundleVersion:k.number().int().nonnegative(),signedAt:k.number().int(),filters:k.array($e)}),ES=k.object({payload:k.string().min(1),signature:k.string().min(1),enc:k.literal("v1")}),um=10080*60*1e3;function cm(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:um}function fm(e,t){let n=_i();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=am({key:n,format:"pem"});if(!lm(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(vn(e.payload,t))}function dm(e,t){let n=fm(e,t),r=$r.parse(n);if(Date.now()-r.signedAt>cm())throw new Error("tkr-daemon: rules bundle is stale");return Cr(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function Cr(e,t){let n=new Map;for(let r of e.filters)n.set(r.slug,{...r,matchRegex:new RegExp(r.match_command)});return{bundleVersion:e.bundleVersion,signedAt:t.signedAt,ruleCount:n.size,startedAt:Date.now(),fetchedAt:t.fetchedAt,selectFor:(r,s,o)=>dt(r,n.values(),o?new Set(o):null,n)}}async function wi(){try{let e=xi();if(!e)return null;let t=await Ht();return t?.signingSecret?dm(e,t.signingSecret):null}catch{return null}}var pm="tokmizer-default-rules-v1",mm=/^[0-9a-f]{16}$/,Ut=null;function Si(){let e="njbqMWIA0iPXGp-jqxdzZ8EfqvnGpVKwsR_7Gfg6LG4_v6YUsRMTkO-CspkCOZfUVqwRA7YyFXZIttzspSUwJv0UK8Cv0jGgjyZiLGhK1OCI2MsIaqAVHyR71tsDZ7JrH7SRGDoRk4pujlAwhvnJF9Qqn7zrHhBw3yQ2i_-DT9Fs6Jed7VnJNh8W4zKVI6evAwitl9oijb8p9bc_WeXrtOy06bU-rlCsWiT1_1MltX8o7EoHlu4lcbZNGkNsugQddBYELLaHPmISHWkF4k9_HJ7gFFRXw6CrqauXWmswTrtLnwtEP9u8FTU-lFQN_PaoHTrQIDyMZbpR0a898ruvqXWG9Dgltem8FL3djdkQgjOQMO3A4Ys9sfV5eKXIbT3cT7zFv6DKYwR2knn-yBcm04N_TcgsUrL-1uGSycI-cxU9iaIjgCN2Yh2cJMhukvkoQ0dxcM17Jy2X9Y9kBYbBJshuwdLMIFiT6UmayAOsjj2JQl_MqdkLPlDMFMA1ERWD270RGEkRSoTQujqjFoRZ3M9TCBknF8ksLHaam3pLT8PStDk4Msx1ZbIaa815IWi_4Yn1kTfvQFdbE_2XofT9pEzFe6iEjYLqEP4llnfuD7fnu8BSnm23AJqvzN1JgclFMZPEdMpWh5LdU84XLZ9EB7dtcGSsRgD82dG-mqeSuerFaLFkmnk0CEK2sc7Yd60dNmO7krV0z28H0pfrO7FXykv49wZyaCo_tSGGvzpIM15t7oIEEOd2SU75XFjD5l1sTwyfLDyxYNMKQn2sbi-cEt1IhYWkpGsAdxxC3840hNE_qH3ZlMEIK9cXFrnEPQKJmZZp3ijp9F25J3r0GwUseqquR4ZKHetPuX1NZj8lTMfmrvSf9SoEoGQl4Fz4K8IrBkiAYzrLgjULJODrzZI-YvI7Mx_Ce-NErgWnBPlw0OqYb59itj10JmGUqzNd5fTaKz6Y0CV70pLQMEES8tsAzgrlx1zFD9eQDRUZ5Aw7ZHYKc6ngo6dPYsx-OwifAAD88oss0Yi49AvjfvT_3jR17jD1l6hIJHrUSv_a_kQoeGh0CQb5t4Ts0MwmoZ7OYqN-3OIhtiDDGpA-VTwKej_EYNa2PKwHiSD6DrmfXFZV59IV9DEY62oz_Q_PBDbIXeaj4nQcazjUgWx_i5nL7F_CL8TCAj9iQ3WwXh4a7FUEemnc63VLQH6ya75E6Lw9RIxh173BBvukW2JRJKJEu5fJvxyc4jfsqZPLF6GkhBp8AIEcFDqSycuaAqEPqLzl0SQF3kMwPEVC_mx_gnNjUpaXvXbI5-VKnFtzTx4p7nbvWaEkKuh34JjWDQZvpqFGaODLIHJJVEFAkdTqIgwfRmYRdz3myAmUaPgF6FfZoZIsynkQLyQe6K0W6JkPUmYHt_j4clSYg3lB1c4s_CDP3dUbXUkd6OKSGs0YbXMErA5kgNAX6vNleOmedfxW_W-38k5zt9fydtJE0wbBOAuYcIb4FAM6lA7OTPqPUGZBp9-aJa25sFdc-N6WwhYAn_-J0-ADukYM55K3pZpa8wr4rw4QuEK7KQvtSfh3u6m_n1J5H7BsL80uQra5v2_U6Rf4xsXWWoGa2azzmS7KUHCt7q49da6EhXZCxRioNJ7vjE3Z1hBcuM5tCF5mieRGznp_lkaphN7X6MOgWUmk8SESsfyn6zddFFdFpTZoYecH_Xg54q4X599ruOybyzbhH0sp5TISjsV6Xk9jxQM1xHHhi0c0fEudB9tcNZN9laRIvq6g8EiA2k9n-_3bQiSMj2qWpsQbCkGWkKlzjKhbamjnalXMr6srbIi0aSYVdls16_iKrU5aJBZUfFQfzn5puEOpVhUDsm_T45Hk6vBjW3wKSuurNazfsV-Q1lxIUfAy87RS-J6y9PSThuvezzs7gXtaMKSE-8B2CexyZGNF_yLb4ESV1A6qpObghtZZLncrjSSu-tBSocdfTqzRmC89Z4HTp2gJWYrlV-Jph-GKlHN5PuyVc08Ij81lts5yW8RVUliz7zAyFjd5VRyhrK0CFGNEY4vXsVVSX4u132EeeEHnnFbRFySo74AlBJV8EtUx7kEfyeWuiMpkgiqKz1VW16D4K0sJEuWbGFQ339joXW67AA930bfV76ngztuK1iYxeAhDVBE7yYT26LYBv2jAEsjm5aGGOUR2-RYFgKyH-atizEcmuu3nfxfM8WdRUcUz6rzzFTk9xIjfsRrvZcFZM3EuhiHY1PGDenPl0I-GVYmTL9_hU-av-92yEbnNZ9hyqK1EoVgL5M7S-lro530bamLBggbXDa1T2_DWpzyJfFGPLVA5h0rM2x0tJFQo2FJ_ndRPHpvKouqyKivTC0fdmqbqH1xc5N6ISn26A2yeo3CJW367KxsF7r7mMsvsPPP1Xfq981EdDiQ7PKNzX55uzkbUd-oX1AGoHhFt32LHnLU9dgYY2QiwrMerQHsiosoTU2T1ROR261zszLtRlRvXktFBe7HJKlNxGLXyBA10P5vLwJsuxW15mO5QQAab0ZABnSHdBg6ujqeM-2TAR9Dh5WXrU-0I5TQHDfX7vMlrY4BP-bRlfH6eSLJnD2_hJcAADAiL5bc8R9Vwr7abVi11_rfRTyPDYI8T53O7qjSpVXYS0mjAXzbgL2kY4eh6v00EtHMShAIF3R2KyQY5Q7dBY0ZFkWZiaEWxtl-M118PpxchTvdIqJEHMs8D8xZkvMCbXOn4IwpMCh0lJzrg3PAEVr2leOpiktc3JjZvT6IuTP94f7WzTdVNtP6gJuZq2iH52YM6JFskD2RQiaa-nZHldPqvOQWbLCePnqvYKUAvQNtr9Mavtcyx8Q-uCaCfrMVXwc5E5I6O_e9NUQ3SePkUbpl9MlXpNW2Ni3EI6fPLctq5pWJhduscQInU1rdTNc_z-_aQeLWjn0gpf-rKHsfEOZRnGWlQv-pB0XZKJeCVQ-XthpgmGcHMoXGFE4eIVbS9x629iKLGXvzF5o2KVWg18rQiiE8zEjekGoSXq-7WBHUquUu3QZndOv_Q3vjcAUjZXGS9MOY_q1jQguEJQpKkphsPNiecyXqvDl156r3g3c0_rMC7KunC1VSeK1HtfQOVmYgi9_gdpZKiV9DzQspzQiHGQ1UTYxkeWSunuUxA-nvgbXWkgW4iCaM7PpZBOuEX6e3Z1VTlozv9G7ojZSCit63MiRvqoStVqtD8oyWWw2Kkvy9UCjU0BSjBwDbhR4pg_cYyb1poUV2TEFhLGryPpbHMMDcYUBCHIoA0Q1HOnN29dfxinp889Znlb_8cQvw70H742guHoQTselEiZRtH4IXnfZ1SEM7uGD0ojE8rMcWO4OIJNRNLHOwAJ56HQYp4zwpqlIbkjAg4l5A-L9bykxrTEwaKuQTEptmM1dx--XYlvfC8VrCCjVO_5Fe_oJa5HGvxcNKLorNSBk1CRYSSUXoNURm637wAclfmFks07uPHLyrqq2Y4CfaAD7hbEgaOmRHiDFPhPxAQcVRZoR5dPCnBP3sWoWHkeiykmYQgCXpciZ7sy8IMi0WCNQ7hJz5JpSDXYafb_lJ32RtlRqCDZzk5dnZtlqqJXCymbw3wUOk4rhX3duFIigE4Vm0lk5npboCRACYsaP_5OMQ2QlGxHibEVXv-NFNUxlxxungdwUBCiZJFAxGuhu3Wvp232uYXJWa5y55OHB0jxJ5zWCd_KKhQxs0DYs8e5-0HMGOCetfdpEDt9cfn-yQm7m7D3IxZesIDXUGFcvcAJuEQj-AyCMKQM0FPSOaQ-f5SE_koWERU214MU2sgyZPnaqrLcJWxbqhAtBhbXLmXI9W1R5BOqiH3yyENRykuJJ4zVsYFy5qEyKCLzCozeyxWa2Uulo6Y55pFFwO55sgti7GeYlhpoQRejxaQUtkK2S4D4i4_JqVcohz9PAA_sFg8kZXOmcVvPA2_5Vpek7yaefU7Pr3TRGr-7nG1rGFwSwAlasdZnlUMIRIgJGiQc8BIkImgVwxYzOm4qVJO77Cs0KylKMtrnNw1S2rrjpR8eRTf1vkr_MhdS-7dnmdHNlQuFEeB-DsxFrOS6L0TbGttUKONtd5cnt273ixaHAJSLsXMSL4sJ9ciHjoCOxwCWU5fZeBqZhrofslPaeycGaggIFaPXB6QOiQdbYbEXHFcX5Srv4UCEhWzYlLkH4b8sxUe0oRWlkmFE31CP-6vTyGNMtXf6ZSXoTx7tLWgKogIew3h8xLTDmTOBjBfOfh5Tm4lTOb9TCoiWbC_MemoUVsS_IzmUFxxRghFq2fPAGAUuH418PjyNr4OFbm1L6Fd7pl_TcF_TjkfU0Y7CTzLl-X9sx3QHGe4zFqtEZVjzES6XmdILdGxPBSLX2kUJlpwgpWgYa7IVrCwFbjPhB3tP4kHspq6A74iFyTbZW-hMpTwQeCta84RQfTH_TdphHkn9NhngVM_kwZf_h4SPDa0OFxg_vSg0bX4ZKfLN4JulZ17Zg_N_KoV6b6lxVSDaSnfj238F-zfNGOc5vz2x_7i7oIdfxptSqv_zamE9TkBlP6DqbTRfYece88sOWbPIVllVXtgdERWYY1hFQblAoHAUpuJ7lfbDf2h4G45XY7HainZr6PADGARnyN_sF1J8AGirjI8wDRgWaqCUPwMQguWqV0ZFhow-HbUZJr8Ov7TQk8sGmjHS9EYxRqaEsIHLP4yRbULUz2BpPd87NQaXRiMW0weGUOSSw03gyae0kWpHC3WDSWUSy6xeLILF-pLsFPtb6nMDlBKBsbOB7znVH-_4svlADUAk1mPrNcSLBAGlg8rp3MhFRW-IZtpjP4N0hlDW36EAzf4dV47ZyapL-Lr-oTMiBzQbRNhN_H4wwFylMU39-AuJtz6YnkYXSc8fxhfmMShI9JbBEmF7YY_-792MxpU0FrvzfdZ1P2QTPYwLUzKxYtp737ubOwWMdzEarwR9_a3mAuUM-x1a_vEretdbLrV0v0HW5b3S2TTPymEtKglcxs9U4yrhcZ1iecfI6sqSqHCWW1vVYqPV8SP2SoeSB-fH_nUZdrMOqYZFNHMkuWkDd01h01KGdjtpWp8H3sOds6w3qPoX-TBOeTaxIAj4KxUnn0NldFnaq_ie0FsjJzH0jQZessWxMY1T1vAIyJEUzrJundQbRYYkFOHus6hWD7xwueyey_FioI8MOEHV2xdIXhlHnA1c-v5ijI4ALNOsrSivFS5PxiVe_5xg-QFCDkhcwdaAcJWTR4YxlNxXT9LcWLf1LiscFkvAz-a1RHA31MXInEz7lJkmxa4VWq6N6NIK-icwguzhOWdjwcZgwhc1BY-vQNv1wqznJ24W1vjdiTPtq7Dn1hv0WOkSHfgpzPnXKKnaBxMMZMRgXIy3cPFwlPDMIOFWihtVEBqi6Asd37cDwgH5yBKR55iZ-wwb-xsMXYaLtTCnkTE_LhAg8UYUN8P3ifg00tHa9AmGhzdM8AYTjuuFBQDkwRBzT_eOUdRHuj3dK3iVIWKMv51Sob7MdySdpdnImJ2GvLaDKn9fUi1AIvbsaU8TTLU4pa_TECQ6hBv6w0-mtAnZVOC4RPfzDBggZQYkzwrxuhlUrxX2-eQg8PTi62FpnX7T1ihbimK2wyIfuXp9ypVuVpp7DqRonPWgu9oVF-Et0jiiOq-VI0lDVY4Wob1nE7tl510Co5-ocQ91k49IgOd2OPAXY3VQkr-o6wLaIGdr5uW0XgfSMAQFgoIOLkT_hHxkyh5CL-SnmErl_ECmdlDYqP2-bkpL-PuYVvyZXAMqvMNaSGQViHBoi_uhSBDkHTBKNswGmJCk_c05Ym0vU5T5-pmutcBgWVW2A7zo8oqMXsi3MJBGYpGs3So4pEQmm1ZcpaYGngSdP7BYR3b1YMTL4maX5mZxhEeRlx-IW9ZdEsa_frxGWzCDhnNOYjOMcGLzBj63XLwf2c9toq72N103Ma-9j1H30Ox3wmqaIpapxJdEWkeI3EuB5_jy6mJcl5jnHKjBFgW3LL7FN4cn7rT40FH-y1-3zwcBnuzQNE9dFN-7igo8zqqkpJQ-DWdI3ufXZ3F44E9iwXq8idPbBdCgt8W7VKTVcZhYdWKkoWyLOj46GqG0A6h4D0FbYew7hdoxSCsZaXhDiaPB8vTD8PcCoupXqnGhN08qD_lNzBlnXsssphssW3IXjLqmxsOmLnaBdlC4piRIfrHp6Se_xnJozZgxYI5tSgIig6_vk5NTXUDveerV7CFcc6ta-0l1idPhaMoyRtU4pglCTbGIfQlfoaowjMadCIMtJTHTd_pOALLQ7aFbCGfuG7h1alEabwPOThj8rmK1zl_Bsor0sb-JljFayWgibdsxPFGXl8eKMg2N9LYQBofmdxr0kKRovIzaxQ5FDMUUdRZ4O3BSlK9f-1CSLkf52MsVuBH-mIbmkAOPFhd8NKG7ab2ptNkvN_KCB9VsPFOM5xyaO7NXYcKD8t1Eto8L3McjdKIp61YDicZ92ehaHuVjFL8fVQhlwvLQsUGwTZJHwBdLi23RVwiz1ZqjH9Jx-pHomYoHPDXw-ArPmhz1uNGQFYwVXervVQ4V49WNDr_S1NekfE12ZCM3Y0ME6ORYcFufuPO6UPwDayiKjKSx8TW_8qDuBMoaAyIh84Mt21JiqDWGHr0fOC6vmibFOFNEmWi4SM8bZuXpx_gTSK4OmKRXSAqUE4szX-SwidkH5Tz_9oUKWfFnG7qHOyFZpMm0dYbUPUWJ50oDsJ-9wF0zRHpcPqbrQw8YL9Tj0Ksuf0Nra9JDaaROAUv_XX_IQG6s2ZfNGCZmCDPz1tq_nrYB4tB0ew8lk-bk-SvG-pSVJ9CXLesKpN3QIZKa7l8c74vjqaqaqE4jSR3cOxKyY4ph1Spd_RxhNrEN9AsocSUL8Osk10U_w1S-ABVdKEWPyxDRzPOGZkypuAV5_MF1peDLW6Qks8VGh2K8SD4XuPuGCgGDqY3RUPc1I7MTzMgO2X1Y28xf6C6dWVwaDvGk7hX3k5yEJYwGOhMjJ-imqCjmtsAw-wlDlTDhBItTbICxv9OclB3QiRgiOhuvTpqZwLD2WoQeWk38iBE8SilFCrpo78UxQOLPDC3tfzeARDw3yBrFu42_wxE8moPI8lMo4JGbs3Lp2klsCkfCcQgA2GykeYcc4CnhlygRCYno7BsRdWyccvdk9Ydfm0gnw7DJq6e-GcX8_QcvDNjdLm9OYCPA-gJL7nB5xN_-k1BZ5c323rOI2goD9DFbTjfntYlcxqhjooR2OriHdW9CzMZopMcigNN5uxWHSmuvWLYLSZVlf3qTXK_wsWMntSXDWenlfXSRdL03oJikvI6GxJA8A4hADzNEuo3h0kfzdiTf7BMZJ-LZI2yUaQ3ZZFG9dBtMIm1s4BRseolxooVJv0-3yj7x4G6cmTIJxqUVLRWLuFOGx1y85-xceVC72QpLFbvEAffcm4neV5WILS3XfAlt05cc_b9NZD53p9Lymu-GqOdXfmyUVcSXC6yrfnTGt_kwlxjWXlIxJgPuJLSYcXO91hlpJlHrYuA1BzcolVwNC7nDA2GtTWqAdTltErK8UEyoNzf4yI9DPWv-UfpFiguYo7m9tqh3bSx_PSYSKW_J3VlV3s2XL-TQVFYLjZdnkh6Yge-3AnRO6DVarxBSLC7IkIHqda3DQx3tTPAP_Pjp6Lj6rmRDHi5FAdFJ4kFJnKqE_u63xOb2rMbDXk0nT65auNR3UC5Vyzty3tXYPXNVBmuuJvs3SlFN4Tj1SLnoPeKhDIdFrzKD1wt5qpaXu9bB1LrIoGFQ8ZqHeIu58Xt_ncQBUhpY7Tn_aT_Si_AUwxrcHqgyYdObrSEBGFN27Q5dWU964lmOuazW9xFyQuyGV7o_txXqU9pXeXNBAe75kZ3LYC2JVSbhfdhnOdhdHVxL7mbnqxs2GwQ7scrJFdEfhhMG6H8JFTsSpwkYHGgo_CsCJ5JmTkAmdkABSKzpfOwLe0X8wj6sOOrBS5PvKSi1AB7Q4J5DKKv4Gjfn9_xE5U3a4csfyKlwC-mpLLdCtlokOW3C63BLT6SHpOGE7Wh4Zdism4xjelzsrfI-IzgbRDBH8RMX1trTYjzWHoKHdm5of8ukUdFiug9sZbZ-WoSEwGoBg3FlKWT4cQTwrVBErScTY0eq_foaIHFVnElLjLVEuRK4aQ72IqmNOIZFkFfFVXj0djuH6wwhatPHsyWgNKwmYo2lhIB5hlR7bUTHa1yAP1ryPW_HhQj79pCfubqohRxwO_DAwHsE3IwEN41NwuUB5ipzEqEOVUx3_WU1-IxI2nipxO1pI7LBy3rsDEFheJv8I-IIxd53wtVORTXWrJjWTucLTmBs2Lxe4hn4TPKADBkST-nfx4tWrzFByAwAsPlTwnz3tAvsg9CIQoepqKGLBkVcdKvNFmKWXGn3sHzCmXGfK7NMUVyN5sjCTDqzaKmqJquSZi1JEkL-CRMby8_FEUp-Sl7kevbRO9Oj8cEUGPumWYPfPCCMlHjNWZMTnTZn-RT9Bn5xo-5IJy6-VqsLJWFxC_dafNj1Tm2CT9vcpDPES4Ac9SjE5nqlTR0pMwpP81Xc92H5kL0nIze7g2ay29GPvLO0aYJoMUaqsJduZlGw8wxaRmjUd5uzly7nOKQW_YhHLDcLf6XeO37-zLQGORGWQpukpYJBRFVv8AVX-ufZBPsL01S2-s30m7gN7N7V16t5fjyiB1F9Bt2u2v4ViXATyziu2oIjvHOEHsIIKOg6yFwKOIkgvHwYuqzWv6Co0n8ObZo5B_0B-P7OrdlAuOFzKrygBGdCVOfUm-XJbpMrlIzMZgKCRcoYWVGO_zfvCpZItG-eRpHZMOGx_7_SsTLNnErCszAuZZ80J-pJ7AEhHIOZqQPjd3ueKV7LzvpmGwzK6hkuiPgud8ZTziXx5P4o3Ugr5sAepT1jyf9Nmqwx5g1ctub3AtOG3Wz5hiOXUJDwGEHUCPYkbkbs3by5lf5eQqvgsfyWnhM-CiCE7HBsQ1XNUTttRFJZjcozoezkpxyl_bVOHfdv_1YeUq62xpMtjH4qQnx4oUs4tLKjqseoShaK84FikmswNfl6089xD800vyljagx4075-31G6rUC-OB5s74cGd4lQi1xfTdSHABf2xRVbZWZ28lir0vxTYLrd_tKLIA1xXlEwAvGHFlP545AmS1o9Ojt6QmZZGtCfyjTnLHbVIObGf1Bxt6fWmK3XrGqssjaeQJTqBaQHB_6Msj1KYTzVrZP1HsA0fjw_DKT2AtyZvYfnQKRxRHITQN8TpGvx3ol-7exGEpkeVGKCkvM-9gMV6-SEXtKCNauF7AXdRezKVxSYdbnYVviEBB8Vf0mzWuYo3owdPj6qeb82hNuJkx82EHg8PFdRnD5nO0ECmYy0vRm31kah9K1bTadvVhwrjozMQafzxoURe8j7VOJgyzu9FgMYZ0sIPNFUqmfjnvA8j20gAG0mhLy6DtAtYzIf5Caquumbb24jUX1BBFzgWs8z2Cqbx2Y2gLV3W6QDa4pc-DARFp78HkuuOi_tbepvVu5giAL_QyaNihK1eQ8sbdA75DFZUA4aEFz7XGHsayHsq3-jgeCBz9TcptTggIRH2gRGl-WntXNmQH5iTXyP_aMIYA4Q9VprqkN9bl4S7sCp8-i914Ev9cn9ukqg3ewyqhpa0U-D1G_Bjbdn-qyTbjIMZPioVoDEbfEDMQhS8hBAxp-lP62BMxf5NVhqHSXTuw4LkkkPtVlQtivlP5Z_T8XJQf5FN7jiNCnD_uJxcfISe2dHLLAAe-j1flbCOFq7lpLte_ZKPkiEPFSFVYBEb2lu1dws4DsFzq4Rn2oZ3UKaKB_1OSt7RbpBy0hqOTS5YYj80iSW5nH9py0j8ycL8oc19FNFSdOCdh1mb4gqgZEkyJKDP3C0pbMxWg2CwfrLajM-Eo6wcZXbpqnPGlwmymuv0wVUaB5DwigAkE6bNrHauYDU97NzmApV-rHFN8zm1k6g-BU2TmvD800iRCReR3MFNbuVEVmQyWRhFBzJhkg595ZmpricJ8XUMkwUqksqZdB8kREk1sH9e_kWczAnk43Rhz1v2dtlDE1LlqoecCMj9z5UP8YkxDn1lSNcRbFaOexE1-KmMFhIBow8Rp08dbmO3PtGzb6ryoFA4uJIxffYQDJ7c256i-tS5i6fpvwSxtMA3tfx7MCZlSqpdS6Bo9n6kP6ry-MOE0HyEO4Hjb-2DtFuQ26d3oMDr0t-IQxPtfSeG4feXLYUXuknR-uotfn0KgeT-WRfhF04Kz6vYSxRdf09zyCWGcvCMrZJtsnwBgfh3aic2iDvzZYhYuh5ZEiTvupNLcKSNGVhOBCSq3eOZxq7OhBjgu2fiRIuHD11n6xhV7FFXolqT3CEqLzjyfJzGdEauM8PxTHLLVEWhQuLRaNsqnpZ0p1fLB3QHlKz2B5aSpEEP8v2U5xvVQFngvtJ5i5xx4YSu35uwTqiLy59-1_LdihskLyDkpScRfQkz8e9FWLJ8CL9S1CPa4vD5bZjt6b5zXdXtINh1UVDUG_A9DZd3eZkONBRBawpzod4IL0GCE_dzzMmxbZQFt9gUgfb12hZ5NITHy9uqj0tD89TPYtk_uSnYdLckZ0rhrFu8ZJyS5z1N6S5-KKd__lpO8NXB-Jpwt3BF_Y1Bx_otTSGEGVJCMMZJEsEN6WhAQ8avk6rti14ayv4sTmUYZPBn4-ND7QqFuCN4D0qtJmzIvlm0D_tsLq8aLhicTw5gLGRbjgPn7oUzpEd_5hO48hQNlPgjVzAeB3WWG67G-FrLayaA48NZHaPsth807mB8k1syaOxdJZcUxc2MnCYyI2sndJs6fwnglm7SQh6kPTmQtDCCqGUY1I6DwK-zkSM6Gmq1tRzLVasM5cg4p1JL0_pb-_yBYVXMtBdPY5ohFoWQTQjYTX4wMN01m1z5zMzofXrylF_DCxLw2RZUn5PCmnfvJ8PrRwaORA6aFAZvZ5VPwbOKLbeBXHTMR8BrI84Nbllp65HeMJO2IG51cgYwzPiqJXLgkJtFGu9kteekTXFdc1on6QeGNKURfBTW2MWyECch3JUbhErrUTlN7ABe7Gh1H_E_cYnIQOU307EgPkLlIJGzZozpjOD_kTCNrvgdGaybIAF8Iog06kkd409L4_HDty65u-sLAzRGrSDSqRiEGMfX_xz7fzEwnlyksm9Yoa3yfQJt4QZUisL7qN_XxyNTScOmO0B8_G5TlI7wcnWnQ0kfveTT0Cn1ntvFIOD-NDGjntKtQIWV9p0ZPd44ZtAaTDYArUUluRhrALPatnV0MWdqG52yUhzh2LvrLKa0h-heMHrQR0-3VWKdajBnfRRahUPNBjv6P7f0ISvQTNFEyEShFevXk3sQWHPY6-di_PSGUpK0YE_yE3sXgTcCEq91EAQRQyXAZn7fCbanSdfC37zlpe7jp2WePLqr1fYynsV4PeAVlLdte3VApGbNaCON1MV5DhDf6cogxoaZGJla4XcPRLzJXrq2luN9VHRCgwS70e9Ni_nwLZrDHYfPHtqp3QOYOrdapwxBIXWPbhDOqXOfmIBMTLQKYDOfhq1B5TWzvkgJgMP7bqFhtzXOoQOmxrzWpbIakg073iW-5knaOa4PaAWM363ukCS8UeU6gYcfWwFyIgo0c_gkBrgw_qZhv6GCKjmfX2HMsBKvTwUiZDKkEUQ9nxEVvqMAzKAWcxlQjZBU_iFi6vgBAU9-GXolRoMdZq0H5msB3FRXoQK_p0lpjpKuwTO-Iy0EzkcbQdEa0HKDHcqiJQ4mU9KyRKDF0U6gf4Udv8jfb4Jc5XcMScxbqZeXK0IVxdwczkHXzmnjslutwLNuasBaUr8HCYpB4oT6HSgepi3YXKDFxWBwJRRbE_xgylHkU_LgwaRdMwjoNyFUne39ATmDihSZbdeVZM5cy34ziu-cG_j0S2Phmp-bY4nXEIqA971kmPrIQ_xyFiPBSRjtfQT1K0PQ9zqOwclS0QZOMwZZXWZq4ab7HzlDg5uojRTaEx9fWyz70yEXRyy4ylpqJrqft2t37a_Mv_F5SKno88j6uxVxn_WztNJCRn9P62nsl2urCH4MLLhAShKga2AKVwk3iwwWOC5_1nh3Y0O7L5utmXGl71REfe6TyfyROh_5OIroQOOCMwNmOma0PsmQlyvkz8LfvZKiGSIlvldHlR5dHGVL86WtFLcGfpR2Sl5qFCKP4q0yQhzVsTmmUToeHFh0Sm_L8uOQwVwQ8FqNXyAZvh0FmnpYxwr8TQf0sTKUcku1YCeUNQichS-oTk4WlKGlMTVonPUIGGgsGzvQ2msxO0J-HCXtQC1TdVdoGC-3H5W8W5xoOl1gTeqRl2ehbsAmLIR_vq4wE1XwXuwjx8z26arnLbs--11ZCY_wJBtbk6tyui6b8LenbzFRxZaBpuCOTvTTvSuw38bF6i2v04l6xTwnTNiQ0qG8BS2h0Jyf-juUqynNtEYqkKDKlars8TbmVfrubHPOY5JEEtMZS0fLwVZJC824fzbzazHBn4fNjG1WdIaJgpYrrhqsCLHAYxCGqAHhV82X62fxrH2ux0SKOujLWQY7Q-DX-JebD8xsoyHjzjV4uIF49Fb9nPuathPIVGZmZDT6s_PPeuNlbSEGb7fNm8IQp3RbJW71nUT1AVVcQvn_abiO1N_007MQWahDyFkxdTRNLgncYgzJ4CNfJAlbtLLeWF5D2652_mmjeVU8bzDn2Uh1r-DvnkSxlOdiB7ZARp6_UQrGQIXIKSQsEcRBwPAhTh9P9NUrjvOnyBAYEakDJLG_6qk1ROjEzMR1hRP-G0xn5DTminfgpdD2rYhLdll6Lw7PpOmkJgomtHp2nsHcnD4V2NXuafv1L8kUi860utO7zBPQdIUACYkJbrbGvkCAxxtgckgAE61iQWm0lLy4cx9QfrByvu5lCmGrYS7HxJKt6880r8561K-KXZ7idqgSviEA25iumH9cbqyCuD_8ed1wEnpVMvMRQcfXhiB4iIpRdf8bE25e5Z1npGJP6m7zaU4JmQ-_DVSlttUzANVzCvQWTCDJpM7Azee151CYYi6Ru4KJr471HRADfzuubvg_I2sRpnqZvDXOUCzWCImow5I0qoDW34Pjoze55QE13ZOfV9vdk5q-UJ0I1qvYaVkb6UH6BVB1x2oto914OczT7CQ1C9xYNNWqyWQKBLBw_FWlwaPj89nVTXcWnt88Xb-OqTyGC_rjHI1BwYChEwiw7gANfN5zgtMsIy6Af9UGFbhhnNgsWlCL5XlSVjKPD6ptzGjE1egsd6dCa6irh121iyYbQ5QsmLbZuZ0VMU4dtdwxQKlR1SjRyzyqUu9TW5scc8gsYzzspnkswHVGtkWZPp2TqOoUP7cObGndMS4AYVl9yIMF3z_blpPC3bm95RWJKFlS1hdAhW8PfmQrgSA7ypj7_hbZ-cDObiBt8YBQJFmf21mOrBINMl6K6fjZT0gNWQBLoVX71ZDzKfyM74SjScWtzW9UQ8OCGMYMF6KKt_rz9gUv2n09I2aFB2wFz-yQ0tY-fs0iT5i_4EkPNdued7MBDg4QsomDA4h6ZOw8K9jX0Gqj4mq9mw7Uw-hEl8p1u6lXng13aEKRExuzK9Im-Ldy8QYv718lumR1sqvKmBjkTdF1SGVNOs3KIURdq-SWiGJJsyXLu9q0epFrV73dzae1LyS8_o8xb9qLuAtlIC1Lw7QFmcvzEZas07tgelj2LFfocjF0VWhioJ3HK7iq2olQ_Fpz95BU7ZQWGBc5-wviMXztoRcE6WDL1UYpQLsnFXHM4k3sKIg_fZIyXWPpFguESvruecFInGA2t4vyjf3FuI_fULKnAkt_mOz2OiWSUIHJn7RQ3dE3lY-M0re92Lw-jCUY689Qbuc-eX7BWTkUwJIUsBNX_KlmNtVg_YLy881ZBC0j9ttfYkVjcyM7qFRw8qq-19G2FlRfEtJaHHNIFgDKlzv2tAXq-kvRgmNfajW0g1TX6-hDmag4AXOI4XKpZ4ttwk2r_-lHHqMe1wJ_ZRtoY71W7jaFxdQk2tibRvkkDO2rp4aWsEf3hEKZlWpID9lEgRYnOqCjVVaU-HcnBHTUpH8uv5DqNNd148kHogWtAPb0LQLT2DYnxasMfeUj2sH8XI3AHKNObFl1qV3C8b4e-12j1sI5Ek1w35JFBlAge6VKc_-ZPFZUElRCKdflBx38Et7oKY1ZG88Oi8fAepp5f2eFIsnXBK_kyrReVlYxvVCZzKQkDZeqJc0o6d-anc2aXLq4ZCbj6ZHW72lOj0e_oqr61WEQObPxQSCC2TP7jYHtc8foDWOKlldjwnGGxmN3-b4B0XcWGNeXi5rDfjF9ncvr_gixJy2CpVaMT1GXOvFTKOdcjD9uo9tby4Bc0reRge_NqZUmYox5yRneB75rKws0TDnAdScO21DH45IWT6XnlcGXYHEeYr5GPvc1PTQ4_am3HjGLc9eEB8uG2Sj-vE_WpTsVnMaTGA6dmC9OiR_Bb960kmIVtHc1kXGchgN0tRi2ubWgPyVtybaGxwQliVTmMC-dkKNPzji-9GnuEZJXuO-NFvNh3G4xO-8EjmW3z8ZZDXWXhDY2Kt5SJf-c-1QREnZZc4DuLXdEyz0HWU8xP5cK3dGTtLEYYAC4CSMX_QRumgC835Qcr-gM3Ct8LJ5nV3uAmmWMNLiqa_3ZlYxbdZcrCjTORg62up_jYr6R63MAio-jUkAKN7ZygBJn9SN8rvG2lPYMVR87oPZd0UEKlsKrth3TpMgiyzII80pAOmnZJBj0GaTgAqHCW0eHCTqo6Krbzeh7RwbHpOooeMdzJupc7n57cyJdMEhtCeNIT8Tmw1RJ-9nTV30XnL_rKWJuoOqyXi1GHQzUD07fsfD6N1qLNbOG_njacx_YZ06geZakdz5bPPAV4B8wXlpHwvcxUS7fDBHKgOiVQPRMjeZHASCRg5rBC767PfWILD5pEC6me-kGfVR6dP6o3dK1Pl2U7Of2ydUDYga7B-RqLd-OAOzulo1AjE9_4ZWnD0TYwWk6AbEsRbsrnExZ_5GgMzLLnIhkLB6dHQQuuOndMqdjUIUsxfqYpa0Czh_3ii2wwG4PEaT89Gz51FadaeWMH09tuT2SHX5sVSAa3CZrV2l1YwotnBIPHgLJIpuXYFUtKdg3QbpVQ-8NcBhzol1_gixUXpnJBWV_dL5Ip33yNALg1GGIBNBUZXZryYtG9CC-oo-gDwXqiXhQ8pJbhJK9B3YeVheYW98kgoetGeHn6etXvYf9EXKcu4xuC5npYTVqb9xlowPhnbGQX0WMOUygza972G5ncBpnBKgN__uHtapTC9IcwxyhrZ6kaPbynbPwTMsZvM-5MbvD6uqB-Mwag0i0ouaJqbelBP8gzcD0cpuVIGfqRySBFRzk5ba1bFZxLn9P7bBtr55GJD2mwJvYZ1aG_PaDbdPlXcHpF1xuZHvnQ7Z-eDg_WBwenbTB7sL1NEKPx1Ms0CVP3HyTjdjLztoUAxxHU70QrxrKb7jxjx3j8IBbnIIEH3t3BPug9Z87vkReq4yveg0xw1mYaV59K7XOGO-MP5U60hbtG9iSHvqhZoA1wYwyBjV6ZMHpj3yIcSfBuAobAR2g8afIvYx5ZwbJAv1xRmnUYrTbge5zGErhgqQLuvaffkC3eSvMWGsv8JZITwrRKpRkT7wea-1-dFjP-VPPq09-iZg6NvZbS7PA5bmmHi8FBB8jSxQNkb4E8iEuome-nxPydGeTKHNQf2zb9Jbb3jhk9E60uUXA56vD4sWiF0Omde5GLuLHWd74xapWhAeRlu29PNA6w2uvv8-AQz9MWqxwtntnqarVdBmlAHn8in37KYINBhNzhKo_Uk79Gt6PBAwX5_SBb3S7LleIKz_fKefAetQP-DULm6EhdzGpBjclFaxfUqcOFWCOdd781JJN6zBO7jrSZY_4VCZAg9IMG_0Pt0umwLgyR2NhicCWCrg6IrpuUUCk8aoohslxCan_afRCahGuhCPyYoUOw5NqN9y4b0xfwhgfLLRIy_gp4Xrx3nuLt8rYQk664xhFaui-GytnuShP5F9dz07UB2P0LT5RVhb9flUGW1Dyg09awuu2B3jrJGwsotzI6bQEISDSNpC9fA4b08bcKf9XIK0EmnQzPOeUztFE0m_54WPCzJ79RGLNU3kzrdhuJkhbk-8_vQBoaj1489z65Uj4OXdz0taTTpkAm2P-slh8dQQ3fgAG2JZty9VA8eGBmn0z3SujUtE_-NVPEds87ocndG6Yo_j_UbrFvW7W09nWFF1GPzHiecxN_3Xi2vSXkzbIbbeJ2gy0r1zz0BzN6BeL7804oI9DmHEkYv_py_t4L-ZeRKL34PCLGFNditWtuJC4lot9WwgnlfBSNeq965H0xAoaGQU8LRcsGHFEa_IkfXIIsNpa2rsiN95plufKuLLh9nyg6N6i9bUNx-oWf8qOMYgLvcVZa-Uuz3tp8UFCRLeWzxCaK4THRLIj36z7WVqHD_ON3UWrQ81dGW3UgszLfxibDM065I4O2jJR6yesc4ijB5z3nI0okCNetWXfRXTJxm_rE7c2mLy7HvkrL7arC-lBW38pjpjE0px5Ig_tL2_WPjEUFpDLzer-oRlKgW6wfJqRfuXaPCMeeYEXGckcxbKf40Z_Js_RAAfAJhsjBIO4TsWXYqKFbck48LvcS3OW1WwRGBBlN7QYTwZNBipxE9NAQATr2Nbk0k6VAbWQ5FMd3jIU0Ki5llRA2z3o1_oyAHUo-i2iGr-wMsRERk-Ewwke1KEST2StJdcR9Wp7jUcxIbWXqWUH5JtTUuDckXm5Rtko97Rp7Hrvg-kS22TCz3POw_dOxAhOfUSw3xdsV-bfrk6e45sZg3P7nKYm5u8KAQ8NGPLn786Zdj29tVBmS4Tzbq5G5miNuTge0DvNpB5rbLhMP5IddeBN_pvM3XZjJo4xUswFa-v6KUOcPQL_PJ2-N9T3S5MY46sJ7vmgVHUfWLYz0ODroVhQ7aAqeUtfDQmX9KFs1RdTlqCOk6nAjVKxu1Yp04MHNAcwxEql0413vU8BheDZKy9sSvHnSocc7qqIJu2-GEQjLJw7uG0MbM5TgiKm83Yyp0P79OdQ3C_anC_H5VxMNvWFP1G_e6HNdkINPeLsNbopuxbT9MofnkqgOMFRr46vtcc0W5Q-TmHWzrbLw6_QFlMpvuh4JKudRq7wIhU54SWHProFgQdT0F7VbY8IAcwm7lANarh3PZsZLoOcmfgvmWKpXtrABMOKsiCtjAlesXK41pBY4p1GelrlBhc_3V0RviT3FljykDgwVODy-5NC9is6iZ1VB12NPXYhjbA1H4ntTkqSI7EV2__sktSq3jPaQkF6-yVn12UOWp0CoNB6PvaPwLTftCTazyJL3hY4E1f-_qBwRilI19L8nF4V2IzkzMGTW3UssKesMyC4nORLQqLTcYa5sx3f8jG6OwMuqrVeEVl5d4aWSIJzOFZJzCrr2tWoR34aXiXqC9aX7502DgUn7Ajocdqk0kmqGw40scoTOg-km1Q2-_unUUnVTldydziaMlPn7Kpn9VAmQ9CVh3P4Ejd_xKPThOF8IdaPJ8K2j0D4e8jZObHhzbTKJZeR_cqZ3zaAzQwP9w4i-B_jlZfuf6cBMX3YiIoEubGMg7yaRZhnrXT3iB1j91UmZpvuMvX9j2bKdrWItjsqDg0DIx-T7bxFpY5s-iQILDq1YIyG6aEx1x6tWsbMzC5Mz1ksmXE0cp2IcBl8lG7czwpa7WrjDA5aufXvXSBoM1d7J90GSh0M2OEcIYsu61eDUQmYb9aFi0mLbXmesGwA1Qpdy2MuwmsEBs0qlQAru-ZwbditzKeS9D5lipnSM29Yz2hbdSVCq4Se59qmFEvaAvT-Xo40CEfkQHKgdfW456PNQ_XUgUWjY7iTImy44mliKdzjkiDYHdt47ZS6FbKWnnEOJxlC_dNU83e4WYdZps4ZA6-8au33pw8uOY3EA1Epuu3McZMgfw9sKxbUxDNzhzCMQ3J6BhT_tSaurPS2LaPcQRzCARNUbfux_3ObIXmoVhjtYx_kA8j6DwOtQ8eP8LLER1l7_y-pNKVHPisXHpiWaH3TUTyO3HrI4CLM8cpaZjWuyjbAW-aDuyx7YB4RWh9kMlTevhlb85j42MdFfD607B6T_9WtUb9Z3z7Lp1TIGqhz5u7KpSCASo4Vkfp11CIdkMLa-3pxea7JxZDzXu9RQkvKqV9rjQX4jCt4A_rY2oJRpBRVfBRaCOcXpxdkhYyLic9k0ASQ5bzoC3nBHSTLZuOsrdSSqhTikQSII-MWap8A92E2NS37c-yyRrsV3i0MVSO9U3RUc9IDx1pIGrM8DqFggLwg7HowHz5-zthLL6qVHSQNZlW2_t-2Ou94_SFhKgm6SaSTh2GHoXCbtznWZQsaDvdKP2ulLWxcEECZa2cUeCcBW4l-IB52lyJMt894Hx3mZPsxahg_DmwByVlBd6HlwaKtGT3GgxHjPe50wXT5jJDGAaXxfIV_hOxhfdiseEPKDosK5JeyLJ6M30Gtth6eRkoxr0pD9gzyvYqbj5suy9ugg6RJmHZyt4PyAebX81UjoGW2jRRA7CxveYI5XXCWstqlFldstKgFp1FmWutcZRuWkKAwuFKrGRcZno3PKEmhAV1Kyh9MaUDCiq74bBV8SLj7eODtEJ79ElUA9OlDPqYvJh_rhFifpyYVnAdgj8ADJBwXvRmpoapbdaIdBmQz0xyy7pJUYBxwG2pFrRm8DrLy-RrwBDk4g26J9wIrSUbcdx9uL96IRuBgl4NLtMdX9-Aa1-QtQYURtjJCqo_2jyqTiD33iihC_nRFKB6xGLhwRn-pAZcF0JFhWa55Ubwuwi_d4jarg2G4umASU8WZ4zMp8O5Gxj8LpHFltKkoPA3I9WaFWip9yFa4wbfqlx5XrfPXh7v41gr4kEXQ8AFS72kjjoJmFQm0EvCCI7n0kI-Ir_KA7eq1QrccF8crj-M7VtbCumkVW_11Wp4p_o2HYyo8v64peFrs-5_kR9BpXJn3B14DpKK6S6iu0-et8Pk4HK5lSgq5XxWHaedefIDrd1Wxmz5WU2ewxxpQfk8AXqyaDXRU_-C--_i2eoZklDyItMIDh8LdejCnRju2m5L5gl2apxYw6q5CxW2IWV-uuyZR6onD-iive2rW6OZrdQf_oCYJiKv5J3YlzWpJOPSxdowmjBfj-nnCcpVEIqIIMedevRc1VkTs3n8kt8lodNsimGtfY5Qd5jBLRTcJFMArKqlygPNsd5OoM5jBSILcUZmVpHr-gWFMNP5ldmnqoxlpQVJ1v7rZaK2udKRuAjnZkPGbaeq7tIYfwjsWTGRKXx_Hh330L4v_H4o6OBSMGqtVnf3I9PPCMMDqkBIwmMsaHehfLlghxjnQ8aXK7C5OyVmjQ9tt2CmGb2mIOvHbZmnMqdoQymbqF4twPvgGJm1wprRhzaPzrVSwwpx0TW43_24d-tJFTu2FR3NNa1yFoz8bL8-8uyvBuuU7ZDf8EivKU8O4BW_LlG7deg7cyRAuHFpOsMF4tp9jnIlOnE6pP3z4TkHuxA29mK50l69npAocDuXYkS3sUP6Kip7gTYE0G2qOLUiI5yqUD2ConBbFjNE1PKE-wNgAn8kDWlVaU5yG7hzZWhDG_vf4C-_l9_lT41Yi8ISzyoOe-y3kcorqbPFELxMfyDlcXd1hhADhwqmlIyRz6BFJqSNssdFjwO7dU1OAiLrfz8ZsGXxFelHc_1Xnf44Eiu3JsdPfqtFcNpM6_SxGu8-WBbUu26PXa7eXotXXNoHrgf3DTp9gxdaYpno0dPYNG46WZvTbfceKsdbe4uQ5kfbJaC42o61z64ncOOJtvT_mtc79s0Q1VmcGgPv5ZIiTLQSrdMRoGOC1o3Q7G5jnxVwP6LsBAny9Xou_bYQfzlLC5-6kziDT6MUWncmtqNOoGwPIPMB3Q9khJ2Dm0AI_cH5zfNpnjjxS7hwkB_c6Ve-GVvacNo6gv7VfIvo01n3_VQeaA9BKgMNH0byB5Rfr2UpxNAqfArWqN0QOXCJ93EHHsNFAJd4ZwDjVBsGAiUWLT_izRdFYNkmCRO-PGroCJHS6C2bdqs_0dS65v-HmgYVTsB4PCjhR6XWuwNuEKlRKOGsn1Gjzertx62ahs_uf4hx9WWR8kuXJQdbVcteC1BXlaoQnfIHEm6ulp0SMa_1B_B0EaYZ68HqtcanzF2u4eflB-nMP8aGgmBGUyd1mdD17riBquBCkewo19t2QgOBNOmP2S9ftZuu5NNlURYm7MmSRCGMVk7fjGzcznLZYMO5XJG5jVgp7rnyLjRqckzZ7qKlXCi-g1jZ6pY85OM2i3vCyRvZqSZRVQcASYT0QMBz661_eCWc9fHSVyk3eE26RUYF4auDeke2jjcMjzdg61aUxbYu7zXHMqf1DHlz-_Wjp_yiOZUEo8KeW4W2FEl-Ewftf5bKNwj0PuieJbRDQnpwC27RiNE2i4aAc1J6eGpOu_36V0wUFfjr0KZM_NAfbVC64ROS_9vj1EwXW4SEQQRVXgUIz-S9N-GnVN5doHAfZY9_8ee_vxezNJyUXzPDQ10KAdjgPHQQLIPS5IoRruf0ykB6jXfQH0Uxr6p6jEJAsGTrtHv10KYNsfoPOUGuzk2wf096hTkLYRbVIl_7Uw8dnrLdLR43a29Yk2Pfq0ukB04WQk8BJuDB8GcteCeTu6CUTHJKp_D9oYA7YjLT-uk-mfzUdvYRgM9NJHxq6EpnMLF32TIp6fLtFe_gbZlRaQw8fPYojc9QX3wwfxzl0U73NqP2Bjunh3JGNGuh5ND0HQUJtvglNemDIPryT39dmVyDTqd2_Qy8E-OQug26GmvogO0FcqkYzD0x-UmNw-er2G8dcucCVuG_iAmT_wHVuezY6JIHA_DTBmzFeEHDd7Lr-bPlnUSsAglTn6AArr7nKiQPveoQEkITL25_xLkQ4ew5Pl8japhmmGsgLg7OlyNzLrf8_BmKZ8TrVLjOVjhURVyQNKdcGes9Z4lpoW5T7qO5fHZUmA4uDBPMy9NXInj_7sc3Usvg-OoZtNo14RK5wZwxI08zaO8xXLQP6XnQ45GQx4uX6LLqC6lFoa-F07UYt_7yj0wtQJvcbPVW21OaJEyDa95M9c0B_Xre1oK7UUrmTm6K2tu-CzRZgJEDp36VeN_qON2_hf8RAkhn75wvj7WiSsuClOHUtP-0nl0DZQz6zPtn90A7jr2YtAWA3-R1Ku494iiYkMh11QzCkuUcpbmQ127Eo-gFMkNa0AGNfmY3OCW_u2xC4gIol_PRmMqYIA1Xg1h3kLKorS5LXl2r3VpD0fgznyjsZIaXsjvuqLP5KW-4WNGHcf0CCNs71DCkn6M6B3aDl95UZsKMhx0Vah3FSHr5TULKiVcdUsRlPW9vPMwe8h3nJ2mJ5jrHE_gO9rCqP1Rsbc0rj6XRr0tNW-XijmBGxIFMd4s-JYJH5Li4574f5m4LusDEpIZMB-8ucNHj5w71eMSUwWfx2RB1Yx-SJMaCVZnMfz77skzS_6JOK2ui51dLlz9oes6HnT8bPF1VPI9UFkFwbJYGW_H9Se2U_pxfA44rD7a8kzeHgUjQu2kfPAhyRdzZtMXT40etIbIaY_TjbJamLjPkolV2-maQDtsKDiXFR5zBztj3erwaL30KiVF5YitpLWlPzkXSNnk4B5q5tX2gAy-DkCo_FOj0XV3gvBvPF-OV1An1G9KgYDl_5u6I4Riy8d50biTDaKa7ZkWd0818WyEGV64YKCgWoBeJXpnqf-UA4wTxhes8ZnIjxEIVpkg2ihlBWOFBDsvA_64jOoNnStHaXll7VTJVV9ZifZh8SNhPgDhY1Rz6UheuU62heq1Y4FrCdVApscp2us5Sx3Sy7POwJd1knFd_rHPUtW0qfDxKHTXD5ZV2dJ-nU6iTUXOyqm3nMjwYLipV5_lb-7g1jt7QrWZLqNfYxRjj8lb9Yk6aX4yCvRwUQQegWQUhy5Y3ezXQe4DfnBrSExuk1BKVeC0AilKskjJpRrkRuUChldEWY_lz7klhSvbSJgjMTIZF16xCt2WpNZ-c3Ov-6_ZgKJRcH4FQ4L3TAZsc1i6mBJG5nSeF9hpfPIAWtKqEfcJAMwo3i9XKfpx6TKFFiIVSuGVa2dHKxwC_laG-iDJEMiv_CxhAhMHFwZq_QnnJ6dFCdKSKp0PZyw8iQAB7r6XVFLnNVoVvLfc9CjOh5FoTcnheeq9y5vVteT1ruT64B11ab7hB2joNONgwA2MJRkH18qEBnbH_odfCpDnHbhgWx5xtHrtHDM4LejK4oWPsBJIBYeAjSgbKGfzu7c5Lymn10OmJkdV4eDeA55BU3EhkUHYFrb-S4Rb1QlXdQhUsMfnYImOOlGrWe8CzFTT0rR7AXD8ktwDgdXL4K-JrqCdCO6r5og8WXc6xWO4JHXAINEhiZLiXpp9EnIto9u69zW-5izGDcDNGCYtQEf7pnfmCe_V6AFXu0yS3VnM6lRKBTsy-dMoE8CXttMfXHxhSjfebD0bK60zr1oY9WWAlTF80iNCtXGXvaIT7EeIo3Jv7g2c0bO7XsllfjlKq3Eiq6TzF5dpDEg3UwVkNcJBHke6Ar6u_97k1u-Zy_8cheOUVxIGzj7v86OqOEEw_eXOXJar6I8CIYl5BucMcp-R7CK6v1YOO2yB6uhGcQG7J7gCfp4AEdeKGEI64O5DLcpS55-uewA_F3ylQQbQSgueh7rW6od9WAW3NumLW_4Slntg55ktaFZmHPl-Y96tLYfume2-jR3y--FaELbk3cngXEGmdUMpDAgfp_iPJEZOkIyXMG6RKcwMQtIZx_2PogC3D7icSQuLcEwGY4sRubRNDr9UWnBt84WKvGKRzHIcsvi0MDotW2oDPsWFCQGvN3orXKZA_5iKriQtei963KorgeN7xV9pUHMLO6JbmMw_vSoAuVQOBpXXB0nxDW8opO9-TBJ-ZigTRn6UWHOWk3zgyY0RoiPPh8Mcr1BOpce0srte4UEvtlkPhgbsvUil7omyuXEwE-5NesAPOcs0TijhX4LzOtgylcrLJbX0Nz9WnsC1xdZO3LEkueQU8-bd1fn6_mOAkcEmPRoLeqgFJd1XFrgVt2to9-c4lNPSYvAn1hgUqSlBFAUuwmO3sc0HOEPUfWboCJdWcWYC26AiF2HARZkWqsHzjsOruq5WHU145PSdFZ4Iyw3TKbSa5_n9V_ILGs6ghz5YMJDbDRpavCnM0-sTCN8E23ejHL_kjm_tIstSSzvig9DUna6FoMhfgRAJh3iblwQ3Lr2lbioyDMoNMwUU9NYF-LtoUf3IdSF3qCy-ZyY6a-SnwF_rzxtwOpnunE7LACP3zO45H1bc5LY7L1oL82z74_rLjwkbqN-zHSYZwZuAOAK-_NqT_v78XmQlFTYzXg9y52Ek0sVWy3zCtq2m76Bge8cK81ddLFoEw1JrsWiO8VtCcajwS60qd6te9TdAA27gm1ooT1J0VHiEaTLmrSdlsLx-OXN_4wIvxfMTN1d68TpAxLIDqkn78th6RFdxk2CJXfEuwtBHLl_ZL-HRYhCOLu3P1aQ0lZ78hz4VilCIZijr5ScjfzmaYr77BmPTS68uXLPGNl0xZC21bpxSMTf-2RVYK5nrsLz1WGct7Rv8_fnJXBN9b7z7yTmJ9KRfJatVaeASlJYWTahhB_wmXaSnd2cwP0XVoj8D7_M9QQha6kNYYrCEjOxJcHhqc-SauaF713LYG7rrzdVhNc19bRSOi6i-2mylsz6G8xe9QwtYetQCnO9PjSeMuXbsvKb2UlrQIcPY_Y6fpaU0JSaXjnKYv0n3gSCAMrC5jTKu6chRl-uskakG791jBUf43agEW7srQJ7g4swUsSKY_CrLLxt-5miluh-hvqvHKOWmysbsRRpbkPrBG6r3Z7X5tZ_DGqyR1qCCwnTmV63vL8zCI0qxrFiUPXsg4zcOymf5Wxeic7ntDD7psak7zXhWbL_xJX6trOgBDPpQXBWa9FR2VNX5gBEboZU2LPLFBmYR7vheviwz6XPnru0hsmsTIqy_EsAfNX2G2j5mUAO-x3pNVaTsgWhXqOmVnRTwY0897J2LvN5q1sV1Y5BQJPECWLJ_KFLrQsi3I3rLoEnXDaWKjQ41JStRLrGuyXn07Z2l0aM-WqJm4ovF_RdypCyT0BlA-r8aM_pZCYNon3hBUiGDrPmGlGTwHqgcIaSCmb01UTyuipYD5as7j4CS2-8HpjKutVtSEebfwsIXdYSl5ocBwKF7u5of6Hmoz11uZG3KQ9FpY3__CflxVD2UlVnyDdW9Y91QFcOZuFacu2nblpJhN9w0OMj57-q8r8uxWpE1TNN-JbMxHPUGRj2LCUqGjLus23d-5icO5Dl7Xumxn-ztijAFpZvlqC0USdN9NnJWoT37rSduzF0Lq1m96uDjtqW5kHeqwNGsBNNK7HyxEnsgFjq7p1VmOlK05ePY0IXEahHYfgs-AANBze2OhVQxxKV8tQXizcYW0NL5dWnjiREN01nO2OtfYvvmz7K2RnQuHAXOehnhAKOblAY28svk-pKkmBJwpJ8F6oUYdB1wIGMKqAGppLPz1DOLQWW06pWu5UmVh4JKypM8dOLm0D2o7U4N463Pr9cMj7hlLz6C6zPS_wkxIye8efmdOsqS7Kv-WnxmvpZwmbiCFEshqNJRBIWxxiYttc_L5ZjbY5OPOvvRgOelYhxlwzrfTaf2QCvqbjgRqTvkIX7CBmGvIDQlMOQUGi2hMKZq14ry_wtWhGGVmYVK30lzfL-hktUl_tJEJw09sTisJgC6TpHgp-kGzUTDrTqmYZZPjzvcRdl_PE2mjTMhRYJ1hRMa5RFWswKKxzGW8XCcbghlbzqeeIzImxLZdjjOyMZrksEltQYE150NGaea-vYkb_oBDckWPWxcRoBw3t-9tCO8i2nlXYCPCthYJj6_cfJXDPzVpfHVuiKepTt2ugEKlcBlxotv_0Aal6_YY8ENAtws-hfa-4g9npoA1Z-7G9Sst007PMFAaaPRLMa_3mABeVPbgxyrFTHMhLOmaiuaTOKucj5DJWJ4tKlOqK2UwrQlc4AFG6yBDOrqQit5yfbaDG5XVGQoTfD5O1vXUCpghD6_Q_gr9Dyup9_3hiuDj2jHm1bH0e8weta3E9sX_Uobb0bOZCHeUBxHu9-KC724PZF9tQNpGZbthkoB-KVwVFHQVhezFnQOChJwjHFVJW65Jc_L3ZTawHTQNAIy1sID-IBC5e0cVxdOXA4P2BVZvKQ2iujeRIbpe1it7E3CGzYchEbApmr1OgKj8g_Nya1E55P6MGoT6E5pqbZG6o3hVK9ZsoG0-PpgwYrtxIEdXoSaHGv3KmdIBcMgQsWwj1SSHNFfrAcIuo6chaCqYyo-7DfIBa2bgpNryJiVZuOolBAq9hVTf5_aO4Zj3JitjVJM_Vxxb88oDNnJqBmUQys6JRQqIOjHJWH9aHzxwPdTDiYjUiCiOQr-lMceq080petryuASFIeKzFwdGvxCZKOERUn9cQdM5DmsHJ__GvetByaudrpiziCGf6NdwXmuUvFIdeUR9Oe8ubSXOEZQo6AFD2xLIjNu2I2eqQN-en4du0eJUwG_uKMoHGxZFrmhwscJnOJhM-1pSeX8mLS9nyEQrqHm9jgLjzTsbv6JNVjwzeekKUy3UivVvo8sP55EVJsFn3xpCizQsCVn7OCUiWObANOHhy-HI6GmGYC_WPDKuCSuwMrKPqdHcvZGFuT1bxiciqB-OHd0WRC1Se0cWnGtvQxB84HHnimb8QwVvWqn5RCqWYOy252HcPgkXmY69kM3zgMJ1GSLP1yJPiG_H2hGdCmG6CngAmYhiF3gwon6NBsSU_GhVRg71WjIce1nR-vm8kYA5n8MSezMUeyCQzLmerLr0hKri5hQIznQ9EOMiD6ugYgSxsh0UpvHMW_AUGEiJiEc-upKbFTBZawTc_aYPISQMTw9z91kWRcCr2nEOWN-AF5x4km6R6a5wkcGNvI1r7ohSjVTdtgn2JAKnnuwBEA7Hsc-Xz_SUB1Rro6aPZnNZB5P1_8FYYtpBmew-snMJ6ifpymSeQ35yjQthx0NCv8AqhHlqYabYH99y57nUfnhvyxx930LgiqlDEvIQrLjO-djUEcvdJQDgH-GmbQR9uPNCpSfp9XkhDAYs8-3CDCKEWZnSZOY-hOJPsg3ouNDI4WZH5rauTClIA3XR_4ewBiAoH1plgLS37BjjakmTVKJCTpgpB94DMEe2qAVpdbqPa2J96mRi1llUKwEtCQb-AK2lPqGt5s0V9k6s9JzVlPszYhTA-gU6t_Pa2dpAOZeQWRwwSJqBahOySlmf6QSAZnuJqPZtX37UXUYQcqT-P-SLE1qVNDL8ydgyY2Wbk4h-DJKIbkBwbAFVTYwRQXIGXv8pgqPjGdwH1rb4j81wUiIbnlKd1ECfJiK4T8YqI1QwuOpZxEKElzF2w-INI_KeojjQe56FcXC95FkF3KgAmdGSwQR9aHX8d8ZcTwosA-SzGWzKnhtUpGQOpJptyilYTf7mOAkrcJxUP4hw95JxlcVBJAC_9CSXW3ySeENPHsTIYWdRQDBqUvwlFdIJmq_fPZCw43NFV7V1FplkfTjpMQ2SVez7DRYe-M7WeLbJ57Cr4AuLvm4HADet-FPAIpshUFhBkqc3tyvOGkjqyqIN9zpttmIzbeaIAT0R_SzXTJ1ZD3bm_jT4vs5JVw12JMCdx_r72Wgjd02uJWEwDEP0gq0JXZMDzZoyMsNkL4TnLOZ8Er1hz5-c9d8GO-HFJRrrvAqk7XyOjWyfKf2Z93cnloWQu4bZQAy3xHvbjqZOwFANg9wrf_f40BCZ-fcFhRY-PAWSOedJeCiN1SqoKvSEFa1Lq_k9BJbwmesJWeGWG7gyetGGgCG9swPmOPOCZEQ4Xad1_mXJ6_fwk4M6MeRkGeAMqhN_7WWZQcMubMvfW-Tx-R-RulfJXb5A-12rcD2p6teA8oVf78taeAS8akBPBlcIgPUJ5AxkwtBHGb8oiRcSC05IyFTkThs9UiA7u33-WhDoHIxd7iAbzb1HzIoTDLMUpgI9HdoNSY3qIyme-rSuVINH_O6MOrY8-a7GEIU6jAvVaPvF023a4uGEcVZKm3VhIYZcjhKIpog441lHG9nWmSeCser4em9fThJPiDkEBc84eUq94G0n2VKZO_vvLCEYvZ2XJtMdYKhrD3zxXuiR75RKrD3PuEBEdIeKpGIPXGKWfT1ZI9wu-T-injAu_8N5QfBXk7Ng_bKnDoxdBc4z-2BhWfol0fb7--taYyn8tO6G-PwaXbCAl7Jgb6D4wMzK0eHduJSh2Tf_11wtZKsTscqYZ2UKFd-qOptcJ_WWGQMiucwHa-ONCsfHK_GaWftGEuSstCzwEgp9ZXIqCcT-5XKYkqLiUg_POBPLFG5FjsVxjMhWwwJTKXH7V58kdyqfsjEBFpdXYQeeUw4ieez7Or0NBJleL1s9Lg6j7xeK0NmHnnCZf5NL_SjNrZ0EXiyOG9jGBqX6d1RiTZ7em9JZlXlXTtjrDj36Mnvjf3v9rRda2JC0Xnrwh3hRdP0WNNhvrqmthDSDXtZCUYPGT9a8cSBQ2dTkePek1yr_7IOj5lCTxfWiTPxNp9a7u46p10HHajZqLtqWRmX99iXpZQGNG4meQt7P8Hh21_vlYQ131-1Geuo-5SmWUYZlKo0_PKPtde8UsyJ5VGntnPo5yzpfNhgQobl2IcQtsP92QekJ1_e4DBI7wcQ17dXEo7TFQedLsEwOtW0MCLEnn959WI31emIxsrL0dk7qSA7KloQlZV23wfHJK0d_DvvduE7JQmn53W1NMtA20v0GbUL4VDtqbiSvz0geenA5qgphlBjQ4HkK93n5tCIZkvswO8GBjtsEvgb9f7ycaE7f3g5naCQCuiTp73Ezt_Roh3yL6lP5caO04uy4mDZaMYWD3d4WrckALGczqbGke9WXY5aQz7JhkmGbgXGK7WREaq5thtaPTilhIt8jVLxFdxNGXL5T1ZsTGSUDN0Vgyy9vH0ljJzVBYfll5dx5YMVIvrnWeiE-8DUWYGnvKSauFtwdne_bZet1c0XVXuSaa6E3VF1KysAPTSrPNUUuXHWiy6wl22yO6jEUOqVw0XbsgHeylYhSEFHt4k0o9G99TDTOtV9HVQJ6tGJ7sY6xSDE1E2dZbL4T61TrO1EM2HEUxZIPxx9QQrVsCL45LxhyUUuCtw0l4yk_EFIERktl9N8_aEr9kXRVujq4g23s5bDBMjWiJNgkPkAKxZ3F6eQQiRK6Cq_qNgskJRoGsMZSJUwdlyoG7pnOJiD2MjhaIi2xnVSwIg8b7kpeN4cHsSSxW8udpOTzkMyxYgSaKWD_4-PhxVWfu62TT1pq35Kn_926oZXfy-K7ROWp39_eP70SxugIz1AiQoyh4ZrWHrFx3sOBhwl6_YIbMhtl9Nkwnz59T9oo9IE44kL02fZq_RqD4_wG1QFiuqTGgCMfha8lTHzspw6KQacujawLkrgUEmSj9psVl64pXq2YByL5KtKAmGd9nbTlhFTVSd4-8bwd2trIgNM_3AtTbHtFmIAu5LtLeeyax5JFz2CXfXzKZqTQ_sFGYnu1HYClLeKeK5kOpIPjhjzOZYGzCp8jJnIoh9vDA0Fd2-DjEkzRvh2Ao4sjwyIr9tq9sO82n_slgpXWmh0pFZ0OrolG_JBwg3Uoc8s2Gc5-0UdG9Vt9ZiCgG8eUIkkUIeFZKAva0CezTqCBAtMeaTNQBvi68LVoYlScGhVp472p5m8aeA0OirxM5wJieuK6DMa3-2vcX7nNqczB1y53SgLWOBbt_iT1xhYigkDi-HKJpYjh2K7kz1RQxqSeQwqfNQkDDGhIyiZL33ZEgQ-EX1WLG1usV0xHrkDjsqiyLnjEVbKcfGN6tejRyBLVk4h9Cjap8_WHP6U7x_yjKKDB5zt4C7oUSM0-udLIrytCWKZah9zU0VirMgAY-_5FyHKEKemq4Fe5g_li8cm_3V1FL6Vqi7n1DOT-UNuFJ1e5s72xs3vQiSIEmfFjdV2_jSCZwQvgEMOXP-gT_duZUc6171Qo8DhtuUWYPKT-T19ytNva7NO8ey4e-_gZluNjppzc5Y3TYZhGirO8LhQB0P1yzXYNqGsrIiWPRU0Ut9iXwjxjwZxkGtGQ4Ij92H_33ZbtZrH_QwbZ8qia2MB4OuPhN2C9CPjYWED93Ej-rA8afy7p0_9dkQORaEX7ev4jmuxjh3FE4FlkYpl6G6tp4jNk1-E_S9Nt9i-ABcMvdru8uiRgp1NcetAlcIC5vSv8gnQpKBIhVyleNxVVZm4ICpKXJ0Dp0KEEMtphnCugAkPWtOoHfKd9KPr5tx2NWuBb6gdUxQ-Yz7Vm8W-e8DWsUWfvcJyxV_N-6cV4WI2iLXCdbBX4f-MLLCsYyjN3Cf_EtO_CcXH34jZdawE_muRuEIUzbZBZSmZZPgjPRg8SnLYEcWy4hKCezOQ7I3_KqJs3zvt2aT_hF_LsQmeREjOCCSBKaJGu0MA50_w0vfGWqvabdOEHw-4hKdA_Hvx02htdU-PJ8VlAi1EtGi23jonAetZDKaLL6LAQICClR_Tyx49E4PH08fayIA-Hy3yAoBnFH_Lwy5UbI-hlgYeHbpC6Cbl9Fk70KSVDzddlwXa5vvPxKjpBiifOLzxxOfaR7u4PO6fADYEq3C0_4oaM382iJcr-3q5lemUxsXQMF3cuKphmLZ4e7gCMiMytLvACM4eV2AJatCi59zGA2DyybyGiM9KGMNr2NvPeyOcjLwcq-YWHB0XWPkn9SjHahzjmmMPlsI9pm7Nd5_IP9OBV8hA7Cv5oZxlHUZCXENIcv5tV_AOKyahasy_BRBz0ZbVwUBJ2l_LHp4nl-U8p0-Gi7hJO_rksDrAFnfHARsyzpn9N0MYb_Ryv5hxDsIGyoUu33qbgh8_q0wbuA0N4_juZZN6NZIpcRj2OdgrbdS8wC-Zry5Fhixvho9n8K9dPFwZFTxfu7xPt8c5q0u32gNYOK8dHWZZmaWLVhDtalEr5ilVobnu4NPPQYdHAcdnF4Abwi9Agilq-ZXoqlw-5WFutM42njw-6qZzzy0ckrT0CMvkD2l0RjPod0SeIPLgP3yZmp3IeRZ6hhp3zTy5QvLWelb9rMHuMqMEcyTH0TtXeng4gJjMaUdmqhcDMhXMhzt3_y0YcKpxX1TG8khqZNXI0TFbF_0IOOL-43EF3Qmd-sLeafPHVuF4CgvvP-sDTC_g0Ydjg7j6kD4gSWuNi_tFSVUrRODcEk5cGEUED8BkYUFz1mYEK3mB4pCFsu4pJZxhPmkExNrCgrEO44yZgHp5Ym45JoRTGDDkQ21bmPYHb2QO6pMl9gWyv52e9CPzYHstT_ry7a_1-tL0__NwSsk_O5wIlTbIUKV53UC5RL4SFwcY5vYqpUPq9o3K-u9KPIhzlliqN53Sf7Mmu_BtGWpoDWSXoou7YGU9gzfZbZnsGE5caDZtyResFVJ6ZuAuRII3hA9Zq-mpS2wJ7iEGEGj00ED-cNT3-NKSGfSIHXvxzqHHRP4vXMRVp6xauWjcx-h8b7-QC11XH3jWRZmisfRdkgHGpSoI1sbKKOx8Ot6cANL5c7pGs7VsQQYuQyC7uHJFXsEfchLTCMM1YD0hVjCjWQ_vIkZP_xUNwO2tCbg-MVzlPrfQi9-o7sc3UJNnpIuccCDPYcbetftn2S0foyfRMUjSNFcA06t6pWxdYhwnciTBe4F9oR5PKbBlclMy0iluY-7wWD6GpHNGCO-Yc9Ytbi3wpJe4K3OPNYD2UJiOs57_5P3DdHGkuEW2s5wTrlwPkIQA3nYR30D50cGBD_Ih2xAi4Qa9wpROFRBEaR4pnLJFAEKYEJfkElv57mj3LWQUcmYMkYJpEMivztbrYra2-hJyj6ifsI60zxKjSvzra1YAJAsX74SUUj41HRpii9mN4LGZSD4Dz0wTxWSmmVXZl7ZknBg3dKfms3RwLKcwDRpyuV21XuGOlGu0oyG5DJ3P0SRhn46FwPN9a9ykx1xTwSNsgjHOiTFK4SCeTxs7apb75bQSlUTHD7eO1asKpL-GmdilJEZbo0jioAS4ib43PIMQ7mezyY20_n_DtlktQhad9ZKm-keDbCz6jiBj1bpiXfhV-dek6HDS2mSZtXb3fUyhBtRnvt3juSEvlv9cy3zOeSnzGQqH9mzar455LJZBpBFxg0zqhITP_Vd7xS-_t2-kWTCD9C1D6e5nE-q0wHpzFLKVtstezTu6wI9oRHlw_sTTEFa-0V93LxpPZD0OShldFR4qgZ1f46GI_5EOGVctJ37FshAW-0pGXBSuXS8Zx_WyYOFo1lkyjn-WdrgrF7G741kuxPA7FTQUTEi6CZDJkLyNXSBJc0Kw8zmIBYB7P13XTY3Wt8B_BBzpjgEOaHJwONCEUz1mCPFe_QTODgNXULbDBtgPmiD4c69k3Vwxabq3OksCjIKVRfCInqb1uc0PZM_YzzhvknK6VXucSvhHhbTPiPIVVjGzkWxwLw_dlPT19sJQXiiAOnBljTh2XW3jjwsYl_7quIGSC5sYExdYT8hdtVRMH1IfjB8m7s-8hufowFMUyyHlN1KLKYoql_loGYYLcPR5IVwMjbN1pBKt57PILr7OPzn9vn36BbbKZncykvqM7btZ8Nx6ZpEdj_qLplOkAWW12xxPkuND-mG98LWUiQ9AYn7S2994FdSw1ZyX6g4hkBCowY7Ksskv1NXuaWcy0WcwakHXP3bNhSs8NbxOQubVdHyDGoV2Cz4BrxlXMw5HUg8Jkbw4ecoseuqa3wePRpeUg0sxlFV0rX1dTk_2xI6wgmmWQz2nKrz5rHyZDXkyTq3GydbdEETl9NnfW_NCsrdfae0yrNWEChQycuh2pBBgFefUP1FMdX_n74apwZmFmGPfwgGb_40kKSGuYkEnkrcMwjDhWa1j8CBR93WoDIp1Hct8r3wJLEeUiSFgMzqTC-IVJ4MDbBgQ9BWeF2Q4dqKG_O-1qOYgXvB9oUdbpOKvWqfb2SOiUcLZW2kH-TFKPg0N1xqZ1nZ_a3K0pStFSL_4BYodDwfzhv4p7MHAaw4petHC4lrE9TVx4KL8zvIz-0fj21WtLibrDw5rZ2aRWczwsRnAhY1pibZ00UxII99V11IgfdUl4qR9nPWGL_g75nu6rxEUBZp4wYsUPYBJCj_cdlzbhpfumC3w_pLwfIQ3U4MSb54uEAZwbR3ljCrCx7C9Hi_9DcpzRVGz3j5U0kUMA4eGLukZ2FJPZ-_v8HzdzUGf6bhisKiKVAFlaIab3uMCYY3zT_eIPSePeyGAUZ1H_G6CqQTbhqLGbrZpxHGRb3Wnsbt6hXPwtSExLAiH7yxqPqqowU240A6HWVC9SCjog5Dv-91KvKLixX_glyntx8CMDCslM7wM3r574a_OW7a6PYLYhcfShTI5CAau0IXrEg7cboiv-XdbZin1nET6Ewuf8HJpYbfYXoIKvTeecq1svScHdbvYxZtVyXTOPa-wl5kQtDqy_XAS9W3xfp9PwZ4kBDJFI-_ZO7WgEe143SUWYSprNiXVuB6ObbwxjSHhUtoWnTuKTYgCQmh3le2NgX_2BZ2xvvTY89ZvWg5dKfjEPo2sDiLERzVUCQwVFcQ5xZuFIxigPZ8lWNt3ap1QJrroq_XbAsXZv11aXeKzrSYC-yNUy1s3NdlTgkdxsJ0uNOGmYenZzaL2ZnaN0v13XgFmiC5jS5EdS0fxae8QbUidyWY9QAlCZVCeWW_W8-QS7jjSqG9_Av-4lJPpFpP5tS39EpiCeP6snH6nWU511QsFgz2IZlVKCC2nGh1174QF0FIsHQ664zyhbjSvuO3vnDgU7E825CixUM0wUjSDE-L_j3mQSK_0mkE1VjmWV-Vtkk1jd7quvoXgG1-ly_-4a2sOZXraZ6lkJrMkxgEztWkFMTNAnLnxWH0RDji0XB1cJqW5hWTLvN3GtsTwrlfT99rCrk1vm-yrpemLJdCamnqno5tInPn_jDiXU-6v6RNSxpa044nOLU44Leiu5z-7IkfzL4t27DbhLJz47l47rHWB4PQMZHIGjjgYNnoYJrvPVLss7AevWHHcdE5VaSGCDc4FLcCieo9vyz5OMLxRdPM2gqzx8DN_B8nDayVUGLFi1Q2IHBiEhhmjH_3btsLw6BD_wcUYjTKHPNbCK2rYjPSfQY-ttWaNCZoSzmX63ferFUPlIdzwe72meUPwk24hJxTtPO38eBAmzx9-o55HYMz0RlntTXRqDwcbNN_iQEtYIaXT3zeYQgNeITUEGp22GMbBZDVuHY80EYi8Mdf1ixxOunP-HGwwh_tv3MhY8GcsIADK5E5uzIKiEHrtc8edc9aijSji1WXixgtV1dYtLMK66GpiXFjxgXpOZ4MJ3Gz0Nu3CNiZVGeugye6CKuX0bZes6on9sUHX81Wz1jbPyYTfdLLCcSX8etOfwYxE3MelgBquwqbXOMJ7cxfngsbI3wRZtUzvzw65LaOl3unhakKaO8ae5NHe9on43Gh1BHP3a9au57uFSbLLhF5sh1W0rSwGD0ajupURXUa3YsBPXx1WvfEMjsytVudIv0yKZPjbu8-XQNnT5kuA_Dx5wUgZZOFhZ-wb7hAvbKTBrUqb7FvRw7H_cMfefBiZXQcWOs3o0zi5WtSd9lG-HYBTpr_Tcq-wEB1-lMJZxdtMZ7IxW4zHFwbGoTajqUpxubVfFjtXLog0mo49KpjYZUVIQ0_TAPRXPSX0_YHsmH_BmJsgx78suU7Rf71Ys53NOW7kxE07r8o8kB1xRYXmZK9sUt12-dWD7mPU53xGgLEeMtvh0yLQ3uwVbTz8tFtUAHjWIIjraRlyhfyAY-1h7UL9OLKzBf0UIGtjLiqyyfm63jUxVKjqBaKXXezjR1lXLoGU1PzYuwlPwE-XrWqM9Y_WSlWGtELc5ijoXRHmLxMAqee1WA7zif1vfTetPacIH4dk-7WIQtlXJXZ65pI0eUXpY-29FRAIFYiI08gvWrz93rdY_YbbVsrM8Ghbv4YKqR4sCnotacE7iFvf6J4ILKp8oMOpNcs0qISvGoi6aBVwGgCjrMHzMc6SWFOj1phJrlXYUsckaDr16sgs4vcR9cqIPqOIkv-HRHsKXnRGMQsAbWTMw4NYdk4slxV02xqweQTRe10kjwC3CDNCqCTiFHNXFFVsqn4fPD39lZVfLivJTtOW-hI0MXH7zN3n_jc4msC_MS6gs2iq5lA9eiHgPbQnwKNcZlXqtqZ3iQoWcd9FKdyk5Mq9ZSbK5hTL1d_don484S_ZZ5hV60YhU7281iJ_CMtBtV-d7O5xtvgtGHUOcZAJuF8G4OZ-t3dzEzWufv-GeltjWGRAJddrOurrm9yiCDUCERfX_j2gu_Pu0kkrTjJ_VamJMFbGUYgQ5Vtnfe4DcKzwhHuxlO_Tv6itUCUYLoUkacJJEiaMameZ4hYBheS_fWRaXooQMUqMp56Q1CF2YHgl0X3f3tT7dG8xdIckoaOINIxcVPXacr9aUBL1HCh5CCEVLMwGNatd5RCVUCpsG3cq0IwBaMHFRNsjlFk10nQIv4R_8oyWo01heG42R5S5f1hcYKhWakoQcqNPtQed2NyffN7RtiCYBY-HiUz7893TI9ACp2lEuJwWKH4fbWhj8BOIn22BoigwCD4LwaJviANNl0FvbjZ9YTLWQQ56vBg8o_S-npit_63cqCiV8JReQeYq0ekmSwLeNJOuWsYdQCrEibiJiQEqB9sDpaTFHaS0wI6dIEF8d_tcuo4sNVr6kNfOJsZS_CcRiKVpco9rzw2SAu38dfOenNZRJSQ5M1p1p5TYW2prdoT3LASdKoXcqEp1fFn8rd9CzBAD4yonbXe1muiTvDMC8Y42tPPV7bLS8XthQfdZKo_WrUd6t2GXBhFYnaxt3fsgOL35z-V7r15b_sEa3bCRLoZ3uq2Vg8QzCkpDynH1juuXnJ3Tch-_rwiY7fruiAR02bhxvGetD78fglNq-gRLhhpTdIshvoY_wEgfa9W7XJ7oKK-v9-VUjQzel6oa8tmvCSbAwojwB1gzrpRIYgI7iyFKLwdIy6gPEtYrfIyshwqHTI-5uDvNlzFRjH-nlfXtA9EPIMI6oPscNBF91IAdcdY1fWyCCmKVQPkkxDC7AXuVuPoTayqc9FhW2mjeq-kObBg1ik-3bIPCam8C_cF_mQBuqLwXItGdy2uSIqz85d6Yws6TLZxfn0scS_QILhAI-URVSqrQbUmrBal6DdzttBAVnvxtc7sviAXgbcmSrHm5I_MQsH82E7Q_P9d0Wgwfk6qgl_vIkHoI4-3VSHvVZc_YXTvsc9atMWUt2jYBhY80Q1WdRCV1G_y53cJ_FGN8PE9Wo3Wes8MOHAhqR6iPG4K8EQk7syHcOMjrPOdFVQtqe_qneitONBkPsqqlSekRqlU3w1Aqv3601mQH5Mq2m1ytUH-QvFnVNu5AWR9J8nkZC2nRho6P5VSgzjQesTX7AgEk3VZT9D38hirs04RkZ2FobafgiI2Toy3s7qA5k2qL45oA3oGaY3WGG8G1xHnI1WPC2quKWWM9DXwUVrLj98qvfqyRHWKAAV3A1JpoGCtyxsjBgeLufTWHqIYWPHOTqZ-31aJZwA50FnjHQcC-ifqMzGt9hXYmktPy1m5C_k_9GCwWTTyhrhZUBxbiPvSfzzFvCHmRcFbB-5z0zweRmQJ-Op2Ch3a5IrhWbhGnBy27ZBZNkXPYNt5skEggaYetBxv3tjm9SpAptqfu5AtwvGFcUUvfrpLJYY7l2SQhNSIuXW5pDwpgjomkFHTedHxm5h4QpwSENeOneEuz2-H3a7ZOvI9SkKOxw5uRqAYVDK1NhoCmOENoZefDkH_3iCdHCJKoixheLgT0tO2ZNTXlxObL3boKxiDPoBlZJLAjW5APmQR4pxINQxm6HaUEhhk5C7JM7vtslzoo1PzjR94ZmeoSpW674AK0NRlCyr4Pk-qFpKd6mUU3FteIQNBwY2Y4f6s3rpQI6mAcjpYkIAmRk21xQ_OX-JzXUVgjpNaXtdH3xQpiUMcRvaPLTCPbB4Qxaw8SpwZPnD49W9b310zcK_0xJHP-aVQKzYrSRtDeGtztC7N-na7xI19niHts5WYm72tr75P0A61qaTvWvv_eTLU7CW5TJrX8nTh2kDu8cmQ8RO-jUczAGsh2G7C-hYvF0CsUXd5j3xBvFYUlPqxByRC8aTL-EVb0FUPlVT5KsEU-J1E4H6CUpK22zBrELKKjGUeM5Onyqj7pdNvkWvmziGw7hnZP8sHBlMkgqHxI7h4OorPUhnSPh_uy_mISjtHDVOVddrFGZum2NIXFTrPTkp9g5zKpsKeWtKzgd6bw_ZHVpy8ZdiJMlDfw76O7MSy4gSHzLFR_HAF7bVNfea9pGYCFE2YQaNXzGdgSbZYPso7AS3O6wgcbxsTji6IQFNfhj6kajYdW3IpYNI_0ugRE3O1OOTL0qjq10DKxqUfq-R9kEyyM8stpDUk-fptHzdDeX2zCU6BHMYpF0gfQn5763aQNF9LqjM7-7TDj8TqYyezanZLSUsu4TzutqQwYcmVoVGYn2i8W7OEUhJnwS3634UrW0_Sx6drLI66tFxkz81BMzSwtsdWX3_q3Lqm7QSBp9xtBr-mCceMytEUCd-oqjFAP-pIrNJQ_T2JzuqE3GehXQcIXQkmy4miFBdyoZglIFg8l-1ugUPdaRjmXZLfmpy5n1dVfipalP8PuZTcN_u-lQTA3PXdIQ6YISVIeXZZALM-hgoZRh2168XiOtxfGBR1BCRMhAIJQLQOxYSxyjG0N7xwoRTQuWyoeyb5hDtwudX8vzXZt3Rz6_WM3eGOWpVqpI6dx4aKe9Y7Y540YjKuWJm6xllRz6xi68JWYhqhcOuzpH41nOF4fYTegDk3kZYQ0-P9oOBg2faA0z-j5q4cKE7LcBBEFrm1KwfKp5b592TRCZ9wN927D1hqHSWy2RA2ALO4HFGoLZJLHOFxAXX5oH89TfiQCNKHWLNdVu9CiPong_JzObuYIhSBE3szPikKTztfhnhTq54esvhcWkHK31-2xJ5SaWOMzngBA91QX7wWteDk9fYfYI3k14beJMN-Onvt8PeL3wg0amWL1JiLiRjfUviytiJNHEDHnCvPzFBANeoYoUCOv0ZDHYhHeWCkDMQR9pf5hGZb3Gzfx6p33-aoRFU-tHL1EQN5CF66JgdISOtPUuGrhl_rBO4773Rn6EPaer8Lx5kBF41Z9wzJeH7t8cbxTBUChSwvwio-ocGD3eeGSKWp5_YubaaUhcPhIRk1BV9FhUUIna6SLSG5SheAmbQmbb3OmCAWryQG6F7lb827Sg0YRjYvPY9KRrJL2p2F8sbmas-NZ_sOp5w6mgdufDcd5hqL2kAkdvEwU2NvqFffRYUT3RZEhZ2iv9lwuLgqLntG0IjhceQ_5UjvH0fdbwdbixdXoCxglQz6FKm5oJjfKAXbPcChrJTZ30XwsZsATpWR9Z_yYCJrqwT9Rb08dz4-QC6ajx5BMycR0IuvfWWTVClNUKcUM9cOFCG0dOeWDsbX3PcNNfbyi3H2ayDgpX2YBT-8gjEz79pbOOLR4VJAGQXw28kwF2nVpHYZRoWBVSZVs749gzZl6ZUE9Gww1G-03LQPrcxcDSSUY_t-AysBLcI4ITQMD6XUZuoI93V3Af_YmxXUNVoS9Dx2Wr3HAcODIEGzjjNJSurpI1H0-gEZ1MaQypYjTqiwL8u3DdN2ADcSakrQK1rCQhlkLL7kMRUEHSJUA85nbLpXuOjgJkO6p8oc-dV8vaHXmJkABWWdy_6JRZqrneifqYluYIizdkba-7LZe7R9upyS1GqbA-UYw-K4kawh-w0epBYhmKNugB1YE5M11pRc8G6CSOeeElFfpIrrrMNl0ii0Y667DRGWNcKNbi0VZY8IEkyGokhNmEikttf2TVmuvPtTz8kgRKFM90p0cfIic1oBNHdxjMWiGmnBnBgyVB0nlCBbg_3BKRPCpHXxyKnDQpXOKzwQ4Da0kEy_YWDij4e24Uug8MAaasfCGh6w1jUmBA-9Py70rARMpUlX-55OZijc34wWlpLBDYyjTRknTnyvj093XLiPvp7359Oa1Nd0xASlGbTUpTsYrk4TdTUIb07qIhFEyCkj6ASPBXNzyzkEZJamSQ_RdaO_QYBXMjBJdT4hHrFZ0mr0diFW3plOOXyullLey0noCFw8MWzvLJujcICF9s61HBt_ADyxx3BKvEkkf9nvcAHi25mN6KHcuN7ThuxZJepjYW69bfhOZaRpr0CePL1DHoEB-UGO3Ysbg7UOEz9l570rtl9fBerDO8PpfxgJdTHcukJtGjXKZrlesM4N_dF93eGWrXMxR_-qC_cLm5Qs0AlNTtE-7an-3c1kuUW5773RQ0P8QKfzVmwux62N9XiwcaZRAWLpFvlJ-TMdnITljkwEBynLfAOwhkiPQ1ocQ4bq4Nffc0kZ1QRQHqJaIbp6WYuLm9XYwE-GrktVyn_kXp8Av1C2KAhiEFOlVnYOKUbiZ3RbM7Z1Nez_sEoOSbNnVTT1mcLvnQDxduBa-ZP32QZ7cSEd97QBTJcV_T86bRHBNh76El4m_LHBqhP3f4zc8gDfAvu1p7yvi1wXc2KVy1AN9O5x4hRFWMr2qlWsnx9BR7xKMJJhoBTjSJmIjvWl7yW3jI0ogtWdQSLMcPcbiTCIhcG5RyqniQ-HCsQHhcw5a_vFttA9D61JCI0O0I4xQcBW5Mo7aFsIBz2HJhwLePBQlwlcr8_hK7V5f0BX9jreZ4XDFav9pV800ZZrlOK6VZ4sgBtZIZ5dSpPwx3mH-6JYQex15pyKNlRUyi2WFiKSIbagjRGHhxkIX_zm0dN6UP_OSWV9OA8mZGQm75WRJZ43mRV0faqWrtDAKXm_jgc5w-vgQ6g3BP7dCtj5z2bqdSxks9zLj9LaHwwLj0ISF-khhPjpnD__n9W9r5BeppB2E1wb06YrBzegyu0u6RShFj7L2XQurHd4g09VXhuWoJ-VAZMsV0skRC8UfAhNgvJIKT64rqDIALQPTv-5K0vgbqpBKptH7IalB6730-APcrjGS_9NdXKcZVRPga31NOPYrlmNIF4M2qj3ejvUtpX7tJEyVLhyrS7HidOBH4k4B2RXhA4lc3oTM2wHkX6RGeYqS0ise8pP4b-KZ6iiSPqFYA-eCVw9WcTHPSuMJ8NzTN5MEUpTXns6d96bzREi75IP8bqEKiMcKODwd1Y3dz_-ZeGy2V-jYi3ekOKhE9mCZGSWYwjgec2L995rff4Y8hrHSYiGOAIBsDXkdX5-1gJOt98UEsj4S1OArXXXHkImFdEbdiRrhlqrB6DFwqQFuWFeeQsS_FriDCAGcmg0wpaq6UmQ2TJiLTXeHhNjKjq2euKaQwd7BWtPwGXWxyhlQ-hwH3MQ_4A6f7g42egopKL8IspLC_KhD-gbu3axV4CTSkzpc7Ilmx7VFbdPYWogiqRJyMQ-h1sYkvnq9fGAexpf7BKtn3RyolWw4wzTur6P6QfNrma5NwuHa5rcaUAAIIklDorAi955vKVrxNP-bmhpB2mqhGDQ6zUCTAFSRVakAAAmqX5VZiQGvqjsQdjNKzwsXL8cizTOmejLsWJUqoUVh6iV5J7DkfYX0R-gp5d5azLL5s4QNHZeuNbcZbaRhA5PZWume0WbuNlhECrLHCRU-mVINh7fGHcy5vry0605N4sPsXHw2yQbvOoRlpPTs-Ra1rqj-UG04P2LXdLCXAw4fzWAuLYrQC8K2OzJlu9tKn32As3jkZYn_au9ozvkm4lZSq5TX3pHC4dHwerxWrfENA_0WOQHkqknf7MFWIa1XebgK42KeHE1oz6nlSr_FENh8-IPfft8zck-NruLf52QCjmHGfiF-FEPMBWINOeDNC-vPI3q2S6YG_x4jrxVNbxnuAzzvJWw7dPgwCHk4eHYunPrpcW3ZFbtfcXdnD6Bdzr1fU3S8tSyxLbpXECwYMPWlldnkDfTqIypaBYp0_0ShYb4SUs92Ui8gKZ7yUkv8Uj5aZLx_9w7dqzTEqfrlzE6z3bQ2w4b0XBmhzF6jt6l3eM9agD6ZliDFNXv9koZOp8GlEX-_7kAxCZzT9Emxvg1dQ0LnCOgayMgSXVesPberXF0iPn9RHCrBGP4lsrabf5feGVpsSE9zT2e_3NKv6wcVmZH0GDw02JbuyCpntUB__UHolQGLD1zHgse2AiHAp8XFLH9TWDHDGWTSJTj0ZxYoyU-I5vcclKpGEz8NzxkzIArNnzUBQZhUG9Eg5rmbSuUz1JQX8P5OvcQje9eMJG4EsxFfaMC47mnzmmIQW8UcQTmyhjpex6HELMp09ah3HnKlkLk-pW7SaRTnALwbvwZhKciauTUC9hrpeX_XJSZECOn0SEgzrGylHjCpD7a3ILJwspFchDBo9KiJCmNcn3WPQ5S68CSlqnnJvTm12RcnZ432Y-CqfAwAUOgrQ7mpzpRq5pRs36l1MrpFpgDTA7yNxv1bm25e3tSEW0dbVnbFi1jZ-z-hAk1OKlsDvjv-Cocu2MEZLH5Rg-dbEvbhhoVP5GfcRVPPD0bPTeirLriR0rEgIQHgWh9EQQtM68FavrwzHyghrCVUFLXY1Rmt6eiAf_6tamg65AJxRhpUZivQM-fxvfENfu84SedfB-O3wIlH-2IJ58eoItyzFMIvghY3P7HGPNGgUKJppU9OyRbMibnusQ-px_oRRAGiXfmbQFX-jFimhCzU11xErrho_BDgLrrsmgfkf5hPoGYPIvSbrwShC46rbFOqxzovtjraT2JpN9fRQ31FLLc_qHpmU8_yy3YRhyKPJPugwNjf_34XEEJ5P4IRyMXN4wL_3UVGQRVRh1lfCUATf9M4hhNvsRy90P4f0Rc34oeNXTC1OXGeeXP3PLaWTvnLhIpM3YfyJh1H3Wkp4qEATeNVs8qWS5iNJ3uwgJoIegkq4GkWeXjQn9AOsMqbmmCQg-y8f6Yu2FlD6sHPobQSxrzOJ4loMWSCjXxN_WV6U5fAptfHeLijlFQlreZ9HICkHgHnsTNY7BWex58srYigkmcG4pH42VItfbLqlp7K2CE6PtYHskw9xQo_czZDu9aF8qLpJPmiAeoYI4NDH47kqScHLYXGVbIlTl0TL8SxFj02f8kyKB-OgSHwAQGREJDcpMWW3kxrDb7ebokFJA_WF7KS3kVVPxFMx6cSEP9fgqnmE8UzXRx3z6ON6MdvGmfbBwlbJHnA3MkaWgsryBNbgPAaNWIyqeDzXjxDJh22nBQa-qXARvPCi9_jW3u-CCgQRZM8M-GV1XI9T3hI2ShGm3r-mR6h4xLJsX0rvgm7s_V2S62-R4DfjXeef1_5UG_OUDgIdF1mMI1V-CT1B7LjAnII6GFguNu1RChHQDTzEoqGg_t05s0laY9LT3lJ_wTppcNLHqgywaJj0dQUXIyfEV-u8N3jwXYGA9g5KC7MxvXRjoV_4Ey-mEa88hz3rfrZT6H8YFsVjg6nDiAEoaEo8Y7sslB_No4VxEaECoRwW-csQ9wQML_AmrmgSBdNyB2MYydP7wRm3q_uBWaejReDUfXZdKGQiZPUczQOAOZqfs_3ccmNV4CqE4XLs24tbq-oBzclfx1fZklg_LMODwwtqBPHHPn_BBWGEizXVqkXyc5unut-YC8Yl-N3dGciL1KxA6QnOK1_Grx_8oU1CMKPsjUXu3Nmouls5Q24cXX6hwnk6D60WRRrGCJD6sl5JiISC5aG6S4xRcoh09aH6BU-w3JALWOrNbPalSJctEj2mM5pBFXmBFGAjtUmpQ7YQzPfJ059oDp-qaNhS-vyznCUKlq4wbHCaR5gjcAQuaY_IFhjDE90SbOTIIwc7f9z4Gwp6H5tmpWVaNnM8uP70uYaUr5qrY6SnHAoynBe8ivcyUUsJhDKKwYQbcA3QiP2BNBapjBBfqL0Vp5CsVfH5gVP4LYdIrFIFXtVqX-seqG1JEEqOrmMbmbaek9QB2WuxjytpnIcbRQQtX0Ty3uW81B9pfVGZTkhxDHKpw214rvuNlzXZ9PIpy9IA14rnV7eh2SJxnQKg-EsDMXOXTeqK4uvUWzPUS3-XmfW8UrVvYxYtFfhOO7SSVY0xXhODOls0hX77H5eu6mnDVjTKDmco2SNkMjQs6F4wZae1UVPFiac_IosjdPgJ4Q3n8-3vPAH7SzU4MkGF6VbSvLa5yi4uWWpZskVWFMEjGWnL3_YRdbjQo1zKtFsMMFDAj1_jMzG7ivIGVCZQay3sh_EX67q4Y6D_u3GIwlSYYv-F3Qtfzcnpu3r7G3lqny9n9P7geYdkPYNSj7MC94YFH1IzpLILpraMLOLqw-D8kCkUW6N_gR2H30CnFcu_Jp084V8343RpjPwxCJuAgQ0lk6tICuxaeQY30_0zdr8q6lYlYjaLgLscfdzag77nhhPRSrKeyZ-jwr-o1ZkVCuwVjxZt6Psfm397zh8Jk4-3q3arwBFwreER3xLzK7Y3nYDEiFhitHoYW7Qc9L6AKTSkuZXuk1g6C-MVtTkvIDqRVtVV44SiLPRRPfL7cmvOTr1-TIcMKosIA_07bYSrRYQS6-O59PAXkGdhTcaRk61mKh0_f0NQTNFVYRA6whs0sN6-lQaXmJT1GugjKf783PhjhNQg9asQlWsZ32Rz1HA6ZAfF_rbB2moYfLl13HhNe-rCV1upr175Tka2ZJhb_nhq-4ngDfmgqdAEmbyvJIeHUIzUvKME-Ja14vvk1ObotO09bfDGwhtD7Fpg56CdOu4jIyerMr7svOk0UfCybfJpjUngGUIpe0_OCZMTGoKs8UGa89e4LrYpzG-nrHV51DyukznoqZbPJa-NOm32mflcNUBOdr8BlrCkpDluMoXe_O4nXO6X69UoOrILPUiCJ2t5RXBkjY1LaFsOqbcXtC5M3KmSs80a8q5CcwZ42ysoiCZ9DRi8-BYTbVhsu51WQm8gbbBHRQP3wDAB5ib7OHT-0m3wFYY9HHoI8k3jLJ6h27zbBvbebzr2WRk1UHP8o6bXs8JTNYD6uD57UX5DGCbieRTNaz253YU0u8jWoYcjokoPTqnCRccW-Jow6qJd5Y5_cg8jjuiV5KGyDJfOQ-tuY2SMk9gE0NGY2j7pfymG1n1YRkEoInXvts0kVGmIYKL4Oq4TwnBgBoXPWxQTqcPahEjBSJUvLyxLDfPoESLX9I6tzBlybcxSFaqtMN7Gq8Bc0gU75c3OSUkM45ojO2PMvpZ6gru03gH_D3ZARVKRNYjL7J7H5RPgMEmf1VPk3BxM3EBuvQJgXNSlU9v_D1r2KHdhgUGmO5gsFLwRuGUIF96zmznewO6pVxz8_mKPvXI_KS5vfWn32SeuwbbfWmdCisg2SjgHRfEJFqrhiEs5PzthmEWsHYrXFElC065K-FyRZG_UxEpn2gBmxzSIlq-Iy4r7HzrmxkWw3WBmT6882qBA5Pc-PSb4ykfKwDNCZa6bNo-JM8i92GD8hiv-BkKYBVD04ad7Abuh_5614JGRR4DY95LAUVvsd-Ruq9OHc6gIIhOs5t4GNEX4x-Fj8Ri4sMXjMYm2gsScZKGX7g3MXANx-cc7-86Z_Xsxr9QiFQtFS41UXnGExtXPePmgjKrLg2nn1FTg9hEcKgrXZoQ7lRoKdOAC9TcwUOWN5NdiQR7n8bgNmclFfOgGmI6OPOHpcr8wRv9fK5Q29_IBAWC0AiFeAD5Ds1sWmrI2TZUxV5YtXjEm0AP6ezPIRvUacRSMZ-mxXiEk04Q_sjstuAgYXAQmQ8bDp-_wonj6FkdMLQSj898FxlWTPWl4u3N6yY2ey99uIep95svW3kLaOe27dulXUhVa33j6tZaDEkJbUpKiCX7Dwv0fisFZtckOSI2X7mPa8ytUtyAQ4s48cBB1ruuEI3XFnypFGH1N9J7C126599bdnuINVnTGTiOe7ebDChqCEhnO_aW8UfAbrgjcl3As2OMA5UXeVWLDU4ktAc5whEkYrlWsA9pS-J5xUUOWCP_lEf-lIwsmgWlUq0lMQkKB2eP-i9IFkx-y-7Vozjty8HWNG-EnPlXiOzNzl4Ha13Oj3B2Az627HjrnYT1hWvgpY-FEfFyPM9FvfjkqPtyKZRbSMiQ3Z-48yFUShCY2GUwY8etn69YSwmJ4F3yfyg-K6EH5S4r5S26TSMzlCjPMchzRa2Jp7SiuaRh8seN_nJ4rJZlfnOpLFWODdp1PfxOlXeQYbLiCSru45mPVquXuBLwBfrwJahHOZn_lfGdJiEGTTDDZM00_D6XmrnVXrw7-UvYomrjeVLHq_jpYcMLrDt8HnOI38wmEDqlYuJt07OdoSpW_knu3xmsUDjIUD8-U1-31NcMSY_to_hxSxhE-68KjBCQ0CNTtgGzdbfPNH4qIMahhsfPGTyAMv4fBcM_E2i3jGXFvtRmA2BP7N7rnuGYNP9khUkc5i-dOvtwVhArFivuQPSqGBAL17DM4j-qziAgHk1oX_oqZXvM5NYakxaX-muUKtQI97mhr_cQhZ8bV4gpjR3ygmawpDMumTiTFXEN8agP2v3oBM7OttrlyvAznpxmkMa5zglGziaMNPKeK8ifxWOK0eaDQIAiOQ52plzMClZJuBJnphV_mB7mf8g2qynHzz1K_zgoh_Pt3EzJbGc1roPLR44MKbfNMtIawPNL8sJW1DG9gyI4G2QDvQIWQdO_XFbiqPUb6CQLkiYyzxYKqWE7Y1oXXRZOknn9NAQ-Q3ffpLi-rQtlavWUD5pE-0lh-cH69mtKPSseVGx6q3Fv3XA5nGEba3F4UXUEI-nrYoqiATUPnHF4Gd7vLeNVPtEnJBPITaI4A15z7xfc6jVMjKG5CyZWsDA-Up02PVZwoJyuRHImHY2fVzj4xUnB8GUatfoSq27OLEU8-LiPNIaT5ZB0INMPJ33IOUC96eKVnmcbltba3ohzBrkBhj4YXy4ul32IDmzXkTMQYjqFhE_e8LGfvbYDLtrJ_Zef5uKouccH2Q3zQedrvvuUONvAmu_UY7g8Z4NRBp_8MUtwV8VnRRLhA9Par7JWxU0W_GRerQDJyykaKcf9h9mptIYCB5vDbHQ3kHhBwkIsQc4Reg8yJYLK7Op8MidsFO9GsHMZvrC0HQP55EJ1d2lX_PoG7G3HPrOBVwXsqgfATTTDkPp_4xizewIbCQQJQ00KaXxkMtaqRactJOB0rUxE_4HDiXraim62Y3pTrm6ZRiVKXpSvgsapyiRUYi54jrh2Tt8yttfcnWkiCRzh2pFU6iX6AMJZkbFuJdVm297tr4fyKb61q48rcAgkOrsRqjGkYAQeuZiyjQJuz0j4oj9PfBSavE_34Kv8USTS6kvlkUN4lY5qcb1-U1yKqX1N6OJWPJDAus1PgONpyUcvpto_hNQ5fExWfP03zFQzAhPuQI_YpzrNP2Zwv7HZaYDcLaKSSQxaUNUESLy-8TDnFZuhUgMDbND73tGS5mS-sgiO_ry1z9ndNqY_vJMzvj6QfS7RhY53Aamoz4bziuXHHYKYz1Ms1x8K-2v-CDAyvVhILKbXFHBqj6E1mLJSVXxaI5LVFXxIOsbOiia5cdbPoayTIXpKoIl66Esl8oHMXSj9d7hhl4xJUY_TX1gfXr9VkRRy4sDMpXjx_fWjyCTKAFLOnIBkydHakpX3Du9_G0ZbhOJviO_IPHdp_JVgBJK6TN2AME0tD0bg4A_O5huL7j2hiVqX9Z4nMUnNQq5D1wG3iUPM_nZAvgyX9-EykMOdtuPvGbYBZ_ux9iTMksMDUGn98uGOWItUuK2qAYELyRrAuPgm0OWeHjTZ2b97Y2mNRknwXPjsCprppyr1Oxh6CXTJfdnfvvRaHIUeNSvP4WLJyl0UtcO03in_wr66TZ80gRCy30e_zjnWIoTdH0mAH-P9kNv86NYw8iP7rZFBsY4h9l_ChEIumnZCj7Wz-7S1fhljqPLVJG6V7ZSeIC2KiQ_0Ir6Fw3Kf6TFd27yJBIrmQwiJ7eSyUcV5kU59dDPR01D1EURrz6ZhvCuhMqM0o7A1Qib4o58eExyBOZ0BZKjIA-T9Jm98HGUW809NrlV-eCZCWPGFek9I4q7b9bGuAyGYXf9lHUgUXnENoRo-elkL6qFNSndg-hQYoeUS3xJvfTiVYHHfaTd99VjeiQoBDNuG84wAVRQFKpLaAKVmaiwPAY9veOHXTHh8s3PAQX7rom1uY7UmDfAtn_wHbu1zCIVTgIFz8kpDydEh6xTvsrLQsVPpWwTuBp219zZKsHO5WWfkHxw-mE5qxlS3bTzqucRTbH20Sbvivn7REqF-xNltI0MB9q_MP1EmJoNM8SJ3dCAnCUyUnqXq4igkrzExFWvF3-FfVSy40m42LceSr_R7jlOSHBsaIlnYOZIS1q69itLHAn7i9strBP0U2d9uOsm6jsbqXv-Lj0VwNj8dlGj0ZIiAy2QcY8NMQLWCOXGbzXwczspWBxEgNgAPldPiV1W-rQsvsdLaUl5RTf43wIH2zpLrgjL4EFSs9fs0AM5g3ET2g_jhL09SvgCKkbRW1h37id-MsULeyMCMQu1rJISiGFTbgOoimnYA5OIR885QZrRM-K_-RbXN7qWmCefJOKw38lyCUrevtEDhA2f7FovvBK2Ro3d1CyNIsXPT1Zv7_sjDHpmIWDbn67sorhVNoKYxMcVeu4YR_4U-Le2kvqJO3YyHhuKNKSuQRvt5wSf521yAhQIIkrl5_GR0Q_Q1qdqZ-0S7_sPuMHBK5ycNiTjf3qkC2MY6SyS6C6svfgX0v1UvdXnVdIqlzZ5Jcrnf6eQZBl_AIumBPdJRMkeFpU2ipN_pcjHODrPGai68fCGhNwKA1ALmNvD334dabeizkCOVv8S4eF3mDiPOYKoj0ctm8fxTVsQZK8LzXp_F18S8zdhvlpEqjtqhzPfhFsmC-RCA2J5g5vwF7eTH59gpiwEUirgD5MkEIkWLBUYPgx8byCOYiuPhLH6mbRI_NuTxorfQfQzw_DZ-2tE4I2BLNJsgGjD7BtBAoEk9a4yZQ2id5FMnM3WGb4tPebGivhgc87hosctW2i3p3bzyOgelf3Njy4HCAxo_1lfOGqTRKRpb2nKZRWJ-EBk2IFrEqhXxz3VgnXTFA9HmPp5_EqWT5RbdWotP8_VFCFXyeLLUK3SfeAb2CNpEKwfNTM26ATKjaTF7sOp9nr_bL_AZ0S2OdVafWCUdRS7mz9juiY1Ama3udRBrx6cKIW9abHVfmdPsthqQ8JAYqEmW6eAmAmHi3iqjjp7AxdcP-pH-ztPSsqgTkqTWw1o3ahyxeG0PuEAhmB3yvtBqQKDEqNcezr7obe9jgYCSG5LnCkuO_9RnADnj3_tS0CuX_wZCrlSf5_oKNobtvkwv1Zar8lXQidrHs6go4aqWi0IuXgsTSnKKBxy2SytqMmRdNmNzIs5d7u9KT11jCMXXtHBQUcGO7pBmlhZPCm-DXFFlPfhFhqkc64VbDJXDldjy0u9U2NAGr0FD_6t-4Q506AYVNLlnzlDc6fHFh2487a0EF3XZCfdgRK9B1NMnJTgO_FTXiYIel70gjHpJOHYkund-Bo79uqgJaIgS6FSv-ORQS4S5KxvDjOi-jsGQdpBJY82dK2zioZEmMMLu4qnY1WBovtB4P-daYhfiYbPMY6oNCJLxTvZT5WMgLSYPC8H-SLt15q5AKGESOWcTPR_DEAZRSzcm9qzoU6pG1VZgaSiZTT2URYbJvpGJdrWVb_P7MWLZkWzYAjeMqIiaM1vnSURRUp8TJauxsMx9hyvs8I_ZObXKmqID4F1uI-HCNxvV2GG4lG9k9C2hIbwvWwEopHG3OUd7bI_mtyOOSm6M9ZZ_UB7uCN2gfN26oHC4ZvHSXvvpSsA14ft0IgsJkHd1fkd0W5kvTbe9Ecwi-66kcyQOoAt29zxILWt113U11n2JHXoe0hz50OfOGwq83-odhCxOTBDr9GxFWonGNySLK6skkKSspWG0gme5NK5v9aM5m4EyHqe05v0_CCsKiJmVzdszzkqcBHbuYAdbrs7JYKCy7EIeDWhQWNlsENoJUb4Gb2hfcCAvwRiVIF6wEzEELK2R5XkrLBDTdeSgDs9SpQZqmh7gZ3vo9SMtpgR0MuMXYel0ImkS_WL4mynybsif4XNpqsGbYypmDkFgg0mS675ndETe7NhltMNXvunv7rAPbEmLcGUxlUiTyJVkMf-vny1iBULIbJWnNsjSDtjbbEq0_AsslIOB13VwEL6RrO0yjKZl2MAn7d-dI4zV1Pw3_agb8Xbd4m8TBqcEPPcrmecbVUUdNNliC7t9jluuWnC8938Kk1RQHizy1fhLeALWNPcpYme7oh6Kqva7H_tCRvZhChl6xJVA2inlDQKRlZ_Z0y3RbUoDHVr82KRLyfSg1rVXRcUxp-VGOsQc0Dy5yQHrzQ3RP7Iqk_6TH44Izj4YcF2-ISMJt7cdaq0ts7_G9qKonIikfK144FSzChQHPWgPwwH7ppzCJtK1ep3rkX3RAO2yq_AHiN16jfb6RbR29UDUKzCsIQAJZT47e29R1H1oCKkY1-knVNn2cUDj0Nr8G33QVxn78ZJmROd3veIYJO6Hjn8vhoaB7DqH_1z048w-e6cKbB9ITNIfwVagBvGXTjdE5l57yz7rJ8MdOFUrMcg5ZKExof2D90SQTpuiSQWU2N2TvsO3FQtBMwMPmBX66FMK2omX_10GTujX6qto2BQ3EG4Uv4uZEpv2F7ggKUaXH1ju-KQDROGoWeFbk0UekF7sbpyL96rDPiideRtJ3aFlWYOG4dEFOezvWKcKej0qGnyoS_aMe9P4IFcN0dgErPvCyAEV05YMFrFdcpussYoD68zOvlzXy43fl-1s4D2lFtcLKLlogJVf5LuZftZ8hAziW6caKQvRK2FvMwWUC2Sccno0bevZJxxeTV9JoTk-MePT1VwF_Wtg2pwYgHG5UY3wnI1DmcfnYxRU-HS430r8Hk8jAppZ8FPKt9YeHLokaitZKVEcINcWtcfqC-AN4Mzg-1NpVRRtcX_ktNc805CMzvp5jrYXkicoQ-Jpl5YCFEFi1wfAwYExlULWrEPHcFqXHUn2kco_ncS3lS02JStG3iOfVJRaeNxd38OMqcJMH-xD4ZFv3iyq1r00w86JbUiZn1OT5mPe4qcHXrAr5OXKuQ746MyK4b7BZsbZDUlPjTqVC5kel_qhhfJUkCNOJVqW-cEhvCw9J9EeVsn62-CLtbLN_rhe-I59GwOmuPYxhikK6IJVscPwKXZqfbkf66sAG3yh12N8ZRAufT0cGKa01pCqrx-hSLLLGgGl9EfGiEJ5DkFQITG96u_LAa_2fkuc2JUXHwhr0aKGR7lmVRQ2BnVadu9OPPzWbb0j-tjktJ6t9UzfF2hIqtJEB9uMTmEUTL75eobtmSUpsYEeXExXEA5Q__8bXfLmCA2j1lgng7IINLADa2IR7raIHcGQD2QlPzviBFb_-EF2ZZUykr0cfx_m_AZOs8bWAw-gujRqPNqT2pXvzuFAMVgB_G87WB345Dq9XmmL6ZzUS0l_G4z9IWDerUjc6xTWmWnV_DkIFO64LCGOi3_6PXw90vztA8gSZhCXji5ymjPtLA-fc3qZt7eAyAx21vRnd-Z2jKs_OG280brTvDGpGKhz-fWqBUYZczBakL3Vk_adbXp9dehDAg3yu6IgMwR0CjgoLGElvcwTAxlqwD51c-TfaeUoH6b09QceEfd2rKhqmEMzynVMPm5bWXdSrj1A2-SS74erziErCDcqjxtAfwsP8YiKLkyP5QE4IXnPHTe1WsgFC3bmMt5Ca1U-wExKke7RZyAcoPm2Kn29gpuy_lxZbkpei6iGOz8R3BymMA2MtX0uvP4LwLBix-RXKtg7qjgLSJYTY2jsj_zZ73DmJG7GGJyfCIVA3C1sKiCDcplJLrLKqPO6kKDg2tdAJNWX_bNkMPRuLyvmxAty4TmE4qRh-_awEo8hG-38TWax5nOpvjYGJHi_wmznfIX3GlJMeWMV0eNP9_alKsMVW-uZz5GW6w9H2ch7re4md6PAzNRaapDJ23XqFhWHipEG0xrmKnRPeSZ1-HQhJBENQMdJ3YK5TFCJDz5_SFsNWhkAI3kbztZm--O6YaTOlVEvOWNDhOMexZjJfeCRqwTn8dZqrVbVxCXS7t0TZnpNwxB9lU_4_-s9CHHCoZI3r0KSRVQSB1VzGPXWnmonZ6qyUhp3aW3M-ht_33leTzBLgOj8jqmJt1y2PRk8ieJKIof9yv7Nh-s3Kg5a4a5YKEmuvdjik_of22Na6gfZaBHZXN-UqUdmMbyER3AqzYlfAjsrp502_8CfVJbVFwbgbIcnsYn-UoHO-3La21E0GtVbORiIeY04Af3TCY4seFAgD0XYnSJ_YjY-2LONZ83uhpFqCFTonFXwKJHjW__c4fSuTLRc8JCGzTOkM_sOP7O_w6l5cniT2ptmFq2COzMfnh9mjdkW8fKc9Dp2YPEce356HJ1K7z1Jb97ly2LJvWHoGEyZIYwxzc6JdCWcNTICzjeNUGYVUOwpWD5Jf11utBpVyv7wpEBGZ7iZnHoTaSVWgm8rWfcV789dXWSyVkKDh-6S63jdy-MeKrTbH76zh16ygBNxo4I4KMar8r7tLIFAAfuhO_2eNGbgDkNNSf2uScPY2ClF9j1NDrviVWeB9jBCldg3uOQhFGmtlNHcOm5SxaqMdpZtFFWL5ST0LbETt_rs1Jms1ZqdzhCd0Vx3C4xgjUPhAXqVoS4TWwVYtFE1SAA1C2Z9gx96aQju9oxuzfe2fuuznmR8q2f5lXUXm2V5pyXj1NPJZHdwy1AoW0L6FAiNNNJwPknamYdifgcY-lRKAgAq1x5hgzhdOyJPHC4_0wpLH40t3s6TNDqXYjs77kyIPEy1VG0Hpi-gBwEWWveLaXoXb-sujO39Avmb6KJHEOVTu7GO9WBaczLyTxJxbx0Q8EMRjq_S0bbmCKVvBonWCXh_qFunlyxk8_DdmhLs1FYUC2MWQc6F82VX228sp-DRxiuUnuO7-_3ZTtRur3Vw0dFxhkkvd9gjTpfdvgaTHFKOdqxGLC3NDiIZNrfBaSY_AwfCDSs1nnShzSGDeX-Ig96YR_g4N0_UyOrV20vhVal9dgdSWQ4RFhr1ujQEexjLwrCtFV-Gj051kblvAn0hUoBRTJQzhr6tMdGfLvUJzSM7TOd_g1XA_WYeuXbnD9WQvHer4oWH4l-jSdriLbgbEQAHokXQgUvhtlTV51quhe2I2I-qqiWTJFmMKdl5RXt0mo02nRK-ZtorPPzhvy8OxV8J_Wn-G5EHmEMinyNg5timguo-YoKlH51sUORZZXXnrsKMbaoN43A2a3SyDIgGrhHH2IqjdL41BQD0TdkqqLx4H55EXbj-T1InrynwhHg4l77MExM6_fqExAzHzoaqzL0LpXq7GDsjtdWUuf0ORxN_vtpZsWYTZB8Nqcjupb8Ldw5jQOtW137Ofdgk_gfGe0MCfKlv_kEVFYduLqV6Gemm5sTghZRYEsYomugpnIfiUYo5DrFL0q1YT6E22D4Jkboppv-llPUkGeSnTnwOYfIBRlqm02xI-3eaBOIMLDQpQ5uOQF4ggKKEOr6x0FeIcZxK52JyWZFt_LHs9IbLDcGKogNX_2aumoIXrFkB7V8hxQpCraDr_htTqM71OcsC9a0V2dCFuTSOisQeZp0wNMMOVlRqMVf9zXC-iYO7nIHriCrLgblZcalrxacN5uMdOMD1sb7BUT_CMxv7J9z6vGrcrGVxrullEPXz375DO500oArEc9JlwaYGfRF-fnqB8rZvG3lFpY_GPl7zQOioO8y_m2xPW2yWI4CYTFz81AJLFmGvx3Sblef-n8-BgCXL1tEj0S-Z83HFWqgjosA3-qDGnRrFiDPTu9OVlujQhW2JgIagDKS_RekLhEi3g_2hLRzUZCR8oWR3-ZS25CbL108RunGKdibNNtI3_y0Yy_G5vWX15mxKd5boxN-w0qditssUypJ4jyAyqEAdSlt05KahKXdnZg3_TdwJ22KR19dfqNo-fO5ZlfkNQhcEK6hclSbDeaY8fGAgNFgc6PhnR2iZQqaGuYgwZY9ZIpteb6rPxjBDUWdCFg7Ckn8NybqDQVS7Gh3_axRfAGsEgYMRf5nsyq0zsl-pOPX_sQ2rBvF16kxCEjJEuZ1LatobTTztCmxVbGeRvZESugRFVAimsrUU3nlzSgCyZEZQIicS6mK336isSR7Uau0G_UczDtQOUnhg3Am6yk84zsJPV0rPLaTgI5r09khqqPGceySiEwP2fnDPpTCJud5fEYOcrip1e-GFQ2EVEum5NiGDaMoSsj_8xB62LS5noALyrgQqL3ZdPV2imQkmhL2kqJ1IMEQKU6RSGQJXDcQdS0SY24FuNEKvzcnO4MwmnHFxQjHtIDk_Y4hCXmi6EZ5JRioK1fisNDATmkr6dZml1asNNlwW89qT34fDM9emokKi48WMML6g7wPFzWNCwZoB1O3pkGaN5DOBp5imGW49LRwKssOqO5ctKlD5EmkhM1XqxNLUdS6PGbrcx7wGWb6Ttdww4xgI-VVwSlntrsvIJlKrdijxdiYgHY80DcwFzyMphSOH85HiHG6-qbVESsRmjjEVE7UBXLSaNC3NfLrdIIJcaCTLwmcxKecJtisutjOqKBvgAUVBJnrEyYTTqP9lKdPmiGq_IXgpe-MqMnFbYsY1Kpbt7qBddlfG3L5CKnoCIJuJLZb1PBcuyC_jxAGYM6YHtZJGicV55VecPWe28Ektn2pAtyWh4iNxmHWuykdPPfwu_5fRJ4t0ZXGjruTHe_XY2YIUvU9TL4As_12fzGXjEmCYkCwQoqrK5alZZ75uvhHYketvFDg7AIBsXeJhuk6rGg1yBnGoQbTAjLEEupAEbMNwdsDcgBuVSZSRdBg3TVHB80bp_YJ-11sLVczHvpp4MC9TWFFttjvmHPOsr7C7Qrj3LHrdAVJvxt_3_i-CkgqLzKEofpw7QdVANEaZCwBrHO5XYaUy7VjMNvBY-KuK3tOR7CkUUPlhUe-8wYUEjGecrvDTO5PE2uuhs7w4LJkaC1KiaVBpGBt6dJO0DD_5skDbp3wpPKeDDvq45dmzTG_PnJVPTw69zXbhhG42VJjw7sC6LLPwrI7UTAIFDjtsQzcYG1aC9KK4bCE476wPkwMfLR7U9kQSWVF6ePK7OZuBFlhB1KAxnLwK_8K9dQtBkbCUD0PVa4eznVHRP0OB9vEzW87LSmsKosPBGNZSzx7zZGMBv_JPZGHkhqfFRNgFW3GHoUdgt0GyzR5agUe4e2K6CkUcJx7xG7eu60Hxo4clj43Un-fJpP91ZADzrCun7COlhX746cZVRfSpzB8X3Z3GzYWR8oYr4HvxMeuHpdIPIr7BaOgN0fHP6Pm458m2_i4fMB2gozsmL0ZPYrtPQjbJyXBBry4h-9Xf5I3PacJ86P1R1j-DK2ZxSfZ9OEb4EldgtaIElEPNYHF1gE55iywoAPziBGKo2UH5t6zHigvNd-zsokl8k62IBHi-Yp9Dt-A12WM4LD1r2E9EsnBM4N8U8gEB7w1i6QBER-0m6D-PsGSphu85zJIqZvMQCzF3boIGF3s-1t8DU-SWZOvivyKrcKo3K3fH6iBoGcY6V-BWKvM5CPyOL2iRdAcCwdAEGFwzBskOEIoSBbNHUAx0DGK-23q0LJZgSN-LMVr3RZAx-uxKa_cTEDWkuMn23RqNpim6DABGxL1hEUGR70PUmU2YhMsgc4TQIlqDB1z_TsBYwjgn2CnsSEopm0orCq2u-zoZt0BjIjvDJdJvw4AJDAiwwm-SYLzPget-A1Q2Wv2w8AbdHd4oEcQpWdcU_Sakv4qKyMZQFqtVBlMI3Fb9mcil-lfoWsmIO9Wvxod1i-vyOBfdKACJEiyCEj2fqO3PETFiLp9I-xP6wjG2srycKZnhID7IpHXhEaj_cpwq_Eb7W6CAbF-7i1oDUhf8IiSvv4q1XrChaGst3mgo5cdVqHW_X692EH7Bx7tQtQA3KqhoYoNe2VcSI2RiOx6ftf3Q3Oo5stYItdSdtVwolyEwv57kSWkrF2ObMoMt35XgAYOGbUfgq0uhWeWkFcTcPWsKht5GG3CoU9OAJfSE0iqpu-OOXJETdl6lKpdXxUvbXgR9qD9Fl_tbJ6sGi2MOSRJ05OZmgAluLQKm8gIpGicB3ko-jmT43fjMqEQsJn7LbZRsRIpFpdqkXyiZLw04Klw6Q9ZifXlthYczsPDExcZtEjZYbQhMzd4MF0QvfIZghwZThQr99ENQ3LcvjtKc0v95bOtgddUraFuOsz5ImkqFBNAYZOLdZx3fRBLDPUQOyPA66JjgNfyAy77MyMECqnp2S5njAv41m-Dqev9zg08qz8IB3Gm-PFh6qQ4zM8M-TkTmjVWQMmMwdF1Qy0wOArmMwNn9XXe6Rt_o4oWIG_n6-U0MKwvOKrXzGF67WsIaRNywF5w5joXE2jsF2TsOfxrnvIrXeekcBYr01c-wBdmlMGptI-_kSUfxJDxPBuGdzCVDzWkSHHaianihRVw1pZ1jRAMtWdLBAsk2hvZMEv26dZCf6HzAxQu7CmgigFOzH6DHF3k3ewYFDLTdRv7C3BH1GghspRBGcnTIFFys9Sw3iKJqEF-gZbbt57-ZTv0sZ--dK6qQUtla1b4Tgse3_Bxi9l9LCeWBe3b9Z9iJwc5THr3VNyVuiolq4Uvi9AHls78cGIsx02b7ex4a2niPtDARxUO5UywtkR3PuRNiIGHoubMXvppERiquo2NBLkCQciOuxLG5GlGNzu8YrIdClP38ZrDND6jDXf618thbG0XNMd76oNl-ca3TRX8wPauPG-XLVL39cUQDwG0CcaMbZNkNUuccY0g7G9-GkZ0k7jkq9EXgJA-1K7R9cy1bXONiiC0sPQOThEYdD5--CXULVSftyiQMjT2ucU8rnlgG_KvOvXDD8FtGIZuQp1Gqi1KS23xCrbStV_DqDHkEIfwQeKHHCgqmTTnzCnGd_4D1fb-1SnpZcBpFHk1V676qZRIo9C1OgJkxO7sWzheBtk4IvCCWzjVTJws_oBQp8JdTaeyCSrkN56aO07ktP92Mnj_z8YSVnb9LHDXBwIXQysS4utl0a3ducJTpFZgwHP8zGyaOfLKT2WDe07VLCvqRvIqXvjLTsfT6LkJv5Uwy6BG_c4QcljOU85ic-uCUsCdkBdLPzkTit_I5PIWwkA7SAoebEqGBDKHNBdh7XI1z0ViH9mDkogqryDUeP0mlU0g2-1bErwPPdywsZbp-Qgb9Yqsz-J0YluNtxoC3pREag3djj82NccZiFO--Ixe6ztIAnQPWVrSJDZcHLB85LorTZOqldoVHBl7h_eeyl5yv7TieTtTvWwJLfuLx8DSBkBQfuS9tIxDid_Rqm9wjKrGsjzKXnd_lP7GVgs2tXZz1DprmwfroOrLcBvhaY8Zrw9cVaeJUIO4cTjdo-9K3l4x2Kru8kTbJ1E6yuT0Rhlb9I3QYGQk2Vqmc_KNWRFrTny_QTC9iUTLGR9kRKwQvGrRlq-rNXskPXavhjBGfJsPgtmD3XoZmAGk-UIzQtPnIQdhzSi9AXFuP2X7nXSMWDF5ARADyzu5-SUkG5S8nKzBkfz1RWjxWNFYRSyZ3ze_ktbIXSlcrOCnmeR7PeEC8NHSEiITr3puOgwSCNXQgu5w-x2H6oiPTW6OX2tU-QnsU_lHUNNMbWbURe2UvSXshFQf72pVDVj4ZWNNLSB6UAclie2Ci2xICxqt4vEGbif3EpOpNvcDSaxipEBUDaF0bTK1vSGB2HJMD-nUcmvoZeEdtAd5568B3lJiKOohV5-N9_hdHNjplrFOxl0RNvqyFfukvOEpHMaHcthGD1_CkDY1EYaHP3lRm105grNfepuQOIek9BwigTF4uC6mcJ3W9ihQS3h1zveQCiHNnYxuoh3FApYqbTrnuhFA5da3yx5XcLGt6-JxE74Ii-J7tLi14qpArcXprYqEYLmaElpYsnXY-Oj_z8BaHNFq0P4WJ3c4pbqSR1fxwZgBc38DJA-w8ErBiFE79lDpkbU3qTkZPazF87J2XeYu_IyyS2sew_MRzBbTDlD4Z8HgrTopAtQYkVn7umf48FvVBNUXH8LNzmJE60LaE9REMhGgCRBoUaOHkheETwlC4684SlSwtq1WUdvDCutW-MjNUDdPI_Bo39Nxjb2UV93023OrhNL7wCVt-SEUygNWX2OBgEdrESeF1vK7Lub4Bl5Q6sINtsOo4db3F0Mxas3jHOkE8qTIebmSnvrzdl5LJZ_IBCwKPoEr5dpYuKkfvKcZnrlf-X4tkO5aXzzQ-U1SJdDruSx4O5blja_hY0ZJ9OXoU106fIO3rjUbQOhJV4D9gz-frPJ1rxhZygIz_UP2yWR32g0alCS_P2TOec0XiA_moJc5pAw3_As-50W2GVPE3ltRzfSIRtYYtJ3abFyq9SAWuEYLHchFdEj08zcWOVU9clIrYeAElCxFUifGgLUBGrPfsaFCLFXaYtesnu1ddUldckNn3W10U0ICxnMsbq1DZu957za9lp0GGww8N_zsxsffDuasNDA5kWQeTb6WRaKcO9gzI7FU_wX0dtQQgySOn8nnYOu5SSi-cHXuA0qmrr9nUZdTxXnOf6jJcqI6DSThbsen889sYjlkUYfF-JhICNFmEDXOVCkfDgvirqyn1D2SJvgMBsIqG-dMUQwEUAJHNOV9BIWE7Ahpwz8YIKIKsmvrDOc1GylFFQUmVpUWz9F1X0p2zvz_srQ-4KlCYlN5NfnrU4ogId27DixjMum8A1rW9CuXQ7PT3Yztktvmymz8Ksl64t1K00wYZ0PPGAJt80M_WVoxxlDgN_ISOcB63F97_eTN8l9Ckf8wkHKMRgK4WDDSB7WqFASWocEAPUoQNZ3EVMaykaxZbRE6DMYbfA4qH4GmQwb3O4aLzoJ0S7aXY0RYUnbLcl8JjZtNRN9ZtKsT2VgdMcZPRvAF5zfnXZHf4WuVLbIVXokIqmgboyQJtOhh31NrJa-BTl2hPDNi3jS-1UXGB4Z5pL41uUreFkO8jNzvmlf82RjfyCi7F6NkpDfmEWu_XYTtUkDKoyjHmtUge5Dl7xcScw9eMRTYh0JyOpoIsfduq2_gKawu-ncP0InWIdLSP4xrhgP5dz5FKvsxWZZlwmqwuChRlo5mka_iok_mhHR-kvYcH0nJFqOhz_1CaLitGJW4kiDAou6nrF8YaVQglhz5nMgEBnoQBgEWTLIaa6HNOnUfO8oQm4CBsShaVspkMjkdR68lo8_1QAomtolsKjVsniOsOw41qz79_tYegaeHqBTxGenLvWQGYKgjM5mAoTVSWJ2aCnwODbYfD5GWgm8X7cCLuMo1dlghKG-op87VqXgnKRd3wAM80nA1l4bS047RWGxQykIw5rwrHCyH_Z8vXVAc7HsYVwlCItWzXCdfD2RTa3T5Cmmy8g6CVFJRjR7rshoIK5f5G3ntw7RD9SA0hDSOstDf7IQ0bDG_HAVH6HoOHzIALz0u6-Q7N6yv-euGjhjJ287It41i5byymcBEgqe-exEJJQEDyaieM51mrfpKNt0lQzUOh4hlvRjV06OQ4tSyRuO0GOWGQYKgD1x-LSuIcQvqYhYA3XgE9cIkxp98ofX0RkEtKGuBDNkn-o9kSgvE91Oq2RGAqluiKz3U9mlVbbqNjY0o9qa_9K-yQJ2ecK0WjfskhA9Qk90VHO5dUtjdrlyWgJEKVgPXpL7tvKR0Uol44Z_aYfRs3Ps7YSegMVP53tTCR1XMBzlRf5Z8MHqKM1jCZUxtPlZdugRpY0pQntVPVtkblMXmLP96ICaTUWCzouesQuTAZmduEBMbUAoWTdqa4bCPaRNkYBvLAT0XTXQ3jBMgPsx6L1xkBuxGgZTCNC7FV5gCvEAl0Wv0nN1sl6FqfLwoCH9lfl9e9N9JJcNLvPWoN9x4-5zDsdWje8oS1z5Q0rX9zMeO0-YS-6-vdLp2rzxRBdJ6fR9uJcP85ITqpEgDJNbkmr-9lSkm7wu0RK_eyu5eV9XcNA2Mfafh0UndB2fdiiLaqmNYY9vS7gG-hJRGZ1ya4gsB2nvEH3_dR6iPAX0hLGncMZaNbrQRi23vwTFX0KJqmwwmp8lD8OhI5OQBNn1l1REwaiAjdPqMQmgqrgFu-XHvs1fZzyAKb5EULHNBiCnmgNPVpDWICVbG8Gs6VsTOHSVtLSqh47O35_IYezrFfRP0Y6MaSw-9kd_yu1jsJai0w3oepNLK35cU58fbVf3pSMydrn87hwWZoNAt6QLnivoUaUzwpCg0ACqMkI8uznWaaZDp2Xx_PG69Au22Z80ygEzqOB6ZH-8MWaWVaNS0sayMDn3q0w96jlRbPIK-e9VI_M_Ajb960Ir-NHzlnJS-ZDsX_eEX6DZh3BImSMxgsUGqMn5uO_m_oWw0Xxr_XfJmsY-U6spobdWbBqUDeagIvpT5eiN-daLwxxZA4qYcxeUxseWXwhJFMevBQzmLvnDOXN1gJ3gGloTWsGRTXkWg-f3cBT74sgEQpNx1kFa2jTxg1frvtAh3MyIBqQUHtLa4DO_ZKsLhr_QHkna2R4eiILHMXr08-jjfPPmtfMpYSbtyBrjb3cpgHCkCmunqLh6w_EbmyMa-HTsE4P9ikprABuWZfznv25O3LWfhyKh6nQMyqzM3VuB4QYUU9_vnVonDcCyZ2eW5PvnYD9JDoTFwUF6kAkNLmQaa_Y85-Zpj8d_BprT5gNFd2hZFmFhLj9wKXwAHdLoBYDSRov1HMrR7sk-TZnMlIBk9x-VTb0pJq9SmBGtV9kJQZLRq_7rsaSS4N25kDLr9r_zFUvbwZpieN0vy7PuM203bw5jJasnP3a8CKI52ucO-xteky8Ga7WDylOuppohrpo8mAuHyPv3CDnUy9KQBZhs_wPQYIhEh0oNlkmEKluMyKGW4pbfmNBD2_v6weCUKawY1NB1SYUCz7GkfFo64yaDE14JpEoiaia1studAt6Pkcg5qvL9LXEjOjf7lhJvWXinD-WNQlPoLBACgEj9S6XAfb2lfiD5dicBgZwwc8EmQ8oB8iHm_C9fuiuyj477o9OkNiZaRgjNY6lvQ59PwWgwWtqGUtozDyaP33oCBwOYzjMahsERC-a7xR5WP6dRuH0T_CSgiHr_YkAdR1bfoEtr4O2QQT5MU80704TeFpWcFCEAuXqGCia1aUjSlQ--5MZvTbx04ysO4sjfwjXdhMew29o1fvyerJwGy2XEjR-HTMyB89XKNmIaB-sNLKPQkPgj67lL2TqrWwNW5Ti5BBGpxV-Wg7TX3dC8bEcbKCRKt3jfB1edMFwR9lSZUm6ggevuiaes3m5At_tp88Q97_kifnD8nEv9CR2B4VqJHWMb6i5xoCWHDRDNHkns_OIxjiAMykHGtX8Iprwq-x04jmYs14f0wbtxl2w2WmvIS5tQUK5-5Pk1NWbTrv5B9yzcSFaJt3e7qP7O2hCd8Z9xY8k0lIae83uetAM7PDtcNOcCHcs2aEOW35WJJ09alSdSp-b1CKvlDQx41P2GMZKAT9Xw42Q3YwfSuaGl08xQ5ioiYwXVKfyTKM6PFT8Odq0eSO4ra8934DDgf4xMjfmfBevNDpHV_5aEOvDjzBWWm1d7nn-noXeC_MpYwJkWpc8YSWwlAnMaIw0TFm5DCEu4o0QQ66L0mr5OGUvLKjnC-K1nEMvWibmlhpjX7PMldwkTNB8519-rwnIc3aa0O9WBmMMs2lkpBoSQ3nAewJlDeaXQ0PSvdBfS3gIyh5IJA2TzMGq4BNl5yBhMoJw0aOizReGSjUMD0n5plGkGYt0pECBK6Hfhe1vpDpDe_nvUBhm10jENeyFoGPIgEDq3nYasaHSTkGrsGaRVn6d_HT1FZWH2wiDn3TuIo0sh4kCmzY_u7IoYVWD7MP1PoRFr87M80np1y5QHkT2_Sij0onyc3LjhqiGxKGoKFpfOCP8gjR0_VTKPfjtxzIZ23BiGmYoVyyA2-TMJSeZBJ-y6pOydQh4g7U7MgEBy74cluBrOl_o5kej7vSN7G7maTsDN2KKfFR8yTJkIu1z9zsO3bi7O9xoQNLCFvVdHOSO2Eb_pCP1NcGD3JAnNq7yQmMXpexd9IVSWVIgIFRg_e0hUp3HsB_UfVhA_1NEHWYfMFmGEj70X-ETEMl-vcJcZsle3HnyjYNm8V7rcgwADwKqAZFDrQu-1jz5ZM6mrZCVQ9djAjhCFqjODhI8lPnYyCfGn_DqJeKWH15E1ESk633tVbYMj_7OS-nlqEMj09HDX_ChJy8I0FWJEwu9sY3XSB2dAbI-ZlC83Qw1VYsthJE6aJ0qjL-JLY50c6pLYtX589-qD1KOGq0iVu09YU94iRYk5_fir6ayDW6X8CXWLJA8AxcN2dGYQU6HZB4rl7eTV12AnIuU4-OyeP-IFGJJYB4iBB35GcsYrKJDxFOVVBPAtZjylx45MXhfKbpS9DxGH4ME6ttR9_b0Jty57S2NJW_C2tu9NM3VBMBnWdbPH9pEyVWb4b9PAmqQR5J82Uvyt9VPzC64dxb8dAjjLWMZySi6vVU5vLJjzYZOeIvqo2BL3a1ifWrxiojePG0SyPXTjZGn-QMB7ewJkB3yAdZ1TTlOITyz2SCpVUcaXUdhg9x4lofhZncDEKWzy8SlUVOqAcJdiuMozz8nDZuc4AccQbYfp0aAE5k_B-TXJo-5jxR8ixtrVCdN36OepLA3wU5JlFfc19Rd6HrqejnRax3bR4T2c8tRC-eYmKs8vK4cjJRdQKH_l9Zcq7pJMq-eGfQh3EJ9CnpXndVBlsw8MC4aUCiswGGfCEG4ysWgq6r73-xIHnquHkMLVlIiKjTVwjxCYt5L7I_zX9A9pZ6j37USNrbueIbMBGYyO_BTujmI7rR0UMe8kveAheu1oxU854UMDeYYW5wdUdhMBagyZU8nHNVwIAvZY0Xil8INukiF8sLlTbNs8xsniKpPjkWgY4VppTFiogwWgq9ZZnD9fQj2RmBZRl1j9s-ukQtKFyIUENn2LN_zJtJf35NPdw5ArnEGq0kHHp7mxeO4DWd4RS4jja1-Qla8p28sNg6D2OfOMIpYy-ARAv99dMu6EMb0P3VmEGr9jZGYuVxki7qnhu8ejHUkfu62-qWVX98KKEAoT-gdf7KK9ilwhENBIR2i1LBnB9QTFunrBG_CJ1gEiYQF9Up9wA672y90oxNFeoBsKvS_jnhFC2hHw0A2Lgz78CtUfnrVfBqOV1Zw1Cn0xpGo_kO5R1QC3GSHkVNVhKPbF31brJoNc-BFNnROiL4NFEVzy_Afq0ilM9kEE3tR1OD9dlAVj8j0fuJTm7zbKISMhbeIjzkZJk12sc388RJNeyuhLo9pfLMO6f6U2ndJWAoEksierjHWYOaGAhSBQzOpC3Nh7a6gKOMeUAKkOlS4udpY70lL0lNJuOgU91lOiYn2dGYMxCry3Ufvuk7PqyHXmzgY8XUhGC0xCpViUpckMPeEpg8O_H-YB5nfecWRqNbu78cPKpo4wX0Qr-nhQlDX9pEFRsUOg3UFnLiiqRfxSK9FeNH7USDJ2hGhkvdaAjgS3M0t3u71Jm9kW99UbvPZ28va69dOFqS9loXkr8XV6aTOnyqPC3CKKTwhkItkpSb4lU8KaQHaEVw3OdrDdPQBV-Lg0sYE8611SYGejsgbE2qruEWtqv0A5TT95kiLXeWp_uHDQx1Jesy5tTCmkTCKZOVYZdvT7HKSK--9mFr2peLyv--Sa3nWLQxoFDwCE9aGVYsH-cVxLpzbKzXdndNPrApCPhORNvv2aE8lpRlKHy6xywQVEHvmh6Fo0FaMZtFcoXRDXgfRoX2potI_Dq4FTEP8mbtQJYUHgG3DrX6hwhIrSzm96-3AhryvZm_KYuaRW6NDaBdBY1ERB9CTKnyr3ShI7JRGNfleAOq5ryR-rHn4ks5LbLdqOL7UGK9b93y5Qn2t9xJO9iU82aKFyNoMrd-vYYK6cQnDXCWEZxG2sNLdpd-4_qKZRjT4_cI7LQcCOr21deA0RVNlsGXfE2N3CRE8kzZqZl7KODZoxe4zI8U28fkOs9M5NQJBSswcU69Kcyc8kKMfrVhhvt3q5u8sTk0yLWuv8yE0f9dO9HCKhU3GhA_Ig8fgwG70oti51AXSxEbGYYZQWffgFpMfbnZM7SSSFW_CYG-uuLr71D2EmfJk05UYK4OZmzczK4WwlzTnibPKY7kOU01GgyBROcWisrweVF4x9YSR_GdGo549c5trhPFzjxHrNSR3FAtPCICxtv69I-9v-wDWtfX6oFVlfng0TtlE4pTjrsxXD9IM8sdxULeFC-qasqxNM9VWKrvizcww0kZACE4vr3Ip056k3hF4UKek029-y_6YaIlRmDH0WsxSSaYA81-WUTEWr8qaGrw91yX_bZuSKR_uBZrJLj_8MyCuly4A_fK_zqGVOgeGyDXAH90T3aQtlLRdDtuC3pkZmXwxeMAInBKAnL8iQWUWhAEuomtAaxw7kB4-6Q963CW1lrVD5F8yXtLCRj90Q26ThJjz6ZwW8dNA-fltSudGv6ikWMGnH3e3ep_xkqSxwl3c8WfCk710d9KpfznbE217lRAhEk9R4qqIQvSu4hEjXLVSB7_SE_LOIsV54HAxIuncNjFQS5HVTYQQ6K14n-O5kPtS2Qtxd-xqU5X32z9NeRAd-M7E72KQeN1-3jJSYSSA8XGdEx4rV8ekBEFAp0WVMFgfZIgyLqTlPEQUtwRuIqCRk44jajoNPi5TmtNZRJHg827jcmVkUBT3Q4W6GSiZd8Bsy7ygPMH-xjsRNu7mcA69oCQvQXX9R40jrXI4RUQ2zUBfOhSCPJ_wRvc5mw5CREID15Az0acCiGioAW_D7fGC4RZa09RntKg80ZazY5Yf0Zs6SEMO-20ra9y4d5g69jyosl4GejjZk4Zo_83QWclxkb6vm40lI2GQ31JHpvjIP40qGMFrlUbs4nKWu3zWH0w4aLDzKnvgKEG_r4YDomSU8_oS7OEgxGZqyd9JsBMKGH_-QupGY9AeRCLBr3VWasgMB6JCVRK2t8S_jzTebtNZZGLaqb8Teey8WBeLqC-eFGPyW1v0k4lm46ELqAa_HghALp88-HIUAS0tFq5D3FrYxcJj8eGF166Epck4KNwEbW5k7wfX_KGrOHz2C0AiYxK1WA69-fs38DZXJ4bPf3NjFWg7rM-GQv5dms3X2d4K31gFXQcWjV-RwkFOBAqdwgFB-W5nifKnOtJJ_Wn5LzkT-p05qioN28VFK7795myJJ6hxCd70n9neED-B36MRKpV6AGTiK5kFcFEFrfk-DkiWdM1ZEIGtbBUT2s4XPhk5zqO1LIn2SJZdpBFZAcVAlViFVPlwVZiZ8Uv-TlkuJIoW9C_D8d4WqfSgukSCH0KsIlRbi-ItHyJszVENzHYc9Gq5mxvUizIT7MY4jWfoY3asvkjUybSA0rVUMaLppzQfW_rSgD4WBpSclUZ33J-wN0RfHhLj66ImnfoJcUxsSCRr2FBbdZMwL9VQwg6TRQ9DcyDcWCjlD-AGkKpDgyXi6VlUvqIxPbpnweSc1dM-UoC05gcj8qvx2G5teOg8PJSHTdNIIGQWrBBlrX7xk_gCTjB_UUXFYBr4zU5j6y7UqOB6AQf53UVtJHKEuTOqa4Ps6c7v2iWtzC_x8FmkLc9hg0MsSnZI_n1hp5ALws3zDT6r4hQEX_Biw5UcRo6HaYkVVex4AiPUmeqdXL4UpICf0RjC-mcOb84AJEbKQ7v9FM7_x_dw1tQXgG2FNbL-JJrBkBdv37Ufs5ORxcys26X7FfllucH7QgeTgBQW4t16iT1PwiTD6zJgliJDqzGgbKssKmwM7gyjcjBUaXWSZnpcV_JeoFWcoC3xKiJa9HQYlYTu2XGN2WN5m40OuJ7P0JAA4p0X8ErtwyIQPvPkZB4ViclCqqhATmCe3oqdk3eE2m4s2uU6MvpKvz08EiFEwGroFnbNguNJHl0RRlrLc8ZvaohiyW-kyWjsF7PA3Ks9M-eNIPfl-we7hRvlYsRZFtXTEuaa9BOXN4ldIuLx399RRaTfGbhsF2y3RAb1F6hxiHRBnRUrQqYE6tzDVs8cFCDyH-R8JS0f28QMFupO25aHj1O3AnDeFY13v7j-uaPt0e9PkgPO2FwwSA2H89TEUWxsVN5iGEGmwnVJQcCoWnWrKDa2jMNcskZw2bvOKZmT5Etl_CdLqLARbzg-y2a7XkWoJsVkEjuCHXN5pe-Up_q3vCxL2sncY5M_dB_JELSm2DjMS8w8yK7OyLdV1wG4dkh6Kr335ld_cux11G9J5kTntSJvtM4AVJd7PMiMML9SLETpOoFO1fWj9bA03aHBfCZm-HbjZj4NQeY8fW1-9p8SfEWteJS81HAHqNAoy_ua9uLi7zBKiDdgKGJ-m-ZFMwRwG7w26gt2SenFGjJRHzYA_bBvAI2bWpkFuO4DlhBvqIk9u-_kQiVR4F5YrPlWU_rWkGGXueKeiYVh3-PRzWyqvTbh-koqxFusuc_maQWmXD6ADcRWEOsEShLdUQJQOUt8DcXNSMqyBrBTZ9Pjudjju2E0BIaXCAa48RIUO9LmAwDgwbGnwDdAaiugLriFpVd0-lFfnssIRo348kyUrlzmw5XmFkh-G4CsAF_RsMfGhPnNWeUdHdeSPVORMT7xbkv_CjcNqCG3jx6mzb8mKPgM1y0a7HWrNkx5Zr4vfu2sU3hXjuXPuPURCUEIBrir2M0GZnrg7pxDjBWdMymxqB2NE7bsXmCXI-fcg2_KjoZLBfYDeOf1kBN3KboFTG0Bs4iaxCdYDhVoyBVppD8Z4L0zUf7-0CPukiPqFBlV-ntBZv5XQ60meprVQAeSFIlAMisDA-APyiFBLVy99NTQEiEJkuLfWd9-aDOZBXroC1-KUBWZSpXASlZcc1W9x3IAX4uGFc5oMZYaSVquOFYO9d-BV2xU2rrB8EaPqtBVCs1JKK_jCkztxsXN2IuRUQV7PILni1uZYbIZPvDmjWaPTQW7OJdxU2-qvIayJePhclIhra03gV-guWA9DBaBznosdgX-SoxccNPbLE7aBYNq8xm_CTyD6ignEFAj1qTlyqi9eWaU4HYiYtvBxn_DXoRPEJeFFkeK9M9N6ryXlGjA9O_JrXmjvRRiL_f0IAg8RGj9TE4T_JXnpJAv8tVr52WkFXAqPS-_zP3b0iupGx_tZZ3TLzWTHSp2HdRybwRzJ64wmXTBQx2oNLWdxTydTqf4JUvVC4GhZQvaNmb27yvhtlPZAGyFvgZqnXTRCJSHRg7CGas953jlsMC4oMFMGxNsP3tDGu1L1h_puXoiKwZholuoZGQd8N0HhoozOl_GgXEDPlOn87FT-VBNwb6ezl8m6MBwhmIonZwM02I9tBY5R8P9K-latz1oVl6ZW7Ag_NeQJmQNJIRGxGo2PIClyo1J7Ussafo4ZSE7bE3unXGF0YHxHlixSpLss46UEijegsfFxbrdTmmek2Qzla5-ENvpXOl-BIJxCEd63We9GvHJSou0yiqbCotWEoo_btvUlmtlGvh0k-NNxW5hqUOBlZhvmJkC8bg5zh03KVtmh6kc3aDkcqvR-j5rDf0mZ4ehKwHz-p7l46i6UqzaDQkYHlvCTDK1kCtgWLZ4XmtgTC8WnF_XrKmtzw94n9ISjAUPl5HisfC4U3huaeqNnBVUtN0g5z4AmXnahejgACDJVxjpgJUGt4RvYlBgVlirEQx6vuvdOBbbyw5XJay5DkGkaHSrApjTLypKQJvYbuQATCxACOvb6zPIzgyJqX-JDuH56QA2HgB7IpehSkxORfKLu1wBxK0yKf8X4D7wb94l5dFzalTBtd_22NHkh1fOCE_4va7BxmWfIrqvuRwHYd8ZjN2JRxUkfk7daewXuV-j20KE3y26CkKJHGlhcyHH2WSh_zHRd18NQtb375icrkvfzDEDcm-MhDW42PHZSEGdIKPXn6_gcSr33bc3cU5HQTzhqCA8EoYvdW2n2N4nEtb5IID9nneVfBnrz7Zh0TRB51SV28miyfYw1FlNEFSxiWHZLFPmdG3mUCKU0WAQuWYS1bbbGgkDb4Xe3UQbyJqWEQ7E9lf7Yi08bO7zf_J1qfpNvpV9pdbbJ8_249c-vd8dHI7I-luzdAs6rGd8CuFPoVAtsFb_1OrFyQOixzCqK8cW8KRbSf9zhm0BPzQ5MA9YKaRDyE_xRgrbRMDpuDh2g-sjrimo48tzmEUzRxkC7g2NRpBTty0tKy1Fb2zbryomNvcim7xGZ3FbNJilx_YwEDW0aj-pdC-ip7YLCZrGZqYcPCQJ61WgCUUBsl-61sleqQ3qfOfTZt3j3gPsnFjfaCMCnFN4_yW7oNJbmCagnMUrJbSYCT0708yPLJ9-FFHNnRKmxjojH5y8VIYErUCN7v7cp2RW_11JVgsgw4FAT65Vo_SuvbDu1a9nOxt1b46f2-xgREv6_5drYjU-aDmCvT-aOf5t4pMcrYQCzwdRixPNcRGlz78SVAbL97eDd6mNHmHNWbITU29FLvJ8quxlAAvNXQ3exxEfnNH-Qb-T1MgmFBkUGAj-hW1lLhIYwJw_QNhY4P49P0-xCumPM7Vhza3vGWzQggQOdX7esL8doKBz9sq7ztBk-e_ALB1OlkIl2J9J4kg0Jpn6w2zCOoqrqB7jLD-wBKtv7lCfWCurhg_DfE4Coe06vaZaj8TS6Mt1O5IOuvCKQ9gws3gNHzMEz_NVko-C6Ae5wSPCsuDf9HbBOM5_qyguNAvX-F453bphNFIvCxHMtqpfyJV5VdGq6wUcmdlbk1iCXxKTC71Gk_P5MPYgheF2iTT331fTbZN2hm3VQmMzrU2v8kMf1zIwOyHkW6vDujyh1Fg8FJ5_r1KG0GcNknUPSw2y0CI5L32ofjDfkxt9L7cZ1P9-PXWEsxS24Q077KrZSJaQNanoChL3ZOo_34f6fFFc76lgNVHPosmyN-bNA-3LbQgGnMsMVOnNCXBAUy6HY-XSmWLAxOXwJ_ftMi-RPp_2ozE9lN7uyK-1gj0JYv8owPMGYhx8gcjdpovos9JFGSS_Qy3C0YdvtcewY5j-VsfIbahMvYAfnVf0H7k2NNYcxPzQCRjmg8lPrrDjEZDxGKDX8zWyZGd-O6dYDADFx0QOwVswhs846blv8yLGNTkudKNssvyxp7hFqhPRIZxMdZ8T8sChTkJHgKZVcd68ftAHeHOYDA5YJOpx4hC1zgM8MTrKP2lsUyfb_S3q8hADChr7X4nxvp_9-4FYoo3UI4kizf98YJX-YLlFlFHyReruQKru8iP2iL9rXBcdNwJSUUAZ4Wf2SIb39CtPDi0cVkttfKh1--tZuo1614TNfoixUWraexdQBRKL5r44jjAfqKBq2hyDC2VS7z5b3z4qAcJcnzkVxG14M3XmpxKR6E8TA6nJ-bHj4XD_tr6vyBthkSomV3bBZ5Fgx2OQhvAV786JsLpMTzGzrfgQOkAtEeEV5bzwFXyAGXPoFzOsMKStii1jaf-2o5CPdgHrQSRt-65wmiuZs43V61SzzITo_kFhCfZyb8sfCG-iIwUYjdoWP-fckDIcBXUj9U_84NKEuoEI8OuXzkl5gFCKVRO2-peNoicE4R9-e36P9y-j6N4DqgQ2v8-0cAuXoQazMdE7YulohA_8TbtVArUom-G_Sa7XryE04cJMtGGvR0js-tXZrEpPmL6xSNY05XJ1s582fGFIevkUhZZk-2DEC6kd9Z6k6NdYasN0TSkhmEotB6vfG_np2XrdaDimz52_5CijXHH_XZWSbzTFuFsVdQl8fPKu5y5l408aZ0Gp8i-ebWXQbsmvU1e325NGbCd9Vt73C-b7haTl0yyazGPYjPRdH6Ysho70slU_y1ypSyNiom95pxs2cQWwhQSp6ujHb6PRuOwXwP7oVb2rqPICMtDELiIlaHDkgOT0Qkx_dih_tWnGzzFTPy1PHUJa7hI3ZXhzJ22-ijzsCjjRBnBOQEZWR6QKMfnsEW8xhOPvDXlA1mzWRNLY2iRc5-i5t0cRxJ0t0zHJzQGOBMCpYvOxh2IwkSwZLx6AGVW-KDeXKAeuVZGElNNZMLHCqTVI6vRcasd0qO4lXX9MEDGWx7A0v5VPeQp6Uy-AbpX9wejywY5cV-4lqngiAib4lzfZ_2uDSrlN9S6jKp7Eu2yjCM_IQXL_QTEKKQ4SIOLaz-Cfue9JUgs6BE0tOAf7ilsNLXOby8w1js2SEZaqyv1GpnVYXUcjHSiyQn_LSaN1DJgY7Cg_WDO7d7bJFX3HloxkNIEkj-ISgyCmNS2lwEaAv3u0YaA7o7a2mJbBjM4eNMKSjUCIpNs8jg7nSWvF6bTUTaqURSsiskp7M3jLMXcv8YKG4PLmLlfz-5_Vi8RuOAz9Ka0CShaO0P3yrk0I-hf0qAl77xuzBaEkJrYUepzF6Yho4u0sQVqEZmwcAdqGuDhqlCLZ4xN0VQ0bnW0Cig5a4B3CA6GEvzbm1kZeFB3BiMxQiBHvD-RxpGjtcnjPMrvH0SaM1-z9VCwFVrazAU2rkK3MypeICyAZdcLMjcxvVIKyWXwFAOrXdIPY55gcOS6lpm-gxwplZBGpyYktSc_WKMly1kMwMoMOLSxWf1NVfPlgGL5YIPzQo5-WcsN-XNWTKjXiNR0gbzGb1QXftg8rODrDGLqZsboYHzyFm1RDLDKG-qsA5tZhWiY594-jYCPEIgaP6Ss1aPpqMqeXHh5xgthH9UCi1pfEr-YV4cs5RmH9kIOceFK66--PHR6eySF7QYErUoJ1UwwHt8vHVuBnvDZbm3adundxUv1OLJaF7tvP557FiGJd9bvd1F23siFOhBJM4BzqCvAw4AYfIb_KVGVthCxVwwgh19Uqd-pQCr59rvKkwty0gIQgg01ORZeEvaNiFwJ2f19kk0Tuep8nXKYxQ_G3ovjOw-FQgnE2qNKUU7hKSJNfALcaB1ckGNNjwDE9s9WegNiu-STIjtS-93RMBTxFs7BXDE3u86BEfyXnxS1y3-f4Z7lD1PdkKVUDotw3AHNSzJOq1XIn0VRs2u-X9nuyzNNZE9vLVemm8BVK3FUXxxghj2GInZ3X1xXkgJZ-87bfKnLJInN_VoiupgMM0YUH6G8nhAQ1IaALhu9yfGMdAtLSzjA2bQP-Qv60MerOrzpug-z4fMCMz2aMv_RcbeRRKYS3QROY0jyejSWKLg8RLxwjMUGqAlcAxTzMXI76u9BqQ-qbhpm4sN1lQnrWmPr3sDpDIw6O4FO7qEEfKZ25d4VnKlT8oEVIJMparS6Cb9t2zOWnjTbRRbifv36EeRWPQ-aCFBrz3PaMcuwd_uy6WVdiZkRdlN5zs9aATxOyfegnNWKB7x0IDqFshN6VCiSmYH4HtNMfzLHX6T9rh-8RVOBg7aXnIC7bBTgrwq6DUykOpH9a039qn_hGqDzwu3xY8XjFmW1fNig2ktDWd9R9tFv4-bhhDPAtA-AoR_8_gJLiCGUQcHz3rmDNGgvq9SjQJzo3Q1X4g_NQM7cCia12drREY1tBBh8eYhADKBAh0r_-5sa0uwNiHMOKwRMznjoEU9D0k9bZkNFoK9atU5h9Mv5zcgFcirt12I2DBR78ERA_wAUfhsPuUblnT1KucrENvrqKy6ozc81IXc8plghePekB8mHkdqsSnE5o9IcQ92E1e72EZStCmhwG7FiCZnkNBwdUHQVJy5lTWgYSZ2o2bQ_kzjbKhq2bRa7wyESRRYClKPwA74FTN79O4REXEEdViD0Uu2e43Vchi5fDiOqB1mdlefvdHVsu8K3-SoVleASRRmpDJ9ASwOFDs8EkOq-CSI_Sie54Ty3u_spd6SulIR9sgBW0RM-PqG21cPBUTpQ31s_L31nysNCFqTzpCDVjE_WGD-GyLiEIB-JOrLwUS16uBKBOCTTFJU0t44rPTCPN5iLSBs-XC5PfzXPg4DPar1Vx-NHXMKFC3OB4SSusDRJNQXje1PImZAJ0d35lS-wJe8sq5emKGmLQ5g2dVoKElXeNNPBGKEIr6SDL83tJWF02m7JOv6E4Q1eKqFVeOBsNxZSwW701o8Ng3loHs7IHR6u7Bv-LBZLHBYDre5jzxBpVmCBHYk-oXEpzZhqRXgbehh604CxTDC99ZadfwSPdW3zgZOibedhFdlJ_YmnVqXRMvZUBFTS9lzzwXdrSnmW0Ww-gjXqsEBnrYFXmEOtUFwzZEL_ZCMvn1VII_Fab2dtHWadngBd_66T8YIDFlSO2kBBW5WfSbE8eTHw8A-DX2WZdbUk-Mfbvgq3AZIeeS9MPJE_vo74fOQzIA7VmjRV4k26Detk9Q_2B6T3kZu8Jcvq_eKoMqkVZy__GNLQqxAQHpyQvZVQtWnf1QCeKEzkktPpisJoWIqbHCfUT8o1mbYTTX44sfBl4HyRynbzT0mK1ffUY1hm3FEX5rkkqV_SJFXVtdV11hfzqSsiDYStu08wiu8bH-K78kJMLwjEJOF1smICgDke-D5Z9JbBY3pqYVowrK7pS7IhznHSZDgkEkz7bCY_CdfncfxOrTeH_ChOrA7lMQiqKL7xQUl-4ZSOBbx7pLe-ckOJcRuw1BVuGMrx12hd5oDJSWSAomaa3uo-alFlBnolaEAYFM78FSc3w3G0wj7LdJV99FTqANS_iCrqoIPR1goKu48F8DoS7asLBdl9kfe3OnaEiYWVk-TQjqpQkPP1V-jys1O2U57Plv56jES2zDx68Y3uIE76_foKeBr7FClaskjh-q434cCf2KT0x-LijdBxNHn-Nssj7DBbziT1N1UYG-2Ank2j_f4nB0orcC4WQ1iOcp2iQ8nOZBR8FhksRkcmOXHMv4MpnTNrwzjpRCkYbVv05nSpnthcnjD9xl_zjUyY12city72gmau05F1Xfiq-UQiCQM-UROcZ9zffSiZbIHquKwExSqf2rIaDnQjjTJI-B-JcPw3Vcjej3RlaREPt3WederEPbJeTTJXlg-uypPRhsE5ZxluficrSTygkyw0CWI4npgI5jJZE97z7GN18NNtVolSSOHpanSTkPXjunbXklB3JS0eY6c1HcV_d_L7ACf0Tdb8vtcawnguvdG3U5d92tiCTCPnSs7-bqgqAWTdk9d3nbNo4hWmwJzoSl_f_3FtY9GhKFvOiX-W0FTrQ0cNFmwywJe9V208FV8MzRnCeYzFuc43u9KqB741HckLtp9B8CNlfBvZUEZurTFLdcuWrstv5KgrSWFTKhnpoY8HNNRw1mvwkgLlyBXJnoMMy4lzQqCQYcKYFjeFcdMO1F5h73D_gWer6o_PtcbUqjzmIXu4GCOJtivblKBG0LcvJqWwwrH93sVBZQ9bE_wFqsvnDDibJJDGgMTgCjgkoPm5Tzgkxb-C4TSbb37xASZ1R0sgQQTjg7E21Cl30XWwPj2Uke8TkvabdsqYmNyTbJDI3RuClnE-yhaek9O_IKE4DfeJkvpczSdHGGqMQBDJySN7ChPty3MPGTyv9m6u2MHv5vS2vvH8vUK-a2e6V_5O8OFMuEOAA2DzIDPUwYcJOBb4fTAv5N3AacNaRMwWWDNlPNHwW_vn8pk_8yzatSN-joZht2Q3K9CAKqTuwABjQlmg-La6NqKU4Kfz5UKacWpAaelBArkVieIGq_Gm3W4nwmRPZ7AjTumz7dDeLDjcNM3BKf4DNpROfpPuwfGWge9_xNCaZyMvRu_fSzvjx6MHMQnUkIIA7-fybGghGp-ivvuHg3GACWnFJ-upV-A451fYyWHo1jR5xyRUguQ-7xDtJlrMOBu69w5DLUtwi2Vln7BpXkfgNPrSs7F9m4SMoScVI8AwocjdiJLbPBbnL8gKo9YehlnMZYauC0BwnmoVeUFJS1QvUmjempxVf2_60xsPCofg7l_WupCuBvukr8PCmWjOAJI2y99Z3vHXKLQcJ88KEB8Mz4Rb4Nl4NZkAfn4Rtj_-g-QV4d27T4yrFH6DgqOiNqM_pmKRo8SCMGdNEzSDmDEY8banyMREE53aYvhaItPmCmPFezgFEXVgpzwW5Gjwbd1L8mZ1Yzy10Iah0cjLG0xnBmCi2U4GC8A6kM0dQ7ENrwpDWkKlVt0qSXIK0Ydc0Z-XU3ruXVKQDOPXSByyEN90roUg6XmvVBpKbuRgoxm06VkRHK-rgOuFCiSxD4s8Aa93HKSPEB1xAwL5eCoNmsH4iRDzoc8PPt3PtwxZYhzNIS2K9JVhlPpnOTf0sIZhAymQGJOyzOyS5ZSlRATCiJYIjbDGV59lHfVAXp2mgtbZkmrkn6HbXoly3fUCc_iUjT7fG_f8QV7ZA4enXLoS__bR3-nB4gmUP-UYBotM2c62Aih6fsUgs9q4R01Y-nT4VH2zFRtiEpYmm0_0grhcKQWFrCylUYzBN2ZTwxJLwocpa0oIK1oddHzRrVdo0-6x-jBurbqz29gwtV37HC0rJFtuuh0mCAgGZri-y3PBh00fQQnjNJZR84OxQLtMGTyoT1_sGZNoqxjMeGrlixdoTFaZFc8bx32_S0w_iZ30mdFqJagTS233B5tjplLvitgXtOrQNGEAEwf8nx6JEMHWZ8uEpVS0ro_mDJuJ6tRk5g14bZ3o6sHYfgyI6Otz5T_sm_SPg2wmA3n6ZCURm-_z75qoiUCHoPxlwNEkzY1b_USAMtHDQr3z_KOwqdv9bCJ8zflksnekS1pO0H-xelGNOH1KL_9tBY_k13WRSNmTKnxf03-NctHNyQgjPsujY0qtCVA0Tb-Hfx8-CE44g-PicJvzhSaj04qL9RfhSZR1fNVtNCzKCVTbkRkgOxjA3zGZ6vFoCyVQcpWtcD7cRsE2RWdKlzAMgfhfh3aHmHDI7JdzLR02ZNufXCl0WJPNUjCBYAgaC4pBmgcGG9TDXU-ZRUdXseHSqIv_dfszwvpgbt_-vKLHIgYoEeKsPMgYcQg17l2TVz8QtqIhG0cp7LZ2jAnU_N5zxYJaeUpWmHvUjrvnFrJiUxG_vSy7xAm8YosfidibCFhV9VDYHDwYGxpjQt6feBudpfW3M2QwhGglCI9ZBQU05JkQ1z8w1ImNNakI3deRztaa-CtMN0J_0KWpjGzmCjfI9-VMGheLAOooLlq1p9M8XMgnM937gdf7msZuAKJlCTA2UaeQJ8ERMfkVSspIan9zv7rWSD2l3TR83EokmqD9Q6Y2IrJil1l8UlwwaDDiUGOEEc6u7nd4BMMffxrfUZq3SoVgZ1Cx480jFodlRHJLQsJpqE5JBCkVFsaxpuCK0eAOdgt_vSPWAaecqK7QMmUmOwWlxPS4Ue5Zpos-f9U9kWjP6ihrg35qTaDctJ0iTjG3ec6O4aRAFn_emtP5gOlsFahYhLL3AojgDU1RaR1lhaoc0RRNCOIm8D7f5PlGWeEottO_5wdRxNiBitofoOptR9OCABPb-xxrhYZ7KzTPRsmBHhdppXhqBzOD4Di9gDfaktF23scNWpiytvzxhT8V0gfrmqoOBHE4YcymiNje1vu3YDNuxrm2y7AQm0WxeNxhbHvDesyuHq0lXxy0Jvs5mmVdSAIcb9TedDIP3nRbfrZffRvvhGtyxiMUzGGDrg3sP4ACLygLMnpei5k5ubf1Y7Ma1OD005xW8iuXnEcrTWGyxDvh7JMk0uLKRNw4iUFc05D_JAp7NX7kwTGj_VsS5MeaLm3jv1Yn07R_9wlx0J3iAFq7KmJBMJjMBtCtPkPVRSxgVmXsdcszs1bcw2CIXRM7Qkxksj3QGyTFviSJQmNroDybBuDK9qYIcRhUg3dle2evuEMlGl3r9JhgChs0G9MllWJMUlS2JA8_f7_fW_2oq0bX3xxN7g0qsTSLUOU1iP4O9TGD11oU2GorHOi7VZmB4XMLSUHbto3fVCEwXBGEGqMaQ1GsYmREXPUWHKQhfwIpOPqRXW7kzRZPDbtG0vm9y_IloNv7ZCMUzXbZAGCwAPrG13ePLt-cQu9sxL3vJn33gsL_Gfccw3kXARTBWR2LXIbWvjwNqZdIDUqqe_u_TP_n7QG-XyANc1Q8ozSs7HJSSehO-X85qbN3JKy9XgTMcwWi07IGIuS2xyp6LnIx3bRbxqWJ8bI30DIuh-zhPJ0Qu8Z-rDCOJPDSn-RGauVjAvAP8f935q0hZvquCuXIxV7PuqXj30w5SbO8HzRNGSck_rzDSiJ4pn4fsLoFwaEXrgEzQvkYO1Hjavt02M9sko4Fo5kSAoSGimXIspL9NTKfSUYlI91RxdOe43WBtGbKH14lyHyGfxNdOUDy94coSuPbpXGVro0sq1WoX7kDAvZiJJ7SRvh6Jqgo89mMDlotHYF0vNU3KBwZxXGA5ombGiFZEjolHKZ-UV1WtrXGhgliZceiHbVBzJ12ZUR_XG2t6Gqf_AAFruHz5ygLstCzHc4DiRUvaMUfGUTAgz9UwzBDGEOQ5bA5vw18SBOgz-3WNckoH-0fasIgXuWB4SJNYDYTI8a3wORtC0aeP8EJ_tuQGjm0IZyuoBXlNrdvI6lPB9mMw-2vTJ7Xy3IzOv44Vz0GB6DG3KYSIaqmJ93G0gt3rT3JoH1rsf8nDoIJqe2dLVV1KIEDNzcyOggR7CbYkQR5EX2Mvajo2yFoce-82WuKtrZL8PqYWr5j6u7-hQ1HefgVr1Ue22WlOCg7mpxOsPB6NnmIFE7rjIdaxK_QsaROaiW8a5J6hov4jqsB4t3796zGDRZ2zDX_ngsXiPsZxwxKX06x0iLO2rRcv8Utq0fqFbjBaZjo8cbI7kb8KP3JEVvVD2oI6nm-TgruKxRRoQVVVofKaQcn5U3GIuMfhbUCpjLXgb1diw6xQieK7L1v3Vhb8Gc0x6oF4_udi3ldF0xUgyefPNFDFYObNLUPxQSaLbV64VzOIHqF4qxXRjNEt21b4gZp32Nmu_6b6w9UaUVP14zZPUe3NSgGs6H0Hq2tudeBoJYjxRt1Iz--14uIYEkbNScRM6Z_Cn-yLsZsyf44an6fHnGW6-wTwv5bAAXa1F2NSNuOZCgo2XsyzqQcgMU2ILbEX3O_WtV_52bZlUvtxrcuH59izTe3nTy32AQf3hUVq8Y_y1FClXKT-0nDSTTce4EG9q-2ZdCzknF10Z6iWnlCHul0tdoo6pFuLbqC7z64vUBpTgmmkbmnwPkWM-kWEEkTSzzQpSFVH0X8FQyHEriGGxZqexKFpGdSELNv1hyvOA9yCfirleXFszMelpb55xUGvSTdC4EfgcRPWF71SMvwv0ohfQO8N5mvgMYtZNsgx6r5_98maYfLY62twsuZC4MIzYbBFvxboqkXT1LIHxgpxQv-qOpIYpj_RkpmRcr6p297JLgz8Bzpka_G_OAHHkpJf0x0oJLDMqLSOSonacPbT4xza-O0o609mHChiUHZVFu5x7i5-brUsZT3p_O26lY_oscxQOO51jE7exdM-E2tA4HG7VLLJ-9y-NFpajt5ztnFgoaeTIh2HHarjvJTvQekq3lm8a1rf5Fr7DiIcAQgRByfy1xXdHkgMxzIAmchLThDeK9btJdbHA6DmJXiiYQAs4N1vqYksOIqEI3pUvt3nwhoCfyAAPJSDlppkSK-aw0zJHwPHEZcvoenfMOdxFIqP2Ew4Lhwr2rT7RS8K4ZbpSeoHTY4blfNUFu0WxXIIZRTRLEZpnNxied7d06D9ViK_aKmon2xtQzz1qwi9rV690_7MHTiODGJMJPKrxhh-XP4SP7pM5mgv4RYRX0P9lwn4qtLGFbpmcUHG-0AvmcKWVArnUUbaOzfDMfxhYYexzKPgT3io_8PJWw5jNTx3HfsnDWRlWoGEnRvohQSNpaQvwi-fz52DrxC2URe3uWpORx9rtOSLlDuivRWa7vZPcmQ3Eozg_6rSYm8pPUoJn57C0m0htJaI-OLDp6Zddrr7NyL_eOHzf2rCSRDzm2rCzfsdEuFPt-nJfdhpWpXdry4eNQ6IcmAKCQFKgfeF9UmM4oHxQuA6xm1G3AzgEUdot8u7BWVUo4eFB_eG7_LYjAlXlCaJhLoHpApWVtLClkat3GfrUw2wQxZVZzvbDlTKpE0ZNTPoLZShul9yZjqKKgOWfNRW9G2AQXCAT8ZbnrjrDARGUH2MYqEJwe687tS7UCywr9dvEJ2A2q1YZFyJkmdwh7cFIlzd3GAPIe4XznfvnqSvYTZIJGECXx4iGi1f23-4wOnIqMYHJaqb8DiFO3V8HdfvdlMY5DRd-_ZNo4MX8Q6MvRI9kBgiYwnGUFpM1H3SRVj-3YaU0J999KSR9aMeHCcvXVe5Bc0-Pr-NQQ0v-IXExAN-38EZaBUNCDZMSeEURm2kOaT8uJ62-ac-6151UuGDyyR46LquvuL0RKvPPtGUVMqEAUI8KRjKzTb1hPXTfRejp6XmRzGvnswcpKro7H4_bSgIERdmT6Yu20NmHP553O1TovOjXwGiqbZWJ3Frp5caguv6t4QZfJfvq_anyFlZWn0utE_pmcI8tqYSvr8zo_Q0NY-iKzC5gW78bpHAAWl5TyheIZO59D2YdBDB4MVP4EfqujiqKiH6qTng5_H3gXKwADl3fXIyHjVgTiRGU8V6oPP_rEx6WSlYkxHxBiF7nVOu5P6cPLExHcBX8ncQ6rwSKW19s0oFSZJ2nCev3QPuSqP6bCVDx5DgV765LEj89V74qgyDyig-XO7p27-rAEn8DGwpFgyEbi_GI3bU9V_nQqryF-FSM1FQaZuJRRJsEw--qxFmOgN3QYtOzA-p7UwS7F-57KCWm74qcwAIJOpBnxWSclKBhpVU6v5SDA95SOeQl8GKDbMv0CVKhciymd0RlcemKIm8dwmtjqslR9Fd_nAV3ccQc5FhfkYRDcOjMUGtptOxbzg6eqU4ISGcogOpEuE-TfFZ5dAh809y51jvMb510qtCOSCv9_IVP3eh15Povq5vYUdjq6zCaYCXEGeZwbOswDvABRLLJNqEPMt-7Ns0yjIGdU7k5L-_teNNb5PCHbUSIp3svxDmjICZ3oC694Glx-ATk3mlJO27uQPFGOAGWHzzjWp0bpRSiKbW7gMYw7SlkYQZzIMPXc-XVtjtdebZtmT7C69LAxNenlIc3IeavaNKTkcDCGXdolPmXp1sDEMuEnko20mqPW4t4rVaCJWyoduoWKefX5cGUUKhoHIsdUp49yyu3S77PRomNM5h8Tk9kWXioCwV9_EVZfoO_IkVrjKzJZLDZr2ImpWVmzbQqyXbWN0fBhS90ybu8gfZLlCNtrseTotuXI05pnWWXjgsfWiJZNqn-DVSk7QZbZo5Pxgv_3c4lxVOaoca_Gkesromd7bXMmWEOjmzR33UlJE3TvWjdNm136DGmSR4ZjD_h56msU7wBDO2V4wsKQzRMaHVe9IsQ-VRSjgGCygtixQ1gEOxi6N7Rc-tqY9Za86iMfVKFTnScgEiKtml-IJfKWX-pVpk9IsNxJbcq25uHxWiHrSPyucFyIHw_Ti2SDQuGOC7aTJcFpCOVVESriMy-8aYWsc_DL1zZI1He1NvpXGc0QTOyyCBxYFHwWhaSM9Cb8-RBjR-jKKT39KEdg4Ltst7rxDC2nNqJ3Nrc8xuepzOydvUaBgh-iznYfHHshpGi6-MfVAkviFTvVhpjjNHoEZiY0DTAkVB2gcnBzOs0CPbdbjvSga3XdHHzfv8_edi3DZRnwmbtnZuLUHc6maksVc45A-xrRTL7GYbUgrXKnam50cFnI_D5qBlXYuP3iPhGZrt3XpM3ooETT_J31AW-9pjkso2UMerht35nNJnJ9oHIOUwcvrHWYEMfJPxnyT5jGml4ECQ-NkDAXv_IKD_8FHEdqhKi3wtFZqSZo96MH8bbUvPTJqR-F7Uyqh0gmh4hmI4mF7VM_ixGCkTnxw19cgpwmPS4mmNJSWQrZcmrF4z_WwQrF6s1-0BRhoKn_Ya_b27UPujuKrvAuJCJ9kijdQXpM3Fne07qZdjpY-abYliFA-QpMp0Dmw9tUdGSDV0F0LBCVVM-prJ-Q19unYWNMcM0ueL76UxcInU_PRhmBtDox3Bq0SwFhVTiGopC1ApoUOkWa0EavFTnve1Oh7vCdIr6buW2XBsuNvHN4ft7v8cvW5R22XslLi0E_tBnWpt-zhNNh4J3OLSEbSDVdmTRSQVuXWSZkq7bCopY9lvZNBhYzSHd0dVWvoRDiLd1FMHx-S0QPUAZ9Vlc6fDXhC-hFj07Hz4Rm3WGYVr6kNhZHNpWWubMpVx_vEkTvxv7Iv7ac7g_yhRfc9RVTD_MPn_MTQHqw_crQb5Ug7buPnLLYSYn0JanP7hpPMMfnybuFxUoGypZJMs2mtQB9BmwoBh7iZlj_swTEbI9D2ajuc-IxkvJmYW16J6erYY_doW-I5xCurCQ-N06VTRdL6m8JhGuMVIfXRvwC7YCvUAvFMq3B5Rn8QmeK2mBF3jRa3Iv8LpYga1B9IJXJA_Sow1GGSDb8d_AVEmhqCpWkiameZ2KA9hqcTYBJLfR_CkrHi_EAni6eMQcChs2Pok88oj-tMGAVV08puG-VeL-DsMTx_8oEXrqr8VPdzw2nhNpGXswm-nE4CJxVzNOrMBYew3c0mJQhRP8_fcl78nlbq5TzhvfQkCUG2GnshAJHNUB6wH7y7bWm2fcFi9qHwwf5hcxfYukeCVS8zZqWkzP_bWJwN6ZSnOLyci4lBxYE-c9iZD1WwkSCHOax-YpSESvlXZrMyG5_E2189kLUulVYzNJ6PlNH8uFR4lECGLkoK5A8D1b_fl6ZgLBMrF6_DnmSvOtFRgJKFIOYMc0Lq48DVATa2DuwyQtA0RQI3rt2Tu1DLH6hKJX2M46iAcOeauQcV3HCSGrPARVIW2qSKe0bhBb7MXwoS4Jh5_AEK6rQ0NOEOLfgaavoseNuGYBaqnMGiib_60IWmFaKe5Ce1Ssv8grAukZGT-kfa65a232_eVrGJ0QVjFYMHRL7b0J0rs5ZXNgLrYdvkN4xZvhccNFelpJ-gghB69xm2Psb2DVboq0OlkXgzH0gKcj-oTreSn6xZs0uAKRDibpj7OiYcqhU5hPp7CZyUG7K_i7kEzqtDVr3tfgMflb_Z-cmDg45NKkZd4nEf98TrZPof1saR4QLvT6pvkxl3IF7I-v1cvPaXORRXYx2ONfhXW3rDejWILWJR6MeonSWgXd5_0FIWwK6f2-LWh8MK0Zl9sT5xclkEbZ58MMLVpiUrDzntzlMcHOSOINyl6GqOMCywNw38LBkjsvwL4QeNveFpYqPpkTVfoad41cPbQvxaxl7_NyUtu2qb5yyYTtssy98kxIj1r1SOCooN61RoAlzCL5H2Qjwmjo5bApQvjSXLNMS6Y6LugXrvJfI6FRYBeGBUhL6WoNPejgFM4Aq_r07jF4rTgXb1RlYtS7FSNgmKZYrBvTkmdvuMqe5NF0Vwy3lmJwQNhdz5FFuqPPIsVxNRCeY9L_UCKbcFIIBiEHooiOWsjE7uqh0dHmykVTK3mTtCikymhflGg4qgdvhmIic2S-XPErZyhdhl9WS-8RwiBqj6xv4cX0Vk8K-wBakjNi0qxKynewXJqwEwpa71Zuj1je5-iBiBeHTF2a9MYtR_gwoFmzJAXeLfwPE6wrFDTMpUWJv3nGwf34lOXMyhpcAlE1PbBLZO-g1d0ya6EkKcCchXwi9x98baderhq5qt2RwVeaXDcSwus51VetZLU1_9hlq5qQaLKtINC9u7wnYPm5vpAxw7BjgGZXQZTEFhdP8inAwRKG1I6oVSDgOI0wReX_LWDhUCUq5ZRbyogjsXtJW2BcZ6S8i55vunhSkTXeSxmJUb6sMpg03idZNB5SL1vyApCFyDUfJYIhzHgwRVwYtrhPHnN9GLDK5UHNUNeGQ9IbTSb95Epxl5wx-BZaoF0ms7qnbu4F1jyM0mcOep_I85oiF6_DAJdPS26gw5x6UhQNbbJHvpHT8qZTCIddlV6gOlVZY3LS5mx1V1GW5x4OYcuCFkmJpUggqcucZb8qsXl-m2IXADin-xRskbNoIGa1Erj1Mkyafh9vpLKsqW1hiiFLsNu-845ErEEBX9a6uOpF82Bsx94YXiBqqhSJz7FhPxff-Tx1OInsZ1Qzf_ZVXp98r9jWXOSoZPnRBckhoMgoRA0sWLLuYZk3OSMDIFDidWf7igGXCFlDZy4y7tOF0SyMaLtGaC_rQ2I8_ZgFB0TuzHCMa9pTgefeYYzCzgww4UMMr4iZz1k-qUEZO7ftiUVVi68vr6bkbU8XokV4oFR1dmMJcMGH1ptwyOAVLwVmlhCoHcK5qu2eAHlRDh-2-_--QtNkiXZybBSmtX4M6DyoUTHW49Ams0_wQ0Dos_BZg6YZluX9_I9eouzSnpOZ2vsRfwDeu56r2ggF6tQwbrYaQhB8-4Qikw3UXbGLZo6iUq7oGRjAQO3HMDC0IiHf3Z0dOwSOLvXbEuMwK6_tafALPgJhCrhPrU2LH277n3ikGsnobKPeWza4DsDVjeeJuIfsHSJUb-6SzqUiJafQxFJUh9YhCcLpW8Ll2d59LxZ8Ao7gPA9T6J_Xa215VOM_4B40rmOXeKwuT9v1NRYfB40TwaEKav6dg0Grq-YDZaHVzr_9qjfKxooJwqGFLnbsO2YF5wRZreLnCXKgD6Gb1HYyXnt2MxYiEDHJrJOqZGU8xdgQiTvaV7iZgXGDr52XgJlqRTk9fUN68wJFi6H8ycYlWaSRHNB6b7TNc940u0p8nvtqSLa9POydCiF8ztp7urFMlGEAl-XHY7hRFGvznwu9oHLTYrVbJj6tN1JvmHkdAiz8qbS3Gud8tqXFDpJEN9xOKCDYi-MEqWXIoGZ6NQtNi5WenDNmkaZZbBwI9XRGCWlh2NZ9Bc_KRvGreTBC0wWk5W4pHwCmqV4GuU-5B3q42vxUe1UawYgESt11ywKw8EjqfoQXexVISVGg5yEmDuN41E2rkpgJYNTeXpAH3jniVcGr5bt-sPKT9FDvDdl2ZoNQ4Wqf-PAO87uENogGQ79eqyun9yMi0O-9BTO29AeAd1u0QRuq1CIV7yszWMpqUut-tTKxR6OLoT6w0F7ASuovMdZOHm_OYN3n4EPS_yk8-5bykjz6_E-i-zrkXe5P-iZ0TtchSgtBAtZEXe3OfBPXTIoTRdMP4Qqy_wpbN-KgR9KRVEtXTnis6gVYcQuRQMUwR5p1-kmh2GIbAVpC3FcOqJ8flZb7Q3pGKCbyYi9zdGaRntbeCxA5Bc1EWIdMDOIqTIO9v-TRcIZt6UyWEECImjv0VoOJYCPBBO_4wP-Dvf7sfVqhahu9IQeTJP1uFULWrY_w75LaEvbr8PXVGxzdydjSK_AJqniMySAb6be-K1wbKhfV24TTGdCbKNvRM9_S9v1QVCPu_CAvxnCnnYSUxY9Y5js-srZlZuEgvMc40KTpe4h-192rQrwcfLaJy5Je4AmeMXCD-oRHVlxtpIZjS3BB3rf_MN14UU8RwA-49oP3JZsGYIoUKqjxPDiu0qLu1oUdX0Rrg1C_ojmLfZn1LBDpqpPUY5Eas41JnQP9DNCiVscpVHfo-CmV9kSGMP6oM9bS0033PkZWXuPTltLiWywKJKpxR3Tk5sDXm5FBTDCKRQQE6HnyR_sjmjKhd7BLl6kO8YzwwLrFRxRg2asK0_UKV8P9jrqg-HA7F3x8qi3879BCAr8S0H6a6mWpC0p7T-thdRc1LI6z5gcNNwdx8eg1vbOjir7WnM0U_bef7ltdz9u3EY7BYfJCqs_FVRBdJ1QM6ilNsTffyWZgoN1fvALHM7x2jZrRq_GbdEJdw4gpzYLsknDYURIj4Js4J3NsCTJZtrL9LwbqfXBQjmlHr0i8O_vq5k8tJ38uVylo-rFiSpgM_7kMVYwustIr1Z9XY-NACaUUBHMu1zblWK27BmhRgig180qzK2sVtZOp2qZArIddkoA4QQhbLuTw09JQwKXgMUQ6ih0gZLiTNXB_2bsmog-UrjLUw4IYUykmhXnk-yjZj8deeUKF7Fz4zSccrWhiozGS9JbTdTLgUNZBhKiUSqPGM4wjmp8Bq2nbaBtK-UTc3p88PuVBlX4Nd_uHp40ziZGbl8h028FGFEeQqr06BcMBY-E0OYWhOOpSxx183MAJrrMZlRSSOvOewv6i3HmWxpWYgpD-CRUESh8-ljEvAHCOMvJOo_aUeTzkQaNUx43Rzdv88F3lRJYUlf1yDlSJAh7gA02Yr6Z0i4QXKukWLtgF2oxcW098izHH7b4mqHaDw--qfziW08xRBVdqWnEXt9oF3fXP-bkgIrD1zbBgce_8FnNnIurncVH62M5WEoZFGUV-ECAeapwR49e0iZyamqwnpwrzCcGA2ssXO1F3byidJcFQUkfwUTmu_8M0vyu97wgmmXhxr33Panl0q9w2HdUfNC02t_yox1_e8cKJg-4qrfRuWwmjW53SkoShVzQ9fTRGbYTP0jZ2oIU6SSyndW2Z85sTlmVIlQ8ZOUUC0NYAxasyeKEkFI8Lh_7HGTzLwFlxpi7MrtvpZkRODr_Np3HYUQ9kqvWzcAkzlg9YEaq1tVnmDT3F8bX60xBB_jDSzvvYbMpjtiai7ti51nMvJaUBnn1efrBiMkJQ5AqufQTWLqzTjemVCq_q6cYQn7Ei5aTARXI2-xjOo7cGBWduWRX2abC0hKBIsZsp537diBj20YEoVXcYK4KnI7x7oIaiaVY4MsbxaXGJyUQbKZw1m4_U5IKlCy_pNIYNVh9EnUIUTT4Ike8Q0zjToROqs6pj8sRYw_d6kGNGhmxeWlxTH0Ttqfx_qwp5srKT8RxiMCfSKHgdvLhlemmAlHT6AIgdFURouIscJXfoctyHWUKgvTx-bz3ettWiCmebT5CiI4_oRsS5Volu1ULrIpz_UN5ABbJdzrH4nLlL91Pl_7--RDhanqq7qwvh4JjuvLFtl5ZlGO9s-Z6iYSOlB2DKf5jbD1ZvbN_-wU76DSE86MuvffvJqBdsgf-PLQzNE0rH3Y-gHmbHBKgwwQj9K6mOzWSHs-ZaFU0fe0FKlYH9bDqxzdczJGxW41_k8_yXygnaCzd5gC9-jwqhlutt5Tf1FlB7-I5d3zmJn3vPVa56C4JJK3VpbOo4umxKHS9HaMwS8q1P-XRpMN5w1-CG9BqDnphNfoaNzTeqCVO3jqGBbSXknzZJutBUO8wAUzgFW7yjwYqyBZKj_oyaNN6e6JCrOGvnlEx8OwSRCDXGHz6NrgZH9EiNUvjU1lJPbKLMmUoyeWGVV8voHIWCI5taiq5l-ufiC0mjOIgX794AvNiLxXw1JM6hqLt7LSEVHZwWb83Np-BvAB8nChSt0QrF3ACyj7D6AEuTDU6nooGjcmVZgcuiYBn6vsh7f1JSIZ_b4xGEtjB438BdKt3RI6FjNurxIEM-QsFMryO7WHCBnv5FMBp45Iaw55GvDfT5-Q3PAscXXjO_RTYiurzjxD9a5tO5gIOCQYHCkzJffzSuA1ezqdeHlMatdBoy0bTwEAc3x0lGm6BQ2K7jgygOXKCZica3fdzvzdO_XKZxXjHH4FybbDNwhJZ839OnEOV9NiGzw4xeyI1B0_F2c1Z_eQuV3stxtaWqCV0J4A7kO-DIBs-xMkHbW6rErKu22X_dqhGqUvoeZ4q1Y9TOze6ef4qVFzh7_X3vf7QC5uzAk68owLMYLFGq95j4jHxWxlkCG_JS2ZBZBQC-N9PRNJ0C49tVxI_v_KGq2fN7bL8asNgjBFvSoRuQXscYg05lD2ivesTC5lQIWGHk4OE0izb2NDG5i5Q-X639c4wpqzCaD49x58GY-8xrF2RtrPrYtpjVf38BOlReA5TV-C4cxo30m5-f2Ms6GFp6IqDFGCdyUItg2RRwSkIX2DEySSNqd6EIHofZ-iaj8RroEFwDg6SmWIGFBDPXcWS4IciQC5kVEbe5k-KsCERmGslaI9pL6OH3oBHJY5OwP2g1vSM8CS03g21aIpfOZtoC1kxau24k7uDUQPkMmx1PQBNJlIaIuubprj1ioQqm9_ix3De8iirPYFxYyVxOPjX8Tkpb86or1dueva6GI36e-e0HMQZ3rNQOEt7fLnZjn2AVxSXq5yX5_r-Y-vXeemtAd6gXRb59_a9MLiLefavChCeofzHoci3m175meAIgLebnTy_BDU5ZgLaDztejl-f1fdRwJ_WazIieKpbYQE78wR-X5tkeJOrcjYL6bWK6ifrYf9rSOo9WR3N7lzJnCma5voMP2hS18OSzyOt5psay4DTb4aCsU7_lFMlUnizfKxS6FMdk1R5_R6sUYHHzi02q-2VtsA4gY1woOb78Rj9vV7-wN-3Rw02W88h8dUudYqsjNozVvOH9_G_CIA_9hn-YvchNdvi9ou7G08yKF6JnzJhuOFheNmbec5hheMJ9eRwI3mSd8EQD6Bt_jjv7WDWM0bHWPq2_FyNj860C6qNiOxkIhT432oBNfL9Uf6eUpSvpuzH9RIkKOLHRoG8YM9VKSVKgSaYOeSHOIyy1_DeWebPFcq-Ncm_QQ2EIH-XoIi7zZUxKU91CqWnvxgHNdcPZLbC_hfpolXzR93xXNEE90HO5sirlvju7myCGECe1t_FXvts57MWgpaQmViZfu29Ht6ErZ9pXnAZrV6oU8Y2tTo658uFL80cN_mjJEtnvZ5MxqxJsc1LN9kk6VXGSPBt7UneBBTbyUUMxa2z-Y4hrWNaT1ShLWsfkNAkbkE5V5k44phJamIABwhrva6RUXsBGW0AGN7Bmm_V47zO7uJHtHADBbnVtMxOyTARRPfZsJCXRpp-H6NN8I_FMCeGbA5JidiLDfPWdhTF2cAns9VZ6754t5Bvag-7Tu1bQDZ4omT0DgB0SZTVNoC6sMkI55wANkqt3JYkBzFbdl5aIrqMK_e0J6UjsHMeESlGUWPMQHu2-8ziNuIoQ3iZfnhK9VL3TBg47AloSDAi9xtliFWppjmQAxVpy39erG2zXueWLFFclL7mXDLYlL_0qBV9tlnVez5lDAJ9AUxRwPWSpxniDQ6qa2ZdNr6xajbsU6RfI-VFoaXa0HiVE3VOWLHqQ-wsBN91KbBJp74e4FXlpQ01YXu5UcNe5eNNPuXruDxTkaRsLlqMF2UPKroQX_5BgOiooU_qE1MbxtIrqBqbZbCe9OcxuYYgUxfr0FVefmz2zVysPpJZkHuuUSYmUg61PeoRKLMWQ7tkaQRiey0TpWe1iQ7pL0Ym6Me97EiI3ubB1HtmVmVJ1Qj8IbFm7IdMCFhT5M9TKtCtJgOw0w_cYma02mrVPnQSetKPCg_PM_GEHVDipVId1cpITELywoio3Cx_fzWjB4QiZZqNcrNZ-IVRrH05E6lfYWKchzc-St_AtYuBeQT7KT5Yh1JfCG3x1IedYg_-dm-5uhthzCX4u-ODXJAtjFIRDrt3NPo-28TcI1wN6ItgJ-CWfGCl25skJMYcnElrFH0t0K7eroV-bB9nX9v1b29OWocG8FGH9ulnqiSE6szf5lIUA9InIXoOxWr__W3PepTXGqefOU59gSYQ_5t5z-qjBGbfkicn7a37RLoAS2bEZIHxFfsY9-FX5e9RZxbMHq4zxCjz92b2CFF2YAOUyk7oUOTOxehT1N8ukdierOim_Libpo3sJf3KdLvmjIRn4Rfgo4vH-UaJIo-BVa3A6mJgb7BV-Mha2FpogGOwG64cSpX0lUxuRVAPn-6ayFhu-suBwgtLcjfTfP40zpqfIdhdlotuDnBiChDa0Q1Z_xmOnbVh48G51KyJ-hwSQhXRNVDzZURwGNimpIv1PpYJRuOCumKwxs7IpAM-aYKhOmERo5PHGNpaeVCQEYd1BJLYGc1YtbppG_YFbLOnzt5QwfIZf7kaLx_diY8oDo7BsEq7CcnKb7U2bpTPu2ZqTji3e_u2LuAMaMQVGcaEdlhGR59PzQcexueTUx1yrPF0Aqt7LZ-B6Yv3eJcBk4Hg8jhdCXFX4u-HKNNkuvuLVBRTmWhpAckgoJl8IHAhTjqSfqRSt8uXPp_-jE3RbdvODCMMiZuRlxPiYepIDwVhT1hyBjRzvmy3WzsEwIGQG6HPnfP7J2odMr-aRGY7VxmEzjj8i3uQTl_n1-pozNKbYEaTY-j4xUxwGoKsJlyjG5tOWapeL4Qva1RYOqXrelrw1Obqor6Dvn20RbJNjOqFqeD6mlZInGnTPxFcfIH9wnxs2-CstPdHw9IB1rpD2C7eo3X906xOJBZUN3rre3dIunI2uAjvFYIUIXbAwptB3V2nbdugx64b1inPr2ntZbzVAtteEjwjeus1--UqFV5Koju9FlT9NmM6-q29KjiGhwzId5_8pBUttXb3uowNKDb0et4pYfBNOkNEXsu4nTu2ZMNFgpr_xOr_syH5cxahktysDf5PhTYVuF757xqjtdVpwbiQjitTBzkaYayDXm2XyFORv859d6jY1t3MlFLaTW88xEPlkxxqpL8AMjSYnsX299oNErJLAMI7RfkwOeC7Jjrd3LdrhpIjX4T4I_-MCxzVB6G5IlY4HXrHkrsXsTZqYp0_SXuIVZb6VmwTRndSR7YYMqyDn8pQk4xNmk8ZSaBjakSwKOpK68H1z0l25CDyCDa0bphz8GQAEXjcXRw5mhseLkO_Kdwafn5d3FjTx7-jxFD0nOOcibCa3CYOgif5owOcLs9Nm984ydSI9UZnp7INUPJqkGlGX7lD5sF5cdYgPaK9Z_SEnJiCbylzq1g105QPW_kEQp6pB2pzjG08hBu4KHo8nHZ9SoD38DEZVZCd8pvwi_3ijMtmZ26jX3oXOuURy7z4dOrRmi9V-LFTxfPZo15KVna7erGo3SlgoFuYkRx7dAP5MQs5fN3mcM145TQk55an-0LcEdLM2hMG8T9oZ1rOh4iXN-W0siHhOt_dfx11T5xsBwzfjgzvd-7Pzd4lAgX5aE0Wj4X_atgG06VxADt8clq1ogBJ_8Vg84V87hWKHmL_Gc-XG0Fc9HsmPsd15sm_JlIyDEHNIBYnlrTR0eS1eHsOqazwpJ1LTA0M0Htq1OcaWrhe3e5MTMtJrvmAZ5ZEjTiZjdZFIMr7nCVofiOk5RxtE7lsNK60TPkQb3ZIvk4YFE4VdGobteanpqF-Z3ZVsqZD23cKC6oJm11JM01kssQx1mCSKjsG_4GSEUqtFYXRrdKv_eFsErb7IFdl8DwKUJYtHbyWUoGo2uqdy1fToYv7CpCxciiQfxFOeHiuOGg7vAL7bS8cz56A8ocWGQsCSTJE_dO_cGXCuyU2IjwGzM3-rdNc2I1zKJzuWyy6mI1GP1KUXqPrVIliyIyVXmFt8irVWtxF7Bv3-qhL2Mvf5CcZvPgH1m7D7AMaNmMMV79UbkJ9_rBraEO1CjWUb2nrpe2Kso0kWpqmwYn0Trg92ct2GTRjAK__EgR9aun2NgDfvhL_AdanJzBCcoD3dvFFJTJONZiWS9JRCqocGiabIgOgbo6oHdkPFzWHoCbmcycEdfMacd1RxI03dB_25OfLsCAiYsGdO8BCInvthI4YILjy52hNkhQYPaGEXlIEVN1STmQzDqZIDgzpu9zL_5ihBxO0KdqKbjklTWF_hbCcUzy-ud4yrC-BUexKKV0rzIDUZ31vahgTEYRzywclCU3PZNYlcE9APvi7rNT0Ng_3qxUjN6GDcjPlAuHmkeGWoZlirvKoNgoRXCYMrqXj0YgiVZ0R9ftJARU-_Vpolo_QxXQ_8cvesWRGzEHjdWU9LZef_-JsYlKj91GmUv91ogtGoYK-RRIiB52v45fEX58R--gZplWHZbr5eaHf43NLw4W1jwJeteYq3M82HfTtpmVk96oOf0-F3FCYwZTguDmV1cv0VZqLIuz70jd006YW4ESrFZtlCw-ZfocmGaJ9zg8SLv32JqPNHCgA9poDtdNThN7Ud2AD1-EXVZD4VrVX83G8a-uBkWFjmrbgA8ANJVnnNDj6eS5kow6K8ZSeZ73PNMr1CksHMJd7xuGTm07iff_eCAVOac5z-4MZqBHylDoqYiD7g6nb8Zx4cjERF6JUld7erIjW0r_9o8wAg3adtP0s2CWmrttjcjVHeBwDmuWGytfrY_nSLeByZmTDfOCQGVKyAsBQy12gx9GmV2che7AdMpqxi7gOe8eDyB26Dh-9I7YeLFm3kK2P-jyaOpVxzVyL50WHsU2akXzbsX_UBJwMnX95bfM3zjQfbe5pK7gpxFe2PKgelwOemUTxJ4hen_oi1RrYi56ORZAbisGIdsI-YScNk6x1jIb0v5-pFlB2HKNAho_yIeC_NHVc-pyTcwI7QWM8fWilxalhDeOmFCeJ0ccYhluyprHjCQQfYRJpOteAzgUNY3-81e4xZk_9Oo_7zNSSYSkVoZDlUSP6uX4Px1Zzgizy31p9cUImN03mC30Nwjw5ztzQtAQ4_9m9ywKJ-IPZQxExBPm1zPjdRTp-utWrY_VfN5L3UkAoMbQD8_XzfUq3P2AnKQ8EckrdT6UNqLW24ONSjvHuW4eupmnog6FxGfBnk3HM68HpDf_yyRgq3nIe4pzFlnCsDTtvEjqJaoNIR4RjjR-gUI_28zxReyEH9zOhOJALqZAPCVwCCSRS74zL2Wiw-TwQWCWjRsaR5WgYX55pXwQwHNsdm_MuK-mvxvPjEifyHBIv6Regb0IdTojBYwU51Xruv1wVQajbkjXRYZOPHuSI6CMJwCYgALN39Fc5C4Ds8pte6_ehBCn9g6aQHcq_tEwfqo-xYFXvbBbVBRQ9gMnE0XgTM4KHKRX6H0XUKFYvSCYJMcknq643pfxrIPGowNX_2ulhiJItnJBj8Id7YBzAyJwGpcKX13uS5guLX6mNdNF18xD1VpaUZj-raxQ73Z-Ze95Emw836cw8dzgPnz7P_b-1UdVUL42UrOMvRaqEMy5RDA57XcRp7COYwH5petPieLoVovkD45J5DmtdW1wsCLltFsCCDnvwtpBexPvIgXrBPhxkvkpvOKuJ2AXgryWqW42BipygschKLMQVEYAhKVQc8Rctxpb1daII-flt6A0IYRQHhJD7nZdRPif9ik0t9sFSOFG37XRjkTxR2NoIb3wsE21e3EXyPAKyTbJ9fm2QPsv-R4gzqsXOKK9TvUH6NKN0fnOoQ_DJN8rAc8t05GzW7ghlJnCTesJ0X3w8bayZ-X2WJXn3C83lTN-sdpfUQks0sj8lRoijMyBhdQph9xF_d2FDoMUD6WrIaklOLROX4nJ_8rJG31xEXLBH8z0I3x9XKpSYA97s7UnN63jJUjlwahUbqP5UIVOEp81rFzrzv6LeEu1Fi58fmiRlopqpdI50EOg3_o1xOCXDvT0wf85cesjkFMLkPJWCJkWJ9B1xfFBPM6H2eThRcYZZOerNVdfQsSKbcEMen8eFmfOT0z0vWXsyuUTVMZT6Un6s5uYtYydrMb5TEILh9fmKEyNtku4bQAj8ae312CAayW0_jVKgJIAu2nD_l0-gZR29fmmHOe2RrF43zbOxUSA_IfmaM295D_DhldR7RSnXQqimSFJG38pXMEeJelLfz5-rkDa-DsQI-qGnusHMJNeOFFv23gIfyGjxs8BrB6aFhZM2FoNF3kDGEAXu_NuOHx5z6pXA5016BoldB5WTACzANpVUx3tJSjkK5t7PklWl3ZA4UQLjONvG-7jSzU16IrxtiGMdiM3-nz_YCzTdJ-lL0TcjajF1Er8172KuaLobTqhEFVRmetbVe6QMochpEn4QJU2HarQ11xvEYren4FDbrecLYA95BChisjvQ2mMVq6jBDau60zXY-uvpkzhxzBfJn8WRolzP1JV2q_SLFtYSTG3WG1DdjcCZT6EW2yQesUZEbGhAWFid9ZkJnadXDscDKnaC_0c1qhW4hbXYL5eLe7u4_fzmRq0i3-QWpJp2ztXMRX2gqs9mpJd7ihymUCdr5n30QPzsNLq4HAlHAoFoQqumgnm-uX_leSXcDTxt1TcjSoeRpsU2kYKAuA1ebdOhjHPYQUcbjGerq7K17IH1Oz4BsGdllrdgscKILxuo5Ej6VegxXt9IJRgN6lxx85wQtWrJluUryvP3Qs-FlZj9fc5xpKsPjDLiGmbI-i4KcwKMzmMa-fieTroIXjiuXNPFdiouOMLearvPv7Zfid5MeyDUNOSmMoftczpIju09V7DbNSvpRMK7Cbo9iE61JgZ-rAA1T2Q9VzSK1Xo2zYx7pNZiBY-MqiWTlFMo4xBpbdkArf7WojqjKpYlIwKgtp8sG7CsPP0y43FH1Yxgtm-_G_rVanOqux2TYeZwnyxxamVkwcvcyyVdd2mUv5Z5ly-U7igF_mQrT-rjaxEsfO1X4WuhLbcWLllemvyvjxY4yV7fJqmhMkP5WNIBpga7osqokUd8qFkpE4L2jWEix5A_qekdnVVxkTq_2q9jZ-u7Um6BaxDNb-lwmWyRnATe9zSNmZPhEcEHIHcJE4g1_1C2EchZGeeNOr3TBsFNZ44-nTTgP8uwBxjQ2eaJGAmXkEiGsVssqfZlVTxqUE-CgFAhI4IEXuhReh1yFfi76sFr9t_pptfwgvnowO-VB_q1Uol8deiCg_K4EuW0JMOvAY-Rpfu786jrh7-vnGryH5Q1S9bSV-KCN9asDpv8Qg_Vff-wYi1JsCsuGlg_7mr4EP8UZ65c0am3O61-rCc4eXxYyJrpg-tJFSOLo3ACcjzv82RckNZ01YysXHF3y22Mr3GaNhqAaVz2NCrud4Y_SRBxnX77dw99TBFdjuJYIqM7FQSqv17p2_J7ocYzscgztLv-9mtUK2duKgh6p6z0_DDJugqWWsue5h9TJQ59FO8e8FqhkrepEgUegm5R8Ck2HHjTD3xJ75xjjF4xpHT-QTMe9sECkdPK0-7HVM-pUUDNgNuPGJ7VXDZt0kbrf0aeAxzoXytx-6Hl4Z-91EzDKT-TWBvAE1XvZA6mie9e0k-sBzy2g-N7cematjVTKVw6LS-e2EFH42ZX4iho58bhEW_J8x5QVmsmUgBfzQgmMYazcugNPf38ix34WDCOlGWubGAkcRQS5sEsY7oewCDkHDs2w6b-NvpqdaHkJr8pBso2-27EhWx163hxvOeaPfrTGlC9-5nYSL1H9ibrAEcq4bbCWhcpU4j0-T-2NsZrQgXbxDS6HHEjC4OfisdOtXMh7zxQx1R_VLSwDLjozfeoCyozx1mj2BnibUVaQF-PHGsEC90Yb220GrJztOEr1jeMthOQW-Ij6co6dUi2lnpAje-VAIxvOZMCk8Ih9AbARaWtnHJwgstNpI79eVQmEiSpgCVG9HlgONE4M8t6tZv_QWRbQiUvHTMSW9oP0thGBghUmdXkkI0Xo1IlCcj2kj0-MdodQnHqEHiONQ67c-xdryl514Zlr7eqRM7w4Bn-a7y_ejauEa57Gw1kk1uQZr-EtgBrlXcYNgGiaUq6kjId5gHD7djVbmq-1Kg08uErLxZP6qiAVIS19ScG5lmE1XRrDwwcKJ6fhwsgi7AmxeMeyDsIRLluINe7rQdyf5Ee_Nj2_CgJDVCau8g7qaGwo5I6jqFiPOutwnlB48J7mR0cppW9PPIUQmKh906fEM7vjaJVfcIUsZkLgofEbBo7tXva4QdQcouGs0tK78cNf2nLjnAUOlyA-ER2eLtdlXR3GIAcZ9vjUnTQq2lBrQbiwPkKLBYbanA8eJNhGZLog3j6RxwTDdr7McCDC3QUbIF7rr-CepJJwBf73jlt279dMhomhEjJBVeAnottCVqBZdtqT8dGNCibp_pTPslH6dBa8_NrSVjMK-dxRDmD8wTvNJL437KznWAwEfRLd885pb6aKzH5F1xEnD2eDXZXghdSSJ8Zgv37q8AXzfZ9WVbblqwaq7wLkqCbynYThcNgpaL-qJM1LIYqg7BtiTQHP1_9R2bEnW6Xx2AuKTqWvgpUbUHn7jD1efZ_j3Ce5GZkkNnn3bQ27OxgL9TOH3hlNUAxmXEHeTv6yH6MKjbOnEApsWLipVHc95B-E5vx_F9_FMnJV6LQaUiflkusTMQK99dAC_A37T4N8bMyXSEjHWq1P8nxd59NDcenKJPuF71XC6uxJIOttlbDMA-u_idA7Ih5pZhSglkQM8VgDEQBvc3I8o-N7fU1YlppnKo-QpXQarG6i0285MoF5NBBTa01k5rTOnXvOlKPt2I9R12TqxcJvHY0dw5zLv-bmbJcdD_y-X24t_0Y1L3m3Rx3kqHcLaPwqhAc16PqNktLFQ2Tfh7f0i_paehJ7JGktpdGkfRk4dYe5zjeDqSXFRcKzCWr2_dPEFJvKldJ39KL0ry3iKKh30XF2Ujd5Fn2Kg4M1km5L_dozo4aqgiclcdj3okb_a_NepGWHqPekvXP9mnOO-HVGdXm0wKIuJMQQRaA2f9TUw6DslAnp2BxIovBerbK2A8gaapDeSiaIDNb6R-rW3Qdx0Tr9uGW9QpDPh4in8OGKYBEOPJ11JUHlDnOUa7EglLgbaPKjfETuY3Y3a5Cf5bFcrus9NjUBSzAVUA8u0zQ3Bn1bQkuEIWvXPj-aiQ0kKy_GOzpZvwCY0ZmdMo2yF9prpnVd3frl5avpwxLzKYHAbNUqb7W-ZiX0WAZOrZCw9Z4KExozlsa2gzzlbRV9c91XJ86I5QgT0Hfh39UyLULXlbGgSlzlWQtOi724CkFXZ_zX5fCSjfvYeE1E-_GtRID0pvdVe03RzafVQtyEflEV25YveE9nrS0WC6l4MyybjIhV0C7ucsxcq1ngwXhO68IlTVGiV1JScjQ4pw0iEZRbOteFuPEOB_Fs5d6eh5JH8GAX3hF4SRv9sQ_EhKpocCee29sgjgJ9cEfDivGujh2qAUXNP-Ic3kc7Im4l77o_fppR0NT6utkLr6P-Ukj614L9OFjCZ1Cin9TGTmqWaRXo3l1_-fuj0EWVpznnc4zZ_SYF1woww6U04MM5rK3mwD-WfESj6ZPY2fAJVaAYQbbZBfmC52L6rDgHBUXHKppFrmX5Vm6RIC0N-9fg9rk-2W1QRVPoChAWy9X4lOtWV4LphI1Cs9CW1DiMT0dpSHfig214uMDZDDQXNCv2zuC_NQ776pcyB58mNpxqY9BYQYNewo3C7E5lZv2kfceoEBNqGRiGq4YWv--GvlNrGLtMjT2K8fcMwPQro9_PBb8mGN70vmim-I5D4FyOFuWUtZ9jJ67kn6Ol6x8dCERutbwpy7pW8eLK7EyVnfuZyDVygtAbHjZOfFxiiICt_EPx8zdIsaaWAywC4s5WV9LjVyVNNA7qFxU2gYbisGcpkxdvxoPhutP-tqbczRbM3fGfBprFxM0Q5lUE5CT94qu72nXdVN08FTL_9DyA884e55ZbOvgN7sMhxfPjDJ8vuGJQ8vGUl1G5InH-fZycHPYvoSUe7eYtrssgpISnkMyZuO-usdP_vD9BlRk9gvbTx-nk2Z1Q6C-xvRwVnbu2K76Xmei4vG_xXLjo5pqew-66oaa6QeqM8uqktmkW9-Z3-azaQR3BL3S4aP0a6DjP1H6267Uoumi9ksKMh-VTRIYCGWpEgZ2PKrQeEPs4S86xp4kTxfhVPPGOFGbGLSTwp4ZGd4oCy2UpJK0Zv8Og2Hgg2HQ6jKd1SKR_GaLYpCObnYXeBGknGCyQbCx-NqvHXBwcZ3GQSSOLdWV2JtYQXLakZsn8SKnZuAYRyrKbCBLP81ACKhwMpXwmdABCuvRk1ihllH6tOMWqPlPOpTLLte20ejNVh7cvruMAh68yQ4uVua93ldY6v6ms54v_PE0yVBJmZEODAfZnzP5ITo53TyTGjGcPqGgXwpktOpe48BCMGPV9H81GYABoIRTf_JbG6CG-ELJ_dSUYI_bJ7EPizIABt4eHsZqxs2JDP-Ye8rb50pYANlaOvWk4vRYBM8edbGwC68uZln1Ap1ZKCf6Tuul00X0uxuR_mHXJMifZnTJHbHPBWWs_E3bXHgjBD8YEiA4XQMRrlyYIx5s8Q2sTdsCJshbK8B1CRWj7Pbm2UGkThhw4A-iy5M9Ls9RNvYbSOJMco61PVwfddDhEALBQj8TR5mQW3EhkvkIUJ3jym7dGvDXib7IfPOAite0kvPShrE1RN7I2Jxht1Hva5F8axTOZiBkQ-mcBZErdnwT1I7huImT2WsZPc4DMSHWD-BKh18t_e3zukHwGniyRCt4yJ3T3UpXopexkpQKqR9IcSBRGNANxikWeWUAR64l61jVPRgArj6B8ID1Jp60eIVzljOcg6FI8SwUNVpb5uq-XmKwlEV8F3av_kkIbXsmDufgYQEEyZs0_yS5DbsAsyTTtwSAoTJ8_PXBDu_TfCcWSEtVKCmGQV3jnAyPso6EG_-hSkHuIybYpItQ3YnSMpefSUw49nk7stEfgKiFHtyfWnDVvmc-pTKW4D3A043z8XoaXATMRiGGPc6dm4XpAjyGWKLeSOVkvISTJwpuSCF-MwZ5aNi2MqEKs0ehFtvyaM6U8pRuDTwf000elzaPTvVPN5Hm6RgjpuV6b6aiTJtNy_cSHLaBBRnKaZFzuY9MRTpISrs13jFWmGZBWUxNkT77e3lqcSxQ_bsJzS4rgkWv7fE3tcOzaD7nce33IL9y0hn5DSbMxhknGZEsbtHYX11mU8sU2jt5eBiYsp3RilL5OycHY0rltwboZD7l1ETUZsKtKUCq67p5pAeZGQItL8Rvu2ET8HsCvg1Yn3-jvvaQRnTwfQiPmqsdh1z_wxJofI04RtiBNT7mo-NNr8he2gbFDaP29i-a0X9_FF6uvH3gHBLlH_zx1q1frtWcPS29ZYSk2ubnXuIcZ-5CwodF0ahAdkfenHPQbPsV0jy7WVj612zmsx5V36KixVRTyCIoQ8GpWXh7zEOwy1sj5MbUjMBiFhJTsa2g-l7JVlL-hTEcpEFIvAVjkavia30VY4I7W394Q8U7mxxPjf6suyNkC7fUy34lzckMVaQsh1zShgB1FFikX18PhS65WQ_3W3ovIqEag0uxEOqnKjmNuB5ZL9rmU4UdWM-zDG-WgfYSXjggcmXu-0R6A9XV6IdqD852ICaSzR7IbVzICZKbXn2fVG93ClJ4GCk2HGraa-9e1JhHznz2yG4WKxVjrvD59-XEHXHCOrx7jqIPhpLHmv92SR8jQdHss_ZuBXgHnsbAubGbl3Ok_Xv61eiafjK3ihSI9VxKl_T0Y3KzptcLJlUouWN4SgOeMrN5cEl6-2VAKw29Xp-WvWAsdWDKguJciznvRL1kLLvWh7aJSG9zcNZ4KLGgXZsNBoNv9iUaAeOLowLEAnOt4ueeYGYDXc_ICFwa9pYoh9QT7iu2r-5A2zUUqkhxDYDdYW0qLrpcBW7S4AW1za4qat3yEdbeHlt4hGyvg3FulW4e5OY6qICQgdkx6dG17-lFuIFnIu3xkshMB5EWL-LMWOqbnoy10e84z9lq6jx3GC3EFIhS8WlkyirqfLU0VoXpc1AdM-Exjyrz2T0m4rrCGBcw2r37ChOQYN164aLLrZGFtk7nZ2fUnIlyXAPCGsDXENdTyEk1pYpPwh-FXgJxxbayyrLIpUjEtSzrLV7K5S0PRCrd4GgpeLPtW4Jn7Xdn4Thl3Y_b1VxSKzKKfZ6y62ZAv7tdt0WKRwuqy8jEEgB87eNq5rwGgsGkptW8q-DGtYdRsqFPdag71pglDvDOwWcFYAnESoKIipWUzhMubVPZYOPxxm6-83EBqvqM3FWI6W-12jHY4mHTGkPXVx853Qpc42RpqG1ApX1wFE12R1go40xtKD7dH5yZrzJFCD1bf8jziUsJ2ywvTiv25o9WlQOiUt7J37mBOfXCK-e2-DRXeoYVVyjLVMm_d0aj4AddEcf6s3XpIyshDss5gLAWQ_Xu_mic0XyOQd-zqL92BsNUdUCZkUGYiggrLxhblbH3D4i9io03z7aAwoMPWM8FQrm8CoXKeVyvr6dCcUFIjwFWuokHHyzV1vY5UulAWytLC2ZPK7c8yy5dryqeFVtKr_Hlh7x41MQBWCeZVP7I-fqmPSx32alA6fxk0Kakpz0-rH5K3pM0Q7FMpBA0YRvEoM82cNjpCZuYYmQn6vt_v38xQK6hWeWarvPmq9XUBCB6BbzhA6DMAZZ2RWmgg6pdCE8GrydnSTRo3pGvvaTZs8iZYoIuQDgaH7kn992J8iRfflU0AJPP6zlkTdob_s64W4IhYrQ0X0TmquEfOzHRjAg-kDCyhiHzkIcKJeRte2qB8yfl3xfciooSQv_LEM5BKZ48XeEV3Y1-khND0GOEJiO5SPRquhYO9MDaAxaCt4HBZg09cRNNFuzrV6ZG2MHbRsccgiAOBJBafbDMZ0hQYXQ0BKFGwukJwwujxAYqvNXJDiO47LlnSdGAodTQ3Ta1-e0NLt1IM1X5SA5Ap3nJfT0QVDICmvvYuAXVM_O8CRs1rbIbnf08y0v3yG7jf3n-ExjY0Z9tCccLPTGQQuUsQhTnb_Lh7_xLuh8gu1pXzMkaEI5wMDWKn-0UotJbuf5F02m5FmS1IqtIfy5sQSH90QQogGkyJdfF_wk4CBZKommUwFJfG4arxIL-36s366QsTSEkN2KQjvXjWSYwQ9LHWl8lkko0qbyo8Ef8aIJ20MdT6Say8a_fkZ_ROsrnjGCtZZp0teoosuzYyrks5j8O17ShCgJBwjf9Ifovqnwsfe3h-9Figmb4c5W8dqsREhOtPMRcg_81IXZx9xmxePlod6sih16WCWV3fNfkZPDWh9hHDuJAsv_rKUOErn-wil31U6lPhqBGR2G5afhbTmwhfY4fhriaGGtzIPkiF5XatjEel2TNRI0NL4_fOpCHerD5m8gExPsu-KBCh3JlDaV6pH2THS6fIS_aycpImO7pmDfWm_QkoUHVGJ01iPYy3FcOLP4GWyQIASqGUULmBg5xoZDcpKzbcfqQJ1FANrGhy-hxkF5nNNxDYVJq7-SUcwbBN--CYIG6GsSNTT1KQY33eEej8tNHAzqDCMLF951Ta8rDaAj4Q-ARte_c_OWnrbQzWAsBZsFFuctsshU3jQW3wsZR7_gQQNQ-jd_upNUBcO-bQjEqXhMzm-FjliKSGp17PO-weoLbnUZfkaI0YYgkhL3CYeMyeLlOfLbRRBFmCXxO6iJ316PSulG10M3NBAjsc7sffX31am6uTMRtcV95rKjScZq1V6dKh2eUcQlD8x_xoMp7qwrBpcf-zfPE2HlbUXY6EQrYOISqUzx0RUw3mtL0cyE2eu6LcXShLXM9ZHVB4m8n-9Cif4J1eeS-ZnKJB7_uNS_Jr6QNWgDecFe5zDueS3HJYFHGOrjAkx1blwAuPahqVCOOepvS1kakGJskNdEhdKMhKgydhnE0PA3_8Bsl6Vi9ok7lQguvBmyn-rzINRPRE070H-lNdTCYt_9OG00WOVa1YsIV4B6InUlwp7B2IwDZllZpg9mgtTTW6kBvwFrrAP0tx7VYLoS3RZrRefeDxTMXynmu-tCYn8Cve982oL9CYV7zxW7qxuMzUA-tWfo3KOk-K8w3K0V4t7WeUOLCkDhvQfQdYVfLLBKrlT5fqhEmQKzAueuRjfCpELzVrRiJzawpzOWNoWhS4AaQ-X-kUzGleiu9qEJc9TXiYzLlmqPHVO5PmFqn6_VnPl583q7AFzUD_77LbBsCFLXyNX-mBnjI9slAfgfkA3eWOP4MaZqgBwiwIjgqTgFaZGCl2V-fVG6_C8meNpnuCRqqlL08C1m6fvLyZgIBW_BrSiyoqAsv1T9WTq2e5jomw4FvYjSbAXJpFZ0Wn5Q9hoAJ8JrEIRq8YwLFJf7t-rQsoMmsVuqpZJsmbXrsWnMNGOIt9NTI35cu80vQGt0jF-KmI-ZOFEIZitR5G_Adbu-UIFDc4Maykh8TsHLFjIlv2Fnk1dU_3cl5Jz4oWidOPUtDAaiHtmAAotECaMsaT6q-hhgsYLGxhmDQQhJqlwCLxZdKEbx9v7V1-ZKzRjCXQ1eCd8Bfz2qQm7kfkIcrmXcqkB88TIdQantQPUESjAJL82BVGJs6d3QloOE6qr-0MNjHJXMaY11-oqcNtDs4x_RgJXUJgkMPMMqQXSPVEWt3byXQ8FniUe6KonyEP6J5673NLJARJF_Uxi8ifqETRIcI5zeXKKGB1Ft6YRHQ0fFsQTylhvsAclmHB-85EDvaAuWueN1zVfy6YaprXm3T7JoThQHeigYY6duiJJwC66WsY4im57poCBqgF5jNTlPp4FqRtB4gUrrEUn4SHfz_xre-1aFfcmX8bxY7Xkh6wn6NbteNcjX1-_whW1rvmv6DdVtCeNY9W6TElSI77rzhDa0u81aDZO7iEVWcMbqZdhLxJMuTIeh7p5xaZhBUAUDpyQ3ikUqr_mq_V8znT6fRsbYrFUjyBLnL57yWuH5LSu_rB51YOwLlb1GG6yQym75ejiQSdYBnN9fyOtZTteEaI9TnRlh2f0LQOQoIbqJpDrdXmqX5TvtU3Fj9ATNVWnKpCVBXAlhLUMn_SWmzn-JU0wrYQdtAspF3czoVUtwlbKjWbtCz-Odq4IneAnAA_xKosG3GZL1aLdCTOMIWwMdXjX6o8qLjwvTg2a8XCbj8gMSkTws7aOxGP9bmgzmv3LM9VkaqOAFF73UU_YlaUW6jarvBO6E4derULvYK3i-Y8AiJ4maZYXmMPz0TnIHg-MA3DRqvzKqFls1iFvTsKRFo9GdvomUo1QJ6_bgldg-OLB4in1I_FIbVufKhbSkJN9n7FRkeUJxTGYL730kFgOpkYShH_BZ2Tt-_nFfG-yFfUMS3oykmY01t1nuOJiXQJrhC8dYC0lD24y6bypp5-duWIeq6Nh5Tn7JOAmqMrJC8iQdkVkWlx1gJXfjN36eBQrTeeDl3bAMp9I9LNsbaYv1VnYO-LrLM7kpzb-Ilx6030Oj44X-nDxjB7UyfmzmarI77_p4UuE8GmeiJuIGwyx2VAbPWtVNoz0bKODNt-glH8NkuULc57eg_TOZ-PsCQp0Z7PO4g-xJZbGiCkvSO_9azCou0GQCTw6LJCNin9HV5OQK4z_42KRoTssd4se_ugYkT6mUx0D51vftFhYTRzfhwosljxMV-ls1A_8zP9W_dSgcwgneSYnGnN2BmnRs6hYXFUzxiixoVU5oGA3uVKKHijr5tRDJgM69r14WEgeNSH3ZbQ13bGTTgKnjfqhWlv9JLEv-aaU7lfHWV-x5RhiIUc-Y5E5HJs7UtwdH8dXMG3LfgzuSlJZXWT1LfTwek-BIg1SbNP1hGwA8N-ft9R83RPAd5JdaedB2ewPSbyiG-hD7gV1LsSBMA8-pWlg3A2XAJT2ujb5-WMlH71W4ScWPU1uHQ3CmDH9rR3EBp0qA84UMr6jEirIzkL_cLNAq7ilP5Uo95w6q2Vho_aFNeW0niz7chqlx19ABZ5ZmNlU3ZHKxWt7ApSfSQhTOcjZE7cw8XLy4JvI0-7pnP3J8MgVh3VfE5yHZi0TXmZPgDMG5A7kvF5AyV1by6TIs9MYrRqDpgYGvlQ4-dhGsI1TfixocTJmZ1quuTRJo8YUmaSFXY3Dn_iP4mM34xd5VOtpOdudjWANaDRQJusIP69eGAK1cCQu-M-j1IXIHCdNSmSfTFqFmqKQGhUSI2vbbo_T5xLSix-77nprQleuff1RYUKQVXNjgf7EoaVwGehcMc52lJH71wP4o8QpJfnqH2eaqgtu-Fbxb2tWQ-nfDx7wB_FmLO8qs6xsIy7KjXKjTTBcAffidvx0-2uFLkWFzZpmDd49XbpMlS-Mvu4v-IJU3K4Gt7jFBNaDAudFGCIo212Fx1tkEY-tc5-vAnNKUYAFISlYvqGnnRP8nhmXdEWuphndDeAItRAaTaX3ufUk-2hr9TcayTWJDCYSBcIUFMwZkTSNxtYBJc_bM-2CoCAhCLXXOHdMQgq5wTHFhXGcF85Gsb3Jp6t5uhVZpyPGbobLaVbt3qsYkfQf4RTbBuSmxLxoPWCkVeDw2bDiyUaO9xjXW2ex7d5h4gzJJly7fLRBukcejgTEJRQSCquF4d-CL3kC7PFm0-qTMNNaCaj0lkvEZTpFygW6-4wtmUXbaeT0OgJL9Q-3exo5nI9NLD7Tq8otnyC7D5XJ4-KMRNp3ue6yKsOq3AK8mCMMpLDe5hqyr5AZm0TiHEhokbz7UG6qTPMnanieMCWbe0GTymgIQWgXBeSKCnRNifqqi4_4P2IQnpXLO2P3cx_rWpXcHTm4dL_ob2yY3QKt-O5lWFBqoTrKao8IhbKnOn2DptSIahRAzXEnKoBYKz8mEWFL_t-Y8xJH8BvlRcMIbH1zL2mK445_qzQa8F7F7pvTrdxXR50Qr5ANQ0pnmDqgcgSwOwc5FUuyy2UOe2vZPQzDaNL0d17YkZCC3-wNjOTLitILAI2bKKqzuNfxDw6amsUSfGzjMU2sKZCUfUmsLUVSvcQKdiExkF7fZJJcQMX-6B6VoOP_uui2O3Ypcas12zdRK34Y0XK2mAz05CJXS01GrrS5VYlKozaivV4hthPSU3VlBGzltTFAQgNQrbGrEmPurRaPuozndzZAq2L5cwpiS-h-WAwfhL8vVynmA6d10euDdNDlve5rGBYc4nEGejNKhYfgZcf0bg5MZbDfsQXhXzm9vUFddP4LUy-z10fnSF6HnnnbkJskuLzXBQSnSaVhd2FAMf5OdjctEKO4_V0yoT9Sqsq1XnE3NyoweXexsZle1Jzo8WLemNVt7fe524lkuGrDCerel2iAe39U9xL8drU8x0zFbmL0A4Xu0QwnmNWykZRxbFMDzz9J7gb1Cdf9sHQR4-wF0n6wBdkNNXLjqmvPJVfCknQIkyPrw0PVC8WJ8A_nuYSu41RhI6gYtMpMz2sDtTUPL6PFpRvGJ3GTxt6-lFNGnBtZ--1J3NTYYemBzaHkzDTTbB_oBFu629B88Bob51W_JPrB1zcYLxdfK_j90PfwX43ZT-Fz4a9jahe2M0ptfoabl6Q24aa3dxuUd90XWKIMHWwVxBjrzdDMqqqHNb3pCUq3ehcVYxgOxNHQOTtUi1V_q9es30883X9q4WpE_BnmFhEDBDVuyasjQq8QBnND0EciFcu4s8eVR5ebYb6HYS02i6PSqQSkKjUaCXnSYvcajxKPVxT3Hj1hdkr51iQ8Qg2kxGTzT4GD0yjqAYWf11mVhg7XaoUqJHTPVFMK3DzEGDJbf-CzDCpm7cTvfKPou-p49-kYRw501e8s30OlqlZS4c_KzYScUjLAxBtqlE8eIFVO1n9JTVXlqJnCo8wIlDiQWRD4hsc15ZIFgRI39yJTPHRi9UynXbfJ0HfCVRVW5Q_YwFYCPYEMchHw8M9_ICo2McUhgLCggj7TC42BHnPpFtQAbMhLII0_fe8laOeB1sDXlE_gfDiv_hOFTfE_quTFAiTQTxI2DFzUsVYpTbRo65P4mPkKYZCJPyxShJc1yW6eTqsA_0RvmlWKph2NB4Kx-Qy7paoONDLqyzDp7y6gmFG1RYPdwvmQSPXsiyVOaUnRUKr4XFWR1H4bKmfqElUKrSeuklS2gLvWuBCX-QwW2njV6iWoEMxRmH-OPBNt_2k6SZVlord4yMKX4rJPUDy0kPugvStdwdwexIH_7EflhwWvqImoVl4TH___meBPUQBLkH7QdKNX5QvWxpbBkB3hz-w-KvNz3D-TD0WDjCASXy9acY8qTbP4_w2lKhJvBe95nCVWmzs0eD3TbFTL0GIdwYoYqQKT4bjqAZnppFMOSJ77B5-9XfZZ4TJHbS9D5W4K0yB9LodZJ7V0AQkGyMB9gcjxNL1GxvaXoG6W9IIw5jH9Qsyepodm4CDvd4BVCNfmv6PQ6_-VaKXHs5Wei66ABhGNhh3_khPkgxa37Du6vFPgB1dahrHnFBv5OZSUqgiOB7Gc6GpmVrGX4n8uK18iexePbMAw6T7s6kOK9I7ByJQnjq5ip9ss7DtJmHV3bql4bmeKjK0zysbDcwKWGneUZAlYXRptzFKe9ceO3P2kp8-40PP4lsZ7b_DiS-s9zbtmI7F_OhcmNVALy8cr2ZPvDftHFTqt0EfLKvDBu2XLADqo2JDcqieDgsOPjQN31Pqu4hocIewwJbidOhid3iff-G14iXnHQKntunD9ck-m2B3HZ78mgQOIARpLnnGSQzvrCgAfbPQJ-Rzo23A8Q6ErQOSZPYIlEjH-1CMzNAYnGkTP2H2ybDqS542dgk7_TFLfaqk-ywXNL9ahyOndavkuO4V7PKpHaDMqBLn5VRil73VIywFX3htZL_t__npiyNAwANdPmiivbMmdnBYAQ74kzI3Dq9FFkJLrzU5MQ1qJXLC0zfhQ6GjgZ-G9a_5b_aeNRoC3tX4Yh-lm0gwn2WxQuJ3rpkHH72M4oWQBvQ1Izi-4OnrAlDUiiv4urIXJbLK4AD6_ZYRhF3OxMsD3DfK5srN4czHbw4BtbE_o6vDDhaSvsaqK7daz1b2p7uWSSoIYg901NAZ_oJ1porPFrTjP8p4VKYAPeFJ0ke1rl3-nIuMi5P7uyQg9OWIpJRfeZXOkZ_Ye-hBtc-wcIQY6tV-KWSrxU6W33Gx5TP0amINHaSpzONLlqv1foA75mV7uz5b0hQfX6fhO9XXQpxuZna0drOx9d6Jyo5K0qIFkrBK2FlDEiqPc1Qr06QQv26TL8OU8tcQ8kFKaDkWLCaUBZEbjPnqcOKwWumImSgvVlso_PG4APKmMKqSA6f9X9bksbdUW4CFmuWVEj1fHXm9HG-OkjOx8XpbSKtAmX-vbpBnjXUQ1NnskiXJgvEi3-XiQ9_ozEEBjnFoXDSEjrtay-o9aWIRflf2p_QLckLrd5cLstaB7bfiZ-70Fd-WOECwciESOGXMVbF6BKUB6ia4ew1u9144W61zVaNQ1aCEmHXcjgnMMm3GyfVVlMR5H1bvfmf5ZWYxhGtgASnFoJHWvw17vRlJYAnjZ9zFwTQvnhUWYKpAoVDPnQcBW6EjhK-wI4IGVEBEaeswm5EEgpn2OeV9YzV1WNshpPGoHX8Gcja0HE3b7BuFNX-lnifVnP4vU5hNUK04oyHlpyjVR5aFR0tpF-O6YSNWVEKh9OWrua-jKAWmyuhVSIfBoWYYsRfNnVSG1gug5DujawU8wWrrW22XCmJDJdfCcZGeb4-cCfrf_ONdiWmCxvIdFNyewJgqoXtZH722aXjPc0ws2W04VkTGqO_Ong4f4qnoqcdXUJApE3ss5eyMjZHVD8LM3wBUOIcg8S2UVgXl6b3Zzcm161Fi5va0jH6UizbFi-3gUjNrWmP8jExJKvCLwjERw57nqppNlkx-aNV4FTcS6Xb8A3n-cX0RbJj-O4C5Rn6geYWkVbrZbYZlM4oSqKlcEz5rT0dlpaMAwVx9zrTV8AlZwjXi6tpYPXS7TqJOEentSbP-pTHjBYNduFgmLHWXU8ymecW4WJBjSN0hsw6HejFbFNnEwPxLB55pe1NunIhDsLC0GtOoBNv6RbbuiPGFhBCLWnqWb5HC_lYPNDeTj4P5oACf2nT734XbXNAsNEjxdou3h3LFQ2T2KKkZULOqOhdCtCUQJcKLFWahkFCw03Gr9k65NVvyYM33YxX0Kdvqqf2qgJWvHWiZllATYOJbUgirSnz26avg5-bFgdXDJB5-yfvzFyz5pqeP82npsanYfshqynLMbSccWfDZqblz-Ir7JG1JhN4wEX40nUWfmAn5RTOfkFYCiug9rRgAV30R0MQzk7EQ775PjDze5FlAHGwN1GCuMLZ1HOZtoFJMwirQOfahoP4x1NRPlc0SPOG0wnjDWoIMRYbXHrXWe9sjap9DhinpIpbAhvJSCLVz0Ga9VYmp_ERZQ5J7VxOSg415o0X0-1V78JNeazkYzs09iInHTEVffj_OFe3Crn5aNBVefO-dFmz1CeVN9nhqfuAAVSvROq5Rv5AAq49HIR811-mIBOCZH7ghxU3Y7p9FxJgeZ9gpQXOPnLZK-eLchIWbmeaX2rAWQOpXrvC8ifiCiJ1fSKSOk8CaqpQIIK3of80ZDQQwatdKOZfc6dIIT_OrAA-dYNi6xHKCX0gx7aK_FkChHqWothsU0-js1mRaLaZ6GjbOZ904tY1dhReb5ammbWMLkk4LUxKTik3qouDrnX9XBpf_hKpRh_q5olfDIOxNJO3KReCfaaJi56VkwyZWXgRvEX4DVHazoFZrVAHMVBFnNcAaMGRN2GzEJByXWheFucTNnwSTv6kxckqHVT9I_IsPNDYGSxkY3uKdouHI_DIZPmHU4-XrN0G1POcRSSSZGwWTnNhwDhE7k2P9zuHzYl0xtAge_R7fL76erk-X-RDE93V1O5WXhGqxfmB0vVjmKeZ83o41ZNhSL-M0Opqv8pIYjLhkRcw0X12hgZBWaeSgUeReTVvzq_NEgrmb1yLTJDvQDIUiVYOjiHSCIMAWcxWjPg6BzEp8hXfLGIe_K2vCYGxaoarJrlSMV7Fak0jYwptcExzFzD5vR-8FoX1hVsqxz__KlMIPfz4MOGMs4RvHNJwYdWjEh5T_kcrbUck9rpLMTHtCYvlRkE0MYOnqhA";if(!e)return null;if(Ut&&Ut.sealed===e)return Ut;let t=null;try{t=$r.parse(JSON.parse(vn(e,pm)))}catch{t=null}return Ut={sealed:e,bundle:t},Ut}function En(){let e=Si();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=Cr(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function gm(){let e=Si();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>X(t.slug))),e.keys):null}function Tn(e,t=!1){if(t||!e||e.length===0){let n=gm();return n?new Set(n):null}return new Set(e.map(n=>mm.test(n)?n:X(n)))}var vi=null;function Or(e){vi=e}async function hm(e,t){let n=await so();if(n.size>0)return dt(e,n.values(),t,n);let r=En();return r?r.selectFor(e,"free",t?[...t]:void 0):null}var ym=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,km=2048,bm=2048,_m=32*1024;function xm(e,t,n){let r=yn(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 ce(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
78
78
  `)?`
79
- `:"";return gn((s?r.slice(0,-1):r).split(`
79
+ `:"";return hn((s?r.slice(0,-1):r).split(`
80
80
  `)).join(`
81
- `)+s}async function Or(e,t,n,r={}){let s=Buffer.byteLength(t,"utf8"),{exitCode:o,yolo:i=!1,resolver:a,...l}=r,u=Ye(Qo(e.startsWith("bash-tool: ")?e.slice(11):e)),c=o!=null&&o!==0&&!(o===1&&pm.test(wr(u)??u)),f=qo(a??Si??dm),d=null;for(let P of ei(e))if(d=await f(P,n),d)break;!d&&s>=mm&&!_r.test(e)&&(d=await f(`bash-tool: ${e}`,n));let p=xr(e.startsWith("bash-tool: ")?e.slice(11):e),h=d?.slug==="git-log"&&p!=null&&/^git\s+log(?:\s|$)/.test(Ye(p)),y=o==null&&(h?/^(?:fatal|error):/im.test(ce(t)):Yo(t)),m=d?.transform==="smart-read"&&s<=2048&&(t.endsWith(`
81
+ `)+s}async function Ir(e,t,n,r={}){let s=Buffer.byteLength(t,"utf8"),{exitCode:o,yolo:i=!1,resolver:a,...l}=r,u=Xe(ei(e.startsWith("bash-tool: ")?e.slice(11):e)),c=o!=null&&o!==0&&!(o===1&&ym.test(Sr(u)??u)),f=Yo(a??vi??hm),d=null;for(let P of ti(e))if(d=await f(P,n),d)break;!d&&s>=km&&!xr.test(e)&&(d=await f(`bash-tool: ${e}`,n));let p=wr(e.startsWith("bash-tool: ")?e.slice(11):e),y=d?.slug==="git-log"&&p!=null&&/^git\s+log(?:\s|$)/.test(Xe(p)),h=o==null&&(y?/^(?:fatal|error):/im.test(ce(t)):Xo(t)),m=d?.transform==="smart-read"&&s<=2048&&(t.endsWith(`
82
82
  `)?t.slice(0,-1):t).split(`
83
- `).length<=60,b=s<=16384&&p!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(Ye(p)),w=d?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,A=d?.slug==="read-tool"&&s<hm;if(!i&&(w||A||b||m&&l.smartCode!==!0))return{output:t,filterId:d?.slug??null,rawBytes:s,filteredBytes:s,debugBypass:c||y,droppedTail:null};if(!i&&d&&!d.preserve_exact&&(c||y)&&pi.test(u)){let P=hi(t,l.verbosity??"normal"),ie=P===null?s:Buffer.byteLength(P,"utf8");if(P!==null&&ie<s)return{output:P,filterId:d.slug,rawBytes:s,filteredBytes:ie,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!d||(c||y)&&d.preserve_exact&&!i)return{output:t,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:c||y,...i?{droppedTail:null}:{}};let I=P=>{if(!i)return P.output!==t&&!P.droppedTail?{...P,droppedTail:t}:P;let ie=P.filteredBytes>s||s>0&&P.output.length===0?t:P.output,$t=!P.debugBypass&&!d?.preserve_exact?Er(ie,"minimal",P.filterId??""):ie,Is=Sr($t)===$t?$t:Sr(ie);return{...P,output:Is,filteredBytes:Buffer.byteLength(Is,"utf8"),droppedTail:null}};if(d.slug==="tsc"&&!c&&!y&&!li(e)){let P=ui(t);if(P!==null)return I({output:P,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(P,"utf8"),debugBypass:!1,droppedTail:null})}if(c||y){let P=i?hn(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?ym(t,d,l.verbosity):d.strip_ansi&&!d.preserve_exact?ce(t):t;!i&&d.transform&&d.transform_on_failure&&!d.preserve_exact&&(P=kr(d.transform,P.split(`
83
+ `).length<=60,b=s<=16384&&p!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(Xe(p)),w=d?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,A=d?.slug==="read-tool"&&s<_m;if(!i&&(w||A||b||m&&l.smartCode!==!0))return{output:t,filterId:d?.slug??null,rawBytes:s,filteredBytes:s,debugBypass:c||h,droppedTail:null};if(!i&&d&&!d.preserve_exact&&(c||h)&&mi.test(u)){let P=yi(t,l.verbosity??"normal"),ie=P===null?s:Buffer.byteLength(P,"utf8");if(P!==null&&ie<s)return{output:P,filterId:d.slug,rawBytes:s,filteredBytes:ie,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!d||(c||h)&&d.preserve_exact&&!i)return{output:t,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:c||h,...i?{droppedTail:null}:{}};let I=P=>{if(!i)return P.output!==t&&!P.droppedTail?{...P,droppedTail:t}:P;let ie=P.filteredBytes>s||s>0&&P.output.length===0?t:P.output,$t=!P.debugBypass&&!d?.preserve_exact?Tr(ie,"minimal",P.filterId??""):ie,Ns=vr($t)===$t?$t:vr(ie);return{...P,output:Ns,filteredBytes:Buffer.byteLength(Ns,"utf8"),droppedTail:null}};if(d.slug==="tsc"&&!c&&!h&&!ui(e)){let P=ci(t);if(P!==null)return I({output:P,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(P,"utf8"),debugBypass:!1,droppedTail:null})}if(c||h){let P=i?yn(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?xm(t,d,l.verbosity):d.strip_ansi&&!d.preserve_exact?ce(t):t;!i&&d.transform&&d.transform_on_failure&&!d.preserve_exact&&(P=br(d.transform,P.split(`
84
84
  `),e).join(`
85
- `)),!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(P=ai(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 ie=!i&&!d.preserve_exact&&s>=gm?_o(P.split(`
85
+ `)),!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(P=li(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 ie=!i&&!d.preserve_exact&&s>=bm?xo(P.split(`
86
86
  `)).join(`
87
- `):P,$t=ie.length<P.length;return I({output:ie,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(ie,"utf8"),debugBypass:!0,...$t?{droppedTail:t}:{}})}let L={...l,cmd:e,exitCode:o},{text:z,droppedTail:F}=br(t,d,i?{...L,verbosity:"minimal",...d.transform==="smart-read"?{smartCode:!0}:{}}:L),me=!i&&!d.preserve_exact?Er(z,l.verbosity,d.slug):z,Vn=d.on_empty&&me===d.on_empty&&!me.endsWith(`
87
+ `):P,$t=ie.length<P.length;return I({output:ie,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(ie,"utf8"),debugBypass:!0,...$t?{droppedTail:t}:{}})}let L={...l,cmd:e,exitCode:o},{text:z,droppedTail:F}=_r(t,d,i?{...L,verbosity:"minimal",...d.transform==="smart-read"?{smartCode:!0}:{}}:L),me=!i&&!d.preserve_exact?Tr(z,l.verbosity,d.slug):z,Kn=d.on_empty&&me===d.on_empty&&!me.endsWith(`
88
88
  `)?`${me}
89
- `:me,Os=Buffer.byteLength(Vn,"utf8"),au=Vn.trim().length===0&&t.trim().length>0&&(o!=null&&o!==0||yr(e));return t.trim().length>0&&(Os>=s||au)?I({output:t,filterId:d.slug,rawBytes:s,filteredBytes:s,debugBypass:!1,droppedTail:null}):I({output:Vn,filterId:d.slug,rawBytes:s,filteredBytes:Os,debugBypass:!1,droppedTail:F})}function mt(e=3e3){return new Promise(t=>{let n=[],r=process.stdin,s=!1,o=()=>{s||(s=!0,clearTimeout(a),r.off("data",i),r.pause(),r.unref?.(),t(Buffer.concat(n).toString("utf8")))},i=l=>{n.push(Buffer.isBuffer(l)?l:Buffer.from(l))},a=setTimeout(o,e);r.on("data",i).once("end",o).once("error",o),r.resume()})}function km(){let e=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(e)&&e>0?e:6048e5}function vi(e,t=Date.now()){let n=e.lastHeartbeatOkAt;return typeof n=="number"&&t-n>km()}import{readFile as bm,writeFile as JS,mkdir as GS,chmod as WS,rm as VS,rename as KS,readdir as qS}from"node:fs/promises";import{join as _m}from"node:path";var xm="settings-cache.json",Ei=Mt.parse({}),ev=Mt.partial().extend({filters:Mt.shape.filters.removeDefault().partial().optional()});async function gt(){let e=null;try{let t=JSON.parse(await bm(_m(R(),xm),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?Mt.parse({...Ei,...e}):Ei}var wm=[[/(\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]"]];function Bt(e){let t=e;for(let[n,r]of wm)t=t.replace(n,r);return t}var fe="[tkr: secret masked]",nv=[[/(-----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${fe}`],[/(?<![A-Za-z0-9_])(gh[pousr])_[A-Za-z0-9]{36,255}(?![A-Za-z0-9])/g,`$1_${fe}`],[/(?<![A-Za-z0-9_])github_pat_[A-Za-z0-9_]{22,255}/g,`github_pat_${fe}`],[/(?<![A-Za-z0-9_])npm_[A-Za-z0-9]{36}(?![A-Za-z0-9])/g,`npm_${fe}`],[/(?<![A-Z0-9])(AKIA|ASIA)[A-Z0-9]{16}(?![A-Z0-9])/g,`$1${fe}`],[/(?<![A-Za-z0-9])(xox[abpors]-)[A-Za-z0-9-]{10,}/g,`$1${fe}`],[/(?<![A-Za-z0-9])((?:sk|rk)_live_)[A-Za-z0-9]{16,}/g,`$1${fe}`],[/(?<![A-Za-z0-9_-])(sk-(?:ant-|proj-))[A-Za-z0-9_-]{20,}/g,`$1${fe}`],[/(authorization["']?\s*[:=]\s*["']?bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,`$1${fe}`],[/(?<![A-Za-z0-9+.-])([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^\s:/@]*:)[^\s@/]+(@[^\s@/]+)/g,`$1${fe}$2`]];import{join as Nr}from"node:path";import{appendFileSync as Ri,chmodSync as Em,existsSync as $i,mkdirSync as Tm,readFileSync as xv,renameSync as wv,rmdirSync as Sv,statSync as Ci,unlinkSync as vv,utimesSync as Ev,writeFileSync as Tv}from"node:fs";import{createHash as iv,randomUUID as Sm}from"node:crypto";import{readFile as Ti,writeFile as Ai,mkdir as vm}from"node:fs/promises";async function Ir(){try{let n=(await Ti(jt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await vm(R(),{recursive:!0,mode:448});let e=Sm();try{return await Ai(jt(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await Ti(jt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await Ai(jt(),e,{mode:384}),e}}var Am=512*1024;function Pr(){return Nr(R(),"spool")}function Rm(e){return Nr(Pr(),`${e}.jsonl`)}var $m=1024*1024;function Cm(e){return Nr(Pr(),`${e}.dropped`)}function Om(e){try{let t=Cm(e);if($i(t)&&Ci(t).size>=$m)return;Ri(t,".",{mode:384})}catch{return}}function Tn(e,t){if(Ar())try{Tm(Pr(),{recursive:!0,mode:448});let n=Rm(e);if($i(n)&&Ci(n).size>=Am){Om(e);return}Ri(n,JSON.stringify(t)+`
90
- `,{mode:384}),Em(n,384)}catch{return}}var Nm=/^[a-z0-9][a-z0-9._-]*$/i,Pm=/^[a-z][a-z-]+$/,Dm=/^[A-Za-z_][A-Za-z0-9_]*=/,Lm=new Set(["gh","glab","gup","hub","gist"]),Mm=/^(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,Fm=24,Ii=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"]),Ni=new Set([...Ii,"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"]),jm=new Set([...Ni,"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"]),Hm=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"])]]),zm=new Set(["-C","-c"]);function Um(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 Ni.has(n.toLowerCase())?n:""}function Bm(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=zm.has(n[r])?2:1;let s=(n[r]??"").toLowerCase();return t.has(s)?`${e} ${s}`:e}function Oi(e){let t=e.toLowerCase();return t.startsWith("git")||Lm.has(t)}function Dr(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&Dm.test(t[n]??"");)n+=1;let r=Um(t[n]??"");if(!r||!Nm.test(r)||r.length>Fm)return"";let s=Hm.get(r.toLowerCase());if(s)return Bm(r.toLowerCase(),s,t.slice(n+1));if(Oi(r)||Mm.test(r)||Bt(r)!==r)return"";let o=t[n+1];return o&&Oi(o)?"":(o&&Ii.has(r.toLowerCase())&&Pm.test(o)?`${r} ${o}`:r).slice(0,64)}function Zm(e){return jm.has((e.split(" ")[0]??"").toLowerCase())}async function Pi(e){if(!e.telemetryOptIn)return;let t=Dr(e.cmd),n=t&&Bt(t)===t&&Zm(t)?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";Tn("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 Di(e){if(Ko(e.filterId)||!(await gt()).telemetryOptIn)return;let t=Dr(e.cmd);!t||Bt(t)!==t||Tn("learn",{cmd:t,filterId:e.filterId==null?null:X(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}import{appendFileSync as Gm,chmodSync as Wm,mkdirSync as Vm,readFileSync as zi,realpathSync as Km,renameSync as Ui,rmSync as Bi,statSync as Zi,writeFileSync as Lr}from"node:fs";import{basename as Mi,dirname as Ji,join as An,resolve as qm,sep as Kv}from"node:path";var Jm={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"};function Li(e){return e?Jm[e]??"anthropic":"anthropic"}var Ym="stats.jsonl",Xm="stats-ledger.json",Fi=2*1024*1024,Qm=3e4,eg=3e4,tg=new Set(["n","g","e"]),ng=256;function Gi(){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 rg(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"&&tg.has(n.o)?{o:n.o}:{}}}catch{return null}}function sg(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 og(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function ig(e,t){let n=og(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 s=`${t.o} ${t.c??""}`,o=e.fb[s]??{n:0,r:0};o.n+=1,o.r+=t.r,e.fb[s]=o}}function ag(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>eg){e.ox+=1;return}if(sg(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):ig(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=Li(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function lg(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function Wi(e){return An(Ji(e),Xm)}function ug(e){let t=Wi(e),n;try{n=zi(t,"utf8")}catch{return{}}try{let r=JSON.parse(n);if(!r.days||typeof r.days!="object")throw new Error("invalid ledger");let s={};for(let[o,i]of Object.entries(r.days))!/^\d{4}-\d{2}-\d{2}$/.test(o)||!i||typeof i!="object"||(s[o]={...Gi(),...i});return s}catch{try{Ui(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function ji(e,t){let n=`${e}.tmp-${process.pid}`;Lr(n,t,{mode:384}),Ui(n,e)}function cg(e){try{return Lr(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-Zi(e).mtimeMs<Qm?!1:(Bi(e,{force:!0}),Lr(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function fg(e,t=Fi,n=Fi/2){try{if(Zi(e).size<=t)return}catch{return}let r=`${e}.lock`;if(cg(r))try{let s=zi(e,"utf8").split(`
91
- `).filter(u=>u.trim()!==""),o=s.length,i=0;for(;o>0;){let u=Buffer.byteLength(s[o-1])+1;if(i+u>n)break;i+=u,o-=1}let a=ug(e);for(let u of s.slice(0,o)){let c=rg(u);if(!c)continue;let f=lg(c.t),d=a[f]??Gi();ag(d,c),a[f]=d}let l=s.slice(o);ji(e,l.length?`${l.join(`
89
+ `:me,Is=Buffer.byteLength(Kn,"utf8"),lu=Kn.trim().length===0&&t.trim().length>0&&(o!=null&&o!==0||kr(e));return t.trim().length>0&&(Is>=s||lu)?I({output:t,filterId:d.slug,rawBytes:s,filteredBytes:s,debugBypass:!1,droppedTail:null}):I({output:Kn,filterId:d.slug,rawBytes:s,filteredBytes:Is,debugBypass:!1,droppedTail:F})}function gt(e=3e3){return new Promise(t=>{let n=[],r=process.stdin,s=!1,o=()=>{s||(s=!0,clearTimeout(a),r.off("data",i),r.pause(),r.unref?.(),t(Buffer.concat(n).toString("utf8")))},i=l=>{n.push(Buffer.isBuffer(l)?l:Buffer.from(l))},a=setTimeout(o,e);r.on("data",i).once("end",o).once("error",o),r.resume()})}function wm(){let e=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(e)&&e>0?e:6048e5}function Ei(e,t=Date.now()){let n=e.lastHeartbeatOkAt;return typeof n=="number"&&t-n>wm()}import{readFile as Sm,writeFile as qS,mkdir as YS,chmod as XS,rm as QS,rename as ev,readdir as tv}from"node:fs/promises";import{join as vm}from"node:path";var Em="settings-cache.json",Ti=Mt.parse({}),ov=Mt.partial().extend({filters:Mt.shape.filters.removeDefault().partial().optional()});async function ht(){let e=null;try{let t=JSON.parse(await Sm(vm(R(),Em),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?Mt.parse({...Ti,...e}):Ti}var Tm=[[/(\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]"]];function Bt(e){let t=e;for(let[n,r]of Tm)t=t.replace(n,r);return t}var fe="[tkr: secret masked]",av=[[/(-----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${fe}`],[/(?<![A-Za-z0-9_])(gh[pousr])_[A-Za-z0-9]{36,255}(?![A-Za-z0-9])/g,`$1_${fe}`],[/(?<![A-Za-z0-9_])github_pat_[A-Za-z0-9_]{22,255}/g,`github_pat_${fe}`],[/(?<![A-Za-z0-9_])npm_[A-Za-z0-9]{36}(?![A-Za-z0-9])/g,`npm_${fe}`],[/(?<![A-Z0-9])(AKIA|ASIA)[A-Z0-9]{16}(?![A-Z0-9])/g,`$1${fe}`],[/(?<![A-Za-z0-9])(xox[abpors]-)[A-Za-z0-9-]{10,}/g,`$1${fe}`],[/(?<![A-Za-z0-9])((?:sk|rk)_live_)[A-Za-z0-9]{16,}/g,`$1${fe}`],[/(?<![A-Za-z0-9_-])(sk-(?:ant-|proj-))[A-Za-z0-9_-]{20,}/g,`$1${fe}`],[/(authorization["']?\s*[:=]\s*["']?bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,`$1${fe}`],[/(?<![A-Za-z0-9+.-])([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^\s:/@]*:)[^\s@/]+(@[^\s@/]+)/g,`$1${fe}$2`]];import{join as Pr}from"node:path";import{appendFileSync as $i,chmodSync as $m,existsSync as Ci,mkdirSync as Cm,readFileSync as Tv,renameSync as Av,rmdirSync as Rv,statSync as Oi,unlinkSync as $v,utimesSync as Cv,writeFileSync as Ov}from"node:fs";import{createHash as fv,randomUUID as Am}from"node:crypto";import{readFile as Ai,writeFile as Ri,mkdir as Rm}from"node:fs/promises";async function Nr(){try{let n=(await Ai(jt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await Rm(R(),{recursive:!0,mode:448});let e=Am();try{return await Ri(jt(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await Ai(jt(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await Ri(jt(),e,{mode:384}),e}}var Om=512*1024;function Dr(){return Pr(R(),"spool")}function Im(e){return Pr(Dr(),`${e}.jsonl`)}var Nm=1024*1024;function Pm(e){return Pr(Dr(),`${e}.dropped`)}function Dm(e){try{let t=Pm(e);if(Ci(t)&&Oi(t).size>=Nm)return;$i(t,".",{mode:384})}catch{return}}function An(e,t){if(Rr())try{Cm(Dr(),{recursive:!0,mode:448});let n=Im(e);if(Ci(n)&&Oi(n).size>=Om){Dm(e);return}$i(n,JSON.stringify(t)+`
90
+ `,{mode:384}),$m(n,384)}catch{return}}var Mm=/^[a-z0-9][a-z0-9._-]*$/i,Fm=/^[a-z][a-z-]+$/,jm=/^[A-Za-z_][A-Za-z0-9_]*=/,Hm=new Set(["gh","glab","gup","hub","gist"]),zm=/^(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,Um=24,Ni=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"]),Pi=new Set([...Ni,"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"]),Bm=new Set([...Pi,"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"]),Zm=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"])]]),Jm=new Set(["-C","-c"]);function Gm(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 Pi.has(n.toLowerCase())?n:""}function Wm(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=Jm.has(n[r])?2:1;let s=(n[r]??"").toLowerCase();return t.has(s)?`${e} ${s}`:e}function Ii(e){let t=e.toLowerCase();return t.startsWith("git")||Hm.has(t)}function Lr(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&jm.test(t[n]??"");)n+=1;let r=Gm(t[n]??"");if(!r||!Mm.test(r)||r.length>Um)return"";let s=Zm.get(r.toLowerCase());if(s)return Wm(r.toLowerCase(),s,t.slice(n+1));if(Ii(r)||zm.test(r)||Bt(r)!==r)return"";let o=t[n+1];return o&&Ii(o)?"":(o&&Ni.has(r.toLowerCase())&&Fm.test(o)?`${r} ${o}`:r).slice(0,64)}function Vm(e){return Bm.has((e.split(" ")[0]??"").toLowerCase())}async function Di(e){if(!e.telemetryOptIn)return;let t=Lr(e.cmd),n=t&&Bt(t)===t&&Vm(t)?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";An("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 Li(e){if(qo(e.filterId)||!(await ht()).telemetryOptIn)return;let t=Lr(e.cmd);!t||Bt(t)!==t||An("learn",{cmd:t,filterId:e.filterId==null?null:X(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}import{appendFileSync as qm,chmodSync as Ym,mkdirSync as Xm,readFileSync as Ui,realpathSync as Qm,renameSync as Bi,rmSync as Zi,statSync as Ji,writeFileSync as Mr}from"node:fs";import{basename as Fi,dirname as Gi,join as Rn,resolve as eg,sep as eE}from"node:path";var Km={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"};function Mi(e){return e?Km[e]??"anthropic":"anthropic"}var tg="stats.jsonl",ng="stats-ledger.json",ji=2*1024*1024,rg=3e4,sg=3e4,og=new Set(["n","g","e"]),ig=256;function Wi(){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 ag(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"&&og.has(n.o)?{o:n.o}:{}}}catch{return null}}function lg(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 ug(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function cg(e,t){let n=ug(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 s=`${t.o} ${t.c??""}`,o=e.fb[s]??{n:0,r:0};o.n+=1,o.r+=t.r,e.fb[s]=o}}function fg(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>sg){e.ox+=1;return}if(lg(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):cg(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=Mi(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function dg(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function Vi(e){return Rn(Gi(e),ng)}function pg(e){let t=Vi(e),n;try{n=Ui(t,"utf8")}catch{return{}}try{let r=JSON.parse(n);if(!r.days||typeof r.days!="object")throw new Error("invalid ledger");let s={};for(let[o,i]of Object.entries(r.days))!/^\d{4}-\d{2}-\d{2}$/.test(o)||!i||typeof i!="object"||(s[o]={...Wi(),...i});return s}catch{try{Bi(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function Hi(e,t){let n=`${e}.tmp-${process.pid}`;Mr(n,t,{mode:384}),Bi(n,e)}function mg(e){try{return Mr(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-Ji(e).mtimeMs<rg?!1:(Zi(e,{force:!0}),Mr(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function gg(e,t=ji,n=ji/2){try{if(Ji(e).size<=t)return}catch{return}let r=`${e}.lock`;if(mg(r))try{let s=Ui(e,"utf8").split(`
91
+ `).filter(u=>u.trim()!==""),o=s.length,i=0;for(;o>0;){let u=Buffer.byteLength(s[o-1])+1;if(i+u>n)break;i+=u,o-=1}let a=pg(e);for(let u of s.slice(0,o)){let c=ag(u);if(!c)continue;let f=dg(c.t),d=a[f]??Wi();fg(d,c),a[f]=d}let l=s.slice(o);Hi(e,l.length?`${l.join(`
92
92
  `)}
93
- `:""),ji(Wi(e),JSON.stringify({v:1,days:a}))}catch{return}finally{Bi(r,{force:!0})}}function dg(e){let t=qm(e),n=t,r="";for(;;){try{return An(Km(n),r)}catch{}let s=Ji(n);if(s===n)return t;r=r?An(Mi(n),r):Mi(n),n=s}}var pg=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),mg=new Set(["-u","-g","-n","-s","-k"]),gg=/^[a-z0-9][a-z0-9._-]*$/i,hg=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"]),Vi=/^[A-Za-z_][A-Za-z0-9_]*=/;function Hi(e){return e.length===0||e[0]==="cd"||e.every(t=>Vi.test(t))}function yg(e){let t=[],n="",r=!1,s=null,o=()=>{r&&t.push(n),n="",r=!1};for(let i of e){if(s){i===s?s=null:n+=i;continue}if(i==="'"||i==='"'){s=i,r=!0;continue}if(i===" "||i===" "){o();continue}if(`|;&<>
94
- `.includes(i)){if(o(),Hi(t)){t=[];continue}return t}n+=i,r=!0}return o(),Hi(t)?[]:t}function Ki(e){let t=yg(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(Vi.test(a)){n+=1;continue}if(pg.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=mg.has(l)?2:1;continue}if(/^\d+(?:\.\d+)?[smhd]?$/.test(l)){n+=1;continue}break}continue}break}if(n>=t.length)return"";let r=t[n],s=r.includes("/")?r.slice(r.lastIndexOf("/")+1):r,o=t[n+1];return(o&&!o.startsWith("-")&&gg.test(o)&&hg.has(s.toLowerCase())?`${s} ${o}`:s).slice(0,24)}function kg(){return An(R(),Ym)}function qi(e,t,n=kg(),r=!1,s,o,i,a,l={}){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<0||t<0||e+t===0)return;let u=s?`,"h":${JSON.stringify(s)}`:"",c=o?`,"k":${JSON.stringify(o)}`:"",f=i?`,"c":${JSON.stringify(i.slice(0,24))}`:"",d=a?dg(a):"",p=d&&d.length<=ng?`,"p":${JSON.stringify(d)}`:"",h=l.s?`,"s":${JSON.stringify(l.s.slice(0,66))}`:"",y=l.o?`,"o":${JSON.stringify(l.o)}`:"",m=`{"t":${Math.floor(Date.now()/1e3)},"r":${e},"f":${t}${r?',"m":1':""}${u}${c}${f}${p}${h}${y}}
95
- `;try{Vm(R(),{recursive:!0,mode:448}),Gm(n,m,{mode:384}),Wm(n,384),fg(n)}catch{return}}function Yi(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 Xi(e,t,n){let r=n!=null?Math.min(e,n):e,s=n!=null?Math.min(t,n):t;return{raw:r,filtered:s}}import{existsSync as JE,readFileSync as kh}from"node:fs";function bg(e){return e.charCodeAt(0)===65279?e.slice(1):e}function ee(e){return JSON.parse(bg(e))}import{join as bh}from"node:path";import _h from"node:os";import{readFile as oh,writeFile as ih,rename as ah,mkdir as Sa,chmod as lh,stat as uh,unlink as ch}from"node:fs/promises";import{existsSync as va,lstatSync as fh,readlinkSync as dh,realpathSync as _a}from"node:fs";import{basename as ph,dirname as In,join as mh,resolve as xa}from"node:path";import{basename as _g}from"node:path";var xg={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},wg={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"};function ht(e){let t=_g(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(xg))if(r===t)return[n];for(let[n,r]of Object.entries(wg))if(r===t)return["hook",n];return null}import{realpathSync as Qi}from"node:fs";import{delimiter as Sg,join as yt}from"node:path";import vg from"node:os";function Ae(){return!1}function Mr(e,t=process.execPath){let n=Ae()?ht(e):null;return n?[process.execPath,...n]:[t,e]}function ea(e,t){try{return Qi(e)===Qi(t)}catch{return!1}}function Fr(e=process.env.PATH??"",t=process.platform,n=process.execPath){let r=t==="win32"?"tkr.exe":"tkr";for(let s of e.split(t==="win32"?";":Sg)){if(!s||s.includes("node_modules"))continue;let o=yt(s,r);if(ea(o,n))return o}if(t!=="win32"){let s=vg.homedir();for(let o of[yt(s,".local","bin",r),yt(s,".local","share","tokmizer","current","dist","bin",r),yt("/opt/homebrew/bin",r),yt("/usr/local/bin",r),yt("/home/linuxbrew/.linuxbrew/bin",r)])if(ea(o,n))return o}return n}import Eg from"node:os";import{isAbsolute as Tg,join as ta,resolve as na}from"node:path";function Rn(e=process.env,t=Eg.homedir()){let n=e.CLAUDE_CONFIG_DIR?.trim();if(!n)return ta(t,".claude");let r=n;return r==="~"?r=t:(r.startsWith("~/")||r.startsWith("~\\"))&&(r=ta(t,r.slice(2))),Tg(r)?na(r):na(r)}import{accessSync as Cg,chmodSync as Og,constants as Ig,existsSync as $n,mkdirSync as Ng,readdirSync as Pg,readFileSync as Dg,realpathSync as aa,renameSync as Lg,unlinkSync as Mg,writeFileSync as Fg}from"node:fs";import{basename as zr,dirname as Re,join as _e,sep as kt}from"node:path";import{rmSync as Ag,statSync as Rg}from"node:fs";import{join as ra}from"node:path";function sa(){return ra(R(),"shims")}function jr(){return ra(R(),"fail-open")}var $g=24*36e5;function de(e=Date.now()){try{if(e-Rg(jr()).mtimeMs<$g)return!0;Ag(jr(),{force:!0})}catch{}return!1}function oa(){return`[ -f ${Xe(jr())} ]`}function Xe(e){return`'${e.replace(/'/g,"'\\''")}'`}function ia(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("'")}var ua=1,Zt="tkr-shim.stable",ca=/^(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})$/;function jg(){return _e(R(),"bin","tkr-shim-launch")}function Hg(){return _e(R(),"bin","tkr-run")}function la(){return _e(Rn(),"plugins","cache","tokmizer","tokmizer")}function zg(e){let t=Re(Re(Re(e)));return ca.test(zr(t))&&zr(Re(t))==="tokmizer"?Re(t):null}function Ur(e){return/[\n\r]/.test(e)||e.includes(`${kt}_npx${kt}`)||e.includes(`${kt}.bun${kt}install${kt}cache${kt}`)}function Br(e){let t=e.match(/^(.*)[\\/]Cellar[\\/]([^\\/]+)[\\/][^\\/]+[\\/](.*)$/);if(!t)return e;let n=_e(t[1],"opt",t[2],t[3]);try{return aa(n)===aa(e)?n:e}catch{return e}}function Ug(e=process.execPath){return Ur(e)?"":Br(e)}function Bg(e,t=Ae()){if(t&&ht(e)){let s=Fr();return{single:Ur(s)?"":Br(s),js:"",cache:la(),node:""}}let n=Ug(),r=zg(e);return r?{single:"",js:"",cache:r,node:n}:{single:"",js:Ur(e)?"":Br(e),cache:la(),node:n}}function Zg(e){try{return Cg(e,Ig.X_OK),!0}catch{return!1}}function Jg(e){let t=null,n=-1,r;try{r=Pg(e)}catch{return null}for(let s of r){if(!ca.test(s))continue;let o=_e(e,s);if(!$n(_e(o,"dist","bin","tkr-shim.js"))||!$n(_e(o,"dist","bin",Zt)))continue;let[i,a,l]=s.split(".").map(Number),u=i*1e6+a*1e3+l;u>n&&(n=u,t=o)}return t}function Hr(e){return e.single&&Zg(e.single)||e.js&&$n(e.js)&&(zr(e.js)!=="tkr-shim.js"||$n(_e(Re(e.js),Zt)))?!0:e.cache!==""&&Jg(e.cache)!==null}function Gg(e,t){return["_tk_t=",`if [ -n "$_tk_j" ] && [ -f "${t}" ] && { [ "\${_tk_j##*/}" != tkr-shim.js ] || [ -f "\${_tk_j%/*}/${Zt}" ]; }; 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/${Zt}" ] || 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=${Xe(sa())}`," 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/${Zt}" ] && [ -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 Wg(e){return["#!/bin/sh",`_tk_f=${ua}`,`_tk_s=${Xe(e.single)}`,`_tk_j=${Xe(e.js)}`,`_tk_k=${Xe(e.cache)}`,`_tk_n=${Xe(e.node)}`,'[ "$#" -gt 0 ] || exit 0',`if ! ${oa()}; then`,' if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then exec "$_tk_s" exec "$@"; fi',...Gg("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(`
96
- `)}function fa(e){let t=Hg(),n=Bg(_e(Re(e),"tkr-shim.js")),r=Kg(t);if(r&&r.format===ua&&Hr(r.target)&&JSON.stringify(r.target)===JSON.stringify(n))return t;if(!Hr(n))return r&&Hr(r.target)?t:null;let s=`${t}.${process.pid}.tmp`;try{return Ng(Re(t),{recursive:!0,mode:448}),Fg(s,Wg(n),{mode:493}),Og(s,493),Lg(s,t),t}catch{try{Mg(s)}catch{}return null}}function Vg(e){let t=a=>{let l=e.match(new RegExp(`^${a}=(.*)$`,"m"));return l?a==="_tk_f"?l[1]:ia(l[1]):null},n=Number(t("_tk_f")),r=t("_tk_s"),s=t("_tk_j"),o=t("_tk_k"),i=t("_tk_n")??"";return!Number.isInteger(n)||r===null||s===null||o===null?null:{format:n,target:{single:r,js:s,cache:o,node:i}}}function Kg(e=jg()){try{return Vg(Dg(e,"utf8"))}catch{return null}}import{chmod as qg,lstat as da,mkdir as Yg,readFile as Jr,rename as Xg,rm as AE,unlink as pa,writeFile as Qg}from"node:fs/promises";import{createHash as ma}from"node:crypto";import{basename as eh,join as ga}from"node:path";var th=".tkr-bak";function ha(){return ga(R(),"backup","config")}function Zr(e){let t=Wr(e),n=ma("sha256").update(t).digest("hex").slice(0,16),r=eh(t).replace(/[^A-Za-z0-9._-]/g,"_").slice(0,80);return ga(ha(),`${n}-${r}`)}function ya(e){return`${Zr(e)}.written`}function ka(e){return ma("sha256").update(e).digest("hex")}async function nh(e){try{return await da(e),!0}catch{return!1}}async function Gr(e,t){let n=`${e}.tmp-${process.pid}`;try{return await Yg(ha(),{recursive:!0,mode:448}),await Qg(n,t,{mode:384}),await qg(n,384),await Xg(n,e),!0}catch{return await pa(n).catch(()=>{}),!1}}async function rh(e,t){let n=`${e}${th}`;try{if(!(await da(n)).isFile())return!1}catch{return!1}let r=!await nh(t);if(r&&!await Gr(t,await Jr(n,"utf8")))throw new Error("backup");return await pa(n).catch(()=>{}),r}async function sh(e,t){try{return(await Jr(ya(e),"utf8")).trim()===ka(t)}catch{return!1}}async function ba(e,t){let n=t;try{n===void 0&&(n=await Jr(e,"utf8"))}catch(r){return r.code==="ENOENT"}try{if(await rh(e,Zr(e)))return!0}catch{return!1}return await sh(e,n)?!0:Gr(Zr(e),n)}async function Cn(e,t,n){return!await ba(e,n)||!await On(e,t)?!1:(await Gr(ya(e),`${ka(t)}
97
- `),!0)}function D(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function $e(e){if(!va(e))return{};try{let t=ee(await oh(e,"utf8"));return D(t)?t:null}catch{return null}}function Wr(e){let t=xa(e);for(let n=0;n<32;n++){try{return _a(t)}catch{}try{if(!fh(t).isSymbolicLink())break;t=xa(In(t),dh(t))}catch{break}}try{return mh(_a(In(t)),ph(t))}catch{return t}}async function On(e,t){let n=Wr(e),r=`${n}.tmp-${process.pid}`;try{await Sa(In(n),{recursive:!0});let s=384;try{s=(await uh(n)).mode&511}catch{}return process.platform!=="win32"&&va(n)&&(s&128)===0?!1:(await ih(r,t,{mode:s}),await lh(r,s),await ah(r,n),!0)}catch{try{await ch(r)}catch{}return!1}}async function Ce(e,t){try{await Sa(In(e),{recursive:!0})}catch{return!1}return Cn(e,`${JSON.stringify(t,null,2)}
98
- `)}function gh(e){let t=[],n="",r=!1;for(let s=0;s<e.length;s++){let o=e[s];if(o==="'"){let i=e.indexOf("'",s+1);if(i<0)return null;n+=e.slice(s+1,i),r=!0,s=i}else if(o==='"'){let i=e.indexOf('"',s+1);if(i<0)return null;let a=e.slice(s+1,i);if(/`|\$\(/.test(a))return null;n+=a,r=!0,s=i}else if(o==="\\"&&e[s+1]==="'")n+="'",r=!0,s++;else if(o===" "||o===" ")r&&t.push(n),n="",r=!1;else{if(o===";"||o==="&"||o==="|"||o==="`"||o===`
99
- `||o==="\r"||o==="$"&&e[s+1]==="(")return null;n+=o,r=!0}}return r&&t.push(n),t}var hh=/^\s*\[ ! -[a-z] (?:'(?:[^']|'\\'')*'|"[^"]*") \] \|\| /,wa=/^[A-Za-z_][A-Za-z0-9_]*=/;function Vr(e){return(e.split(/[\\/]/).pop()??"").toLowerCase().replace(/\.(?:exe|cmd|bat|ps1|m?js|sh)$/,"")}function yh(e){if(typeof e!="string")return null;let t=e.replace(hh,""),n=gh(t);if(!n)return null;let r=0;for(;r<n.length&&wa.test(n[r]);)r++;if(n[r]==="exec"&&r++,r>=n.length||wa.test(n[r]))return null;let s=Vr(n[r]),o=n.slice(r+1);if(s==="sh"||s==="bash"){let i=o[0]!==void 0?Vr(o[0]):"";return/^tkr-hook(?:-launch)?$/.test(i)?{program:i,args:o.slice(2),launcherMark:o[1]??""}:{program:s,args:o}}return s==="node"?{program:o[0]!==void 0?Vr(o[0]):"node",args:o.slice(1)}:{program:s,args:o}}function bt(e,t){let n=yh(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=ht(t);return r?.length?r.every((s,o)=>n.args[o]===s):!1}function Nn(e,t,n,r){let s=i=>i!==n&&t(i),o=!1;for(let i=e.length-1;i>=0;i--){let a=e[i];if(!r){s(a)&&(e.splice(i,1),o=!0);continue}if(!D(a)||!Array.isArray(a.hooks))continue;let l=a.hooks.filter(u=>!s(u));l.length!==a.hooks.length&&(o=!0,l.length?a.hooks=l:e.splice(i,1))}return o}var xh="tkr-cursor-hook",Ea="preToolUse";function wh(){return bh(_h.homedir(),".cursor","hooks.json")}function Sh(e){return D(e)&&bt(e.command,xh)}function vh(e){let t=D(e.hooks)?e.hooks:{},n=Array.isArray(t[Ea])?t[Ea]:[];return{hooks:t,entries:n}}function Ta(){try{let e=ee(kh(wh(),"utf8"));return vh(e).entries.some(Sh)}catch{return!1}}import{existsSync as XE,readFileSync as Eh}from"node:fs";import{join as Th}from"node:path";import Ah from"node:os";var Rh="tkr-gemini-hook",Aa="BeforeTool";function $h(){return Th(process.env.GEMINI_CLI_HOME||Ah.homedir(),".gemini","settings.json")}function Ch(e){return D(e)&&bt(e.command,Rh)}function Oh(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(Ch)}function Ih(e){let t=D(e.hooks)?e.hooks:{},n=Array.isArray(t[Aa])?t[Aa]:[];return{hooks:t,groups:n}}function Ra(){try{let e=ee(Eh($h(),"utf8"));return Ih(e).groups.some(t=>Oh(t)!=null)}catch{return!1}}import{dirname as AT,join as te}from"node:path";import Hh from"node:os";import{existsSync as iT,accessSync as aT,constants as lT,readFileSync as Nh}from"node:fs";var Ph='"rewrite", "--host"';function Dh(e){return e.includes(Ph)}function $a(e){try{return Dh(Nh(e,"utf8"))}catch{return!1}}import{readFile as Oa,mkdir as Lh}from"node:fs/promises";import{existsSync as Yr,readFileSync as Ia}from"node:fs";import{dirname as Mh,join as qr}from"node:path";import Na from"node:os";var Pa="tokmizer-rewrite",Jt="tokmizer-rewrite";function Gt(){return qr(process.env.VIBE_HOME||qr(Na.homedir(),".vibe"),"hooks.toml")}function Ca(e){return JSON.stringify(e)}function Fh(e){return["[[hooks]]",`name = ${Ca(Pa)}`,'type = "pre_tool"','match = "bash"',`command = ${Ca(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
100
- `)}function Xr(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 Pn(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${Pa}"\\s*$`,"m").test(e)}function Da(e){if(!Pn(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 La(e,t){try{await Lh(Mh(e),{recursive:!0})}catch{return!1}return Cn(e,t)}function Ma(){try{return Xr(Ia(Gt(),"utf8")).some(Pn)}catch{return!1}}async function Fa(e){let t=Gt(),n="";try{Yr(t)&&(n=await Oa(t,"utf8"))}catch{return"error"}let r=Fh(e),s=Xr(n),o=s.filter(Pn);if(o.length===1&&o[0].trimEnd()===r.trimEnd())return"present";let i=s.map(Da).join("").trimEnd(),a=i?`${i}
93
+ `:""),Hi(Vi(e),JSON.stringify({v:1,days:a}))}catch{return}finally{Zi(r,{force:!0})}}function hg(e){let t=eg(e),n=t,r="";for(;;){try{return Rn(Qm(n),r)}catch{}let s=Gi(n);if(s===n)return t;r=r?Rn(Fi(n),r):Fi(n),n=s}}var yg=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),kg=new Set(["-u","-g","-n","-s","-k"]),bg=/^[a-z0-9][a-z0-9._-]*$/i,_g=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"]),Ki=/^[A-Za-z_][A-Za-z0-9_]*=/;function zi(e){return e.length===0||e[0]==="cd"||e.every(t=>Ki.test(t))}function xg(e){let t=[],n="",r=!1,s=null,o=()=>{r&&t.push(n),n="",r=!1};for(let i of e){if(s){i===s?s=null:n+=i;continue}if(i==="'"||i==='"'){s=i,r=!0;continue}if(i===" "||i===" "){o();continue}if(`|;&<>
94
+ `.includes(i)){if(o(),zi(t)){t=[];continue}return t}n+=i,r=!0}return o(),zi(t)?[]:t}function qi(e){let t=xg(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(Ki.test(a)){n+=1;continue}if(yg.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=kg.has(l)?2:1;continue}if(/^\d+(?:\.\d+)?[smhd]?$/.test(l)){n+=1;continue}break}continue}break}if(n>=t.length)return"";let r=t[n],s=r.includes("/")?r.slice(r.lastIndexOf("/")+1):r,o=t[n+1];return(o&&!o.startsWith("-")&&bg.test(o)&&_g.has(s.toLowerCase())?`${s} ${o}`:s).slice(0,24)}function wg(){return Rn(R(),tg)}function Yi(e,t,n=wg(),r=!1,s,o,i,a,l={}){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<0||t<0||e+t===0)return;let u=s?`,"h":${JSON.stringify(s)}`:"",c=o?`,"k":${JSON.stringify(o)}`:"",f=i?`,"c":${JSON.stringify(i.slice(0,24))}`:"",d=a?hg(a):"",p=d&&d.length<=ig?`,"p":${JSON.stringify(d)}`:"",y=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':""}${u}${c}${f}${p}${y}${h}}
95
+ `;try{Xm(R(),{recursive:!0,mode:448}),qm(n,m,{mode:384}),Ym(n,384),gg(n)}catch{return}}function Xi(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 Qi(e,t,n){let r=n!=null?Math.min(e,n):e,s=n!=null?Math.min(t,n):t;return{raw:r,filtered:s}}import{existsSync as qE,readFileSync as wh}from"node:fs";function Sg(e){return e.charCodeAt(0)===65279?e.slice(1):e}function ee(e){return JSON.parse(Sg(e))}import{join as Sh}from"node:path";import vh from"node:os";import{readFile as uh,writeFile as ch,rename as fh,mkdir as va,chmod as dh,stat as ph,unlink as mh}from"node:fs/promises";import{existsSync as Ea,lstatSync as gh,readlinkSync as hh,realpathSync as xa}from"node:fs";import{basename as yh,dirname as Nn,join as kh,resolve as wa}from"node:path";import{basename as vg}from"node:path";var Eg={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},Tg={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"};function yt(e){let t=vg(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(Eg))if(r===t)return[n];for(let[n,r]of Object.entries(Tg))if(r===t)return["hook",n];return null}import{realpathSync as ea}from"node:fs";import{delimiter as Ag,join as kt}from"node:path";import Rg from"node:os";function _e(){return!1}function Zt(e,t=process.execPath){let n=_e()?yt(e):null;return n?[process.execPath,...n]:[t,e]}function ta(e,t){try{return ea(e)===ea(t)}catch{return!1}}function Fr(e=process.env.PATH??"",t=process.platform,n=process.execPath){let r=t==="win32"?"tkr.exe":"tkr";for(let s of e.split(t==="win32"?";":Ag)){if(!s||s.includes("node_modules"))continue;let o=kt(s,r);if(ta(o,n))return o}if(t!=="win32"){let s=Rg.homedir();for(let o of[kt(s,".local","bin",r),kt(s,".local","share","tokmizer","current","dist","bin",r),kt("/opt/homebrew/bin",r),kt("/usr/local/bin",r),kt("/home/linuxbrew/.linuxbrew/bin",r)])if(ta(o,n))return o}return n}import $g from"node:os";import{isAbsolute as Cg,join as na,resolve as ra}from"node:path";function $n(e=process.env,t=$g.homedir()){let n=e.CLAUDE_CONFIG_DIR?.trim();if(!n)return na(t,".claude");let r=n;return r==="~"?r=t:(r.startsWith("~/")||r.startsWith("~\\"))&&(r=na(t,r.slice(2))),Cg(r)?ra(r):ra(r)}import{accessSync as Pg,chmodSync as Dg,constants as Lg,existsSync as Cn,mkdirSync as Mg,readdirSync as Fg,readFileSync as jg,realpathSync as la,renameSync as Hg,unlinkSync as zg,writeFileSync as Ug}from"node:fs";import{basename as zr,dirname as Ce,join as we,sep as bt}from"node:path";import{rmSync as Og,statSync as Ig}from"node:fs";import{join as sa}from"node:path";function oa(){return sa(R(),"shims")}function jr(){return sa(R(),"fail-open")}var Ng=24*36e5;function de(e=Date.now()){try{if(e-Ig(jr()).mtimeMs<Ng)return!0;Og(jr(),{force:!0})}catch{}return!1}function ia(){return`[ -f ${xe(jr())} ]`}function xe(e){return`'${e.replace(/'/g,"'\\''")}'`}function aa(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("'")}var ca=1,Jt="tkr-shim.stable",fa=/^(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})$/;function Bg(){return we(R(),"bin","tkr-shim-launch")}function Zg(){return we(R(),"bin","tkr-run")}function ua(){return we($n(),"plugins","cache","tokmizer","tokmizer")}function Jg(e){let t=Ce(Ce(Ce(e)));return fa.test(zr(t))&&zr(Ce(t))==="tokmizer"?Ce(t):null}function Ur(e){return/[\n\r]/.test(e)||e.includes(`${bt}_npx${bt}`)||e.includes(`${bt}.bun${bt}install${bt}cache${bt}`)}function Br(e){let t=e.match(/^(.*)[\\/]Cellar[\\/]([^\\/]+)[\\/][^\\/]+[\\/](.*)$/);if(!t)return e;let n=we(t[1],"opt",t[2],t[3]);try{return la(n)===la(e)?n:e}catch{return e}}function Gg(e=process.execPath){return Ur(e)?"":Br(e)}function Wg(e,t=_e()){if(t&&yt(e)){let s=Fr();return{single:Ur(s)?"":Br(s),js:"",cache:ua(),node:""}}let n=Gg(),r=Jg(e);return r?{single:"",js:"",cache:r,node:n}:{single:"",js:Ur(e)?"":Br(e),cache:ua(),node:n}}function Vg(e){try{return Pg(e,Lg.X_OK),!0}catch{return!1}}function Kg(e){let t=null,n=-1,r;try{r=Fg(e)}catch{return null}for(let s of r){if(!fa.test(s))continue;let o=we(e,s);if(!Cn(we(o,"dist","bin","tkr-shim.js"))||!Cn(we(o,"dist","bin",Jt)))continue;let[i,a,l]=s.split(".").map(Number),u=i*1e6+a*1e3+l;u>n&&(n=u,t=o)}return t}function Hr(e){return e.single&&Vg(e.single)||e.js&&Cn(e.js)&&(zr(e.js)!=="tkr-shim.js"||Cn(we(Ce(e.js),Jt)))?!0:e.cache!==""&&Kg(e.cache)!==null}function qg(e,t){return["_tk_t=",`if [ -n "$_tk_j" ] && [ -f "${t}" ] && { [ "\${_tk_j##*/}" != tkr-shim.js ] || [ -f "\${_tk_j%/*}/${Jt}" ]; }; 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/${Jt}" ] || 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=${xe(oa())}`," 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/${Jt}" ] && [ -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 Yg(e){return["#!/bin/sh",`_tk_f=${ca}`,`_tk_s=${xe(e.single)}`,`_tk_j=${xe(e.js)}`,`_tk_k=${xe(e.cache)}`,`_tk_n=${xe(e.node)}`,'[ "$#" -gt 0 ] || exit 0',`if ! ${ia()}; then`,' if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then exec "$_tk_s" exec "$@"; fi',...qg("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(`
96
+ `)}function da(e){let t=Zg(),n=Wg(we(Ce(e),"tkr-shim.js")),r=Qg(t);if(r&&r.format===ca&&Hr(r.target)&&JSON.stringify(r.target)===JSON.stringify(n))return t;if(!Hr(n))return r&&Hr(r.target)?t:null;let s=`${t}.${process.pid}.tmp`;try{return Mg(Ce(t),{recursive:!0,mode:448}),Ug(s,Yg(n),{mode:493}),Dg(s,493),Hg(s,t),t}catch{try{zg(s)}catch{}return null}}function Xg(e){let t=a=>{let l=e.match(new RegExp(`^${a}=(.*)$`,"m"));return l?a==="_tk_f"?l[1]:aa(l[1]):null},n=Number(t("_tk_f")),r=t("_tk_s"),s=t("_tk_j"),o=t("_tk_k"),i=t("_tk_n")??"";return!Number.isInteger(n)||r===null||s===null||o===null?null:{format:n,target:{single:r,js:s,cache:o,node:i}}}function Qg(e=Bg()){try{return Xg(jg(e,"utf8"))}catch{return null}}import{chmod as eh,lstat as pa,mkdir as th,readFile as Jr,rename as nh,rm as IE,unlink as ma,writeFile as rh}from"node:fs/promises";import{createHash as ga}from"node:crypto";import{basename as sh,join as ha}from"node:path";var oh=".tkr-bak";function ya(){return ha(R(),"backup","config")}function Zr(e){let t=Wr(e),n=ga("sha256").update(t).digest("hex").slice(0,16),r=sh(t).replace(/[^A-Za-z0-9._-]/g,"_").slice(0,80);return ha(ya(),`${n}-${r}`)}function ka(e){return`${Zr(e)}.written`}function ba(e){return ga("sha256").update(e).digest("hex")}async function ih(e){try{return await pa(e),!0}catch{return!1}}async function Gr(e,t){let n=`${e}.tmp-${process.pid}`;try{return await th(ya(),{recursive:!0,mode:448}),await rh(n,t,{mode:384}),await eh(n,384),await nh(n,e),!0}catch{return await ma(n).catch(()=>{}),!1}}async function ah(e,t){let n=`${e}${oh}`;try{if(!(await pa(n)).isFile())return!1}catch{return!1}let r=!await ih(t);if(r&&!await Gr(t,await Jr(n,"utf8")))throw new Error("backup");return await ma(n).catch(()=>{}),r}async function lh(e,t){try{return(await Jr(ka(e),"utf8")).trim()===ba(t)}catch{return!1}}async function _a(e,t){let n=t;try{n===void 0&&(n=await Jr(e,"utf8"))}catch(r){return r.code==="ENOENT"}try{if(await ah(e,Zr(e)))return!0}catch{return!1}return await lh(e,n)?!0:Gr(Zr(e),n)}async function On(e,t,n){return!await _a(e,n)||!await In(e,t)?!1:(await Gr(ka(e),`${ba(t)}
97
+ `),!0)}function D(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function Oe(e){if(!Ea(e))return{};try{let t=ee(await uh(e,"utf8"));return D(t)?t:null}catch{return null}}function Wr(e){let t=wa(e);for(let n=0;n<32;n++){try{return xa(t)}catch{}try{if(!gh(t).isSymbolicLink())break;t=wa(Nn(t),hh(t))}catch{break}}try{return kh(xa(Nn(t)),yh(t))}catch{return t}}async function In(e,t){let n=Wr(e),r=`${n}.tmp-${process.pid}`;try{await va(Nn(n),{recursive:!0});let s=384;try{s=(await ph(n)).mode&511}catch{}return process.platform!=="win32"&&Ea(n)&&(s&128)===0?!1:(await ch(r,t,{mode:s}),await dh(r,s),await fh(r,n),!0)}catch{try{await mh(r)}catch{}return!1}}async function Ie(e,t){try{await va(Nn(e),{recursive:!0})}catch{return!1}return On(e,`${JSON.stringify(t,null,2)}
98
+ `)}function bh(e){let t=[],n="",r=!1;for(let s=0;s<e.length;s++){let o=e[s];if(o==="'"){let i=e.indexOf("'",s+1);if(i<0)return null;n+=e.slice(s+1,i),r=!0,s=i}else if(o==='"'){let i=e.indexOf('"',s+1);if(i<0)return null;let a=e.slice(s+1,i);if(/`|\$\(/.test(a))return null;n+=a,r=!0,s=i}else if(o==="\\"&&e[s+1]==="'")n+="'",r=!0,s++;else if(o===" "||o===" ")r&&t.push(n),n="",r=!1;else{if(o===";"||o==="&"||o==="|"||o==="`"||o===`
99
+ `||o==="\r"||o==="$"&&e[s+1]==="(")return null;n+=o,r=!0}}return r&&t.push(n),t}var _h=/^\s*\[ ! -[a-z] (?:'(?:[^']|'\\'')*'|"[^"]*") \] \|\| /,Sa=/^[A-Za-z_][A-Za-z0-9_]*=/;function Vr(e){return(e.split(/[\\/]/).pop()??"").toLowerCase().replace(/\.(?:exe|cmd|bat|ps1|m?js|sh)$/,"")}function xh(e){if(typeof e!="string")return null;let t=e.replace(_h,""),n=bh(t);if(!n)return null;let r=0;for(;r<n.length&&Sa.test(n[r]);)r++;if(n[r]==="exec"&&r++,r>=n.length||Sa.test(n[r]))return null;let s=Vr(n[r]),o=n.slice(r+1);if(s==="sh"||s==="bash"){let i=o[0]!==void 0?Vr(o[0]):"";return/^tkr-hook(?:-launch)?$/.test(i)?{program:i,args:o.slice(2),launcherMark:o[1]??""}:{program:s,args:o}}return s==="node"?{program:o[0]!==void 0?Vr(o[0]):"node",args:o.slice(1)}:{program:s,args:o}}function _t(e,t){let n=xh(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=yt(t);return r?.length?r.every((s,o)=>n.args[o]===s):!1}function Pn(e,t,n,r){let s=i=>i!==n&&t(i),o=!1;for(let i=e.length-1;i>=0;i--){let a=e[i];if(!r){s(a)&&(e.splice(i,1),o=!0);continue}if(!D(a)||!Array.isArray(a.hooks))continue;let l=a.hooks.filter(u=>!s(u));l.length!==a.hooks.length&&(o=!0,l.length?a.hooks=l:e.splice(i,1))}return o}var Eh="tkr-cursor-hook",Ta="preToolUse";function Th(){return Sh(vh.homedir(),".cursor","hooks.json")}function Ah(e){return D(e)&&_t(e.command,Eh)}function Rh(e){let t=D(e.hooks)?e.hooks:{},n=Array.isArray(t[Ta])?t[Ta]:[];return{hooks:t,entries:n}}function Aa(){try{let e=ee(wh(Th(),"utf8"));return Rh(e).entries.some(Ah)}catch{return!1}}import{existsSync as rT,readFileSync as $h}from"node:fs";import{join as Ch}from"node:path";import Oh from"node:os";var Ih="tkr-gemini-hook",Ra="BeforeTool";function Nh(){return Ch(process.env.GEMINI_CLI_HOME||Oh.homedir(),".gemini","settings.json")}function Ph(e){return D(e)&&_t(e.command,Ih)}function Dh(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(Ph)}function Lh(e){let t=D(e.hooks)?e.hooks:{},n=Array.isArray(t[Ra])?t[Ra]:[];return{hooks:t,groups:n}}function $a(){try{let e=ee($h(Nh(),"utf8"));return Lh(e).groups.some(t=>Dh(t)!=null)}catch{return!1}}import{dirname as IT,join as te}from"node:path";import Zh from"node:os";import{existsSync as fT,accessSync as dT,constants as pT,readFileSync as Mh}from"node:fs";var Fh='"rewrite", "--host"';function jh(e){return e.includes(Fh)}function Ca(e){try{return jh(Mh(e,"utf8"))}catch{return!1}}import{readFile as Ia,mkdir as Hh}from"node:fs/promises";import{existsSync as Yr,readFileSync as Na}from"node:fs";import{dirname as zh,join as qr}from"node:path";import Pa from"node:os";var Da="tokmizer-rewrite",Gt="tokmizer-rewrite";function Wt(){return qr(process.env.VIBE_HOME||qr(Pa.homedir(),".vibe"),"hooks.toml")}function Oa(e){return JSON.stringify(e)}function Uh(e){return["[[hooks]]",`name = ${Oa(Da)}`,'type = "pre_tool"','match = "bash"',`command = ${Oa(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
100
+ `)}function Xr(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 Dn(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${Da}"\\s*$`,"m").test(e)}function La(e){if(!Dn(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 Ma(e,t){try{await Hh(zh(e),{recursive:!0})}catch{return!1}return On(e,t)}function Fa(){try{return Xr(Na(Wt(),"utf8")).some(Dn)}catch{return!1}}async function ja(e){let t=Wt(),n="";try{Yr(t)&&(n=await Ia(t,"utf8"))}catch{return"error"}let r=Uh(e),s=Xr(n),o=s.filter(Dn);if(o.length===1&&o[0].trimEnd()===r.trimEnd())return"present";let i=s.map(La).join("").trimEnd(),a=i?`${i}
101
101
 
102
- ${r}`:r;return await La(t,a)?o.length?"updated":"added":"error"}async function ja(){let e=Gt();if(!Yr(e))return"absent";let t;try{t=await Oa(e,"utf8")}catch{return"error"}let n=Xr(t);if(!n.some(Pn))return"absent";let r=n.map(Da).join("").trimEnd(),s=r?`${r}
103
- `:"";return await La(e,s)?"removed":"error"}function Wt(){return qr(Na.homedir(),".gemini","config","hooks.json")}function jh(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function Ha(){try{let e=ee(Ia(Wt(),"utf8"));return D(e)&&D(e[Jt])}catch{return!1}}async function za(e){let t=Wt(),n=await $e(t);if(!n)return"error";let r=jh(e),s=n[Jt];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[Jt]=r,await Ce(t,n)?s===void 0?"added":"updated":"error")}async function Ua(){let e=Wt();if(!Yr(e))return"absent";let t=await $e(e);return t?Jt in t?(delete t[Jt],await Ce(e,t)?"removed":"error"):"absent":"error"}var Vt=()=>Hh.homedir(),Qr=()=>process.env.XDG_CONFIG_HOME||te(Vt(),".config"),Ba=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:te(Qr(),"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:te(Qr(),"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:te(Qr(),"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:Gt,installed:Ma,ensure:Fa,remove:ja,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:Wt,installed:Ha,ensure:za,remove:Ua,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=te(Vt(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:te(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:te(process.env.PI_CODING_AGENT_DIR||te(Vt(),".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:te(Vt(),".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=te(process.env.HERMES_HOME||te(Vt(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:te(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}];function Za(e){return e.kind==="hook"?e.installed():$a(e.files()[0].target)}import{existsSync as rs,readFileSync as Gh}from"node:fs";import{join as B}from"node:path";import Wh from"node:os";import{existsSync as zh,readFileSync as Uh}from"node:fs";function Dn(e,t){return D(e)&&bt(e.command,t)}function Ja(e){return e.path??(e.nested?["hooks"]:[])}function Ga(e,t){let n=e;for(let r of Ja(t))D(n[r])||(n[r]={}),n=n[r];return n}function Wa(e,t){let n=e;for(let s of Ja(t))n=D(n)?n[s]:void 0;if(!D(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function Bh(e){return D(e)&&Array.isArray(e.hooks)?e.hooks:[]}function Va(e,t){return(t.matcher===void 0?e:e.flatMap(Bh)).filter(r=>Dn(r,t.mark))}function Ka(e,t){return Va(Wa(e,t),t).length>0}function es(e,t){try{let n=ee(Uh(e,"utf8"));return D(n)&&Ka(n,t)}catch{return!1}}function Zh(e,t,n){let r=Ga(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=Va(s,t)[0],i=t.entry(n);if(o){let a=Nn(s,u=>Dn(u,t.mark),o,t.matcher!==void 0),l=Object.entries(i).filter(([u,c])=>JSON.stringify(o[u])!==JSON.stringify(c));if(!l.length&&!a)return"present";for(let[u,c]of l)o[u]=c;return"updated"}return s.push(t.matcher===void 0?i:{matcher:t.matcher,hooks:[i]}),"added"}function Jh(e,t){if(!Ka(e,t))return!1;let n=Ga(e,t),r=Wa(e,t),s=t.matcher===void 0?r.filter(o=>!Dn(o,t.mark)):r.map(o=>D(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!Dn(i,t.mark))}:o).filter(o=>!D(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function ts(e,t,n){let r=await $e(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=Zh(r,t,n);return s==="present"||await Ce(e,r)?s:"error"}async function Ln(e,t){if(!zh(e))return"absent";let n=await $e(e);return n?Jh(n,t)?await Ce(e,n)?"removed":"error":"absent":"error"}function pe(){return Wh.homedir()}function Qa(e){return e.version===void 0&&(e.version=1),e.version===1}function Vh(e,t,n){return Promise.all(e.map(r=>ts(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function Kh(e,t){return Promise.all(e.map(n=>Ln(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function Qe(e,t){return{...e,installed:()=>e.files().some(n=>es(n,t)),ensure:n=>Vh(e.files(),t,n),remove:()=>Kh(e.files(),t)}}var qh={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:Qa};function Yh(){return B(process.env.COPILOT_HOME||B(pe(),".copilot"),"hooks","tokmizer.json")}var Xh={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:Qa};function Qh(){let e=[B(pe(),".trae","hooks.json")];return rs(B(pe(),".trae-cn"))&&e.push(B(pe(),".trae-cn","hooks.json")),e}var ey={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};function ty(){return B(process.env.QWEN_HOME||B(pe(),".qwen"),"settings.json")}var ny={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};function ry(){return B(process.env.XDG_CONFIG_HOME||B(pe(),".config"),"crush","crush.json")}var sy={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};function oy(){return B(pe(),".junie","config.json")}function iy(e){return e.hooks===void 0&&(e.hooks={}),D(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||D(e.hooks.events)):!1}var ay={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:iy};function ly(){return B(pe(),".zcode","cli","config.json")}var uy={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};function cy(){return B(pe(),".grok","hooks","tokmizer.json")}var fy="tkr-droid-hook",ss={mark:fy,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},dy={...ss,nested:!0};function ns(){return B(pe(),".factory")}function Mn(){return[{file:B(ns(),"hooks.json"),spec:ss},{file:B(ns(),"hooks","hooks.json"),spec:ss},{file:B(ns(),"settings.json"),spec:dy}]}function qa(e){try{let t=JSON.parse(Gh(e,"utf8"));return D(t)?t:null}catch{return null}}function Ya(e,t){let n=t?e?.hooks:e;return D(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function Xa(){let[e,t,n]=Mn(),r=rs(e.file)?e:rs(t.file)?t:null;return r&&Ya(qa(r.file),!1)?r:Ya(qa(n.file),!0)?n:r??e}var py={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[Xa().file],installed:()=>Mn().some(e=>es(e.file,e.spec)),ensure:async e=>{let t=Xa(),n=await ts(t.file,t.spec,e);return n==="error"||await Promise.all(Mn().filter(r=>r.file!==t.file).map(r=>Ln(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(Mn().map(t=>Ln(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},el=[Qe({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:()=>[Yh()]},qh),py,Qe({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:Qh},Xh),Qe({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[ty()]},ey),Qe({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[ry()]},ny),Qe({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[oy()]},sy),Qe({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[ly()]},ay),Qe({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:()=>[cy()]},uy)];var my=[{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:[]}],WT=[...my.map(e=>e.host),"shell"];var VT={cursor:{installed:Ta,setup:"tkr setup-cursor"},"gemini-cli":{installed:Ra,setup:"tkr setup-gemini"},...Object.fromEntries(Ba.map(e=>[e.host,{installed:()=>Za(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(el.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))};function tl(e){return null}import{createConnection as Ry}from"node:net";import{spawn as $y}from"node:child_process";import{existsSync as ll,openSync as ls,closeSync as il,unlinkSync as cs,writeFileSync as fs,mkdirSync as ds,readFileSync as ul,appendFileSync as Cy,rmSync as Oy,statSync as cl}from"node:fs";import{dirname as Iy,join as ps}from"node:path";import{fileURLToPath as Ny}from"node:url";var gy=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()}),hy=k.object({id:k.string().min(1).max(64),op:k.literal("ping")}),yy=k.object({id:k.string().min(1).max(64),op:k.literal("shutdown"),installId:k.string().min(1).max(64)}),ky=k.object({id:k.string().min(1).max(64),op:k.literal("reload"),installId:k.string().min(1).max(64).optional()}),XT=k.discriminatedUnion("op",[gy,hy,yy,ky]),QT=k.object({id:k.string(),ok:k.literal(!0),data:k.unknown()}),eA=k.object({id:k.string(),ok:k.literal(!1),err:k.string(),retryAfterMs:k.number().int().nonnegative().optional()}),nl=k.object({filter:Te.nullable(),cacheHit:k.boolean().optional()}),Fn=`
104
- `,tA=64*1024;function os(e){return JSON.stringify(e)+Fn}function*rl(e){let t=0;for(;;){let n=e.indexOf(Fn,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function Kt(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}import by from"node:os";import{join as qt}from"node:path";import{existsSync as _y,statSync as xy,lstatSync as sl,unlinkSync as wy,mkdirSync as Sy,chmodSync as vy}from"node:fs";import{createHash as Ey}from"node:crypto";var is=100;function Ty(e){let t=Ey("sha256").update(R()).digest("hex").slice(0,8),n=qt(by.tmpdir(),`tkr-${e}-${t}`),r=qt(n,"d.sock");if(Buffer.byteLength(r)>is)throw new Error("Temporary directory path is too long for IPC");return ol(n,e),r}function Ay(e,t){try{let n=sl(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function ol(e,t){Sy(e,{recursive:!0,mode:448});let n=sl(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");vy(e,448)}function Yt(){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&&Ay(t,e)){let s=qt(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(s)<=is)return{path:s,isPipe:!1}}let n=qt(R(),"run"),r=qt(n,"daemon.sock");return Buffer.byteLength(r)>is?{path:Ty(e),isPipe:!1}:(ol(n,e),{path:r,isPipe:!1})}async function as(){let{path:e,isPipe:t}=Yt();if(t||!_y(e))return;try{if(!xy(e).isSocket())return}catch{return}let n=await import("node:net");if(!await new Promise(s=>{let o=n.createConnection(e),i=a=>{o.removeAllListeners();try{o.destroy()}catch{}s(a)};o.once("connect",()=>i(!0)),o.once("error",a=>{let l=a.code;i(l!=="ECONNREFUSED"&&l!=="ENOENT")}),setTimeout(()=>i(!0),250)}))try{wy(e)}catch{}}var lA=5*6e4;var fl=500,Py=3e3,al=1,Dy=6e4,Ly=256*1024;function ms(){return ps(R(),"daemon.spawn.fail")}function gs(){return ps(R(),"daemon.log")}function My(){try{let e=Number(ul(ms(),"utf8"));return Number.isFinite(e)&&Date.now()-e<Dy}catch{return!1}}function Fy(e){try{ds(R(),{recursive:!0,mode:448});let t=gs();try{cl(t).size>Ly&&cs(t)}catch{}Cy(t,`${new Date().toISOString()} ${e}
105
- `,{mode:384})}catch{}}function jy(e){try{ds(R(),{recursive:!0,mode:448}),fs(ms(),String(Date.now()),{mode:384})}catch{}Fy(`spawn failed: ${e.message}`)}function Hy(){try{Oy(ms(),{force:!0})}catch{}}async function jn(e,t){return new Promise((n,r)=>{let s=Ry(e),o=a=>{if(s.removeAllListeners("connect"),s.removeAllListeners("error"),clearTimeout(i),a){try{s.destroy()}catch{}r(a)}else n(s)},i=setTimeout(()=>o(new Error("connect timeout")),t);s.once("connect",()=>o(null)),s.once("error",a=>o(a))})}function zy(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:Ny(new URL("../bin/tkr-daemon.js",import.meta.url))}async function us(e,t=3e3){let n=Math.ceil(t/75),r=process.platform==="win32";for(let s=0;s<n;s++){if(r)try{return(await jn(e,75)).destroy(),!0}catch{}else if(ll(e))return!0;await new Promise(o=>setTimeout(o,75))}return!1}function Uy(e,t=Date.now()){try{if(t-cl(e).mtimeMs>1e4)return!0;let r=Number(ul(e,"utf8").trim());if(!Number.isInteger(r)||r<=0)return!1;try{return process.kill(r,0),!1}catch(s){return s.code==="ESRCH"}}catch{return!1}}async function By(e){let t=zy();if(!Ae()&&!ll(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=Yt(),r=process.platform==="win32"?R():Iy(n);try{ds(r,{recursive:!0,mode:448})}catch{}let s=ps(r,"daemon.spawn.lock"),o=null;try{o=ls(s,"wx"),fs(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(!Uy(s)&&await us(n,5e3))return;try{cs(s)}catch{}try{o=ls(s,"wx"),fs(o,String(process.pid))}catch(l){if(l.code==="EEXIST"){await us(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=ls(gs(),"a",384)}catch{}let[a,...l]=Mr(t);if($y(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{il(i)}catch{}if(!await us(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{il(o)}catch{}try{cs(s)}catch{}}}}async function Zy(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Yt(),n=await Ir();try{let r=await jn(t,fl);r.write(os({id:Kt(),op:"shutdown",installId:n})),await new Promise(s=>setTimeout(s,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function Jy(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await jn(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function hs(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Yt(),n=await Ir(),r=null,s=0,o=!1;for(;s<=al;)try{r=await jn(t,fl),Hy();break}catch{if(s+=1,s>al)throw new Error(`tkr-daemon unreachable at ${t}`);if(My())throw new Error(`tkr-daemon spawn on cooldown (see ${gs()})`);await as();try{await By(n),o=!0}catch(c){throw jy(c),c}}if(!r)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";r.setEncoding("utf8"),r.on("data",c=>{a+=c;let f=-1;for(let p=0;p<a.length;p++)a[p]===Fn&&(f=p);if(f<0)return;let d=[];for(let p of rl(a.slice(0,f+1)))d.push(p);a=a.slice(f+1);for(let p of d)if(p)try{let h=JSON.parse(p),y=i.get(h.id);if(!y)continue;clearTimeout(y.timer),i.delete(h.id),y.resolve(h)}catch{}}),r.on("close",()=>{for(let c of i.values())clearTimeout(c.timer),c.reject(new Error("daemon socket closed"));i.clear()}),r.on("error",()=>{});function l(c){return new Promise((f,d)=>{if(r.destroyed||!r.writable){d(new Error("daemon socket closed"));return}let p=setTimeout(()=>{i.delete(c.id),d(new Error(`daemon request timeout (${c.op})`))},Py);i.set(c.id,{resolve:f,reject:d,timer:p}),r.write(os(c))})}let u={filter:async(c,f,d)=>{let p=await l({id:Kt(),op:"filter",cmd:c.slice(0,2048),plan:f,...d&&d.length>0?{allowed:d.slice(0,512)}:{},installId:n});if(!p.ok)throw new Error(p.err);let h=nl.safeParse(p.data);return h.success?h.data.filter:null},ping:async()=>{let c=await l({id:Kt(),op:"ping"});if(!c.ok)throw new Error(c.err);return c.data},reload:async()=>{let c=await l({id:Kt(),op:"reload",installId:n});if(!c.ok)throw new Error(c.err);return c.data},close:()=>{try{r.destroy()}catch{}}};if(!e.skipVersionCheck&&!o){let c=!1;try{let f=await u.ping();if(f.version&&yi(zt,f.version))throw new Error(`newer daemon ${f.version} already running`);c=f.version!==zt}catch(f){throw u.close(),f}if(c){try{await Zy(e.socketPath?{socketPath:e.socketPath}:{})}catch{}u.close();let f=await Jy(t,2e3);if(await as(),!f)throw new Error("stale daemon still running after shutdown request");return hs({...e,skipVersionCheck:!0})}}return u}var _t=null,Xt=null;async function Gy(){if(_t)return _t;if(Xt)return Xt;let e=hs().then(t=>{if(Xt===e)return _t=t,t;try{t.close()}catch{}return null}).catch(()=>null);return Xt=e,e}var ys=null,ks=!1;async function Wy(){return ks||(ks=!0,ys=await xi()??vn()),ys}async function dl(e,t,n){let r=await Wy();if(!r)return null;let s=r.selectFor(e,t,n?[...n]:void 0);return!s||n&&!n.has(X(s.slug))?null:s}function Vy(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function pl(){Cr(async(e,t)=>{let r=t??En(void 0),s=await Gy();if(!s)return dl(e,"pro",r);try{let o=await s.filter(e,"pro",r?[...r]:void 0);return!o||r&&!r.has(X(o.slug))?null:Vy(o)}catch{return dl(e,"pro",r)}})}function ml(){if(Cr(null),_t)try{_t.close()}catch{}_t=null,Xt=null,ys=null,ks=!1}import{readFileSync as Ky}from"node:fs";import{join as qy}from"node:path";function gl(){try{return Ky(qy(R(),"yolo-mode"),"utf8")==="on"}catch{return!1}}import{appendFileSync as tk,chmodSync as nk,mkdirSync as rk,existsSync as sk,readFileSync as LA,rmSync as MA}from"node:fs";import{dirname as ok,join as ik}from"node:path";import{readFileSync as Yy,renameSync as Xy,statSync as Qy,writeFileSync as ek}from"node:fs";function hl(e,t,n){try{if(Qy(e).size<=t)return;let r=Yy(e,"utf8").split(`
106
- `).filter(a=>a.trim()!==""),s=[],o=0;for(let a=r.length-1;a>=0;a-=1){let l=r[a],u=Buffer.byteLength(l)+1;if(o+u>n)break;s.push(l),o+=u}s.reverse();let i=`${e}.tmp-${process.pid}`;ek(i,s.length?`${s.join(`
102
+ ${r}`:r;return await Ma(t,a)?o.length?"updated":"added":"error"}async function Ha(){let e=Wt();if(!Yr(e))return"absent";let t;try{t=await Ia(e,"utf8")}catch{return"error"}let n=Xr(t);if(!n.some(Dn))return"absent";let r=n.map(La).join("").trimEnd(),s=r?`${r}
103
+ `:"";return await Ma(e,s)?"removed":"error"}function Vt(){return qr(Pa.homedir(),".gemini","config","hooks.json")}function Bh(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function za(){try{let e=ee(Na(Vt(),"utf8"));return D(e)&&D(e[Gt])}catch{return!1}}async function Ua(e){let t=Vt(),n=await Oe(t);if(!n)return"error";let r=Bh(e),s=n[Gt];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[Gt]=r,await Ie(t,n)?s===void 0?"added":"updated":"error")}async function Ba(){let e=Vt();if(!Yr(e))return"absent";let t=await Oe(e);return t?Gt in t?(delete t[Gt],await Ie(e,t)?"removed":"error"):"absent":"error"}var Kt=()=>Zh.homedir(),Qr=()=>process.env.XDG_CONFIG_HOME||te(Kt(),".config"),Za=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:te(Qr(),"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:te(Qr(),"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:te(Qr(),"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:Wt,installed:Fa,ensure:ja,remove:Ha,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:Vt,installed:za,ensure:Ua,remove:Ba,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=te(Kt(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:te(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:te(process.env.PI_CODING_AGENT_DIR||te(Kt(),".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:te(Kt(),".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=te(process.env.HERMES_HOME||te(Kt(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:te(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}];function Ja(e){return e.kind==="hook"?e.installed():Ca(e.files()[0].target)}import{existsSync as rs,readFileSync as qh}from"node:fs";import{join as B}from"node:path";import Yh from"node:os";import{existsSync as Jh,readFileSync as Gh}from"node:fs";function Ln(e,t){return D(e)&&_t(e.command,t)}function Ga(e){return e.path??(e.nested?["hooks"]:[])}function Wa(e,t){let n=e;for(let r of Ga(t))D(n[r])||(n[r]={}),n=n[r];return n}function Va(e,t){let n=e;for(let s of Ga(t))n=D(n)?n[s]:void 0;if(!D(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function Wh(e){return D(e)&&Array.isArray(e.hooks)?e.hooks:[]}function Ka(e,t){return(t.matcher===void 0?e:e.flatMap(Wh)).filter(r=>Ln(r,t.mark))}function qa(e,t){return Ka(Va(e,t),t).length>0}function es(e,t){try{let n=ee(Gh(e,"utf8"));return D(n)&&qa(n,t)}catch{return!1}}function Vh(e,t,n){let r=Wa(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=Ka(s,t)[0],i=t.entry(n);if(o){let a=Pn(s,u=>Ln(u,t.mark),o,t.matcher!==void 0),l=Object.entries(i).filter(([u,c])=>JSON.stringify(o[u])!==JSON.stringify(c));if(!l.length&&!a)return"present";for(let[u,c]of l)o[u]=c;return"updated"}return s.push(t.matcher===void 0?i:{matcher:t.matcher,hooks:[i]}),"added"}function Kh(e,t){if(!qa(e,t))return!1;let n=Wa(e,t),r=Va(e,t),s=t.matcher===void 0?r.filter(o=>!Ln(o,t.mark)):r.map(o=>D(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!Ln(i,t.mark))}:o).filter(o=>!D(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function ts(e,t,n){let r=await Oe(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=Vh(r,t,n);return s==="present"||await Ie(e,r)?s:"error"}async function Mn(e,t){if(!Jh(e))return"absent";let n=await Oe(e);return n?Kh(n,t)?await Ie(e,n)?"removed":"error":"absent":"error"}function pe(){return Yh.homedir()}function el(e){return e.version===void 0&&(e.version=1),e.version===1}function Xh(e,t,n){return Promise.all(e.map(r=>ts(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function Qh(e,t){return Promise.all(e.map(n=>Mn(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function Qe(e,t){return{...e,installed:()=>e.files().some(n=>es(n,t)),ensure:n=>Xh(e.files(),t,n),remove:()=>Qh(e.files(),t)}}var ey={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:el};function ty(){return B(process.env.COPILOT_HOME||B(pe(),".copilot"),"hooks","tokmizer.json")}var ny={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:el};function ry(){let e=[B(pe(),".trae","hooks.json")];return rs(B(pe(),".trae-cn"))&&e.push(B(pe(),".trae-cn","hooks.json")),e}var sy={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};function oy(){return B(process.env.QWEN_HOME||B(pe(),".qwen"),"settings.json")}var iy={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};function ay(){return B(process.env.XDG_CONFIG_HOME||B(pe(),".config"),"crush","crush.json")}var ly={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};function uy(){return B(pe(),".junie","config.json")}function cy(e){return e.hooks===void 0&&(e.hooks={}),D(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||D(e.hooks.events)):!1}var fy={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:cy};function dy(){return B(pe(),".zcode","cli","config.json")}var py={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};function my(){return B(pe(),".grok","hooks","tokmizer.json")}var gy="tkr-droid-hook",ss={mark:gy,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},hy={...ss,nested:!0};function ns(){return B(pe(),".factory")}function Fn(){return[{file:B(ns(),"hooks.json"),spec:ss},{file:B(ns(),"hooks","hooks.json"),spec:ss},{file:B(ns(),"settings.json"),spec:hy}]}function Ya(e){try{let t=JSON.parse(qh(e,"utf8"));return D(t)?t:null}catch{return null}}function Xa(e,t){let n=t?e?.hooks:e;return D(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function Qa(){let[e,t,n]=Fn(),r=rs(e.file)?e:rs(t.file)?t:null;return r&&Xa(Ya(r.file),!1)?r:Xa(Ya(n.file),!0)?n:r??e}var yy={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[Qa().file],installed:()=>Fn().some(e=>es(e.file,e.spec)),ensure:async e=>{let t=Qa(),n=await ts(t.file,t.spec,e);return n==="error"||await Promise.all(Fn().filter(r=>r.file!==t.file).map(r=>Mn(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(Fn().map(t=>Mn(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},tl=[Qe({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:()=>[ty()]},ey),yy,Qe({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:ry},ny),Qe({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[oy()]},sy),Qe({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[ay()]},iy),Qe({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[uy()]},ly),Qe({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[dy()]},fy),Qe({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:()=>[my()]},py)];var ky=[{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:[]}],XT=[...ky.map(e=>e.host),"shell"];var QT={cursor:{installed:Aa,setup:"tkr setup-cursor"},"gemini-cli":{installed:$a,setup:"tkr setup-gemini"},...Object.fromEntries(Za.map(e=>[e.host,{installed:()=>Ja(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(tl.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))};function nl(e){return null}import{createConnection as Iy}from"node:net";import{spawn as Ny}from"node:child_process";import{existsSync as ul,openSync as ls,closeSync as al,unlinkSync as cs,writeFileSync as fs,mkdirSync as ds,readFileSync as cl,appendFileSync as Py,rmSync as Dy,statSync as fl}from"node:fs";import{dirname as Ly,join as ps}from"node:path";import{fileURLToPath as My}from"node:url";var by=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()}),_y=k.object({id:k.string().min(1).max(64),op:k.literal("ping")}),xy=k.object({id:k.string().min(1).max(64),op:k.literal("shutdown"),installId:k.string().min(1).max(64)}),wy=k.object({id:k.string().min(1).max(64),op:k.literal("reload"),installId:k.string().min(1).max(64).optional()}),rA=k.discriminatedUnion("op",[by,_y,xy,wy]),sA=k.object({id:k.string(),ok:k.literal(!0),data:k.unknown()}),oA=k.object({id:k.string(),ok:k.literal(!1),err:k.string(),retryAfterMs:k.number().int().nonnegative().optional()}),rl=k.object({filter:$e.nullable(),cacheHit:k.boolean().optional()}),jn=`
104
+ `,iA=64*1024;function os(e){return JSON.stringify(e)+jn}function*sl(e){let t=0;for(;;){let n=e.indexOf(jn,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function qt(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}import Sy from"node:os";import{join as Yt}from"node:path";import{existsSync as vy,statSync as Ey,lstatSync as ol,unlinkSync as Ty,mkdirSync as Ay,chmodSync as Ry}from"node:fs";import{createHash as $y}from"node:crypto";var is=100;function Cy(e){let t=$y("sha256").update(R()).digest("hex").slice(0,8),n=Yt(Sy.tmpdir(),`tkr-${e}-${t}`),r=Yt(n,"d.sock");if(Buffer.byteLength(r)>is)throw new Error("Temporary directory path is too long for IPC");return il(n,e),r}function Oy(e,t){try{let n=ol(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function il(e,t){Ay(e,{recursive:!0,mode:448});let n=ol(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");Ry(e,448)}function Xt(){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&&Oy(t,e)){let s=Yt(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(s)<=is)return{path:s,isPipe:!1}}let n=Yt(R(),"run"),r=Yt(n,"daemon.sock");return Buffer.byteLength(r)>is?{path:Cy(e),isPipe:!1}:(il(n,e),{path:r,isPipe:!1})}async function as(){let{path:e,isPipe:t}=Xt();if(t||!vy(e))return;try{if(!Ey(e).isSocket())return}catch{return}let n=await import("node:net");if(!await new Promise(s=>{let o=n.createConnection(e),i=a=>{o.removeAllListeners();try{o.destroy()}catch{}s(a)};o.once("connect",()=>i(!0)),o.once("error",a=>{let l=a.code;i(l!=="ECONNREFUSED"&&l!=="ENOENT")}),setTimeout(()=>i(!0),250)}))try{Ty(e)}catch{}}var pA=5*6e4;var dl=500,Fy=3e3,ll=1,jy=6e4,Hy=256*1024;function ms(){return ps(R(),"daemon.spawn.fail")}function gs(){return ps(R(),"daemon.log")}function zy(){try{let e=Number(cl(ms(),"utf8"));return Number.isFinite(e)&&Date.now()-e<jy}catch{return!1}}function Uy(e){try{ds(R(),{recursive:!0,mode:448});let t=gs();try{fl(t).size>Hy&&cs(t)}catch{}Py(t,`${new Date().toISOString()} ${e}
105
+ `,{mode:384})}catch{}}function By(e){try{ds(R(),{recursive:!0,mode:448}),fs(ms(),String(Date.now()),{mode:384})}catch{}Uy(`spawn failed: ${e.message}`)}function Zy(){try{Dy(ms(),{force:!0})}catch{}}async function Hn(e,t){return new Promise((n,r)=>{let s=Iy(e),o=a=>{if(s.removeAllListeners("connect"),s.removeAllListeners("error"),clearTimeout(i),a){try{s.destroy()}catch{}r(a)}else n(s)},i=setTimeout(()=>o(new Error("connect timeout")),t);s.once("connect",()=>o(null)),s.once("error",a=>o(a))})}function Jy(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:My(new URL("../bin/tkr-daemon.js",import.meta.url))}async function us(e,t=3e3){let n=Math.ceil(t/75),r=process.platform==="win32";for(let s=0;s<n;s++){if(r)try{return(await Hn(e,75)).destroy(),!0}catch{}else if(ul(e))return!0;await new Promise(o=>setTimeout(o,75))}return!1}function Gy(e,t=Date.now()){try{if(t-fl(e).mtimeMs>1e4)return!0;let r=Number(cl(e,"utf8").trim());if(!Number.isInteger(r)||r<=0)return!1;try{return process.kill(r,0),!1}catch(s){return s.code==="ESRCH"}}catch{return!1}}async function Wy(e){let t=Jy();if(!_e()&&!ul(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=Xt(),r=process.platform==="win32"?R():Ly(n);try{ds(r,{recursive:!0,mode:448})}catch{}let s=ps(r,"daemon.spawn.lock"),o=null;try{o=ls(s,"wx"),fs(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(!Gy(s)&&await us(n,5e3))return;try{cs(s)}catch{}try{o=ls(s,"wx"),fs(o,String(process.pid))}catch(l){if(l.code==="EEXIST"){await us(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=ls(gs(),"a",384)}catch{}let[a,...l]=Zt(t);if(Ny(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{al(i)}catch{}if(!await us(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{al(o)}catch{}try{cs(s)}catch{}}}}async function Vy(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Xt(),n=await Nr();try{let r=await Hn(t,dl);r.write(os({id:qt(),op:"shutdown",installId:n})),await new Promise(s=>setTimeout(s,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function Ky(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await Hn(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function hs(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Xt(),n=await Nr(),r=null,s=0,o=!1;for(;s<=ll;)try{r=await Hn(t,dl),Zy();break}catch{if(s+=1,s>ll)throw new Error(`tkr-daemon unreachable at ${t}`);if(zy())throw new Error(`tkr-daemon spawn on cooldown (see ${gs()})`);await as();try{await Wy(n),o=!0}catch(c){throw By(c),c}}if(!r)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";r.setEncoding("utf8"),r.on("data",c=>{a+=c;let f=-1;for(let p=0;p<a.length;p++)a[p]===jn&&(f=p);if(f<0)return;let d=[];for(let p of sl(a.slice(0,f+1)))d.push(p);a=a.slice(f+1);for(let p of d)if(p)try{let y=JSON.parse(p),h=i.get(y.id);if(!h)continue;clearTimeout(h.timer),i.delete(y.id),h.resolve(y)}catch{}}),r.on("close",()=>{for(let c of i.values())clearTimeout(c.timer),c.reject(new Error("daemon socket closed"));i.clear()}),r.on("error",()=>{});function l(c){return new Promise((f,d)=>{if(r.destroyed||!r.writable){d(new Error("daemon socket closed"));return}let p=setTimeout(()=>{i.delete(c.id),d(new Error(`daemon request timeout (${c.op})`))},Fy);i.set(c.id,{resolve:f,reject:d,timer:p}),r.write(os(c))})}let u={filter:async(c,f,d)=>{let p=await l({id:qt(),op:"filter",cmd:c.slice(0,2048),plan:f,...d&&d.length>0?{allowed:d.slice(0,512)}:{},installId:n});if(!p.ok)throw new Error(p.err);let y=rl.safeParse(p.data);return y.success?y.data.filter:null},ping:async()=>{let c=await l({id:qt(),op:"ping"});if(!c.ok)throw new Error(c.err);return c.data},reload:async()=>{let c=await l({id:qt(),op:"reload",installId:n});if(!c.ok)throw new Error(c.err);return c.data},close:()=>{try{r.destroy()}catch{}}};if(!e.skipVersionCheck&&!o){let c=!1;try{let f=await u.ping();if(f.version&&ki(zt,f.version))throw new Error(`newer daemon ${f.version} already running`);c=f.version!==zt}catch(f){throw u.close(),f}if(c){try{await Vy(e.socketPath?{socketPath:e.socketPath}:{})}catch{}u.close();let f=await Ky(t,2e3);if(await as(),!f)throw new Error("stale daemon still running after shutdown request");return hs({...e,skipVersionCheck:!0})}}return u}var xt=null,Qt=null;async function qy(){if(xt)return xt;if(Qt)return Qt;let e=hs().then(t=>{if(Qt===e)return xt=t,t;try{t.close()}catch{}return null}).catch(()=>null);return Qt=e,e}var ys=null,ks=!1;async function Yy(){return ks||(ks=!0,ys=await wi()??En()),ys}async function pl(e,t,n){let r=await Yy();if(!r)return null;let s=r.selectFor(e,t,n?[...n]:void 0);return!s||n&&!n.has(X(s.slug))?null:s}function Xy(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function ml(){Or(async(e,t)=>{let r=t??Tn(void 0),s=await qy();if(!s)return pl(e,"pro",r);try{let o=await s.filter(e,"pro",r?[...r]:void 0);return!o||r&&!r.has(X(o.slug))?null:Xy(o)}catch{return pl(e,"pro",r)}})}function gl(){if(Or(null),xt)try{xt.close()}catch{}xt=null,Qt=null,ys=null,ks=!1}import{readFileSync as Qy}from"node:fs";import{join as ek}from"node:path";function hl(){try{return Qy(ek(R(),"yolo-mode"),"utf8")==="on"}catch{return!1}}import{appendFileSync as ok,chmodSync as ik,mkdirSync as ak,existsSync as lk,readFileSync as zA,rmSync as UA}from"node:fs";import{dirname as uk,join as ck}from"node:path";import{readFileSync as tk,renameSync as nk,statSync as rk,writeFileSync as sk}from"node:fs";function yl(e,t,n){try{if(rk(e).size<=t)return;let r=tk(e,"utf8").split(`
106
+ `).filter(a=>a.trim()!==""),s=[],o=0;for(let a=r.length-1;a>=0;a-=1){let l=r[a],u=Buffer.byteLength(l)+1;if(o+u>n)break;s.push(l),o+=u}s.reverse();let i=`${e}.tmp-${process.pid}`;sk(i,s.length?`${s.join(`
107
107
  `)}
108
- `:"",{mode:384}),Xy(i,e)}catch{}}var ak="usage.jsonl";var yl=2*1024*1024;function lk(){return ik(R(),ak)}function ne(e,t,n=lk()){try{let r=ok(n);sk(r)||rk(r,{recursive:!0,mode:448});let s=e.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";tk(n,`{"t":${Math.floor(Date.now()/1e3)},"s":"${s}","o":${t?1:0}}
109
- `,{mode:384}),nk(n,384),hl(n,yl,yl/2)}catch{}}pn();import{spawnSync as Ll}from"node:child_process";import{existsSync as Oe,readFileSync as en,readdirSync as Un,statSync as Uk}from"node:fs";import{homedir as et,userInfo as Bk}from"node:os";import{fileURLToPath as Zk}from"node:url";import{dirname as Ml,join as C,resolve as Jk,win32 as Gk}from"node:path";import{execFileSync as $k}from"node:child_process";import{mkdirSync as Ck,readFileSync as wl,renameSync as Ok,statSync as Ik,writeFileSync as Nk}from"node:fs";import{join as Sl}from"node:path";import{closeSync as uk,openSync as ck,readSync as fk,readdirSync as dk,readFileSync as pk,statSync as bl}from"node:fs";import{homedir as mk}from"node:os";import{isAbsolute as gk,join as Hn,resolve as hk}from"node:path";var yk=/^[A-Za-z0-9._+@%:,/-]+$/,kk=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),bk=32,_k=4*1024*1024;function _s(e){let t;try{t=ck(e,"r");let n=Buffer.alloc(4),r=fk(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&&uk(t)}}function Qt(e,t=process.platform){try{let n=bl(e);if(!n.isFile())return!1;if(t==="win32")return!0;if((n.mode&73)===0)return!1;let r=_s(e);return r==="#!"||r!==null&&kk.has(r)}catch{return!1}}function xk(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 xt(e,t,n,r=process.platform){if(!yk.test(e))return!1;let s=r==="win32";if(e.includes("/"))return Qt(hk(t??process.cwd(),e),r);if(!n)return!1;let o=s?xk(e):[e];for(let i of n.split(s?";":":"))if(!(!i||!gk(i))){for(let a of o)if(Qt(Hn(i,a),r))return!0}return!1}var wk=/^eval \$'([^\s'()=]+) \(\) /,Sk=/^([^\s'"()=]+) \(\) \{$/,vk=/^alias -- ([^\s=]+)=(.*)$/,Ek=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,Tk=/^export PATH=(.*)$/,Ak=/^(?:--colou?r(?:=\S+)?|-G)$/;function kl(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 Rk(e,t){let n="";for(let r of e.split(`
110
- `)){let s=Tk.exec(r);if(s&&n!=="# Functions"){let o=kl(s[1].trim());/[$`\\]/.test(o)||t.paths.push(o);continue}if(r.startsWith("# ")&&(n!=="# Functions"||Ek.test(r))){n=r;continue}if(n==="# Functions"){let o=wk.exec(r)??Sk.exec(r);o&&t.functions.add(o[1])}else if(n==="# Aliases"){let o=vk.exec(r);o&&t.aliases.set(o[1],kl(o[2].trim()))}}}function bs(e){return e?.code==="ENOENT"}function _l(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=Hn(e||Hn(mk(),".claude"),"shell-snapshots"),r=[];try{for(let s of dk(n)){if(!s.startsWith("snapshot-")||!s.endsWith(".sh"))continue;let o=Hn(n,s);try{let i=bl(o);i.isFile()&&r.push({path:o,mtime:i.mtimeMs,size:i.size})}catch(i){bs(i)||(t.uncertain=!0)}}}catch(s){return bs(s)||(t.uncertain=!0),t}r=r.sort((s,o)=>o.mtime-s.mtime).slice(0,bk);for(let s of r)try{if(s.size>_k)throw new Error("snapshot too large");Rk(pk(s.path,"utf8"),t)}catch(o){bs(o)||(t.uncertain=!0)}return t}function xl(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(s=>Ak.test(s))}var Pk="exec-probe.json",Dk=6e4;function Lk(){return Sl(R(),Pk)}function Mk(e){try{let t=ee(wl(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 Fk(e,t){try{Ck(Sl(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;Nk(n,JSON.stringify(t),{mode:384}),Ok(n,e)}catch{}}function jk(e){try{return $k(e,["--native-check"],{encoding:"utf8",timeout:2e3,maxBuffer:1024,stdio:["ignore","pipe","ignore"],windowsHide:!0}).startsWith("tokmizer-native ")}catch{return!1}}function Hk(e,t){try{let r=wl(e,"utf8").split(`
111
- `,1)[0].slice(2).trim().split(/\s+/),s=r[0]??"";return s==="/usr/bin/env"?xt(r[1]??"",void 0,t):Qt(s)}catch{return!1}}function zk(e,t,n){try{let r=Ik(e);return[e,r.size,r.mtimeMs,r.ino,r.mode,t?n??"":""].join("|")}catch{return`${e}|missing`}}function xs(e,t=process.platform,n=process.env.PATH,r=Lk(),s=Date.now()){let o=t!=="win32"&&_s(e)==="#!",i=zk(e,o,n),a=Mk(r);if(a?.key===i&&(a.ok||s-a.at<Dk))return a.ok;let l=Qt(e,t)&&(o?Hk(e,n):jk(e));return Fk(r,{key:i,ok:l,at:s,skipped:(a?.skipped??0)+(l?0:1)}),l}var Wk=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"]),Vk=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"]),vl=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),El="(?:dev|start|serve|watch|preview)",Kk=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${El}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${El}(?:\\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)`),qk=/(?:^|\s)--watch(?:\s|=|$)/;function Yk(e){return Kk.test(e)&&!qk.test(e)}var Xk=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,Qk=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,Fl=3;function jl(e){let t=Xk.exec(e);if(!t)return null;let n=t[2]==="fish";if(n&&t[3]!=="-c")return null;let r=t[4],s=t[1].length+1,o=e.indexOf(r,s);if(o<=s)return null;let i=e.slice(o+1);if(i&&!/^\s/.test(i))return null;let a=e.slice(s,o);return r==='"'&&/[$`\\!]/.test(a)||n&&Qk.test(a)?null:{script:a,start:s,end:o,quote:r}}var eb=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function tb(e){return Es(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=zl(n.text);return r!==""&&!eb.has(r)&&!vs.test(r)}).length>1}function nb(e,t,n,r,s){if(n>=Fl)return null;let o=jl(e);if(!o)return null;let{script:i,start:a,end:l,quote:u}=o,c=[],f=Ul(i,t,n+1,r,y=>c.push(y));if(f===i||u==='"'&&/["$`]/.test(f))return null;let d=u==="'"?f.replace(/'/g,"'\\''"):f,p=`${e.slice(0,a)}${d}${e.slice(l)}`,h=tb(i);if(s)for(let y of h?[e,...c]:c)s(y);return h?`${t} ${p}`:p}var Tl=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,rb=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*[fF][a-zA-Z]*)(?:\s|=|$)/,sb=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]),Al=new Set(["npm","pnpm","yarn","bun"]),Rl=/^(?:dev|start|serve|preview|watch)(?::\S*)?$/,ob=new Set(["--filter","-F","--dir","-C","--prefix","--workspace","-w","--cwd"]),$l=new Set(["npx","pnpx","bunx"]),ib=new Set(["nodemon","top","htop","btop","watch"]),ab=new Set(["tsc","vitest","jest","webpack","rollup","esbuild","tsup","babel","sass","tailwindcss","mocha","swc","parcel","nest"]),lb=/(?:^|\s)--watch(?:All)?(?:\s|=(?!false(?:\s|$))|$)/,Cl=/(?:^|\s)-w(?:\s|$)/;function ub(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=wt(t[0]??"");if($l.has(n)||Al.has(n)&&(t[1]==="exec"||t[1]==="dlx"))t=t.slice($l.has(n)?1:2).filter((i,a,l)=>!(i.startsWith("-")&&l.slice(0,a).every(u=>u.startsWith("-")))),n=wt(t[0]??"");else if(Al.has(n)){let i=t.slice(1).filter((l,u,c)=>!l.startsWith("-")&&!ob.has(c[u-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&&Rl.test(a)}let r=t.slice(1),s=r.join(" "),o=r.find(i=>!i.startsWith("-"));if(ib.has(n)||lb.test(s)||ab.has(n)&&Cl.test(s))return!0;switch(n){case"next":return o==="dev"||o==="start";case"vite":return!r.includes("build")&&!r.includes("optimize");case"vitest":return o==="watch"||o==="dev";case"cargo":case"dotnet":return o==="watch";case"turbo":{let i=o==="run"?r.filter(a=>!a.startsWith("-"))[1]:o;return i!==void 0&&Rl.test(i)}case"nx":{let i=o==="run"?r.filter(a=>!a.startsWith("-"))[1]?.split(":")[1]:o;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:o==="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)):o==="stats"&&!r.includes("--no-stream")||o==="events"}case"kubectl":return o==="port-forward"||(o==="get"||o==="rollout")&&Cl.test(s)||/(?:^|\s)--watch-only(?:\s|=|$)/.test(s);default:return!1}}function cb(e,t){let n=wt(t);return n==="tail"?rb.test(e):n==="journalctl"?Tl.test(e):n==="stern"||sb.has(n)&&/\blogs?\b/.test(e)&&Tl.test(e)?!0:ub(e.split(/\s+/))}var vs=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,fb=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,db=/(?:^|[;&|\n({])\s*(?:[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)|function\s+[A-Za-z_])/;function wt(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function Hl(e){let t=new Array(e.length).fill(!1),n=[],r=0;for(;r<e.length;){let s=e[r],o=e[r+1],i=n[n.length-1];if(i==="'"){s==="'"&&n.pop(),r+=1;continue}if(s==="\\"){if(o===void 0)return null;r+=2;continue}if(i==="$'"){s==="'"&&n.pop(),r+=1;continue}if(s==="$"&&(o==="("||o==="{")){n.push(o==="("?")":"}"),r+=2;continue}if(s==="`"){i==="`"?n.pop():n.push("`"),r+=1;continue}if(i==='"'){s==='"'&&n.pop(),r+=1;continue}if(s==="$"&&o==="'"){n.push("$'"),r+=2;continue}if(s==="'"||s==='"'){n.push(s),r+=1;continue}if(s==="("||s==="{"&&i==="}"){n.push(s==="("?")":"}"),r+=1;continue}if(s===i){n.pop(),r+=1;continue}if(s===")"&&i===void 0)return null;t[r]=i===void 0,r+=1}return n.length===0?t:null}function ws(e){let t=Hl(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function Es(e){let t=Hl(e);if(!t)return[{kind:"cmd",text:e,unsafe:!0}];let n=[],r="",s=0,o=()=>{r.length>0&&(n.push({kind:"cmd",text:r}),r="")},i=(a,l)=>{o(),n.push({kind:"sep",text:a}),s+=l};for(;s<e.length;){let a=e[s],l=e[s+1];if(t[s]){if(a===">"&&l==="|"){r+=">|",s+=2;continue}if(a==="&"&&l==="&"){i("&&",2);continue}if(a==="&"&&l!==">"){let u=r.trimEnd(),c=u[u.length-1];if(c!==">"&&c!=="<"&&c!=="&"){i("&",1);continue}}if(a==="|"&&l==="|"){i("||",2);continue}if(a==="|"&&l==="&"){i("|&",2);continue}if(a===";"&&l===";"){let u=e[s+2]==="&";i(u?";;&":";;",u?3:2);continue}if(a===";"||a===`
112
- `||a==="|"){i(a,1);continue}}r+=a,s+=1}return o(),n}function zl(e){return e.trim().split(/\s+/)[0]??""}function oe(e,t=process.platform){try{let n=Ml(Zk(import.meta.url)),r=t==="win32",s=e&&e!=="claude-code"&&e!=="codex"&&!r?`TOKMIZER_HOST=${e} `:"";if(r&&(!e||e==="claude-code")){let l=C(n,"..","bin","tkr-exec.exe");if(Oe(l))return xs(l,t)?`'${l.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let o=C(n,"..","bin","tkr-exec"),i=!r&&Oe(o);if(i&&!xs(o,t))return null;if(!r&&process.env.TOKMIZER_STABLE_RUN!=="0"){let l=fa(C(n,"..","bin","tkr-exec.js"));if(l&&(i||Oe(C(n,"..","bin","tkr-exec.js"))))return`${s}'${l.replace(/'/g,"'\\''")}'`}if(i)return`${s}'${o.replace(/'/g,"'\\''")}'`;if(Ae()){let l=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${s}'${l.replace(/'/g,"'\\''")}' exec`}let a=C(n,"..","bin","tkr-exec.js");return Oe(a)?`${s}node '${a.replace(/'/g,"'\\''")}'`:null}catch{return null}}function pb(e,t="tkr-exec",n=()=>!0,r){return Ul(e,t,0,n,r)}var mb=new Set(["{","for","while","until","if","case","select"]),gb=new Set(["}","done","fi","esac"]),hb=new Set(["then","do","else","elif","!","time","{","if","while","until"]);function yb(e,t){let n=e[t+1];return ws(e[t].text)||n?.kind==="sep"&&(n.text==="|"||n.text==="|&")}function kb(e){let t=new Set,n=[];for(let r=0;r<e.length;r++){let s=e[r];if(!(s.kind!=="cmd"||s.unsafe))for(let o of s.text.trim().split(/\s+/)){if(gb.has(o)){let i=n.pop();if(i!==void 0&&yb(e,r))for(let a=i;a<=r;a++)t.add(a);continue}if(mb.has(o)&&n.push(r),!hb.has(o))break}}return t}function Ul(e,t,n,r,s){if(e.includes("<<")||db.test(e))return e;let o=Es(e),i=kb(o),a=[];for(let l=0;l<o.length;l++){let u=o[l];if(u.kind==="sep"||u.unsafe||i.has(l)){a.push(u.text);continue}let c=u.text.trim();if(!c){a.push(u.text);continue}let f=zl(c),d=o[l+1],p=d?.kind==="sep"&&(d.text==="|"||d.text==="|&"),h=d?.kind==="sep"&&d.text==="&",y=!p&&!h&&!ws(u.text)&&!u.text.includes("<(")&&!u.text.includes(">(")?nb(c,t,n,r,s):null;if(y!==null){a.push(`${u.text.match(/^\s*/)?.[0]??""}${y}${u.text.slice(u.text.trimEnd().length)}`);continue}if(c===t||c.startsWith(t)&&/^\s/.test(c.slice(t.length))||Wk.has(f)||Vk.has(f)||(vl.has(f)||vl.has(wt(f)))&&!Yk(c)||vs.test(f)||f.startsWith("(")||f.startsWith("#")||f.startsWith("<")||f.startsWith(">")||fb.test(c)||cb(c,f)||f.endsWith(")")||p||h||ws(u.text)||u.text.includes("<(")||u.text.includes(">(")||f==="node"&&c.includes("tkr-exec.js")||!r(f,c)){a.push(u.text);continue}let m=u.text.match(/^\s*/)?.[0]??"",b=u.text.slice(u.text.trimEnd().length);s?.(c),a.push(`${m}${t} ${c}${b}`)}return a.join("")}var bb=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),_b=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"]),xb=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),wb={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/},zn=["test","run test","run build","run lint","run typecheck"],Sb={npm:new Set(zn),pnpm:new Set([...zn,"build","lint","typecheck"]),yarn:new Set([...zn,"build","lint","typecheck"]),bun:new Set(zn),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"])},vb=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function Bl(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 Es(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let s=n<Fl?jl(r.text.trim()):null;if(s){if(!Bl(s.script,t,n+1))return!1;continue}let o=r.text.trim().split(/\s+/).filter(Boolean).map(u=>u.replace(/['"\\]/g,""));if(o.length===0)continue;if(o.some(u=>vs.test(u)))return!1;let i=wt(o[0]);if(i!==o[0])return!1;let a=wb[i];if(a&&o.slice(1).some(u=>a.test(u)))return!1;if((i==="git"?xb.has(o[1]??""):_b.has(i))||t&&vb.has(i))continue;let l=t?Sb[i]:void 0;if(!(l&&(l.has(o[1]??"")||o[1]==="run"&&l.has(`run ${o[2]??""}`))))return!1}return!0}function Zl(e,t,n=oe(t),r=ne,s=Bn(),o=process.env.PATH,i=Ts){if(!H(e)||e.tool_name!=="Bash"||t==="claude-code"&&Tb(i()))return null;let a=e.tool_input;if(!H(a)||a.run_in_background)return null;let l=a.command;if(typeof l!="string"||!l||t==="codex"&&Object.keys(a).some(y=>!bb.has(y)))return null;let u=typeof e.cwd=="string"&&e.cwd?e.cwd:a.workdir,c=typeof u=="string"&&u?u: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=Ql(l,{host:t,sessionId:f,cwd:c,claudeDirs:s,pathEnv:o,permissionMode:d},n,r);if(!p)return null;let h={...a,command:p.command};return JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:h}:p.allowedBy?{hookEventName:"PreToolUse",permissionDecision:"allow",permissionDecisionReason:`Tokmizer: allowed by your rule ${p.allowedBy}`,updatedInput:h}:p.ask?{hookEventName:"PreToolUse",permissionDecision:"ask",permissionDecisionReason:"Tokmizer shortens this command's output; nothing else changes.",updatedInput:h}:{hookEventName:"PreToolUse",updatedInput:h}})}var Eb=/(?:^|\s)--(?:disallowedTools|disallowed-tools|settings|setting-sources)(?:[=\s]|$)/;function Ts(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=Ll("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 Tb(e){return e===null||Eb.test(e)}function Ab(e,t){if(!Oe(e))return"missing";try{let n=en(e,"utf8").replace(/^\uFEFF/,"");return n.trim()===""?{}:JSON.parse(t?Jl(n):n)}catch{return"unreadable"}}function Jl(e){let t="",n=!1;for(let r=0;r<e.length;r++){let s=e[r];if(n){t+=s,s==="\\"?t+=e[++r]??"":s==='"'&&(n=!1);continue}if(s==='"')n=!0,t+=s;else if(s==="/"&&e[r+1]==="/"){for(;r<e.length&&e[r]!==`
108
+ `:"",{mode:384}),nk(i,e)}catch{}}var fk="usage.jsonl";var kl=2*1024*1024;function dk(){return ck(R(),fk)}function ne(e,t,n=dk()){try{let r=uk(n);lk(r)||ak(r,{recursive:!0,mode:448});let s=e.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";ok(n,`{"t":${Math.floor(Date.now()/1e3)},"s":"${s}","o":${t?1:0}}
109
+ `,{mode:384}),ik(n,384),yl(n,kl,kl/2)}catch{}}mn();import{spawnSync as Ml}from"node:child_process";import{existsSync as Se,readFileSync as tn,readdirSync as Bn,statSync as Gk}from"node:fs";import{homedir as tt,userInfo as Wk}from"node:os";import{fileURLToPath as Fl}from"node:url";import{dirname as vs,join as $,resolve as Vk,win32 as Kk}from"node:path";import{execFileSync as Nk}from"node:child_process";import{mkdirSync as Pk,readFileSync as Sl,renameSync as Dk,statSync as Lk,writeFileSync as Mk}from"node:fs";import{join as vl}from"node:path";import{closeSync as pk,openSync as mk,readSync as gk,readdirSync as hk,readFileSync as yk,statSync as _l}from"node:fs";import{homedir as kk}from"node:os";import{isAbsolute as bk,join as zn,resolve as _k}from"node:path";var xk=/^[A-Za-z0-9._+@%:,/-]+$/,wk=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),Sk=32,vk=4*1024*1024;function _s(e){let t;try{t=mk(e,"r");let n=Buffer.alloc(4),r=gk(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&&pk(t)}}function en(e,t=process.platform){try{let n=_l(e);if(!n.isFile())return!1;if(t==="win32")return!0;if((n.mode&73)===0)return!1;let r=_s(e);return r==="#!"||r!==null&&wk.has(r)}catch{return!1}}function Ek(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 et(e,t,n,r=process.platform){if(!xk.test(e))return!1;let s=r==="win32";if(e.includes("/"))return en(_k(t??process.cwd(),e),r);if(!n)return!1;let o=s?Ek(e):[e];for(let i of n.split(s?";":":"))if(!(!i||!bk(i))){for(let a of o)if(en(zn(i,a),r))return!0}return!1}var Tk=/^eval \$'([^\s'()=]+) \(\) /,Ak=/^([^\s'"()=]+) \(\) \{$/,Rk=/^alias -- ([^\s=]+)=(.*)$/,$k=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,Ck=/^export PATH=(.*)$/,Ok=/^(?:--colou?r(?:=\S+)?|-G)$/;function bl(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 Ik(e,t){let n="";for(let r of e.split(`
110
+ `)){let s=Ck.exec(r);if(s&&n!=="# Functions"){let o=bl(s[1].trim());/[$`\\]/.test(o)||t.paths.push(o);continue}if(r.startsWith("# ")&&(n!=="# Functions"||$k.test(r))){n=r;continue}if(n==="# Functions"){let o=Tk.exec(r)??Ak.exec(r);o&&t.functions.add(o[1])}else if(n==="# Aliases"){let o=Rk.exec(r);o&&t.aliases.set(o[1],bl(o[2].trim()))}}}function bs(e){return e?.code==="ENOENT"}function xl(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=zn(e||zn(kk(),".claude"),"shell-snapshots"),r=[];try{for(let s of hk(n)){if(!s.startsWith("snapshot-")||!s.endsWith(".sh"))continue;let o=zn(n,s);try{let i=_l(o);i.isFile()&&r.push({path:o,mtime:i.mtimeMs,size:i.size})}catch(i){bs(i)||(t.uncertain=!0)}}}catch(s){return bs(s)||(t.uncertain=!0),t}r=r.sort((s,o)=>o.mtime-s.mtime).slice(0,Sk);for(let s of r)try{if(s.size>vk)throw new Error("snapshot too large");Ik(yk(s.path,"utf8"),t)}catch(o){bs(o)||(t.uncertain=!0)}return t}function wl(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(s=>Ok.test(s))}var Fk="exec-probe.json",jk=6e4;function Hk(){return vl(R(),Fk)}function zk(e){try{let t=ee(Sl(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 Uk(e,t){try{Pk(vl(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;Mk(n,JSON.stringify(t),{mode:384}),Dk(n,e)}catch{}}function Bk(e){try{return Nk(e,["--native-check"],{encoding:"utf8",timeout:2e3,maxBuffer:1024,stdio:["ignore","pipe","ignore"],windowsHide:!0}).startsWith("tokmizer-native ")}catch{return!1}}function Zk(e,t){try{let r=Sl(e,"utf8").split(`
111
+ `,1)[0].slice(2).trim().split(/\s+/),s=r[0]??"";return s==="/usr/bin/env"?et(r[1]??"",void 0,t):en(s)}catch{return!1}}function Jk(e,t,n){try{let r=Lk(e);return[e,r.size,r.mtimeMs,r.ino,r.mode,t?n??"":""].join("|")}catch{return`${e}|missing`}}function xs(e,t=process.platform,n=process.env.PATH,r=Hk(),s=Date.now()){let o=t!=="win32"&&_s(e)==="#!",i=Jk(e,o,n),a=zk(r);if(a?.key===i&&(a.ok||s-a.at<jk))return a.ok;let l=en(e,t)&&(o?Zk(e,n):Bk(e));return Uk(r,{key:i,ok:l,at:s,skipped:(a?.skipped??0)+(l?0:1)}),l}var qk=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"]),Yk=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"]),El=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),Tl="(?:dev|start|serve|watch|preview)",Xk=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${Tl}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${Tl}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|python[0-9.]*\\s+-m\\s+(?:pytest|unittest|mypy|ruff|pylint|flake8|black|tox|nox)(?:\\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)`),Qk=/(?:^|\s)--watch(?:\s|=|$)/;function eb(e){return Xk.test(e)&&!Qk.test(e)}var tb=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,nb=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,jl=3;function Hl(e){let t=tb.exec(e);if(!t)return null;let n=t[2]==="fish";if(n&&t[3]!=="-c")return null;let r=t[4],s=t[1].length+1,o=e.indexOf(r,s);if(o<=s)return null;let i=e.slice(o+1);if(i&&!/^\s/.test(i))return null;let a=e.slice(s,o);return r==='"'&&/[$`\\!]/.test(a)||n&&nb.test(a)?null:{script:a,start:s,end:o,quote:r}}var rb=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function sb(e){return Ts(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=Ul(n.text);return r!==""&&!rb.has(r)&&!Es.test(r)}).length>1}function ob(e,t,n,r,s){if(n>=jl)return null;let o=Hl(e);if(!o)return null;let{script:i,start:a,end:l,quote:u}=o,c=[],f=Bl(i,t,n+1,r,h=>c.push(h));if(f===i||u==='"'&&/["$`]/.test(f))return null;let d=u==="'"?f.replace(/'/g,"'\\''"):f,p=`${e.slice(0,a)}${d}${e.slice(l)}`,y=sb(i);if(s)for(let h of y?[e,...c]:c)s(h);return y?`${t} ${p}`:p}var Al=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,ib=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*[fF][a-zA-Z]*)(?:\s|=|$)/,ab=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]),Rl=new Set(["npm","pnpm","yarn","bun"]),$l=/^(?:dev|start|serve|preview|watch)(?::\S*)?$/,lb=new Set(["--filter","-F","--dir","-C","--prefix","--workspace","-w","--cwd"]),Cl=new Set(["npx","pnpx","bunx"]),ub=new Set(["nodemon","top","htop","btop","watch"]),cb=new Set(["tsc","vitest","jest","webpack","rollup","esbuild","tsup","babel","sass","tailwindcss","mocha","swc","parcel","nest"]),fb=/(?:^|\s)--watch(?:All)?(?:\s|=(?!false(?:\s|$))|$)/,Ol=/(?:^|\s)-w(?:\s|$)/;function db(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=wt(t[0]??"");if(Cl.has(n)||Rl.has(n)&&(t[1]==="exec"||t[1]==="dlx"))t=t.slice(Cl.has(n)?1:2).filter((i,a,l)=>!(i.startsWith("-")&&l.slice(0,a).every(u=>u.startsWith("-")))),n=wt(t[0]??"");else if(Rl.has(n)){let i=t.slice(1).filter((l,u,c)=>!l.startsWith("-")&&!lb.has(c[u-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&&$l.test(a)}let r=t.slice(1),s=r.join(" "),o=r.find(i=>!i.startsWith("-"));if(ub.has(n)||fb.test(s)||cb.has(n)&&Ol.test(s))return!0;switch(n){case"next":return o==="dev"||o==="start";case"vite":return!r.includes("build")&&!r.includes("optimize");case"vitest":return o==="watch"||o==="dev";case"cargo":case"dotnet":return o==="watch";case"turbo":{let i=o==="run"?r.filter(a=>!a.startsWith("-"))[1]:o;return i!==void 0&&$l.test(i)}case"nx":{let i=o==="run"?r.filter(a=>!a.startsWith("-"))[1]?.split(":")[1]:o;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:o==="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)):o==="stats"&&!r.includes("--no-stream")||o==="events"}case"kubectl":return o==="port-forward"||(o==="get"||o==="rollout")&&Ol.test(s)||/(?:^|\s)--watch-only(?:\s|=|$)/.test(s);default:return!1}}function pb(e,t){let n=wt(t);return n==="tail"?ib.test(e):n==="journalctl"?Al.test(e):n==="stern"||ab.has(n)&&/\blogs?\b/.test(e)&&Al.test(e)?!0:db(e.split(/\s+/))}var Es=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,mb=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,gb=/(?:^|[;&|\n({])\s*(?:[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)|function\s+[A-Za-z_])/;function wt(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function zl(e){let t=new Array(e.length).fill(!1),n=[],r=0;for(;r<e.length;){let s=e[r],o=e[r+1],i=n[n.length-1];if(i==="'"){s==="'"&&n.pop(),r+=1;continue}if(s==="\\"){if(o===void 0)return null;r+=2;continue}if(i==="$'"){s==="'"&&n.pop(),r+=1;continue}if(s==="$"&&(o==="("||o==="{")){n.push(o==="("?")":"}"),r+=2;continue}if(s==="`"){i==="`"?n.pop():n.push("`"),r+=1;continue}if(i==='"'){s==='"'&&n.pop(),r+=1;continue}if(s==="$"&&o==="'"){n.push("$'"),r+=2;continue}if(s==="'"||s==='"'){n.push(s),r+=1;continue}if(s==="("||s==="{"&&i==="}"){n.push(s==="("?")":"}"),r+=1;continue}if(s===i){n.pop(),r+=1;continue}if(s===")"&&i===void 0)return null;t[r]=i===void 0,r+=1}return n.length===0?t:null}function ws(e){let t=zl(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function Ts(e){let t=zl(e);if(!t)return[{kind:"cmd",text:e,unsafe:!0}];let n=[],r="",s=0,o=()=>{r.length>0&&(n.push({kind:"cmd",text:r}),r="")},i=(a,l)=>{o(),n.push({kind:"sep",text:a}),s+=l};for(;s<e.length;){let a=e[s],l=e[s+1];if(t[s]){if(a===">"&&l==="|"){r+=">|",s+=2;continue}if(a==="&"&&l==="&"){i("&&",2);continue}if(a==="&"&&l!==">"){let u=r.trimEnd(),c=u[u.length-1];if(c!==">"&&c!=="<"&&c!=="&"){i("&",1);continue}}if(a==="|"&&l==="|"){i("||",2);continue}if(a==="|"&&l==="&"){i("|&",2);continue}if(a===";"&&l===";"){let u=e[s+2]==="&";i(u?";;&":";;",u?3:2);continue}if(a===";"||a===`
112
+ `||a==="|"){i(a,1);continue}}r+=a,s+=1}return o(),n}function Ul(e){return e.trim().split(/\s+/)[0]??""}function oe(e,t=process.platform){try{let n=vs(Fl(import.meta.url)),r=t==="win32",s=e&&e!=="claude-code"&&e!=="codex"&&!r?`TOKMIZER_HOST=${e} `:"";if(r&&(!e||e==="claude-code")){let l=$(n,"..","bin","tkr-exec.exe");if(Se(l))return xs(l,t)?`'${l.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let o=$(n,"..","bin","tkr-exec"),i=!r&&Se(o);if(i&&!xs(o,t))return null;if(!r&&process.env.TOKMIZER_STABLE_RUN!=="0"){let l=da($(n,"..","bin","tkr-exec.js"));if(l&&(i||Se($(n,"..","bin","tkr-exec.js"))))return`${s}'${l.replace(/'/g,"'\\''")}'`}if(i)return`${s}'${o.replace(/'/g,"'\\''")}'`;if(_e()){let l=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${s}'${l.replace(/'/g,"'\\''")}' exec`}let a=$(n,"..","bin","tkr-exec.js");return Se(a)?`${s}node '${a.replace(/'/g,"'\\''")}'`:null}catch{return null}}function hb(e,t="tkr-exec",n=()=>!0,r){return Bl(e,t,0,n,r)}var yb=new Set(["{","for","while","until","if","case","select"]),kb=new Set(["}","done","fi","esac"]),bb=new Set(["then","do","else","elif","!","time","{","if","while","until"]);function _b(e,t){let n=e[t+1];return ws(e[t].text)||n?.kind==="sep"&&(n.text==="|"||n.text==="|&")}function xb(e){let t=new Set,n=[];for(let r=0;r<e.length;r++){let s=e[r];if(!(s.kind!=="cmd"||s.unsafe))for(let o of s.text.trim().split(/\s+/)){if(kb.has(o)){let i=n.pop();if(i!==void 0&&_b(e,r))for(let a=i;a<=r;a++)t.add(a);continue}if(yb.has(o)&&n.push(r),!bb.has(o))break}}return t}function Bl(e,t,n,r,s){if(e.includes("<<")||gb.test(e))return e;let o=Ts(e),i=xb(o),a=[];for(let l=0;l<o.length;l++){let u=o[l];if(u.kind==="sep"||u.unsafe||i.has(l)){a.push(u.text);continue}let c=u.text.trim();if(!c){a.push(u.text);continue}let f=Ul(c),d=o[l+1],p=d?.kind==="sep"&&(d.text==="|"||d.text==="|&"),y=d?.kind==="sep"&&d.text==="&",h=!p&&!y&&!ws(u.text)&&!u.text.includes("<(")&&!u.text.includes(">(")?ob(c,t,n,r,s):null;if(h!==null){a.push(`${u.text.match(/^\s*/)?.[0]??""}${h}${u.text.slice(u.text.trimEnd().length)}`);continue}if(c===t||c.startsWith(t)&&/^\s/.test(c.slice(t.length))||qk.has(f)||Yk.has(f)||(El.has(f)||El.has(wt(f)))&&!eb(c)||Es.test(f)||f.startsWith("(")||f.startsWith("#")||f.startsWith("<")||f.startsWith(">")||mb.test(c)||pb(c,f)||f.endsWith(")")||p||y||ws(u.text)||u.text.includes("<(")||u.text.includes(">(")||f==="node"&&c.includes("tkr-exec.js")||!r(f,c)){a.push(u.text);continue}let m=u.text.match(/^\s*/)?.[0]??"",b=u.text.slice(u.text.trimEnd().length);s?.(c),a.push(`${m}${t} ${c}${b}`)}return a.join("")}var wb=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),Sb=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"]),vb=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),Eb={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/},Un=["test","run test","run build","run lint","run typecheck"],Tb={npm:new Set(Un),pnpm:new Set([...Un,"build","lint","typecheck"]),yarn:new Set([...Un,"build","lint","typecheck"]),bun:new Set(Un),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"])},Ab=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function Zl(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 Ts(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let s=n<jl?Hl(r.text.trim()):null;if(s){if(!Zl(s.script,t,n+1))return!1;continue}let o=r.text.trim().split(/\s+/).filter(Boolean).map(u=>u.replace(/['"\\]/g,""));if(o.length===0)continue;if(o.some(u=>Es.test(u)))return!1;let i=wt(o[0]);if(i!==o[0])return!1;let a=Eb[i];if(a&&o.slice(1).some(u=>a.test(u)))return!1;if((i==="git"?vb.has(o[1]??""):Sb.has(i))||t&&Ab.has(i))continue;let l=t?Tb[i]:void 0;if(!(l&&(l.has(o[1]??"")||o[1]==="run"&&l.has(`run ${o[2]??""}`))))return!1}return!0}function Jl(e,t,n=oe(t),r=ne,s=Zn(),o=process.env.PATH,i=As){if(!H(e)||e.tool_name!=="Bash"||t==="claude-code"&&Ob(i()))return null;let a=e.tool_input;if(!H(a)||a.run_in_background)return null;let l=a.command;if(typeof l!="string"||!l||t==="codex"&&Object.keys(a).some(m=>!wb.has(m)))return null;let u=typeof e.cwd=="string"&&e.cwd?e.cwd:a.workdir,c=typeof u=="string"&&u?u: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=t==="claude-code"?$b(l,c,o):null;if(p)return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...a,command:p}}});let y=eu(l,{host:t,sessionId:f,cwd:c,claudeDirs:s,pathEnv:o,permissionMode:d},n,r);if(!y)return null;let h={...a,command:y.command};return JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:h}:y.allowedBy?{hookEventName:"PreToolUse",permissionDecision:"allow",permissionDecisionReason:`Tokmizer: allowed by your rule ${y.allowedBy}`,updatedInput:h}:y.ask?{hookEventName:"PreToolUse",permissionDecision:"ask",permissionDecisionReason:"Tokmizer shortens this command's output; nothing else changes.",updatedInput:h}:{hookEventName:"PreToolUse",updatedInput:h}})}var Rb=/^tkr\s+restore\s+([0-9a-f]{8,64}(?:\s+--lines\s+\d+:\d+)?|--list)\s*$/;function $b(e,t,n,r=$(vs(Fl(import.meta.url)),"..","bin","tkr.js")){let s=Rb.exec(e.trim());return!s||et("tkr",t,n)||!_e()&&!Se(r)?null:`${Zt(r).map(xe).join(" ")} restore ${s[1].trim()}`}var Cb=/(?:^|\s)--(?:disallowedTools|disallowed-tools|settings|setting-sources)(?:[=\s]|$)/;function As(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=Ml("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 Ob(e){return e===null||Cb.test(e)}function Ib(e,t){if(!Se(e))return"missing";try{let n=tn(e,"utf8").replace(/^\uFEFF/,"");return n.trim()===""?{}:JSON.parse(t?Gl(n):n)}catch{return"unreadable"}}function Gl(e){let t="",n=!1;for(let r=0;r<e.length;r++){let s=e[r];if(n){t+=s,s==="\\"?t+=e[++r]??"":s==='"'&&(n=!1);continue}if(s==='"')n=!0,t+=s;else if(s==="/"&&e[r+1]==="/"){for(;r<e.length&&e[r]!==`
113
113
  `;)r++;t+=`
114
- `}else if(s==="/"&&e[r+1]==="*"){if(r=e.indexOf("*/",r+2),r===-1)return"";r+=1}else t+=s}return t.replace(/,(\s*[}\]])/g,"$1")}function St(e){let t=[],n=Jk(e);for(;;){t.push(n);let r=Ml(n);if(r===n)return t;n=r}}function Rb(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[C(e,"managed-settings.json")];try{for(let n of Un(C(e,"managed-settings.d")))n.endsWith(".json")&&t.push(C(e,"managed-settings.d",n))}catch{return t}return t}function $b(){try{return Bk().username}catch{return""}}function Cb(e){return e.error?e.error.code==="ETIMEDOUT":e.status!==1}var Ob=5*6e4,Ol=new Map;function Gl(e,t){let n=Ol.get(e);if(n&&Date.now()-n.at<Ob)return n.value;let r=["HKLM","HKCU"].some(s=>Cb(Ll(e,["query",`${s}\\SOFTWARE\\Policies\\ClaudeCode`,"/v","Settings"],{cwd:t,stdio:"ignore",timeout:2e3,windowsHide:!0})));return Ol.set(e,{at:Date.now(),value:r}),r}function Ib(){let e=process.env.SystemRoot||"C:\\Windows";return Gl(Gk.join(e,"System32","reg.exe"),e)}var Il="/mnt/c/Windows/System32/reg.exe";function Nb(e){return!process.env.WSL_DISTRO_NAME&&!e("/proc/sys/fs/binfmt_misc/WSLInterop")?!1:e("/mnt/c/Program Files/ClaudeCode")?!0:e(Il)&&Gl(Il,"/mnt/c/Windows")}function Pb(e=process.platform,t=Oe,n=Ib,r=$b(),s=()=>Nb(t)){if(e==="darwin"){let o="/Library/Managed Preferences";return t(C(o,"com.anthropic.claudecode.plist"))||r!==""&&t(C(o,r,"com.anthropic.claudecode.plist"))}return e==="win32"?n():e==="linux"&&s()}function nn(e,t,n,r){let s=[];for(let o of e){let i=Ab(o,t);if(i!=="missing"&&(i==="unreadable"||!H(i)||!n(i,s)))return"unreadable"}return{matchers:s,complete:r}}function tn(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function Bn(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR?.trim()?Rn():void 0}}function Db(e,t){let n=b=>[C(b,"settings.json"),C(b,"settings.local.json")],r=b=>n(C(b,".claude")),s=C(et(),".claude"),o=t.configDir||s;if(Pb())return"unreadable";let a=[[[...[...new Set([C(o,"remote-settings.json"),C(s,"remote-settings.json")])],...Rb()],"managed"],[[C(o,"settings.json")],"loaded"],[[C(o,"settings.local.json")],"loadedLocal"],[t.configDir?n(s):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[St(e).flatMap(r),"extra"]],l=[],u={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},c={managed:!1,loaded:!1,loadedLocal:!1,project:!1,extra:!1},f=!1,d="managed",p=(b,w)=>{let A=b.permissions;if(d==="managed"&&(b.allowManagedPermissionRulesOnly===!0||H(A)&&A.allowManagedPermissionRulesOnly===!0)&&(f=!0),A===void 0)return!0;if(!H(A))return!1;for(let I of["deny","ask","allow"]){let L=tn(A[I]);if(!L)return!1;for(let z of L){let F=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(z);if(F)if(I!=="allow")w.push(tt((F[1]??"*").replace(/:\*$/," *")));else if(F[1]===void 0||F[1].trim()==="*")c[d]=!0;else{l.push(tt(F[1].replace(/:\*$/," *")));let me=t_(F[1]);me&&u[d].push({rule:z.trim(),matches:me})}}}return!0},h=[];for(let[b,w]of a){d=w;let A=nn(b,!1,p,!0);if(A==="unreadable")return"unreadable";h.push(...A.matchers)}let y=c.managed||(c.loaded||c.loadedLocal)&&!f,m=[...u.managed,...f?[]:u.loaded];return{matchers:[...h,...y?[]:l],complete:!0,allow:l,allowsEverything:y,guards:h,trustedAllow:m}}function Lb(e){let t=[C(et(),".cursor","cli-config.json"),...St(e).map(n=>C(n,".cursor","cli.json"))];return nn(t,!0,(n,r)=>{let s=n.permissions;if(s===void 0)return!0;if(!H(s))return!1;let o=tn(s.deny);if(!o)return!1;for(let i of o){let a=/^\s*Shell\s*(?:\(([\s\S]*)\))?\s*$/.exec(i);if(!a)continue;let l=a[1]??"*",u=l.indexOf(":");r.push(tt(u===-1?`${l} *`:`${l.slice(0,u)} ${l.slice(u+1)}`))}return!0},!1)}function Mb(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var Wl=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function Fb(e,t){let n=e.tools;if(n!==void 0&&!H(n))return!1;let r=[tn(e.excludeTools),tn(H(n)?n.exclude:void 0)];for(let s of r){if(!s)return!1;for(let o of s){let i=Wl.exec(o);i&&t.push(tt(i[1]===void 0?"*":`${i[1]}*`))}}return!0}function Nl(e){try{return JSON.parse(e)}catch{return null}}function jb(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 s=r[2]??Nl(`"${r[1]}"`);if(s===null)return null;n.push(s)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?Nl(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function Hb(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 u=/^\s*([A-Za-z_]+)\s*=\s*(.*)$/.exec(l);if(!u)continue;let c=jb(u[2]);if(c===null)return!1;r[u[1]]=c}let s=r.decision;if(s!=="deny"&&s!=="ask_user"||!(r.toolName===void 0?["*"]:[r.toolName].flat()).some(l=>l==="*"||Wl.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(tt(`${l}*`));for(let l of a){let u;try{u=new RegExp(l)}catch{return!1}t.push(c=>u.test(JSON.stringify({command:c}))||Zn(u,c))}}return!0}function Pl(e){try{return Un(e).filter(t=>t.endsWith(".toml")).map(t=>C(e,t))}catch{return[]}}function zb(e){let t=Mb(),n=[C(t,"system-defaults.json"),C(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,C(et(),".gemini","settings.json"),...St(e).map(s=>C(s,".gemini","settings.json"))].filter(s=>!!s),r=nn(n,!0,Fb,!1);if(r==="unreadable")return r;for(let s of[...Pl(C(et(),".gemini","policies")),...Pl(C(t,"policies"))]){let o;try{o=en(s,"utf8")}catch{return"unreadable"}if(!Hb(o,r.matchers))return"unreadable"}return r}function Ss(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!H(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(!H(r))return!1;for(let[s,o]of Object.entries(r))o!=="allow"&&t.push(tt(s.replace(/\?/g,"*")))}}return!0}function Dl(e,t){if(e.permissions!==void 0||!Ss(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!H(r))return!1;for(let s of Object.values(r))if(H(s)&&(s.permissions!==void 0||!Ss(s.permission,t)))return!1}}return!0}function Ub(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=Un(C(t,n))}catch{continue}for(let s of r)try{if(s.endsWith(".md")&&/permission/i.test(en(C(t,n,s),"utf8")))return!0}catch{return!0}}return!1}function Bb(e){let t=C(process.env.XDG_CONFIG_HOME||C(et(),".config"),"opencode"),n=St(e),r=[t,...n.map(a=>C(a,".opencode"))];if(Ub(r))return"unreadable";let s=["opencode.json","opencode.jsonc","config.json"],o=[...s.map(a=>C(t,a)),process.env.OPENCODE_CONFIG,...n.flatMap(a=>[...s.slice(0,2).map(l=>C(a,l)),...s.slice(0,2).map(l=>C(a,".opencode",l))])].filter(a=>!!a),i=nn(o,!0,Dl,!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(Jl(a))}catch{return"unreadable"}if(!(a===process.env.OPENCODE_PERMISSION?Ss(l,i.matchers):H(l)&&Dl(l,i.matchers)))return"unreadable"}return i}function Zb(){return nn([C(et(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!H(n))return!1;for(let r of["deny","ask"]){let s=tn(n[r]);if(!s)return!1;for(let o of s){let i=/^\s*command\s*\(([\s\S]*)\)\s*$/.exec(o);if(!i)continue;let a=i[1].trim();if(!a.startsWith("regex:")){t.push(tt(a==="*"?"*":`${a} *`));continue}let l;try{l=new RegExp(a.slice(6))}catch{return!1}t.push(u=>Zn(l,u))}}return!0},!1)}function Jb(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 Vl(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 s=Vl(e,t);if(s===void 0)return;if(r.push(s),e[t.i]===",")t.i++;else if(e[t.i]!=="]")return}return t.i++,r}function Kl(e){if(!Array.isArray(e)||e.length===0)return null;let t=[];for(let r of e){let s=typeof r=="string"?[r]:Array.isArray(r)?r:null;if(!s||s.length===0||!s.every(o=>typeof o=="string"&&o!==""))return null;t.push(`(?:${s.map(As).join("|")})`)}let n=new RegExp(`^${t.join(" ")}(?= |$)`);return r=>Zn(n,r)}function Gb(e,t){let n=Jb(e);if(!n)return!1;for(let r=0;r<n.length;r++){if(n[r]!=="prefix_rule"||n[r+1]!=="(")continue;let s={i:r+2},o={};for(;n[s.i]!==")";){let l=n[s.i];if(!l||!/^[A-Za-z_]/.test(l)||n[s.i+1]!=="="||(s.i+=2,o[l]=Vl(n,s),o[l]===void 0&&(l==="pattern"||l==="decision")))return!1;if(n[s.i]===",")s.i++;else if(n[s.i]!==")")return!1}r=s.i;let i="decision"in o?o.decision:"allow";if(i!=="allow"&&i!=="prompt"&&i!=="forbidden")return!1;let a=Kl(o.pattern);if(!a)return!1;i!=="allow"&&t.push(a)}return!0}function Wb(e){if(!Oe(e))return[];try{return Un(e).filter(t=>t.endsWith(".rules")).sort().map(t=>C(e,t))}catch{return"unreadable"}}function Vb(){return process.platform==="win32"?C(process.env.ProgramData||"C:\\ProgramData","OpenAI","Codex","requirements.toml"):"/etc/codex/requirements.toml"}function Kb(e){if(!(!H(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 qb(e,t){let n;try{n=Dt(e)}catch{return!1}if(n.rules===void 0)return!0;if(!H(n.rules))return!1;let r=n.rules.prefix_rules;if(r===void 0)return!0;if(!Array.isArray(r))return!1;for(let s of r){if(!H(s)||!Array.isArray(s.pattern)||s.decision!=="prompt"&&s.decision!=="forbidden")return!1;let o=s.pattern.map(Kb);if(o.some(a=>a===void 0))return!1;let i=Kl(o);if(!i)return!1;t.push(i)}return!0}function Yb(e){let t=process.env.CODEX_HOME||C(et(),".codex"),n=[C(t,"rules"),...St(e).map(o=>C(o,".codex","rules"))],r=[],s=null;try{s=en(Vb(),"utf8")}catch(o){let i=o.code;if(i!=="ENOENT"&&i!=="ENOTDIR")return"unreadable"}if(s!==null&&!qb(s,r))return"unreadable";for(let o of[...new Set(n)]){let i=Wb(o);if(i==="unreadable")return"unreadable";for(let a of i){let l;try{l=en(a,"utf8")}catch{return"unreadable"}if(!Gb(l,r))return"unreadable"}}return{matchers:r,complete:!1}}function H(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function As(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Xb(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(As).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var Qb=512;function e_(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(wt)]}function Zn(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of e_(t)){if(n.length>Qb)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function tt(e){let t=Xb(e);return n=>Zn(t,n)}function t_(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 s=new RegExp(`^${As(r)}${n?"(?: [\\s\\S]*)?":""}$`);return o=>s.test(o)}var n_={"claude-code":Db,cursor:Lb,"gemini-cli":zb,opencode:Bb,antigravity:Zb,codex:Yb},r_=new Set(["codex"]),ql=/(?:^|[\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 s_(e,t,n){let r=n_[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function o_(e,t,n){return e==="unreadable"||ql.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||Bl(t,!r_.has(n))}var Yl=new Set(["default","acceptEdits","dontAsk"]);function Xl(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&Yl.has(t.permissionMode??"")}var i_=/(?:^|[\s/])git(?:\.exe|\.real|-[a-z][\w-]*)?(?=\s|$)/;function a_(e){if(!e)return!1;try{for(let t of St(e)){let n=C(t,".git");if(Oe(n))return Uk(n).isFile()}}catch{return!0}return!1}function l_(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r,s;return(o,i)=>e.host!=="claude-code"?xt(o,e.cwd,n):i!==void 0&&i_.test(i)&&(s??=a_(e.cwd))||(r??=_l(t.configDir),!xt(o,e.cwd,n)&&!r.paths.some(a=>xt(o,e.cwd,a)))?!1:o.includes("/")||!xl(o,r)}var u_=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function c_(e,t,n){return n.host!=="claude-code"||e==="unreadable"||Xl(e,n)||!Yl.has(n.permissionMode??"")||!u_.test(t)||ql.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}var f_=65536,d_=/^(?:[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 p_(e,t){return t.host==="claude-code"&&t.permissionMode==="default"&&d_.test(e.trim())}function Ql(e,t,n,r){if(!n||e.length>f_||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let s=t.claudeDirs??Bn(),o=s_(t.host,t.cwd,s),i=c_(o,e,t),a=i||o_(o,e,t.host)?pb(e,n,l_(t,s)):e;return a!==e&&o!=="unreadable"&&(i?(o.guards??[]).some(l=>l(a)):o.matchers.some(l=>l(a))||(o.allow??[]).some(l=>l(a)&&!l(e)))&&(a=e),r(t.sessionId,a!==e),a===e?null:i?{command:a,allowedBy:i}:Xl(o,t)?{command:a}:o!=="unreadable"&&p_(e,t)&&!(o.allow??[]).some(l=>l(e))&&!(o.trustedAllow??[]).some(l=>l.matches(e))?{command:a,ask:!0}:null}function Ie(e,t,n,r){let s=Ql(e,t,n,r);return s&&!s.ask?s.command:null}function J(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function rn(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function m_(e){return J(e,"prompt_id")||J(e,"scratchpad_dir")?!0:rn(e.effort)}function g_(e){return J(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(J(e,"model")??"")}var h_=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),y_=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),k_=new Set(["pre_tool","post_tool"]),b_=new Set(["before_tool_call","after_tool_call"]),__=new Set(["runTerminalCommand","run_in_terminal"]),x_=[["codex",e=>J(e,"turn_id")!==null],["claude-code",m_],["cursor",e=>J(e,"cursor_version")!==null||J(e,"generation_id")!==null||J(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||y_.has(J(e,"hook_event_name")??"")],["gemini-cli",e=>h_.has(J(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>k_.has(J(e,"hook_event_name")??"")],["antigravity",e=>rn(e.toolCall)],["copilot",e=>J(e,"toolName")!==null&&"toolArgs"in e||__.has(J(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||rn(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&&J(e,"event")!==null&&!b_.has(J(e,"event"))]],w_=new Set(["codex","antigravity"]);function Rs(e){return rn(e)?x_.filter(([,t])=>t(e)).map(([t])=>t):[]}function eu(e,t){if(!rn(e))return null;let n=Rs(e);return n.length>1?null:n.length===1?n[0]:g_(e)&&w_.has(t)?"claude-code":t==="codex"?null:t}var $s=JSON.stringify({permission:"allow"});function tu(e,t=oe("cursor"),n=ne){if(e.tool_name!=="Shell")return $s;let r=e.tool_input??{},s=r.command;if(typeof s!="string"||!s)return $s;let o=typeof r.working_directory=="string"?r.working_directory:void 0,i=Ie(s,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:o},de()?null:t,n);return i?JSON.stringify({permission:"allow",updated_input:{...r,command:i}}):$s}var Jn="{}";function nu(e,t=oe("gemini-cli"),n=ne){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return Jn;let r=e.tool_input??{};if(r.is_background)return Jn;let s=r.command;if(typeof s!="string"||!s)return Jn;let o=typeof e.cwd=="string"?e.cwd:void 0,i=Ie(s,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:o},de()?null:t,n);return i?JSON.stringify({hookSpecificOutput:{tool_input:{command:i}}}):Jn}function Et(e,t,n="unknown",r=oe(t),s=ne){return e?Ie(e,{host:t,sessionId:n},de()?null:r,s):null}var S_=new Set(["bash","file_system.bash"]),Cs=JSON.stringify({decision:"allow"});function ru(e,t=(n,r)=>Et(n,"vibe",r)){if(!D(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!S_.has(e.tool_name))return"";let n=e.tool_input;if(!D(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 su(e,t=(n,r)=>Et(n,"antigravity",r)){if(!D(e)||!D(e.toolCall)||e.toolCall.name!=="run_command")return Cs;let n=e.toolCall.args;if(!D(n)||typeof n.CommandLine!="string"||!n.CommandLine)return Cs;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):Cs}var xe="{}",v_=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),E_=["run_in_background","is_background","isBackground"];function Gn(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function T_(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function A_(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function Wn(e,t,n,r,s){if(!Gn(t)||E_.some(i=>t[i]===!0))return null;let o=t.command;return typeof o!="string"||!o?null:Ie(o,{host:e,sessionId:T_(n),cwd:A_(n,t)},de()?null:r,s)}function At(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function R_(e){if(Gn(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return Gn(t)?t:null}catch{return null}}function $_(e,t,n){if(typeof e.tool_name=="string"){if(!v_.has(e.tool_name))return xe;let o=e.tool_input,i=Wn("copilot",o,e,t,n);return i?At(o,i):xe}if(e.toolName!=="bash")return xe;let r=R_(e.toolArgs),s=Wn("copilot",r,e,t,n);return s?JSON.stringify({modifiedArgs:{...r,command:s}}):xe}function Tt(e,t,n){return(r,s,o)=>{if(r.tool_name!==t)return xe;let i=r.tool_input,a=Wn(e,i,r,s,o);return a?n(i,a):xe}}var C_=new Set(["run_terminal_command","Bash","bash"]);function O_(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!C_.has(r))return xe;let s=e.toolInput??e.tool_input,o=Wn("grok",s,e,t,n);return o?At(s,o):xe}var I_={copilot:$_,droid:Tt("droid","Execute",At),trae:Tt("trae","RunCommand",At),"qwen-code":Tt("qwen-code","run_shell_command",At),crush:Tt("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:Tt("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:Tt("zcode","Bash",At),grok:O_};function ou(e,t,n=oe(e),r=ne){return Gn(t)?I_[e](t,n,r):xe}function Rt(e){return de()?null:oe(e)}function N_(e,t,n={}){let r=n.recordUsage??ne;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":Zl(t,e,Rt(e),r,n.claudeDirs??Bn(),n.pathEnv??process.env.PATH,n.launchArgs??Ts)??"";case"cursor":return tu(t,Rt(e),r);case"gemini-cli":return nu(t,Rt(e),r);case"vibe":return ru(t,(s,o)=>Et(s,"vibe",o,Rt(e),r));case"antigravity":return su(t,(s,o)=>Et(s,"antigravity",o,Rt(e),r));default:return ou(e,t,Rt(e),r)}}function vt(e,t,n={}){let r=eu(e,t);return r?N_(r,e,n):n.fallback??""}var P_=new Set(["shell","bash","exec","run_shell_command","execute_shell_command"]);async function D_(e){if(e.event!=="after_tool_call")return{action:"continue"};if(!P_.has(e.tool))return{action:"continue"};let t=typeof e.command=="string"?e.command:Array.isArray(e.args)&&e.args.every(b=>typeof b=="string")?e.args.join(" "):"";if(!t)return{action:"continue"};let n=typeof e.stdout=="string"?e.stdout:"",r=typeof e.stderr=="string"?e.stderr:"",s=gl();if(!n&&(!s||!r))return{action:"continue"};let o=await gt();if(!o.enabled)return{action:"continue"};let i=await Ht();if(!i||!i.token)return{action:"continue"};pl();let a=En(i.allowedFilters,vi(i)),l=new Set(o.filters.disabled.map(X)),u=a&&l.size>0?new Set([...a].filter(b=>!l.has(b))):a,c,f=null;try{c=await Or(t,n,u,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}),s&&r&&(f=await Or(t,r,u,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}))}finally{ml()}let d=c.filteredBytes<c.rawBytes||f!=null&&f.filteredBytes<f.rawBytes,p=f?.output??r,h=p?c.output?`${c.output}
115
- ${p}`:p:c.output,y=Buffer.byteLength(n,"utf8")+Buffer.byteLength(r,"utf8"),m=Xi(y,d?Buffer.byteLength(h,"utf8"):y,tl("codex"));return qi(m.raw,m.filtered,void 0,!1,"codex","sh",Ki(t),process.cwd(),Yi(c)),await Di({cmd:t,filterId:c.filterId,rawBytes:c.rawBytes,filteredBytes:c.filteredBytes}),await Pi({cmd:t,tokensSaved:Math.max(0,Math.round((m.raw-m.filtered)/4)),rawTokens:Math.round(m.raw/4),optimized:c.filterId!=null,telemetryOptIn:o.telemetryOptIn,host:"codex"}),d?{action:"replace_output",replacement:h,reason:"tokmizer"}:{action:"continue"}}var L_=new Set(["before_tool_call","after_tool_call"]);async function M_(e){let t=JSON.stringify({action:"continue"});if(!e)return t;let n;try{n=JSON.parse(e)}catch{return t}if(n==null||typeof n!="object"||Array.isArray(n))return t;if(n.hook_event_name!==void 0||!L_.has(n.event)&&Rs(n).length>0)return vt(n,"codex");try{return JSON.stringify(await D_(n))}catch(r){return process.stderr.write(`tkr-codex: ${r.message}
116
- `),t}}async function iu(){let e=await M_(await mt());e&&process.stdout.write(e)}iu().catch(e=>{process.stderr.write(`tkr-codex-hook: ${e.message}
114
+ `}else if(s==="/"&&e[r+1]==="*"){if(r=e.indexOf("*/",r+2),r===-1)return"";r+=1}else t+=s}return t.replace(/,(\s*[}\]])/g,"$1")}function St(e){let t=[],n=Vk(e);for(;;){t.push(n);let r=vs(n);if(r===n)return t;n=r}}function Nb(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[$(e,"managed-settings.json")];try{for(let n of Bn($(e,"managed-settings.d")))n.endsWith(".json")&&t.push($(e,"managed-settings.d",n))}catch{return t}return t}function Pb(){try{return Wk().username}catch{return""}}function Db(e){return e.error?e.error.code==="ETIMEDOUT":e.status!==1}var Lb=5*6e4,Il=new Map;function Wl(e,t){let n=Il.get(e);if(n&&Date.now()-n.at<Lb)return n.value;let r=["HKLM","HKCU"].some(s=>Db(Ml(e,["query",`${s}\\SOFTWARE\\Policies\\ClaudeCode`,"/v","Settings"],{cwd:t,stdio:"ignore",timeout:2e3,windowsHide:!0})));return Il.set(e,{at:Date.now(),value:r}),r}function Mb(){let e=process.env.SystemRoot||"C:\\Windows";return Wl(Kk.join(e,"System32","reg.exe"),e)}var Nl="/mnt/c/Windows/System32/reg.exe";function Fb(e){return!process.env.WSL_DISTRO_NAME&&!e("/proc/sys/fs/binfmt_misc/WSLInterop")?!1:e("/mnt/c/Program Files/ClaudeCode")?!0:e(Nl)&&Wl(Nl,"/mnt/c/Windows")}function jb(e=process.platform,t=Se,n=Mb,r=Pb(),s=()=>Fb(t)){if(e==="darwin"){let o="/Library/Managed Preferences";return t($(o,"com.anthropic.claudecode.plist"))||r!==""&&t($(o,r,"com.anthropic.claudecode.plist"))}return e==="win32"?n():e==="linux"&&s()}function rn(e,t,n,r){let s=[];for(let o of e){let i=Ib(o,t);if(i!=="missing"&&(i==="unreadable"||!H(i)||!n(i,s)))return"unreadable"}return{matchers:s,complete:r}}function nn(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function Zn(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR?.trim()?$n():void 0}}function Hb(e,t){let n=b=>[$(b,"settings.json"),$(b,"settings.local.json")],r=b=>n($(b,".claude")),s=$(tt(),".claude"),o=t.configDir||s;if(jb())return"unreadable";let a=[[[...[...new Set([$(o,"remote-settings.json"),$(s,"remote-settings.json")])],...Nb()],"managed"],[[$(o,"settings.json")],"loaded"],[[$(o,"settings.local.json")],"loadedLocal"],[t.configDir?n(s):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[St(e).flatMap(r),"extra"]],l=[],u={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},c={managed:!1,loaded:!1,loadedLocal:!1,project:!1,extra:!1},f=!1,d="managed",p=(b,w)=>{let A=b.permissions;if(d==="managed"&&(b.allowManagedPermissionRulesOnly===!0||H(A)&&A.allowManagedPermissionRulesOnly===!0)&&(f=!0),A===void 0)return!0;if(!H(A))return!1;for(let I of["deny","ask","allow"]){let L=nn(A[I]);if(!L)return!1;for(let z of L){let F=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(z);if(F)if(I!=="allow")w.push(nt((F[1]??"*").replace(/:\*$/," *")));else if(F[1]===void 0||F[1].trim()==="*")c[d]=!0;else{l.push(nt(F[1].replace(/:\*$/," *")));let me=i_(F[1]);me&&u[d].push({rule:z.trim(),matches:me})}}}return!0},y=[];for(let[b,w]of a){d=w;let A=rn(b,!1,p,!0);if(A==="unreadable")return"unreadable";y.push(...A.matchers)}let h=c.managed||(c.loaded||c.loadedLocal)&&!f,m=[...u.managed,...f?[]:u.loaded];return{matchers:[...y,...h?[]:l],complete:!0,allow:l,allowsEverything:h,guards:y,trustedAllow:m}}function zb(e){let t=[$(tt(),".cursor","cli-config.json"),...St(e).map(n=>$(n,".cursor","cli.json"))];return rn(t,!0,(n,r)=>{let s=n.permissions;if(s===void 0)return!0;if(!H(s))return!1;let o=nn(s.deny);if(!o)return!1;for(let i of o){let a=/^\s*Shell\s*(?:\(([\s\S]*)\))?\s*$/.exec(i);if(!a)continue;let l=a[1]??"*",u=l.indexOf(":");r.push(nt(u===-1?`${l} *`:`${l.slice(0,u)} ${l.slice(u+1)}`))}return!0},!1)}function Ub(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var Vl=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function Bb(e,t){let n=e.tools;if(n!==void 0&&!H(n))return!1;let r=[nn(e.excludeTools),nn(H(n)?n.exclude:void 0)];for(let s of r){if(!s)return!1;for(let o of s){let i=Vl.exec(o);i&&t.push(nt(i[1]===void 0?"*":`${i[1]}*`))}}return!0}function Pl(e){try{return JSON.parse(e)}catch{return null}}function Zb(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 s=r[2]??Pl(`"${r[1]}"`);if(s===null)return null;n.push(s)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?Pl(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function Jb(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 u=/^\s*([A-Za-z_]+)\s*=\s*(.*)$/.exec(l);if(!u)continue;let c=Zb(u[2]);if(c===null)return!1;r[u[1]]=c}let s=r.decision;if(s!=="deny"&&s!=="ask_user"||!(r.toolName===void 0?["*"]:[r.toolName].flat()).some(l=>l==="*"||Vl.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(nt(`${l}*`));for(let l of a){let u;try{u=new RegExp(l)}catch{return!1}t.push(c=>u.test(JSON.stringify({command:c}))||Jn(u,c))}}return!0}function Dl(e){try{return Bn(e).filter(t=>t.endsWith(".toml")).map(t=>$(e,t))}catch{return[]}}function Gb(e){let t=Ub(),n=[$(t,"system-defaults.json"),$(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,$(tt(),".gemini","settings.json"),...St(e).map(s=>$(s,".gemini","settings.json"))].filter(s=>!!s),r=rn(n,!0,Bb,!1);if(r==="unreadable")return r;for(let s of[...Dl($(tt(),".gemini","policies")),...Dl($(t,"policies"))]){let o;try{o=tn(s,"utf8")}catch{return"unreadable"}if(!Jb(o,r.matchers))return"unreadable"}return r}function Ss(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!H(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(!H(r))return!1;for(let[s,o]of Object.entries(r))o!=="allow"&&t.push(nt(s.replace(/\?/g,"*")))}}return!0}function Ll(e,t){if(e.permissions!==void 0||!Ss(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!H(r))return!1;for(let s of Object.values(r))if(H(s)&&(s.permissions!==void 0||!Ss(s.permission,t)))return!1}}return!0}function Wb(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=Bn($(t,n))}catch{continue}for(let s of r)try{if(s.endsWith(".md")&&/permission/i.test(tn($(t,n,s),"utf8")))return!0}catch{return!0}}return!1}function Vb(e){let t=$(process.env.XDG_CONFIG_HOME||$(tt(),".config"),"opencode"),n=St(e),r=[t,...n.map(a=>$(a,".opencode"))];if(Wb(r))return"unreadable";let s=["opencode.json","opencode.jsonc","config.json"],o=[...s.map(a=>$(t,a)),process.env.OPENCODE_CONFIG,...n.flatMap(a=>[...s.slice(0,2).map(l=>$(a,l)),...s.slice(0,2).map(l=>$(a,".opencode",l))])].filter(a=>!!a),i=rn(o,!0,Ll,!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(Gl(a))}catch{return"unreadable"}if(!(a===process.env.OPENCODE_PERMISSION?Ss(l,i.matchers):H(l)&&Ll(l,i.matchers)))return"unreadable"}return i}function Kb(){return rn([$(tt(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!H(n))return!1;for(let r of["deny","ask"]){let s=nn(n[r]);if(!s)return!1;for(let o of s){let i=/^\s*command\s*\(([\s\S]*)\)\s*$/.exec(o);if(!i)continue;let a=i[1].trim();if(!a.startsWith("regex:")){t.push(nt(a==="*"?"*":`${a} *`));continue}let l;try{l=new RegExp(a.slice(6))}catch{return!1}t.push(u=>Jn(l,u))}}return!0},!1)}function qb(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 Kl(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 s=Kl(e,t);if(s===void 0)return;if(r.push(s),e[t.i]===",")t.i++;else if(e[t.i]!=="]")return}return t.i++,r}function ql(e){if(!Array.isArray(e)||e.length===0)return null;let t=[];for(let r of e){let s=typeof r=="string"?[r]:Array.isArray(r)?r:null;if(!s||s.length===0||!s.every(o=>typeof o=="string"&&o!==""))return null;t.push(`(?:${s.map(Rs).join("|")})`)}let n=new RegExp(`^${t.join(" ")}(?= |$)`);return r=>Jn(n,r)}function Yb(e,t){let n=qb(e);if(!n)return!1;for(let r=0;r<n.length;r++){if(n[r]!=="prefix_rule"||n[r+1]!=="(")continue;let s={i:r+2},o={};for(;n[s.i]!==")";){let l=n[s.i];if(!l||!/^[A-Za-z_]/.test(l)||n[s.i+1]!=="="||(s.i+=2,o[l]=Kl(n,s),o[l]===void 0&&(l==="pattern"||l==="decision")))return!1;if(n[s.i]===",")s.i++;else if(n[s.i]!==")")return!1}r=s.i;let i="decision"in o?o.decision:"allow";if(i!=="allow"&&i!=="prompt"&&i!=="forbidden")return!1;let a=ql(o.pattern);if(!a)return!1;i!=="allow"&&t.push(a)}return!0}function Xb(e){if(!Se(e))return[];try{return Bn(e).filter(t=>t.endsWith(".rules")).sort().map(t=>$(e,t))}catch{return"unreadable"}}function Qb(){return process.platform==="win32"?$(process.env.ProgramData||"C:\\ProgramData","OpenAI","Codex","requirements.toml"):"/etc/codex/requirements.toml"}function e_(e){if(!(!H(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 t_(e,t){let n;try{n=Dt(e)}catch{return!1}if(n.rules===void 0)return!0;if(!H(n.rules))return!1;let r=n.rules.prefix_rules;if(r===void 0)return!0;if(!Array.isArray(r))return!1;for(let s of r){if(!H(s)||!Array.isArray(s.pattern)||s.decision!=="prompt"&&s.decision!=="forbidden")return!1;let o=s.pattern.map(e_);if(o.some(a=>a===void 0))return!1;let i=ql(o);if(!i)return!1;t.push(i)}return!0}function n_(e){let t=process.env.CODEX_HOME||$(tt(),".codex"),n=[$(t,"rules"),...St(e).map(o=>$(o,".codex","rules"))],r=[],s=null;try{s=tn(Qb(),"utf8")}catch(o){let i=o.code;if(i!=="ENOENT"&&i!=="ENOTDIR")return"unreadable"}if(s!==null&&!t_(s,r))return"unreadable";for(let o of[...new Set(n)]){let i=Xb(o);if(i==="unreadable")return"unreadable";for(let a of i){let l;try{l=tn(a,"utf8")}catch{return"unreadable"}if(!Yb(l,r))return"unreadable"}}return{matchers:r,complete:!1}}function H(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Rs(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function r_(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(Rs).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var s_=512;function o_(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(wt)]}function Jn(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of o_(t)){if(n.length>s_)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function nt(e){let t=r_(e);return n=>Jn(t,n)}function i_(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 s=new RegExp(`^${Rs(r)}${n?"(?: [\\s\\S]*)?":""}$`);return o=>s.test(o)}var a_={"claude-code":Hb,cursor:zb,"gemini-cli":Gb,opencode:Vb,antigravity:Kb,codex:n_},l_=new Set(["codex"]),Yl=/(?:^|[\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 u_(e,t,n){let r=a_[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function c_(e,t,n){return e==="unreadable"||Yl.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||Zl(t,!l_.has(n))}var Xl=new Set(["default","acceptEdits","dontAsk"]);function Ql(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&Xl.has(t.permissionMode??"")}var f_=/(?:^|[\s/])git(?:\.exe|\.real|-[a-z][\w-]*)?(?=\s|$)/;function d_(e){if(!e)return!1;try{for(let t of St(e)){let n=$(t,".git");if(Se(n))return Gk(n).isFile()}}catch{return!0}return!1}function p_(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r,s;return(o,i)=>e.host!=="claude-code"?et(o,e.cwd,n):i!==void 0&&f_.test(i)&&(s??=d_(e.cwd))||(r??=xl(t.configDir),!et(o,e.cwd,n)&&!r.paths.some(a=>et(o,e.cwd,a)))?!1:o.includes("/")||!wl(o,r)}var m_=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function g_(e,t,n){return n.host!=="claude-code"||e==="unreadable"||Ql(e,n)||!Xl.has(n.permissionMode??"")||!m_.test(t)||Yl.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}var h_=65536,y_=/^(?:[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 k_(e,t){return t.host==="claude-code"&&t.permissionMode==="default"&&y_.test(e.trim())}function eu(e,t,n,r){if(!n||e.length>h_||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let s=t.claudeDirs??Zn(),o=u_(t.host,t.cwd,s),i=g_(o,e,t),a=i||c_(o,e,t.host)?hb(e,n,p_(t,s)):e;return a!==e&&o!=="unreadable"&&(i?(o.guards??[]).some(l=>l(a)):o.matchers.some(l=>l(a))||(o.allow??[]).some(l=>l(a)&&!l(e)))&&(a=e),r(t.sessionId,a!==e),a===e?null:i?{command:a,allowedBy:i}:Ql(o,t)?{command:a}:o!=="unreadable"&&k_(e,t)&&!(o.allow??[]).some(l=>l(e))&&!(o.trustedAllow??[]).some(l=>l.matches(e))?{command:a,ask:!0}:null}function Ne(e,t,n,r){let s=eu(e,t,n,r);return s&&!s.ask?s.command:null}function J(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function sn(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function b_(e){return J(e,"prompt_id")||J(e,"scratchpad_dir")?!0:sn(e.effort)}function __(e){return J(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(J(e,"model")??"")}var x_=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),w_=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),S_=new Set(["pre_tool","post_tool"]),v_=new Set(["before_tool_call","after_tool_call"]),E_=new Set(["runTerminalCommand","run_in_terminal"]),T_=[["codex",e=>J(e,"turn_id")!==null],["claude-code",b_],["cursor",e=>J(e,"cursor_version")!==null||J(e,"generation_id")!==null||J(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||w_.has(J(e,"hook_event_name")??"")],["gemini-cli",e=>x_.has(J(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>S_.has(J(e,"hook_event_name")??"")],["antigravity",e=>sn(e.toolCall)],["copilot",e=>J(e,"toolName")!==null&&"toolArgs"in e||E_.has(J(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||sn(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&&J(e,"event")!==null&&!v_.has(J(e,"event"))]],A_=new Set(["codex","antigravity"]);function $s(e){return sn(e)?T_.filter(([,t])=>t(e)).map(([t])=>t):[]}function tu(e,t){if(!sn(e))return null;let n=$s(e);return n.length>1?null:n.length===1?n[0]:__(e)&&A_.has(t)?"claude-code":t==="codex"?null:t}var Cs=JSON.stringify({permission:"allow"});function nu(e,t=oe("cursor"),n=ne){if(e.tool_name!=="Shell")return Cs;let r=e.tool_input??{},s=r.command;if(typeof s!="string"||!s)return Cs;let o=typeof r.working_directory=="string"?r.working_directory:void 0,i=Ne(s,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:o},de()?null:t,n);return i?JSON.stringify({permission:"allow",updated_input:{...r,command:i}}):Cs}var Gn="{}";function ru(e,t=oe("gemini-cli"),n=ne){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return Gn;let r=e.tool_input??{};if(r.is_background)return Gn;let s=r.command;if(typeof s!="string"||!s)return Gn;let o=typeof e.cwd=="string"?e.cwd:void 0,i=Ne(s,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:o},de()?null:t,n);return i?JSON.stringify({hookSpecificOutput:{tool_input:{command:i}}}):Gn}function Et(e,t,n="unknown",r=oe(t),s=ne){return e?Ne(e,{host:t,sessionId:n},de()?null:r,s):null}var R_=new Set(["bash","file_system.bash"]),Os=JSON.stringify({decision:"allow"});function su(e,t=(n,r)=>Et(n,"vibe",r)){if(!D(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!R_.has(e.tool_name))return"";let n=e.tool_input;if(!D(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 ou(e,t=(n,r)=>Et(n,"antigravity",r)){if(!D(e)||!D(e.toolCall)||e.toolCall.name!=="run_command")return Os;let n=e.toolCall.args;if(!D(n)||typeof n.CommandLine!="string"||!n.CommandLine)return Os;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):Os}var ve="{}",$_=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),C_=["run_in_background","is_background","isBackground"];function Wn(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function O_(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function I_(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function Vn(e,t,n,r,s){if(!Wn(t)||C_.some(i=>t[i]===!0))return null;let o=t.command;return typeof o!="string"||!o?null:Ne(o,{host:e,sessionId:O_(n),cwd:I_(n,t)},de()?null:r,s)}function At(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function N_(e){if(Wn(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return Wn(t)?t:null}catch{return null}}function P_(e,t,n){if(typeof e.tool_name=="string"){if(!$_.has(e.tool_name))return ve;let o=e.tool_input,i=Vn("copilot",o,e,t,n);return i?At(o,i):ve}if(e.toolName!=="bash")return ve;let r=N_(e.toolArgs),s=Vn("copilot",r,e,t,n);return s?JSON.stringify({modifiedArgs:{...r,command:s}}):ve}function Tt(e,t,n){return(r,s,o)=>{if(r.tool_name!==t)return ve;let i=r.tool_input,a=Vn(e,i,r,s,o);return a?n(i,a):ve}}var D_=new Set(["run_terminal_command","Bash","bash"]);function L_(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!D_.has(r))return ve;let s=e.toolInput??e.tool_input,o=Vn("grok",s,e,t,n);return o?At(s,o):ve}var M_={copilot:P_,droid:Tt("droid","Execute",At),trae:Tt("trae","RunCommand",At),"qwen-code":Tt("qwen-code","run_shell_command",At),crush:Tt("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:Tt("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:Tt("zcode","Bash",At),grok:L_};function iu(e,t,n=oe(e),r=ne){return Wn(t)?M_[e](t,n,r):ve}function Rt(e){return de()?null:oe(e)}function F_(e,t,n={}){let r=n.recordUsage??ne;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":Jl(t,e,Rt(e),r,n.claudeDirs??Zn(),n.pathEnv??process.env.PATH,n.launchArgs??As)??"";case"cursor":return nu(t,Rt(e),r);case"gemini-cli":return ru(t,Rt(e),r);case"vibe":return su(t,(s,o)=>Et(s,"vibe",o,Rt(e),r));case"antigravity":return ou(t,(s,o)=>Et(s,"antigravity",o,Rt(e),r));default:return iu(e,t,Rt(e),r)}}function vt(e,t,n={}){let r=tu(e,t);return r?F_(r,e,n):n.fallback??""}var j_=new Set(["shell","bash","exec","run_shell_command","execute_shell_command"]);async function H_(e){if(e.event!=="after_tool_call")return{action:"continue"};if(!j_.has(e.tool))return{action:"continue"};let t=typeof e.command=="string"?e.command:Array.isArray(e.args)&&e.args.every(b=>typeof b=="string")?e.args.join(" "):"";if(!t)return{action:"continue"};let n=typeof e.stdout=="string"?e.stdout:"",r=typeof e.stderr=="string"?e.stderr:"",s=hl();if(!n&&(!s||!r))return{action:"continue"};let o=await ht();if(!o.enabled)return{action:"continue"};let i=await Ht();if(!i||!i.token)return{action:"continue"};ml();let a=Tn(i.allowedFilters,Ei(i)),l=new Set(o.filters.disabled.map(X)),u=a&&l.size>0?new Set([...a].filter(b=>!l.has(b))):a,c,f=null;try{c=await Ir(t,n,u,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}),s&&r&&(f=await Ir(t,r,u,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}))}finally{gl()}let d=c.filteredBytes<c.rawBytes||f!=null&&f.filteredBytes<f.rawBytes,p=f?.output??r,y=p?c.output?`${c.output}
115
+ ${p}`:p:c.output,h=Buffer.byteLength(n,"utf8")+Buffer.byteLength(r,"utf8"),m=Qi(h,d?Buffer.byteLength(y,"utf8"):h,nl("codex"));return Yi(m.raw,m.filtered,void 0,!1,"codex","sh",qi(t),process.cwd(),Xi(c)),await Li({cmd:t,filterId:c.filterId,rawBytes:c.rawBytes,filteredBytes:c.filteredBytes}),await Di({cmd:t,tokensSaved:Math.max(0,Math.round((m.raw-m.filtered)/4)),rawTokens:Math.round(m.raw/4),optimized:c.filterId!=null,telemetryOptIn:o.telemetryOptIn,host:"codex"}),d?{action:"replace_output",replacement:y,reason:"tokmizer"}:{action:"continue"}}var z_=new Set(["before_tool_call","after_tool_call"]);async function U_(e){let t=JSON.stringify({action:"continue"});if(!e)return t;let n;try{n=JSON.parse(e)}catch{return t}if(n==null||typeof n!="object"||Array.isArray(n))return t;if(n.hook_event_name!==void 0||!z_.has(n.event)&&$s(n).length>0)return vt(n,"codex");try{return JSON.stringify(await H_(n))}catch(r){return process.stderr.write(`tkr-codex: ${r.message}
116
+ `),t}}async function au(){let e=await U_(await gt());e&&process.stdout.write(e)}au().catch(e=>{process.stderr.write(`tkr-codex-hook: ${e.message}
117
117
  `),process.stdout.write(JSON.stringify({action:"continue"})),process.exit(0)});
118
118
  /*! Bundled license information:
119
119