@tokmizer/plugin 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +275 -288
- package/command-templates/tkr-status.md +1 -1
- package/dist/bin/tkr-codex-hook.js +53 -53
- package/dist/bin/tkr-context-hook.js +1 -1
- package/dist/bin/tkr-daemon.js +135 -135
- package/dist/bin/tkr-exec +11 -11
- package/dist/bin/tkr-exec.js +11 -11
- package/dist/bin/tkr-processor.js +14 -14
- package/dist/bin/tkr-shim.js +12 -12
- package/dist/bin/tkr.js +216 -216
- package/dist/hooks-host/post-tool-use.js +9 -9
- package/dist/hooks-host/reducer-prompt-submit.js +1 -1
- package/dist/hooks-host/reducer-session-start.js +1 -1
- package/dist/hooks-host/reducer-stop.js +25 -25
- package/dist/hooks-host/session-recap.js +2 -2
- package/dist/index.js +94 -94
- package/dist/native/manifest.json +12 -12
- package/dist/native/single.json +12 -12
- package/dist/native/tkr-exec-darwin-arm64 +0 -0
- package/dist/native/tkr-exec-darwin-x64 +0 -0
- package/dist/native/tkr-exec-linux-arm64 +0 -0
- package/dist/native/tkr-exec-linux-x64 +0 -0
- package/dist/native/tkr-exec-win32-arm64.exe +0 -0
- package/dist/native/tkr-exec-win32-x64.exe +0 -0
- package/hooks/on-session-start.mjs +1 -1
- package/package.json +8 -8
- package/scripts/README-INSTALL.md +1 -1
- package/scripts/install-mac-linux.sh +2 -2
- package/scripts/install-windows.ps1 +4 -3
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
|
|
3
|
-
var
|
|
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+=`
|
|
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]=
|
|
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}
|
|
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
|
|
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 xu,qe,Qn=ge(()=>{xu=/^(\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(xu);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?un(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?wu(e,r,t):e.s.charCodeAt(e.p+2)===58?Su(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 c=(n-48)*(r||1);return e.bi===!0?BigInt(c):c}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 wu(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 Su(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 vu(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;vu(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(un(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,c=dn(e);for(let f=0;f<c.length;f++){f&&(i=a?i[o]:i[o]=Object.create(null)),o=c[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 u=Pt(e,125);if(i&&typeof(i[o]=u)=="object"&&r.add(u),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,c;for(let u=0;u<t.length;u++){if(u){if(o=l?o[a]:o[a]=Object.create(null),i=(c=i[a]).c,s===0&&(c.t===1||c.t===2))return null;if(c.t===2){let f=o.length-1;o=o[f],i=i[f].c}}if(a=t[u],(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:u<t.length-1&&s===2?3:s,d:!1,i:0,c:Object.create(null)}}}if(c=i[a],c.t!==s&&!(s===1&&c.t===3)||(s===2&&(c.d||(c.d=!0,o[a]=[]),o[a].push(o=Object.create(null)),c.c[c.i++]=c={t:1,d:!1,i:0,c:Object.create(null)}),c.d))return null;if(c.d=!0,s===1)o=l?o[a]:o[a]=Object.create(null);else if(s===0&&l)return null;return[a,o,c.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 c=e.charCodeAt(++n.p)===91;o=n.p+=+c,i=!1;let u=dn(n,93);c&&(e.charCodeAt(n.p)!==93&&E.x("expected end of table array declaration",n),n.p++);let f=Vs(n,u,r,s,c?2:1);f?(l=f[2],a=f[1]):(Ks(n,f,o),i=!0)}else{o=n.p;let c=dn(n),u=Vs(n,c,a,l,0);!u&&!i&&Ks(n,u,o),se(n,!0,!0);let f=Pt(n,void 0);u&&!i&&(u[1][u[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 Tu(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 Au(e){return Xs(Ys?e.toWellFormed():e)}function Qs(e){if(Eu.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 Au(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return Ru(e,n,r,s);case"array":return $u(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 Ru(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 $u(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 Cu(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 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&&`
|
|
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
|
|
11
|
-
`)+
|
|
12
|
-
`)+ir(p,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+=`
|
|
13
13
|
`}}return e&&(i||!a)&&(i=i?`[${e}]
|
|
14
14
|
${i}`:`[${e}]`),i&&a?`${i}
|
|
15
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]!==`
|
|
16
16
|
`?s+`
|
|
17
|
-
`:s}var Eu,Ys,eo=ge(()=>{Eu=/^[a-z0-9-_]+$/i,Ys=!!"".isWellFormed});var lr={};Ns(lr,{TomlDate:()=>qe,TomlError:()=>E,default:()=>Ou,parse:()=>Dt,stringify:()=>ar});var Ou,pn=ge(()=>{qs();eo();Qn();Ke();Ou={parse:Dt,stringify:ar,TomlDate:qe,TomlError:E}});import{readdir as Iu,readFile as Nu}from"node:fs/promises";import{join as no,dirname as Pu}from"node:path";import{fileURLToPath as Du}from"node:url";var k={};Ns(k,{BRAND:()=>Pc,DIRTY:()=>Ne,EMPTY_PATH:()=>dc,INVALID:()=>v,NEVER:()=>ku,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:()=>cn,ZodIntersection:()=>ze,ZodIssueCode:()=>g,ZodLazy:()=>Ue,ZodLiteral:()=>Be,ZodMap:()=>at,ZodNaN:()=>ct,ZodNativeEnum:()=>Je,ZodNever:()=>re,ZodNull:()=>je,ZodNullable:()=>ce,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:()=>Bc,array:()=>Wc,bigint:()=>Fc,boolean:()=>Zs,coerce:()=>yu,custom:()=>zs,date:()=>jc,datetimeRegex:()=>js,defaultErrorMap:()=>he,discriminatedUnion:()=>Yc,effect:()=>cu,enum:()=>iu,function:()=>ru,getErrorMap:()=>nt,getParsedType:()=>ae,instanceof:()=>Lc,intersection:()=>Xc,isAborted:()=>sn,isAsync:()=>rt,isDirty:()=>on,isValid:()=>we,late:()=>Dc,lazy:()=>su,literal:()=>ou,makeIssue:()=>Ct,map:()=>tu,nan:()=>Mc,nativeEnum:()=>au,never:()=>Jc,null:()=>Uc,nullable:()=>fu,number:()=>Bs,object:()=>Vc,objectUtil:()=>Kn,oboolean:()=>hu,onumber:()=>gu,optional:()=>uu,ostring:()=>mu,pipeline:()=>pu,preprocess:()=>du,promise:()=>lu,quotelessJson:()=>cc,record:()=>eu,set:()=>nu,setErrorMap:()=>fc,strictObject:()=>Kc,string:()=>Us,symbol:()=>Hc,transformer:()=>cu,tuple:()=>Qc,undefined:()=>zc,union:()=>qc,unknown:()=>Zc,util:()=>N,void:()=>Gc});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"]),cc=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 c=i.path[l];l===i.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(n(i))):a[c]=a[c]||{_errors:[]},a=a[c],l++}}};return 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 uc=(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=uc;var Ps=he;function fc(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(c=>!!c).slice().reverse();for(let c of l)a=c(i,{data:t,defaultError:a}).message;return{...s,path:o,message:a}},dc=[];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 ce.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}},pc=/^c[^\s-]{8,}$/i,mc=/^[0-9a-z]+$/,gc=/^[0-9A-HJKMNP-TV-Z]{26}$/i,hc=/^[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,yc=/^[a-z0-9_-]{21}$/i,kc=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,bc=/^[-+]?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)?)??$/,_c=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,xc="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",qn,wc=/^(?:(?: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])$/,Sc=/^(?:(?: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])$/,vc=/^(([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]))$/,Ec=/^(([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])$/,Tc=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Ac=/^([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])))",Rc=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 $c(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 Cc(e,t){return!!((t==="v4"||!t)&&wc.test(e)||(t==="v6"||!t)&&vc.test(e))}function Oc(e,t){if(!kc.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 Ic(e,t){return!!((t==="v4"||!t)&&Sc.test(e)||(t==="v6"||!t)&&Ec.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")_c.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(xc,"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")hc.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")yc.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")pc.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")mc.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")gc.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"?Rc.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{code:g.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?$c(o).test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{code:g.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?bc.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"duration",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?Cc(t.data,o.version)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"ip",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?Oc(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"jwt",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?Ic(t.data,o.version)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"cidr",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?Tc.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"base64",code:g.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?Ac.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 Nc(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"?Nc(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 ce?ce.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 c=this._getOrReturnCtx(t);return _(c,{code:g.invalid_type,expected:x.object,received:c.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 c in s.data)i.includes(c)||a.push(c);let l=[];for(let c of i){let u=o[c],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})}if(this._def.catchall instanceof re){let c=this._def.unknownKeys;if(c==="passthrough")for(let u of a)l.push({key:{status:"valid",value:u},value:{status:"valid",value:s.data[u]}});else if(c==="strict")a.length>0&&(_(s,{code:g.unrecognized_keys,keys:a}),r.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let u of a){let f=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})}}return s.common.async?Promise.resolve().then(async()=>{let c=[];for(let u of l){let f=await u.key,d=await u.value;c.push({key:f,value:d,alwaysSet:u.alwaysSet})}return c}).then(c=>j.mergeObjectSync(r,c)):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 c={...n,common:{...n.common,issues:[]},parent:null},u=l._parseSync({data:n.data,path:n.path,parent:c});if(u.status==="valid")return u;u.status==="dirty"&&!o&&(o={result:u,ctx:c}),c.common.issues.length&&i.push(c.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 ce?[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],c)=>({key:s._parse(new q(r,a,r.path,[c,"key"])),value:o._parse(new q(r,l,r.path,[c,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let l of i){let c=await l.key,u=await l.value;if(c.status==="aborted"||u.status==="aborted")return v;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let l of i){let c=l.key,u=l.value;if(c.status==="aborted"||u.status==="aborted")return v;(c.status==="dirty"||u.status==="dirty")&&n.dirty(),a.set(c.value,u.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 c=new Set;for(let u of l){if(u.status==="aborted")return v;u.status==="dirty"&&n.dirty(),c.add(u.value)}return{status:n.value,value:c}}let a=[...r.data.values()].map((l,c)=>o._parse(new q(r,l,r.path,c)));return r.common.async?Promise.all(a).then(l=>i(l)):i(a)}min(t,n){return new e({...this._def,minSize:{value:t,message: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 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,nt(),he].filter(c=>!!c),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(c=>!!c),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 c=new G([]),u=await a._def.args.parseAsync(l,o).catch(p=>{throw c.addIssue(r(l,p)),c}),f=await Reflect.apply(i,this,u);return await a._def.returns._def.type.parseAsync(f,o).catch(p=>{throw c.addIssue(s(f,p)),c})})}else{let a=this;return U(function(...l){let c=a._def.args.safeParse(l,o);if(!c.success)throw new G([r(l,c.error)]);let u=Reflect.apply(i,this,c.data),f=a._def.returns.safeParse(u,o);if(!f.success)throw new G([s(u,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 ce=class extends O{_parse(t){return this._getType(t)===x.null?U(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ce.create=(e,t)=>new ce({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 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,...$(e)});var Pc=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 Dc={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 Lc=(e,t={message:`Input not instance of ${e.name}`})=>zs(n=>n instanceof e,t),Us=Se.create,Bs=Pe.create,Mc=ct.create,Fc=De.create,Zs=Le.create,jc=Me.create,Hc=ot.create,zc=Fe.create,Uc=je.create,Bc=ve.create,Zc=ke.create,Jc=re.create,Gc=it.create,Wc=be.create,Vc=W.create,Kc=W.strictCreate,qc=He.create,Yc=an.create,Xc=ze.create,Qc=le.create,eu=ln.create,tu=at.create,nu=lt.create,ru=cn.create,su=Ue.create,ou=Be.create,iu=Ze.create,au=Je.create,lu=Ee.create,cu=Y.create,uu=K.create,fu=ce.create,du=Y.createWithPreprocess,pu=It.create,mu=()=>Us().optional(),gu=()=>Bs().optional(),hu=()=>Zs().optional(),yu={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 ku=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 Lu=Pu(Du(import.meta.url)),Mu=process.env.TOKMIZER_FILTERS_DIR||no(Lu,"..","..","filters"),ut=null,to=!1;function Fu(){return!1}async function ro(){return ut||(Fu()?(ut=await ju(Mu),ut):(!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),
|
|
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
|
|
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
|
|
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(`
|
|
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,
|
|
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
|
|
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
|
|
24
24
|
`)?e.replace(/\r\n/g,`
|
|
25
|
-
`):e;t.strip_ansi&&(o=
|
|
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))):
|
|
28
|
-
`):null,a=[...a.slice(0,m),...I>0?[dt(I)]:[],...w.filter(L=>Q.test(L))]}else if(c
|
|
29
|
-
`),a=[...a.slice(0,m),dt(b)];else{let{kept:w,dropped:A}=lo(a,p);
|
|
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(`
|
|
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:
|
|
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[c
|
|
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
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=`
|
|
35
35
|
[YOLO: omitted]
|
|
36
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(`
|
|
@@ -42,7 +42,7 @@ ${a}`:i||a}function ar(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1
|
|
|
42
42
|
`)?`
|
|
43
43
|
`:"",r=(n?e.slice(0,-1):e).split(`
|
|
44
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
|
|
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
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(`
|
|
47
47
|
`)?`
|
|
48
48
|
`:"",n=np((t?e.slice(0,-1):e).split(`
|
|
@@ -52,68 +52,68 @@ ${a}`:i||a}function ar(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1
|
|
|
52
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(`
|
|
53
53
|
`)?`
|
|
54
54
|
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
55
|
-
`),r=[],s=[];for(let
|
|
56
|
-
`)+t;let i=s[o],a=[...i.matchAll(/\S+/g)].map(
|
|
57
|
-
`)+t;l.push(
|
|
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(`
|
|
57
|
+
`)+t;l.push(c.join(" "))}return l.join(`
|
|
58
58
|
`)+t}function lp(e){let t=e.endsWith(`
|
|
59
59
|
`)?`
|
|
60
60
|
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
61
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
|
|
63
|
-
`),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(
|
|
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
|
|
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(`
|
|
65
65
|
`),n=(t?e.slice(0,-1):e).split(`
|
|
66
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,c=n.filter(f=>{if(f.kind!=="code")return!0;let d=!l&&(i?f.pointed===!0:f.num===a);return d&&(l=!0),d}),u=new Map;for(let f of c){if(f.kind!=="diff")continue;let d=f.text.length-f.text.trimStart().length;u.set(f.segment,Math.min(u.get(f.segment)??d,d))}for(let f of c)f.kind==="diff"&&(f.text=f.text.slice(u.get(f.segment)??0)),f.kind==="code"&&(f.kind="source",f.text=f.text.replace(/^>\s*/,""));return{body:c,loc:r}}function 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:c}=Tr(i);for(let u of o)u.body=l,u.loc=c}o=[],i=[]};for(let l of e){let c=l.trim(),u=/^ ?FAIL\s+(\S.*?)\s*$/.exec(l);if(u){i.some(m=>m.trim())&&a();let d=u[1],p=/^(\S+) \[ \S+ \]$/.exec(d),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(c);if(f){a();let d={file:null,name:f[1],loc:null,body:[]};r.push(d),o.push(d);continue}if(/^⎯{3,}/.test(c)||/^(?:Test Files|Tests|Start at|Duration|Errors)\s{2,}/.test(c)){a();continue}o.length&&i.push(l)}if(a(),s===0){let l=null;for(let c of e){let u=/^\s*[❯✓×✗]\s+(\S+)\s+\(\d+ tests?\b/.exec(c);if(u){l=u[1];continue}let f=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(c);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(u=>/^\s{2}● (?!Console$)/.test(u))||!e.some(u=>/^Tests:\s/.test(u)||/^(?:FAIL|PASS)\s+\S/.test(u)))return null;let t=pt(e,/^Tests:\s+(\d+) failed/),n=[];for(let u of e)/^Test Suites:\s/.test(u)?n.push(Z(u,!0)):(/^Tests:\s/.test(u)||/^Snapshots:\s/.test(u)&&/failed|obsolete/.test(u))&&n.push(Z(u));let r=[],s=new Set,o=0,i=null,a=null,l=[],c=()=>{if(a){let u=`${a.file}\0${a.name}`;if(!s.has(u)){s.add(u);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 u of e){let f=/^(?:FAIL|PASS)\s+(\S+)/.exec(u);if(f){c(),i=f[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(u)){c();continue}let d=/^\s{2}● (.+)$/.exec(u);if(d){c(),d[1].trim()!=="Console"&&(a={file:i,name:d[1].trim(),loc:null,body:[]});continue}a&&l.push(u)}return c(),{failures:r,summary:n,reported:t,counted:o}}function gi(e,t,n,r,s){let o=[],i=new Map,a=null;for(let l=t;l<n;l++){let c=e[l],u=/^\s{2}\d+\) (.+)$/.exec(c);if(u){let{name:f,used:d}=r(u[1],e.slice(l+1,Math.min(n,l+8)));l+=d,a=i.get(f)??null,a||(a=[],i.set(f,a),o.push({file:null,name:f,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(c)||a&&a.push(c)}for(let l of o){let{body:c,loc:u}=Tr(i.get(l.name),s);l.body=c,l.loc=u}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,c=!1;for(let u of a){let f=u.trimEnd(),d=f.trim();if(!d)continue;let p=/^thread '.+?'(?: \(\d+\))? panicked at (?:'(.*)', )?(\S+?):(\d+):(\d+):?$/.exec(d);if(p){l=!0,i.loc??=`${p[2]}:${p[3]}:${p[4]}`,p[1]&&i.body.push({kind:"msg",text:p[1]});continue}if(!/^note: run with `RUST_BACKTRACE/.test(d)){if(/^stack backtrace:$/.test(d)){c=!0;continue}if(c){let 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 c=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(c){i={file:null,name:c[1],loc:null,body:[]},r.set(i,[...t.get(c[1])??[]]),n.push(i),o=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){i=null,o=null;continue}let u=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(u&&/\t|\s{2,}|\[/.test(a)){s.push(Z(a.replace(/\s+[\d.]+m?s\s*$/,""),u[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 c=l.trim();if(!c||/^goroutine \d+ \[/.test(c))continue;let u=/^(\/\S+\.go|\S+\.go):(\d+)(?: \+0x[0-9a-f]+)?$/.exec(c);if(u){xn(u[1])||(a.loc=wn(a.body,`${u[1]}:${u[2]}`,a.loc));continue}/^(?:[\w.*/()-]+)\(.*\)$/.test(c)||/^created by /.test(c)||a.body.push({kind:"msg",text:c})}a.loc&&a.body.some(l=>l.kind==="msg"&&/^\S+\.go:\d+: /.test(l.text))&&(a.body.unshift({kind:"frame",text:a.loc}),a.loc=null)}return{failures:n,summary:s,reported:null,counted:n.length}}var ui=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;function fi(e,t){let n=[],r=null,s=!1,o=-1;for(let l of e){let c=l.trimEnd(),u=c.trim();if(/^-{3,} Captured .+ -{3,}$/.test(u)){s=!0;continue}if(s){u&&n.push({kind:"out",text:c});continue}if(/^E(?:\s|$)/.test(c)){c.slice(1).trim()&&n.push({kind:"msg",text:c});continue}let f=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(c);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(c)&&(o=n.length,n.push({kind:"source",text:u.replace(/^>\s*/,"")}))}let i=n.filter(l=>l.kind==="msg"),a=Math.min(...i.map(l=>l.text.slice(1).length-l.text.slice(1).trimStart().length));for(let l of i)l.text=`E ${l.text.slice(1+a)}`;return t&&!i.some(l=>l.text.includes(t.replace(/\.\.\.$/,"")))&&n.unshift({kind:"msg",text:t}),{body:n,loc:r}}function 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)||ui.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:]+\))?)?$/,c=/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/,u=/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/,f=-1;for(let y=e.length-1;y>=0&&f<0;y--){let m=/^={3,} (.+?) ={3,}$/.exec(e[y]);m&&!u.test(m[1])&&c.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=ui.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},
|
|
69
|
-
`)}}),i=[],a,l=null;for(let
|
|
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(`
|
|
70
70
|
`)}
|
|
71
|
-
`}function hi(e,t="normal"){let n=
|
|
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.0
|
|
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-----
|
|
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
|
|
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
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 cm="tokmizer-default-rules-v1",um=/^[0-9a-f]{16}$/,Ut=null;function wi(){let e="VG82e-h8220rzi9CnxZ5MQ12Ub9_fXligiM7QkgopZNiBT3w2Sct_f3k-JhV8N7ngiJ6jp0i_a3VtASYHyXdpGP2_0Ml3vYAJrMPgMqE2f9xAaDcFWIR0WIADw6VSpPyQ_9MMKtAzrMBjOg2l0ylQdQ3yQkB171S6ro2ihkin3Lmy4TuA9kMDRoPo5anUjK8yZ5EJrNrY3qZ2BeejtoThFk4wcy8J1dfI9WG4sIjPkx7FZt_35Uzq9uWF38xLLk-2tnX38svokU67TmVIBhVnnvJ2AOyZIiCu9oHnKq1XKAWW8PTOwtmw8QBHhlgZKW_CsootZWyHbrj5NCBlGTk-zXMI1mD8-yhIfYB0GJGJUyUL5N5dU2eyDSZ86GItVpEyTTLtGYcfhvmpD4sYgoASLLSjBbTAFfalHNbCoIYA74DdTsfVGV22KKBAS8rF3bp3w88tPMQ22jOK325GPIF7YyZoXD1RcrbJcJKehkXKqQFIg71EwIuDe-zeBbrbrRq8wEguBTkMAaHsSKegTZBaSs8PEugiJHeq8iFaWDMvbD-UiMLyI3b3tb8CS-zhSu9sdzRVq5o4qGLsJ60M9plTQLIFuT-0PQz90REBrqAzgiE2RB3XU1mkVaVVFvn3gjaaubLvSOUPaImac5sBrvzps8_ZB1BPy-4DHFtNu0y-n_axCXj-uWseYHwan0UEdITlOPrHPu5ypOIaAT4tZNxYAiKjuA25M6oGd5IdsWvZlT3mKSbJskzMUM9GjRLb9-auPaEHCw7md30fVOFo0HljkVgTjNU9MfYd-haLe7RABRMYz63XLe6vtrXXAnC5Ui4KmqQz55Nxl2Yq1I0R9scoRtFWpzKlmZB4vkuoZoBxMgpcoc-m55ZpAPIv6SKkGzw8itMOzit92HNmJjHD-iK3B4WTFt9L-J7jKARgoEt_Nl8P7MLoW99A3IEoPKfsetWs_hDGqa6bLkPh7mE3v8tA82KR1Gig1tQXq6fHZFMkc29UQVHlJ8icWlNrkjIaWcMOOp7LqzofuVmmypcu8LEZO7Z40qRU1j1L9xT2YCz2wnemtr9N4gd3AQ5sGTRU3mJhTFkVMPJfaFD58GExgCYxAGgJ84ZUCPePt6nE867RNmthP7RT8hT99XdPgDD1lkq1bAsUwPDCkb15HZP2_8-84YbfZIk8tD49lX7QvkBae8GuiF8g_yNktnvNlR2plZR4C_ZgFHup1SAP2W9-Wq0EvPkdGETtC2Yj4Cyx5gFtWgEEPEfFCKVJovuYDObJoH0x0ReRRCKTVG8pri8RHnziifLf-RuiDIHozEMFLtOf5Hye433r8AjjVlTGn4iJR45NYUL0IfNe0rZkqIl2K7rUDvVWo970vORRRqd-sxvVSYJ7MLBAEkNdTAo7sXMcHLG2XOG4LkZGbpq3HspEgG_c0Df-PEndEVG_uheMGJ-jvfirGR5d3a-SBUM1D9FjbGrY4beoWTzS2o7TQo_QGd9xSefsjDHx20SAXxOq8nvBRXmUOiGiZSCET2bmVkXimEuLNwC5ddYGpbQOenxUIClfMQSyO-EzPhVtSjtxP9oTfYmbDCOMzFLf4zmPVB9N3L-K02mIzfv2tzSDxYURzAW2DajftsTsYek8iCJiFGriS53BXMi6ROjhzBeq2bu1foF2J1rCtC7yuo5kHTouXMjFiK8pjmwbCAttl50ODtVAvgVIBo2ZBSkfAWgpudRwXjf4y63TURQV8mBzY_maQvZd44TKsLS6w8Ida1O_wk1anv3eN_mmWUjZsCFE1UDRALB4GNqjqMEG10zrVTNLPUmDHgfR5kSXXo4ySJAKQjmSOWQx7040A08TvC85YsbVXYlQcGrlPMgRWAfl2g0j24GW8qGQOdLK-kukK7GKlneQJhKbnfQhDi_CCgSTM-d3qZoE-tcg6SFKhmHvt0hxYxwT5y4mgPPEQafB2gK53KpPfnPn9Oqeff4tENOo4s_mYr3DKLKV6cEJAg9SYhDT6e6ph4SKuODrE4Svz77CRLcEDG7nrKhvcheC4iuDZCOwfFzL2F859FovVSTI9oHRb-3WfBRV2eE2trr9zKh1_XewI6mLVgRokWVzMNrFL0g1eWkrOiecL6nqmWvFrebu97sW5LQVcDbzrMM6Pqz3971bpGQWj-5FQIwDqwen4aiCNNjmGGgkF3xtcPzcPp34XXdS-6FGJiatBEDt7mxswkVUZNbDK55IzrQ7eSKpuuFrnDnp749AwbnbH6ayCxO-d5MKbzs84zd8cBMi6T7q5seHf6oQIyet965nJiw9JQ0B-5enF1Rein9wEmy16a5O2oNl4MpmBRBRoRUKFqI6hntg0-tHrEVJoc8b_owa1im4rT0bxYSS-TENA-G0r8ekUUe33yk_at5PpS-LmqzXqQto4J9LA-reV_wUIDBbkM5PijdPkVY9zW0qmnMCPBZwsPoTKhfZ_gPkuQnhpOoswUj_fcdT5GKAPYuZ8hO9Fv8wUK3IfHwFpMxm92As7UauvkgEZJkdkzG4SvlzaqGwGc47Ljrn-a6aDXDZqjHnKKNQAXkD5yBOY0LWyz3PyejZqouxcYi-eiHCe35SpmDskngPCtCJoajfC8uXy9l-PVwdrb28GfFxlwCeJSBiI5fDbeUFVPooLcPoSfHpcHe8EsYW4Jca0LocLOiz-TjRN16YPZwlrD86gqLWayoHk9UpmLYDBbgybecO5_lFbwuYOGicZkO5tepJY261n3mApbP7oa_3Yxh-lugz9TYsJB_kUDgvLzXNnXFD9wNFO13keOd7HYbGiEex2YuY-VKJK_hiXff0BaNCJU3p0insGJVOMF0qMtOjHxQmbNfg7DMT4wk_LCepLJSdNHPPyEjZpQMkgqBKEYot8Nlaax5sWcRpkYO2rs04fb8GR-ZCUrL0lJcaSDXNIVFkEbmNJWym_nrLg2xTY5Hr1O-F5j6iUli4PKreDU2CxR_S9UM_eZzUwoseVFrfz3cjQZO4W66-Dh70qQ1Yl1GQ0zpvpfpupu0yVpjGJqFwKjvlHZ8mfpcwM7UoRtsexVNmrn1HAH4vejDlG31I8V_Su5TtqCsEGhjs4bnxENgq7MFDYgMBc5r6M2cIxtPFAyN-8YTzDL8rqsmtblZWe_96G-byGAomkELBPKfcoOjE7Dag_DCYS_FeklScFosfjTrmiq0okUfzzB5w_HTHT6-e-Ke7ar82w498H8B9hrnbN8M_oqilOgDg3Td64nGBrEVMq70o74V8aRyIugRxy54t-Sb7rlWbTpYAuN7QRm5_I9ryPpE2VTq6y3sZ-SzlkExXWQZl0i3gJtnWAN58PwX9ldwt6Kmjk66Ev9s45H6lY-Qh5CId4lAf-f1gLspzr7t_iS8pr_bO2MIhYJQnz9ZWSE-isoIFqeuJM3TFsVEicR6aiZA3sL-isPddxoQAw5gdU4M2nqUyetsqXMyQRAii8I-hi5QDenRosk-gsazx59KTz2mS-pHM0B--wOmSPEzJbrcn1mWigikuyBlWDY45qQ6AFUOvdCIL3sWRYfhBSS5OxVH4rgB8qGatFSr4k022rGdRFH6CKjQbBi4gJ31jlHZKrUIV0Yw_RvGe58MMo22zREO4I9aY4eUvaLj5KpWTX9CzuLMwU5PUWo7D2c1mVfohTpwf-1xdRdLz0MjH0qbNjI5UDmb1tphXDaKMkTnwnZUSIp6BSymF8bW_rOJ4R16_yTmjAk5ZLHnnwQOaSFdrGFZ0qvxLOpnn3XGKojZmEvW_k53WNmaozWXj44h52NuYXQ-Pu1QASlx7jGa5_rJOKvnlkPHUKJCy-ub2PokJLoAAe6FIhfrqlfrl834WlzywB8lYQxyAa9UYVOsMleqqEG3-5kYuegYEnttcLJ0nMWhbc4lpk5kpjFCtanZ4ITy6sC5CbZcdaBjQXxMcG7eGzXn0TCD_i3IDg-wheyzpdF3YvXjA3ExHo_P2ZDIPo9f6HKJQcn3l-TraTKTMmlAtDza_brerH7J_40Xh284Cdkefm44YihJhsqVVxvdLTdByrGPqWDW5CAR8yFOp2Av6j4SQEQvFTople3OZB_hkq9jh4onTSsvaVIcPXhtsAHluVU-5DErHCOWY-xYchO3x1-cxKrzEi_V2bwan2cEtdIH2kB-X3T5QWQPsgvAi0R-tmjCVMfETLB5OgmslFiLzxWACOgnKgP9iuvkj-cJzdyB9Y6Db7vH_PmfbWODafGkHJhOMs4XKWI1n7ElHhnu4vxV94GSi5NqvT5Tc850WINi1YCw3z-kGvL-LZuU8ACngFeuXKn_xRqNp2XVVush9nye2zw4PlC4m0mAStbMW-Z6Cu42VW1tZDsCSQAwN_U5y4pf78YyYFv815FecrcgJk5gPInTw71Fvqye-ZmaM_omWUxhE916InxV-SrLPixjhrRNqV3gKlfRbhMuuktmLdmQ2o6KfY1678NcN0kpd0j_DQpHNou2WhIyUKrLqK1-ueSet4sfzUv3lWfFM0MiU6iAKwClurpbXk6HJL47OPKV1jM3pXQHpVX43Z2VrjQRUorapVYHySXdLcNajpnCHpz56E_DHdQisLzA1Ek3_lDc7w4OcQhVS9_3hphVYYIlM-cNeQdPj3vHbQdj-QUxKitjQuy4tPODyTZfj1wf_2uEczwjKmdfxRo41p4xcsnEa-gnkMntzXFxpK9DbRI8UR6EgUIPskYXOY6ev8ZsEMj4P-2_iSWD38v2856ueSGfmGWVjx_hK-O0t_3-kU5fsgAlPRIDaOAQqYsjqk8WI9SePanplFBLWcMnR0qrkPqJ6hi0lekEyJ43ffpHVsgf5a2Si7WHGxKe-2r6qUngNuCG4sHI_s1m4iTFecKZ0Vn0VThMv1p5jshGF1835Yj5iuPU3GPR7dLbad-vhX-G1GSM8nTBlt_Pq-VNG7UChXEuBYtNTdf05r3dZQWXCF85JTFfSBYXSoO0WMaqltm21vuDZM4hCJmA-Q0Hu2__I4emaLAzTaPC5i1LAKuZSEEQUv7JuWwYE5Vb-_hYZvWhusP3NtPFbH6ssjHAwGWw63mFdTLs5ieiyd3njnAxvzrG_CG7Y1o9cTJSf0Kj5fRTQjMIJUaaJilySzLjdk_BnxAuNV1d8afklk1kghJk7aueiPFyyNrhaOR2oiAHKObyNs0zRhPPTe-0lSz96FEUd_8rxQ-nTnNENTcEqV4yFFCANYMXgbZOL01K7Dm2o2WgoC2X0aMGp-iJ8Lq-mSWvpYW0jkTQHlVZ-u-uSb5LjTdu-dEF0ZJkZAlVuTpt8EeYwPNrhNWv_tQjjKh5p4BKW3KfsES8I0_lwSS1J-1dl7A0jg0Z84JBpJYLc5nebqAvnhrbRgQvc94euCW2avk2rE32orb0zCOdWhWMLbtBWiYzGMhsAXWZe40fngY0uko40rywim_drxtRorw_dPSVuNOWIG66dEMn47Brs3NIatt6qA9V-Lv_-s30sUvKYqL5JztJdtC-uTZq0781wFbSw7umys5KsEA9ZQ3VRPiNy8COnkTWz65oQIiK9_P_S3vTdWMh6JL_p6mv3uqQBi7vEdOa607p5d7BBq5mRwI-eyoa9244zgP3o6Rp4o3GEnOdWsM_DlnKt5a92krPG6xFoYyrt7HyKoMA8lHmbTCHdSnBbcwk1U77yl3MkpMkpitKvBwyFrxDbCkrUoKKUgu6Bhc43lJZXaz02Pco3jBNPX5NQa42wNTWp0-yPNA1K_D6WoV7GL4jTADPuvQuIQ_bI7cK0jue63NPBbU_KIZ3BpVzsa2MLL-q8REDYXb4xEQhgpmYfbn6IEAyVbdPNVNSbWk77BjXqBqUU3P0yBtueFN32aWyuVmoiqgBBP5AZIcezLTm0AvoZE0Tgq3QZPr6_B4RvbO-Inwn_LcInUOaYxS_184WKwP1_PH912tEu9qm2kVAit6GD9Li1hv1dkvY0gBaJcXNtUSaTfeCmWKLSXjyebZfNjkTswWQfh3t6cyhn5NeZWN5OTE9X_tPXyIe_KV2fAYP_yBiAw91q1mm24wviG_1KQ5A5C5Q_Hex9qAymXqYojl2V9ZF4vjnilRUVpJ-QtI423B8aGtVnHiKY4nDSYg4DF6t6f9cWqANzjSzSqLJ2nF-jclTa3xotVmEsK-XA6Dw6muxCrPzwUeMWo1dBkyaND6pQcaMKY5mvMmCpcUpYHFIM63sjdON2WMYS5b-WDGLMoVnRkd-WYpzixzK91_OgCo_-yzP8bu5iSGLVZ4XJ8CdMB3qtygDyLdlkYva9ixuUu67ygnAoctK4DJrutsPHQeZ9mR7ZywOpIcoYwx1t19AL0OhyLpfCnWpVPQpmW-E2b8GzG2PA49pV3EWpAzew0tN8kK2Uh4AokviDyjxzkc5NnKF7qooqfDRpReVriBEp2lZIrl6BFA45U-oFRxEEXFOaSsRFoP3q7WJt6o0iuy_qO1NW6oUxahgBCUwWt5RhlKeXtP-PI_9gyQedL9igykuZaxxiUz2JJYkKTXSIuwTU8iyQUHtox6yFFJBCQP-56rmurPGV1Wx4D4RKLveb8z8gLDlbJJ7rXEN36uIkz7g1zQF9p939X6k4UfprYAxc5SML5Je9iHSA3RcPpdPYCM3nXKoVORzdQs8gOO93IBz1uYkXtOrLrkzQ3gN7Yy-CKp_a28yfPC7HgyBLOIU9Eb9uxnTEsMBjNZgXrxdENQP9NthZxOaGv9aaZvQq6e9E4xxJpLN9VyJXheiywHq9LYOlq6ikbbX6aS_g4XwlcSZEeeDiUWqTZZreiN9_MsqNLQsr9NwEpS23Yydko75DvI9-Kv7ML93CSS-lV4W-PvLuqMFee8Qy6QY4EmD62nXsJIWjN7_hQzWcjmaL-IzoLeh8zsfNM4rBesWq-qmH3lW8_kvzJyG3finKb3_OwjbfK8PfzJ4RbH_Jv65tQbHxR7ngQN6ZN1UAp7TOQ79COGMYCTmharNfjA4H4OrqjAjJtofZlLNfsW5efg6-ZeC6XN7WX73BIAoEyV5MfSvMjdCkSlZ6hLKSWeeTOlrR8A8slgOhijXFXfjJq19uOWUKvwNk5vWEaE1kxY5cUirnZLhTD0EPzxKN2LJsf_ao1SZJhk6zcOGBL8LEVvPMTyfQUxtkeTOvLQOAyPBGUgN6e1VN-3TrrcoOicOvMF7aX8gF9abTgKKTYRTL0lnSgdwK7zqKk6ieNIG98HWHSbQGb-wUnCOBut6fN2l8qdrBKJCpj2zmDILh6CFod_RRWQLg8jOrCjFkxNx1WaDYe9VCJ9g5YLRhjhw4p7T6_eNYEIczzzPYrWPORbWeFtvsTaOtCEPY9WC0HeOfl9NhO_jMzqcOFwANMvfFX8atHD1RmrhOBTvjoVi8qQndy6ImjGIIm30yx8F_qwK3VyxtXYZpHxMw7mtyq9okjdHeZptsVQK1OOju4v2aA1r8mXUXRW0be9PIB3UQ-dK98Eh_y532zAdXAp2BrErykVBTNpoW8mB0Kkn2PuDOw7OffkwAa2uYShqdYXdTCgOG6l7ol1HPKwkZL2m7mYYsh2Em6lGn4KFohMBIBef-PF-wryGn27f8SypAY6UUD64n-JaKYSZSuc3iD1gBczkohMXuu00sUl-TpygtRtXw4RMeg1C6hOYYWRlJ4SpdEcLaNHeE6ugCdVb0evvrTI3rOcW6ieAYixACiPcZUR6BCiP9XAd7J4H2m7NSS5MObkH7wF2lwfW1Vg6b4GFil6XZJ-UkHk20LfPg6Pl-eRFqN8O_98tBPMCa1zCtRwz705NQG5tmbmqN1MfEs97dVAF5O_b_fIL2XzWu3CphM0RystG1r3MNOYP_65K51qIRXiDhW-sJ-vb8IowbBCS1TeqfIBzB_YImE1N6_Q5V6godMfP9w_BaKlUuNgCGOjPyzS0AwG7QOsNkJ-Iq1eu8-vOCcVIcZC4uUuPAUeJ78LCLguQjUzk083fp7U7iQlfLOWPscxbXWLwu0QEWah9SIPJv8G_FWk7GdQMrtB47lThjQVLFLLhfiMd64Nsi6mrdmODc4Pm4xIuZWPq5Caa2RnoJVlL54bKFpI8LzD2H7U2QbudqWyoscJNQfOrhzGjuapjFjWO0wcY0CPF0UQI_0cAKP9KXViCLPgBr3u8ma2klATjsw2tE76_wsz-I2DFGhjLEEldzUIIs1GbNEl-BnSFC55-fp04z27SoldgIGkXeLPayS94TCMMd28O_SH5VFbpukrOERxZWLrMGpq7R3bYg8ofy_vXunNP2ttQIGlymS-9SGrgP8bomv18ksslFkYLsZEELOVC8lD0W-oxt6Ffi7cx8Xy7u6c9JuIF1cwVJDaWrVV6FodtN8qyfff29bckJcuROraxy1H8oXLx-z2j_yVgmiRHk0n1l41zHH3au5BTWHzZl45wOTGq-bvtS_cnf6faYIjbYPLf7SVH-9gNzylFwaRtMwRd0GvC6PefQR9TCVVFO4S2YBOin6BeyHLyqZQ52P1agH4tPkFqs1kQfR2tIB-GKkjyZ7y35cZuuwEa66BHbi3S1VL9oXyfGDyn8_ujlJOQ_FfBXnrkqTfzVGCh9nDX2gVct0aVlzCXkOg5dQTKSK1mH1hf4_OWLXFN0IY5e8KNRXuqWhDhh69XMx6gSEuckDI_SjRlp_t3MXaUWm6wKPcaKpTPKex_RO-ObqRQMFcsTj5o0IMasvOKL-_HG1jdVT3DUJHfhq1WSD8mKXEEGJwd7eYQzaLVe4mWxB3TlMPknnAnVGXT09qiA6svgExi344IejTVgeKywMwkb0lSsyAq3sFhHcUSRyOM-jd4eLI8tmvN43dmXCcT-jVHPDMtpWPGE_H7h9hnQQtFVakt_0WpW7eg1B3QutB5bmYs15NY0XjpalyyYyaa18cWw4ZpbIvPrAC0wJnkRHSESiGodDgF9baihbjgM15FrvywC2HEJDrKP17N_c15aFWt7eQcJtIaE6fz0VLz4spKHEzByOgApibQaP9pHPpAuR9lyKReAfRQjdnCZYliFC951RfWalg12YfbNcT3-2ILGlSLWe0mvP0zy3UCQ4fWdVKEpS0RiVibAsd7MHPEIrPdF8fl5pj0WKgkXQpdU80E3U4Apapq22h2N_qvJbIPPQCi1NzWHJVlTXCY4AkUBoBTlHG_kcoVRgoC7gJ_0qAh_yrOfEKBRcXjGaL9l84GZV2qwGdbeoYE46msA2S7LJvypzTBpfA6imqmWHLcgPgAl6ak0yD_-hD6EKSnAbztCo8zJLl5Byal_Cbs755NGRDPlOmOxJLQdfGkInv-ft8kaXaALEzhYuJNHF-yvoBeXVSBLXHq-lLRzEXmWZzvoaIfkncFE8oSde0ripYYv1JDLFABqUicmxT35c778jlI8Q5jx_s7doLdAae6SaWJIVeTDI1wWph17mILMY-KKXWFazcUL_qo-xfHbZixjp7ILTJfBBblHjZnc79zxCdeF1T999y8wYhY7nAKSjf-8KApOTLy4VUUOzNkZ-MuEAIfJIaq_pTFN28nLqeFA8nAdkuX7NfKDspkT76JZNfApcjJlfHj6CNNfgHwS8LAjArJneX2EYEWwYOfWWQ03atfWA92LlvW2nOdAPWNm4IkNWTg11T2g2Ie_K-lq9PqovyUuwsRBIolKHMdCEmfW2ESntR6vjl1rEJtiXornlTROGXDryYzYxUn6jtc99iTS8iG33eckYSNq2AT-xHBLSUWIXOh58Yd95upoLjf7IwttYA9FUfhzTuuRi3b9I-D4C5kLou7wsfGoBygU-ubROgFjykRyo_Z52B5w45UeI0y-0LrUEpYMQCD6D8wwaSw_yV1Q88TDJxtPI8gBgZ1yFRBANgdLBISekXY1cWfHXC5lRYenpnodrs3z-SFIPQXJoFv9aMXfwDU1fhVo3s2RX1yAeelx0m8T4ELjBrKUZr8Hbl-LQQ77Tw5oyUVCZQhFfbR8IecWCxMhep2NcHlIJxS4F5dii271XtwCpCF8ESQAnv2OU9kefD34RXHsyJGckS_O7fF_nnGlgrJ154ay5gWMHDuTwy2um9O_CgbFBLt2RjisAcdVbyZggcI7Wudin1tnQXD41pICoylUagZfKk8dmOfPfs0Dl4j-PA96ud0LsOs_dg4ZEbA7OIMQelQeuwQ4fm3li0EFR3rUD8IS8m5fGTqODhXY9kxqEM1hRJnFNqYohJrIIQa-8ivI9QGCd_ky86WU9nvTK3iG9EA1hWEn1VrtEQ4YuYAQlhDUkUYU3-8fhe-6r-F5F9zOQQf86-yynZLuPJYKHKZmixeEHAjo06UL7s1Mo3g7I_9mw1la1uA_-5KAKkdM1Rc4nILdXs2M_tsem-xMwK7A19ZsnAA7VTkFQGTpnXBtmRtdpNcOLHSTs_0OlC_96XhE8GLC9Qk5T8NBbbhDYKZ5hZxtBCW47ko10XzuN0uXN5-ppndsJfHiotJoU8ZLQhWy4iUOr5FatR69vN02O383lXR5o5W1BS-7xakKpyKfcnxRQxLUbBD7XPpOmkEOOblvUsSMnMg5mJe5ggWt6OBL12wZnb0am1-_XXDfRKeYBO2Fe3UJkFMLacVza3YSUSlt50oQ77UOEBBiDiXFQ87m1761-J982j8a2E8mhml8bMFTerpYEwF7hR1Xggw-uFi1e0J4ljPUP-6edN_SVpXtw1EX0WiWzrw92ahix4sY4TcVRF3JQ5DaKCT1-5SEeRlWGvwp14I264WzOnoAsjT__PBPH-_EHPIjeZlUp4O0EyyfjSiE5YqyhBvhgtgvypaxZGFtttV-V9wf40S-1Va81lXx3SkYgWCDlrgg8C9Nah3to-hDWCmD1xm56q83-C8A1GamiVSbMCLU3w-nn5Vpr-w5WUsDbyoEqat0ieOgnsX0l0M5mQvhlQ28iLVHB32QsVcSqKqG6TJw3L2sDkK1mh2GnQHhGOtkIRDvYt0N0EQ0Xe3SWYXpQEYY4Z2NzJ2ghxO6aS42B-u9Egw3oOrqi642AUs1LbaCm3Lr-Z_5IW2TvQvHBQJld4cHDtx28h0AWjrHmKm_c5s3T98BC9ycmRVpoh367FvFvjGfje1xGWjRAxVRO19LHuRcUOTXn8Vw9AsnXyw6vr9dS0t_haHdfryToOrMRfs-tMe1PXI636bb4SsT0hauo05R78qTVYEEPD3vNg-JByFuxRIruvqtP7LPCq8NZl1UjlcjfZbJhdZjdxFg77TH9y8goDgUquP5Bwo3VsBK75NV35ImAU2G9wbJjzsfJjnrIBRCkeb6CpJRWCiZy24nsx4Jv-XZ2XX9Z8CD-jAjsAh2L4gw7fbCGFyb80JMErKkDWHP7UmOGAo1t_ifcgrv18hQfgwwyNG9SOjgSmWZazPFGXn6O2_vOTifNxOSErOOEyck9wEhFOWMKWToKqaWoxw3DoN34SReg20YUZW1cxIeDZI2EB4PU_mvqHU4mbqXoVJZEg0KJl8l6iyK7srd2GCyXUHmgU03O3YVxFjSvgJfDVyViyZTNlYoGHY8WqOjxVjzAGcIMUP18VcE4urKPXWpQj9h1Ksh-SPyPsjkqUfWxalJ0pRVy4VaK_rqTnzEpX0Ndtd_XKL86zz07BVgnGHWF9mjhJeyIcYQKwqBO3zHYKm3VrzJ_k-vd-iKwJH69poUsK1Ad0tENszAb6yTbYmKZKz0KLwPwkz1LRgs-4-oIaUvuE7yxXqkvkjKv2uXhultg6b3ymBPxyefcj09smS5wm8CS4PY8gC424fjwOUwUBcDtvR6Lg_Z1BQCT6hxpS1twxx8WSqYtxcRR5DweXFBPXqqTF-Nq_CET8BpShB90-bzkxilrpPMj2Sp9odP51Gq6s-4fXiqUOmu9jp7R4NP49vmI-uxWN6M4OJtZLaq9wkO8upN-0736oChSc9WF2BjLsfuQEVpxAC2qf4UxwDf6yynxjXbNz6ozfJJQklSSK7jkUhQKBiuiTmRv3rW6HLb_kkrCFX3Yt_MoTxUj9vtg1OjYzo0OSw8w5gC08AmpFhZNf-mUlaNbIvZo0RNZEUd6GxsHJ908JEntBPfMwznKeuMlptJIohzYEWpsMoMEm5WU1UTWDvxNUPB-Ijuv_4B4kPHN4zL3x4nuz1YHZLbqZeYm14pk9tKU-yxsOzVpGOaVaAcRsE5qAhMVTAgCXmD3S0Fpb1D-i_FBDKPV6BOxAflppgYJAh6HFeA6MMxZ8zqIxsPT4W2ZE0armiqTHGeCcQTEo3l_cEH5hCJnjrOsH7ybVUgzBAd36V-tkYK7Dfq_u9EnLg2Lha1h5COaNKnCp4W2b02tnxHElBI25qvFgnEWhdkNU59JTYzJcVWKFG0Za5VC64MiMo22qefgGRjxjDHsJTrTRUB9qPDnse6kiZKX-iERZiT5L03DTvQRTzqyzbL6IEu-iAb2fi2bWFb-nVorwIBEM8XI76MOldGDdMpLShe_djp7DNwJ8Ml9Hl3qKAu-MXdv4jXvW7vG76KNekbWP3Sz6U8yfYXz8fyw3zfSjXXfn-Ihltx29oCIEod87ZALI-56FWD-3G6h9dxzSTSb4994LWfwGFMMAMCxKqentkJo8og6LM3htu2Ij9hgF09IPGRk9_FDPsFpmbk0XPRWVoRXDvAtZz9moj9WxnxuAhQMyBPmxkBxHpwBtNRUSMGYaNPel0w0NCt2KDhuH6swX66Nd5d74R3H9IzRr1n74hMkokIbcHqprJu9IAiugilOKcXc3i8uzkpqoS-YQv-68uRghdu2v7f69Yy5hFpU1v9zsbJRMxH1QRj-R_4Dvr5J3EKUSve6e0AQElJbF85en_WQtsXIXdYckq8-NZ7JVec94AUDU6Yz365Obm4woRhtvCwjojgE5AtRolEr3Lhws7Si9s5gZkePsZOIhfdY1gCoRQvIwniTNtFQaGbcDPtVny7obLGF9ywEjBVdiCFEJc24I9zmMvBsCQ5PZAD-RtNgr9RapbmlsBASHE-6vIxehRvh617eXByq1Qnolj707SQnNAzB-q7KCeAzRAYFJp516UlJlYHjcr8Y8vyGajiUQit6xXgHQrVkW_CJFLOf3pZn47G694oPFo4gm6L8C0g1axXi8Db1JSSAnUp5o161bfWM09WlD9b-j4IqKmxTcw7dWm8jyRlyp6FbLbWX3Mum0_uNm0yXWUQXf5dntLQiETbxzTxq7srCrRSED5uSkdcSMhd7uNv4AS8RvAgd-f5Dj1MiS5CdpSnQp5hLEeeMWgI61Fe4oEUpbxat1cGkZDQLFWD9uSiaGEZF_WmsTG1bkrwKf_FBL8b6_bbsQkLs5Ok7Jf-h0Jv6Mt6wjC_m6FiiWWUPBgKEC0ZfpsGVTUv9E91JBFE23Uv1_YTIMFtjAiiiL0n-XDCj6w5wsgGLTtcqq8ekY6buaxfPCEzJm615AHvkgLDuvnr_qUwcGjl2NmK2h8JOznVj5N-XTMcZl1DQWWFY362YY3v-I9mdG1Pb9LxQWQznv5-xwagGfbicc7rs_E8DzQ9n6v267yTF4ifbj8cHxrRulvt6r59i8pBkuq3_PZR5OPWlrCpgT5nQjPZtzKkcFPm8zCGfA3IWG5nmlU2yiJIGEk1zJhEFPYr2gX10uY0jMmX7gtgK4QN4RMGGOcG5pZVkjNGwCvjb8tTn7xBdfg5iPETM-Q8MaNLr66IYbs22Wb3RR3Cl-KaTfKqAWJoh8ke7anfTQ7jeLnHfAJ54hbdEXer8ZkZHy4XVe_xUEs2HmPYYldVPlvg2J5NRTmRzAmztWdsoshn_1qwPzkIQVN8Qt_zfsG8AAQHDArajQkd1Z43tdCyzpHA9QxyBbIB0LT4qw9hGJVD-EipplyTLYezEvKIu02kIwCs1RZSn2BnwQWSt9ajkGfEOLuEwWlsbr1AXardMC2mpWt6eLFUwexA3r1DS_rTf23qfcBPYoUTT0l5dFQ4-m2inlDTMSwzsJLVfxpRuqR0oUPynhv1z8dX54nQT4i0SgkDckBcTLBeu1Ncfphjiiqp4MA1PBMR79rjEi_PoTuqDQFE99rMjZkCstbhKVQg50arEgzd0WXFU6via6jJ1SjJFAtaOEsDpfXYQJt265BIkZgWQuip6QjIn3CqjeEHojhiroB4-f6iA0NMeuwzEF54gKXU9DyTlpNL0xTUbGSviHacDfnOYoptO6Da02n5WiJ1knySPAxbnJGg1giE4GUzMnM9vZHZb6HuS8qcW1s5peiep2N5_LL_2dX6XceKyk5q4N3s2Qyi21QqFhAbA5HCr2Coty3DcMvW_harU4l0vqg4TjaLiHDwefdqzcEeqoStKksYibsGe7y8j5t95BE_JtMTLav3ofVijdRyt5C67Iy2FJCvN7L_-xyEGNysL4o6qzbMfhfa_0-is_d0TnFQMHf_B25MdyL6Ofsu0Fv1n1-Jyyr7A_jbvyV2hJzZ4I7ErRnLSL9KKldUP_j1tsMluJwi29yvh59d_gn2XHqGyDaF0S3PyjZ6qgOPJn7wgsZNgW4VE7zpYx3W9r2nq4qQCJX6dNTf-q350ncUJSl59XWx-1cz5ZSkWP7ahRgwBexf237DChd96Z48v35lyY3S_42XE0HLp575K4-0WtcUlEG5m5LuvhH3ANsu6iql3XY4pMCFDe4yGf2U7eBISwKRqq2z8ALsVhAXFX_aPSXI0nPNaOhZP2qL9nzclKYdKgjxpJqtq0_dxCQudepjvReQENDOKFeXaV22a4FVhYjVxIsoUSU6YM7aXVdCQvxzpKdv3LR_HQQ6--zavjnCILM6_mz6qrQEufLj5Bpzm0E2QLAYLAle7Ura5CunPrice6CmDDHa0Ls_6QbYguKpUmeMpMmZNjB0u02_MVmHGsuhCOeM-l7igx9_kYwG_gTKi_fFgQsZDH9dFJKbi9gMHgNfpBvnRdcmSh00_AcqnXVzNVrNutDBd3ePHuocmgpjxAsd-aqOX-COab6If0fiMvciz7dsFfeeItZXcQYrsfsPuZLueNWKYphyw-08UYuUEDxvUXR3ZUmQqfX7BtAiXaMUTvPHV65AP-IgfNxJa8pGZPwr-AGqtYszNgh3_o_q7KgC9aBW2ytIYPJ1PsFCQFlh7LwOH9L0bIgxcPZxVUzV8Top4qT5NZyoilhItmKl0QfyM47ByeGg7x6T6T-8eWLDDp7s31Z2SDXN9eronU3vfXZxg7MzsPY9rGrdUkf3RAvgb-1a8STOC-RFlkcjownSm6A0KzHN4dO6QTpXu6TFrZtAkYMHENMJWvHf4w268UmYFZBaoltD8_qrdfbQaF4dzzdcppglgWp6RAWjNhDkmdR4Ue0Z_u9ZfONFQKRafk1Sr8cVLRY2jsnI3I234tVWGdII0QNAb-a6fkDa3AKd0SeMhR9HR4QEN_-gD31naugCKy28oA0BXMLlpjWTcATozikPqU_33fvqal61SEtSDXBxxxohNMPeoRQ1TAui8i52-OmsAfIrhaKy2OmXeb82rhkLAaaE3Kvz04vv4wJRZ7eB2tp9gVDke4ZCLM8WI8IUbIoTZWKoC_9zxAEyQ83C7Yh30BzskAQZEhqDVEHMfnZSQ7ujS1cTyAGSiIqlcA2CV7PPVm7raQ-NWgbtSHm1k--qmg_G54B9ZPRF1p_iyAk1wG9Ha-7wo8YYkL1ZLpIPSY8sqclQCuNo6YcABfBXhh4QUY3pY7xUMq4Bt4jD03zw8HxI1SM7tFp9DDSdyNc1FON2WqES9f9d1BRDkkzX1_TPDKw01ReEcqSBE1kkuhPO74AOmnwykzvJwAya-nMaR__4EuSgAHWgdbEXOhY4-szZUauoVF3DMBELp8iZRimCosCweJZ8knMu0DHL-Wpghy-ICy1PjS_YguMVmL-DlaaiaTEIyUS0lQkL_5hTnWoo2pWqmN6v81Jfi3Jltl4o_IjETVUd13KJkaK5oGNgEO5It8UfyFWnQqsfmm8ryvKT59K0t87l3vldEroSOskC7pP_lnycZ2Ikowy86e09rz-7HCU-IeErlAT_zCl0BA2o-ZApCAO93f9xRmyxBgcMioa254o2MGTSrudLrMQtTBhufCcv074V5UGeE0SWPe4biGYALUX1-OeoSgfNddGwBl3xgIArCFpQud-D25VxRY6XcM9QPgDM4230GtAf-qnoZ4aFqKB8JKuYjir9JvzStgj95aSZTQdqv1ncHeRQ_7IqCMQwLPWYOkFVoN7Ov1dzV6zfvPTjYnLJ7g6ygpXwZmnV3dviIckGNiabpPF6YnjBLUPaNrfwBf3nJgC2hOIfBF3jutSNFQlqq8_UnGjBxVPdXcXBiuGAg-aLy1z8vvBXobpPkkd46oHUAdjyL4T0YGefvpc38HVphms-QrC3SjSGXumwNNl85aVCQUovVW406fiXjeQjYCR-FDxy0jghWFX4RYwYWEEBfMky0S9yLhxQ-nPPSygtogVnK0cjgJipZeX2PnSy18IvULFvDM6FAJWQbM5b9wxCOPW-Gf1CcPYsPDhvfSyosQHakcXk6-tc7xjREnEEg5O1kYdKWeCuBjTCZch_0felGW0ipY6wbEl9k7LN_KVOigjXPp4mzkAQPYjPeR-QW80y3EGWj7M-7UnVd7M95mnORUd0yrfLBFjmx_IW6yR4nJNJRIoIC79iT_Rj03qnqOnrwqrPVL1IIyvGD2zeIpi1JGH4J_j6U-UWVcv5eHKzLBRSC0sDWjIJYHNAPRJBTu5ZWX066Z333BpF8leUm4AvbK8nCe1lr82idyOYbgpcIj7FER6IviavAlVpJr42SQ4eguVYpAb-rubZKIuow1RIapygO8fHjwBra8O9JypiCRxYcLAK0CVs68jTdPyXtzPo95UteQV-WePZsZqGYygvkrrPVtyibMwD5GrXDIrBst5w3BeTDz_gszHMxAJqf0mv_Mr_d33qWzY8ABHl536KQodqUCiFFADL4MVszGk-7O09WxtC8LOg05klSN_bwprhFffYiK24tWL7F3fXUa8VdF3LQOORtBRehLLlgd-E-XSjDBvBmX3ZkBVH64geo7OFvFw6VXJ79cFPSYo6UdZXCDc0OfJ3ljSoRLXJ2-uBSCvZkSqYITCWvY3P4WWjEod5nh-r3XfATHuvY39hfgICDXj5329ouwFXQyaW6ByWcPNPZH4AkFDe5PQJu0hjqsYhVzr4oOo99kHZx44b-McBV5aY1ZcQdI1Cxce8vCzbHEoUE4nrV6DGuIwRdVnRIdJgyobufm4MF16xph9ewb-TPvy3Sm6NRMj2K_uoNGb-otl37DpO16cYz2WfiFh9x9vQCW5-QR5j9pH4Bj2wh18s_tv-mP-Bqj2uuFNqB6hhJ0A806Dyqj1L8DT2rSklzEYJQ_lliBV1O7IvR5gveWw17Z8kL49m_vntS5qPdIW_jP3F9APer6PwYbSY6MkAAZXTlubEQUv6yMZVKuCE8pvZWnOEUsQ1gEY5ID6V515z1c4o4gjXj5OPzLR9TUEtsQehReIHbvgMkLcNsBoaimbt3XfOVgJzN_VxQNGynBN1O7VWVRPlO2xkg6gvBTsCOeiKHJsdGG9X4p7seI2j3QsIHlo_YDV9IA981Ac1XCrIRz0KshDVC1zt6tvMXMeYnX1IfNYdMA8Eoo71DLfTAp9v1ZEW3GPFvwQv5QnzgjhyJBLd32YeGvfWicqsu4ihWrBv5I-nNQo9sP3c_1Kf3NhJNoq1YERiBTnVLPy304Ok01bYDjBmqzjRsFVwrp-BCCxOQ8YICkggTKtt6puT0n3IzNrdeE6yjW9nZnXoLtmizczkW9zl2_KgsKgNLvq6PASObsGzNDiX2WgP67EisN5Kwbmg1eU8unMqDWryUUls0-iTxyG6YrmI_WY7E5MEi_br5TceuBnMQxyuAqFhmYXnanb1NcQba0L-GQ5x8H4OlKbstWMS5l3EAmsK_OSFFKfgy91I9nqZ9fwaRv0QHCNDj4_VfTCvuwqhFZb67VG8YMx2IXpSf4alfBYgUgmGE28TcfAd1-9_mrV9rW0j2ZTq0W0r8dEpCgEXXnjfzMy62XUJjCip0qiYm2lXt_upCLFuzm7jwKQmtJe7IuVrzPgJiwhWcrtYBSA2bQJiShz8wYa5Thyu4WmDKaHZ9Xeq1CgkmwHoA89fm78Hp5WSuRYFyswrmv9mLn2ogYId350jvFf51X1v2dU4g1puiFyKkg3F61NadHg3uQb0a-VB-X0xT6Oukt60ecRbbFLYep4HFqNlvZkbRTg2otLe_l9q52Cx_8mqXdNp4sufwQA6VJoOD2wfl5rI0yhl8iEK4RCTw67caeV43p17CtDc-WO6LjXSuqrvAMR6dbt5BfvTVy1Vy4MyBuXmYDw5Bfl7a76Tzq0WPWMhS9FcYVKxZWb6mHYu11T1ach8gzdoUofyZ4CtRo6wVLkWlg4XD9u6IQFXAf_6NH1k-CeXLhDZ14Xgzu4yRDhNYEMxh4Drk3eV9FcI-8x_rMjj9uEYjRkpM89gdBgEJTHKARUXFismqziMsu0mh2bxvCVsTJjvLtjoJGkzemZ2KB8DrGf66qOi8CW0UfoBWT99B0M2v7qOMFeoeNwHs6MpEe159GJAM9_9QJuhYNKPBe4opuNL0zTbj5SZDK3LIaN0uvijpoqB7_51i-_b_TqSvB3MdRShmcfsXf4TmZqzF2bid-udzFTcsRHbsT3NwADxZsA3Lo8rI0LVhDLMwGZqpCztPVLmUdp8xNFlLqn2HoCKRFBWdGGUWRrswX8_HF5sp7C0kw9oxLoKCish8sPUSWVwOHvTN28BXzo_evf_DC2JzcYEJjoYdMqZIvBC26TlhXIkOv6KxTQNXZocaUUkh62R5d5DV6tNg-M1W6rlELhC5afZVRFNya1TDsy53B-c1Q2arH_rgx4i8qI0W0aS4WJBUVlBiG2qrht16FCufxrSO8lyOYaGZ6ioPQJKiR4dbMQs2L42aokgR3ktm-5d6iSgQ9OWpQ8-1jcMjpQAwwT5OgoMXBGJJwiczl-pTn5Cz7DMyKlyl3Dm9ClKbNbT6wZnTSuqm4bbg2ZePFP0eFj0OydU67OYaCvqNrPM0-lhOhrWhs-NHmuhIFKyxzJ-8pI1hSYeVBKoHSpNeNU2727p7FBcD1DaPLF-8ItAQBcp4FSCCGFFm8YkLS8VUD8zAzjAlC2lYiX-sJSkpKbuJldY-P8WO8MfB_ALhPaVudpX1RgUFTlJnM5-JZNa-L62279dmUDf0raxJq1acOidSDQJCBiJJZJpkt7wH3muhOHLxrkypRyTUtll7zM5Kgg5rqUdK5NGwU2p0U6gUZt_rmItZug54DOJvMzwQpTQ8Y-qzw-hcMFSCJ7R1cGf7LRr5sfY28zsZR8SQZWUYJifOjtpyn2WgzwW9PrKWhhOp5K1fPaVv88rAtSspP-qwBiE6orEDWI5PxSivbCO78mk78Scwv_W4FWlwo0FpGhAsqN1B8bCP_tf9KrEfpQv-NT_XYPLJvcQTqLdxcY4x3lsDJXwmmR29M8pKmB2wvAnRA2HRXBnTHT3oFtYLW176QP-My8VnRUWc1DPMrZQD8ofqCstRsD-XlR11Ww2BjBGyw7l2x0C7l61n5MZq-tJQtBXAO5cV6Ty3UIItDuljnDBAGEbbEWhP7-LIxBhno7mbLGWf2NSQLphns9wMzIvGtahITLh7EbdTyXCoUhiecjy_DdlYx1OdWUFEP1RTtd9jRdm0NNlgQf-fihACf3pk49a33uEx8qdkgVSJA8zmALUjzUod1HiWOjdeZBbJb_rrRGMtDZiKFqMvn5ShafhEqnq5xndYb9pc2WtuvfCiTey1zdI244IWMnlK0jrZmucOaGocxkpMXL05oa9eS3WV_FD6baA7GdejBFv8kuTyE3VnLfSzJN0otub3uREMAnLp3Lr8KTVEeMTZzW0FZFU_pPefkLukNJyLXjpDJyjY46xPMy-J3tglTBbYFJNxUJLb5aPYQRecHYa8VR6p1hiS-iD7vimKg5SxRLgJmq1e3II8Lh6fieXxfjLQl-kj03xXwscJtNX3R3VgfOTWChUvg-DtZ9A16VdGRfzAqNZ5FwH5PGAAjUz5Gke3R4Vr5Wqpso1CLt993owSA5j_h4W1WQk-2PMwlsSQ_fxJCq615N52sfSB3auPlvFvM1ElIz4ddjt7FlaVx9y-e0yDtkqIGzU1ivCptG3jQbDGbaaJHvyeOl4-mfxOorJB6FMNDZt1hfQdXG-FhiOe4ggIcanKk26QDhriugzg24iKYyMCzPhVO1TzZspIxEm0QBE7VxFs-AwTHuKyc_QExVnEmtRQ1A7XGV_FtfCF6T6VvzbGIKqzHvxzdOIwPl5B80lAvsIqsD2G6kYt6BAT1t5aqP37UilQZ3uxwuyh1Scmu1c6IS1iGTiYdWYZhXKy73Ff46zateATFeH9s5Cp39lClgpcJqKpdXdYSKdIX7XoCT-V9M657wLWfea9Fp-A7QLNCp8NA-JcOYiaVBtcHLhRZxoGgZBoGdfjw22yzPhDZTp0kAJXKy5F2KsypLmAjdx_JhL84TNXOBlhOClSDu_u2ZHdfAwAyDYksen3n0QbDakiwzbPBafCQCHqzpucm5K8WJhU-SzbtkFFRo5Svhi9JlJP5U7oILZnCMZJtaJOzjEmkdkSOPdO1RkONb78iHt8J6ThvsBiJDbM_Yo8EnlaorSzVQt4MCyjTagqP7ig6q87nO4X7_FiXXoRQhtg51BqNR4iCjX2CxNuIRn8crEmgbOKI9qKKLRjI4ST949JdCXaQ6B8sJ9SizUu4CzuPuE4LxBlUVe-dlf1mnPDfLuF9EY1JAjPBrYHmxpYN0lkl7gwGX9DfAHSlJs0bKdhMSu2FYQTlG5Qf04zuILj8t7pw6Q9Np7lfeCHKc2DOfOvzMaE9rn1BuJ1FgM8vMVosv9gjuShsyZkG4MCWB5PsHkffshqk_FsyDpf0nYamfRjMqDnVRksoR9gfqAWCPxcT7_xdFKJ1gj8p7by8BAonttjydY8zP9jLXNYFpdjZkHaq2I-jrCL7dewXAet2XIQ_WxM-kyebnQ6j-tx80iD_aN7_SyTn_DMv4LmCGsWFLGxoaM0WB5fd37udhGfX73bbk2Zymu7suTzZY1qzr3PJ_htFicAmsIEQdqf2p3wRu2TS0Nv0Gqj0VmcU7kmfeBg7-56xSBn-yQvU4fiOH1d0_zq6I3WxjqYk416_lUuNECtH69yp8y0KK6XDnA9PSggEsd3MnttxfzkxSa-ayg8dY47vVKAZZQOWZ-WlbfoxZkLQlOMKn91JqtVeIcYy8uMHNNbb-GyC_IMhx3UnPQDr9Tq6_A0kZ3j7h-vbmJgRsPQF5NriaeZ7uVnXfkLrVcwDXoJWflGHmFzDBLgZWlubkcBHt623C08_u_-2rd5e0e2TLt46R0-Y0qGRm59cvH_2S_BhdTrq9J8UeF4dEyv5M35mT3Tn7d7y2kW0YJblLTlunI_ihiwuyiFQhvmS1C4OgGtFvBjnnxyan8uzT1Uki3pG_nPwDZtkhhnfSHrp_X_h40XA88sPcKYHZl_yVqhP-Z1bHV3pTg1BryQX8mmbOo4DX0Ryklk2BwHxZ2cksJyVYx5AmtOjlEG7Rs1pWyc_rv01yptMDqDqBbJfckAKC-cuHQhsn3FLZL_cgVWGt9m-1TNdW2au4sHU5kljyoii-_lC_hD_ftGYOlDY044EHZGxpvlNImVnMycfkAYbQe3jwV2uL2swiQj2YMI-QKlZ7mwPv5Ivy0zYoqK8jxfCjIrMDybpSSEXVUxnpQQxraxBwjoqENJmXQS0kKt3VjsXW4-F28_9FQhoQjbSw2pYongQV-75Z1miXYjj3VvVOuBITXxbovBl21WOSeJj3s89i4WfR7PAthqwLj7gRiQtEda9GJuoUpzgEn3HfG8rhZ_nxKLOIZ8WIXS1Sldn15CU1uUIVQOtPB7KAjLxUgG9odMmsjlDkmLFN103ZUqI4eugrNA6Cuq_t-EfjsjCydOgLmrkvRw_CwxgnTsCMlqp9gEXJD-P6c8sLIeAzQjla5le3BZf6htEPCw0wR6D8omBsThn3Oylp3gTNqmCaXfq0jyBWliIAd2zldBPQCTVNB3TwkH4bJGG4RG6H4eGjSRoEtbzSbDLmS5pEAbkJM3WPUzw6PjOWBDWGGvC7u6ilUewKmpeNUN7fe5sbDneraq_deYZjfaRmi1lGgRAWbgam7HIJEh-BdhBJZb8IF9Y8lz9scsWus53YEkd-53BREXStb2sSuikgsqYThp8HZJJhqiK3uZbp7iyrvwwJaHqiYHaoR4MGSkiiPPkmzd4_i-3FjIrqg-gC9WB2V0N8uESq27zwWfSrSAWLX4FS59PZTmj31r4CMZnQXVtBGiEEcx_7DnSKfnfAp1sOH2NavuSgyNummVvg8qimr6vMdlBH0P0eWlv4bhdqV2dKO2C9egJppvvOTnlDUyuKk8-maVNuTlmWk0lxQ0aWU9HL8bMWpgkErQuJnlZmay6SlZFxxD8T2XqUrfBVAk-tWzwcnOfgLG5mvH1e4RI7ucSvDDZ7RbRhDzEQlYeTQB2Hn_Ej7kKEI1mPkSqae2FXGLnmgUQ7vUQAW_wsHVG6Al4OUx98lnr8Y14oj5Z3ilxrmw-Plpc2AO26XQX-ou0VPpXD-Bz-30Sj0HB92UCScSvBUBamO6rLSD6VkJWKkNol-JWuTtB7evNIinGxHtZ_yD5jL1SlTyVvyLQ5caFT3avizn4DwnZpeG0e3xf4nTHU0QQmP9MMpq3oKV3oaxVe3Uza3F_r2DPfx7eMFpwirn7RTOrZ3t65FkUkO5juRxmvpz-HYLDMfqs4mvlPv8Hk12_D6TTKNiOJACZjTJMQW8vuw65P3SaFIiL4fdkfy96BlYKZce6s53niaHxnpn7lut-C6RZdLUDQm1p9wbgFvl7POkYv5sVfLZubaHRReUuu3y2RCRZQbNncBZPIViNES4CuVWjuceHgST90z-AyNHRZuKCmhMCwLOS_mYxQlLy2nhqOjGhoNz2pgnDnib6NDbA0vXqMdrtwHSw_4AGcW5Z5orvk7Ws7wHUvvwlgadFhglnq7rJ_u4FlKv9AVjvri_2879xTVZLqgkIQY0kvtVw4xIU50UliN7IYSHsRDnn16t5WjuRJ5-cG4fs3Y-WRlz627K6_WxWF7mu5vPQmYqdTnm5Gaf85sXrqmZinK6PbGtrbilbGeALnJrhvw08nRi6E63qIqHwOj_kYyCoE99-mFlz7urDF1KuN8GE1wRW7lI5gfXPUI0alpZ-YpIGiGDLuJa2lWYFuwYCWb7dkW9RVeiLeRxg9RjhCGOJjx56bOdFzcE3v-Rd9tSdJXl1Xsf3Kl0j2zqSeIOL9jb91ukJe-4GkwrbNjJ_4TS1rW9ZQ_IaeipeQ37Px7P08kaxeqa7-mBu9ip0zUzt85JUf4KbBziBGtDmJvu4bsXA7Yu3ZdXmSaIH93wYH6ZO5KKgbyrn6BOwVA9MV0Tslzp9tDi6W9TcEZ9aNgUj5mlXIgeUOW33ewyaqxcyOffOlLA3cwcY2hVnH8faahGp64WR02F1AUbxYIy5c1Gt4ktR7ZeqczrXOSc_6l9IJeQmNx1NsT4QpAfP8sT2G1dBxKup1cn8SN6NGiQh87wKKMTABKp-U0Eaauvokis9gK6EtqmOUT7GECr6p-eZisfIT9-MpzNZC_sShctdmvWn3P7p4Mjtpcf38zpyNfa3i2pwz35Hjaits2HIW_3-vuKLlYUmBSftIqMook4JjZaIZrBBgeoyY3kRz2iP6KrINRSJ7XyCvoNDrpGJZS84Rt3X5b-UxWynOcQMSQBblTfSzSZMLWeMa5dAShWSoNvreC78f2x8n2kVI3x4nTp-qWpfZL49kDR4_eLMpz_SDsE7r570glN9rpKUpVW4zSS0OazeL81s-ux-gIzsjSqwQswCeYo5JeMcYWSf5SXm2RubFbz5Ys-RP9NLAFDibwGunvTF7gDJ-6LzKYXsr8gIglh74eOUsVwzuCBSw7rMFVGyHxnBHuI-exhCigBEzNQzel2f1TJgJhboaK_cOmEqYOXYX0t7KsF4eChq4RYCiPnrsTETPqa43utjFlA1ABjUL_RU08Jt7-E-v1BdAECKBhFryTQ05ZXmrjMBN3YYR9zAhr4Fw9C95xRf9FQ7gil5W2eKUTqIoRFb8ce5ND_zPu659VrsY1vKQKTWgCdilWNvpsxFUAEtEPj9sBqfKLUp400nf29VpG1eTFELnVTkwG2OXMfOKv3QHNZE_fbD-PKy3gAKmF6xU5hBrEwwnRNvweKjZULWQ0kFRc5xTqhxjTz8QyAR0sbfsLwcl3W8lR1eBhMcL1MRZRCtT3a-thGUczoTP14SZN9-J4_2RFgJrT_SUgKA04_WvBizWxhCny7YXHRbII8tXJtmcAwi6sbjyFNl6z44fRNYXUko6rSFmE2Iy31h7BBDUBnTzhsOJMwE_oNjNaP5sOTYogNwTqqikJz8R33LftPXKn0ScXh_7C-wtsi42LrwjsDfQjiOUmis0r7f1OopgXBaYrt319kpmz9EH4HveMqdgn0jIpnGUXYWpx1SjsOaDu_WvbWwpoepbknzZxg48jeMTwkZ3SfNEhro3S_Y5vCtWxEkLC6nqlyN9vsIaS-0dt1BlGphCLxsO9hFadcmFaNHGJ9ZLhvegw54wicTMdc9Piuis90nl--6F46ccfbTIHDn1Fp5a-OcdrsS9qZn1z-W1-aQpoihS0CnhC2Kx2MjTbUJ-JsBHtATDD_Id5jB4gkq3NPZrYB7dw3bQzHWLxy-rqIQI-xhvW96c6Bs7kafuO_9LF76a284BGV0KnPs29_4sTvyz5z-O2urNwaWOMRFzeccni_3WYxUu7YdzmSOAIGcn2KyWtWYgEwKOXj3fB1LD5KK8o2azWiNJikzfp6jJGPW0peEIEpqc_ACw8MgpCecYYzTG5u8H9Y9lCB8wu_GAF_Ku9_C72UEN9VdMacIrJCBJwTUTLx9hmTI0_UAbEm8UVDpfa6qroox0rgv6AnUFH5VIfah4Ef0-zlATytjbli8k4IEM_0hqmPMdsIPrkuG65N1pIupcgp8N8pjVWcEpBAFq0w75A2D71gz5Zve61AHGjAbPACijPmfkbbe0pK2aczMy7H4SV2noGd5Wwpgv4M_OkcdI9PloeL6nY-6WYU9hZ12bx3WXOFCv9fkfmjxlaZOT98xzFae5avIKLMWt2O5dSSUvTNwW2YVnv7mw-t0tAYzgccQQWjK2jGf8GqFw7V_uoIpBA1yAKVRzUPyovjiQVFMA-Yaf4J9nXy4yyscNZjUMUbPFczg2SZOH4c-wwH5GJIQJmOJbyEjp-7OMvXAjYaV-WArQh3KUgxwhmOfxImkjWMFWaW_GmhPK4IMHwTsqywvgkrRqcwEmS5ujaGIVhDbmv32KylV4yuImvCDyIJjwWc0Xae8YPFnZEB5aZRX3DyV4xkGPlvQWrPBqQijxjIffhj2Tzbtu07gCg5yOPABhSNgVCBHIl-UdLJspK9fJRqHufrri5032G-mX_9_8uo4KHVcO8zaB0MHbE_gpUz0xzVsGf5L-fD7uoe1QwlHVN4e0qbZehwo7lFIm-BGXuJUUim9jNavpQMftLdejjJUs3xDTHHyT1NnHNJ84LugmBcCAR3RspNTXxpa222wLLg0Sb4O2k5jfNQBVHACkUwMkYBybNy4TLyRVAcWpNKzH7RhXlEOw87-3Wr_BkSg_awRGcBFRzpdEBjAmpEBUj7GJKILPTQNfbc5mztsxExYSYMk7vVGO3UDoczfKgtrHhel4y5xnSkCdMWXkXUNLG1XnQPhP-lUigEW8rFK_NSuOwTLMxqVF8QVkHhz2LfP6gF6d0RQLKFkQkHMJLSfOu9vEWxz6PQH-nzyU_glBlCr4SvYQ9DAPT0ViAXmpSgzvgYrh1iNhWwu9vDSCJDbCdJAMmFVHeqld-mZBlM3z_Zgl9HXQ0jgxCtVxN0Q8G-ySfNtOPhME6OKQx8lQ7RGyqCHeKjzGn9qLP8PK3Bd8ZuDp86A1gAZnWYaoQPkQSy37wJ6x3mlQFccOGPcngiRviQEv-6MiU_kFWE9R29gS-C_AbQYr9-wB3J1ZB9bvSeyZXFckeijUKbmYMw60GD75YBJ2VDYOjQpCGo5Qn0HNcAJHVUiO0H90MY-et5Jl5D31UkUiGam2w5yUCrYktmnxWTTNNtLuJUS8BBrdmMFwGrXG9CqQLGCA2g86d7MboRfjWAoDA3KZWvQ1eRJKbA0E5vj9kOBcl-X6uCwFEU27BtuZdk0qFwQJDwzQFUckgz_B0YtaJYg71Bf6So5lewXH8JnkghxzOjlkaDM-pxuaYMsMruVromdhoDJoIEpxY9jjX9hkKe_z4KCOwQkSLH9zT0L90X6geUdyeP_xhrXXfs_JGpCyS75SvTsqxebXjj3ExbEq0lQ1ICSpWEjr9bT37a4hfwVzEGm6WYZTLajlCIDW5VRgp35WCbF5-Avl2RSUd7flt7o28w6JwbhGDP9tJYiRYBq3YKQOHGhEwqURnkTEYfZJX-hBWJZSIpo9irl_xvCNPPiglgPp8Z4yvgpjFBpDz_niYlH0-Dhs_aV5FlNtYWVxR9H5IGxjC_hlqX24eC0i423IrGnalKCPtRgKteDDYxCtznCrRYKOCZQJrMQStHCtpMZhUnUFZWX5DTScgADzqfABeM27SCFLug3OkU-Zz0y9Grw9-3BXGAlZOrNuQdkEKWd82lZctgSZFhCLo-NlBvkzJfHjBhxZdgbcY0oYSastyCWUNMe_pnkdf4Pipu-0AKyuK4nZqRItCOCqf42qwouB5-nMPIXly4Uu7BZH-3lBRNirusD0DXYmwIxFWhtVgYaQeutQj9RcS2Wlgk2kZhU1VeXNw0XYxCOdQRwgvedvOEQukITLa43bgCYoFsKIUZj6zj1D54uWMUExmkh4uDAWTj8AiUGR53gW5sqJbNrB-Mo0Jm1Uo6rxS5niX0xdN8UnxokrNklibgQCOmcV4Xon7Yloh9rzZ2czMCuACgrwOTcMIvR6ATaxgKw4DqTPdnObet9aSh4SisKVnFIAxEG2U2CEFIB9ovYKLmgu_oPJAvbYrNJgE-RWEdfccE61hx8MeTqDybq3rfDMddh4HcSjynT9mctsLo_PhibnCsU6ebakFIbWCcJ6ZLd5QNKu-Gf3kOwPR2Aix39Gp16eZnAN1zrNYX68C27DZDuOOrwWtZyiK6bmtcSVN3Y1GRPst4ZAnxjwW9ZMSEFXBdfUl_k3RMJ7ntocxCHBNyA-LXV3_rle8JI_-UGoGQftncH4qQNg-QM1tTPNfsL2FTZuvauUW61Kp6Lh-64g9pjedBX4cWTJJuWawAvahXqVaTJOuzGLBpbT9NirrbIg06eOFu1gkCuXK7Iz7RC16i0dtqaNBhlnIFCs8xjnjJJ3FEHS3VuzSGVJ0hgQlrWopvFz215E6u9zLiCPJVnxX56O8SURHcQvxI_6Xwqtel-fKAolXND8M2bu8R5oljRDWd4coCA5Q4BfAWu2Qo_755s5ig-Esv461OzAOgKsGRJ5yQFrOfiB4HmEkvAaoffI3xoCD9hUqqKd7OksbAKemiwjYFGFVJbOfjmlxslkZztrf29VaRTunY2Aqzl-VMBmVxLlANH7mxOY7aMjtPS8FmE4wAKwunv5G-azjhBgv_3euzzug3Qx84AtOtTbs1uk7VVR5yowb7ace4ky47jigdikYoGHmgzPNwFXzrbw2rmNPeyOaZoaOYKvKRB1qgwiUojboOhbppoihodLC7qC_D30L6K_yZRgCl2OCCsmXMCpR6lL_FP4aGSflrJOIPx6TSpbydqJXlOczLfWa24Nkl372c4Tu_bi14XR9n6LEDdj0Mm0cNVVftg1-_p4C-WJ4uqzdQ-j-Tmx6zwwl8b_0b4qbL0nGG7_CCPX6-2bKGKnGma1F1stSJJ5rwt7lml8hfTjqlVVm_0MVf2KgEVnFe_6Wmx95awYbxdrjFxn96egjFEx1O_EsdP_da0ytoyxIDdHppKxUNFWa4KgB-wYKHEMO7LdbqA2vGYO_W-wFIjuKvh231x13qbUV6b7tWGWR_uoTLBL3guZVP5TB7lzJbCxINOwcRiZwxiRJdusZ2K1mDmQVeDOJNPJmOP6ClUgftLqSmalnX6TEI-91RQdKDLdOta_wa1arLDZdK5SlGNAjoUTfpOl4ijqScdYiqvJQpcbEATAePCD5B9g_Ypz7vow1-CfJvfbOcP1q8jQFMQz3sNoDGnPW2WjTMknAnfZLahNVTCWxuxFfsoqUl2h2j4epizYz75USeb-DAHBwSB8JOOSgnJoGkfFn6QqI6X1XBFUU1DFlsIcUi44O0VIswG8uH1V5btIeA-2aMZ_93FstjKxujTdoMUQ0RLT2h0DMkMTPqtI-Jpkx7C6zp_mXTcgZlASyo4KJGb0zKOrj6lWLHxM7At0GriMGS6C00t-3dx7ampaRfGtgf_2GeCMy_iw87-KNlwjdQDOXzFJd1o6d41bQKNsbgbJA3B781xwA3ZGKaFS8ycrdmrtNvz78FF-Rj-GmMOTodaHyay3C-yL7MIvCVdEQU22n4zv-XlFyON3Y1R5OE1nT26lkGE4tKvFCAXb8nxj68e4S1q9uTmNXQ6KJqeexOJku1etLXR4INswbRxKMFPT-QJPYmj5JaB_T5glY1Z15eTD_Nl7NDlPYCXsOXvN2hHWQC4YxKkP6sV277iddeTPCSeCdVOoqb21Vg9nwydleEKlmUSCsJEjT5w7qSkFBnQVGIRbLxCuBXWNOb4iD7DmOwfAYqwFXD0KAddT8KbrkiwkOZaP1p4SR08GX9eZHnYkIV-BdwUniHip0KYqs9iCESKMPTojYDPW-uKtGs9YnYfg3K02Fa4fM7ly1MliJa7EzJa65Zzsmphsfqy0xiVyMkUMYPyqWO7L8V2P5US7nhhkGgLkLb2dM9u3StfATCO2ksKlruMIyeu3U1ull93Cqo3y9FFITIZb5JRizpeCvFyPe_gHqHZMBPq7DaadGZHKMX1O_wu48SXLTTj-h_cu3u6TekuL1xQ7Ydl7yKIKNNmforYFpvElwrQ9cLaZZS2pTmhetwOyNFa84rsG2FGYde42y2E-tlM4t2PDo5LETACEHVXiTdXvBjb0nf0evtsWijGHFPyODLCWyDDRCQUk9bBTXh0Pj7IrLG4suJSYmL1Y3EB3A3HaCzHAzbkwQFYyrvLOJs4dJiVsL7pRqv8hQKmmqBAXmIneOhqWb5Zq29QHLD_uS8Eepe0qcLXT3QB1z34XsnZIk7ogJ0YwZ-w2DcdAZc_ippASf2AagZ4WCn24Abc1NmyUyZ87qkn_sgWPin8TasP3P_lhQIivnH2yPMyH_sHtD1hT5AVbc70SJP_H67m1194onprgykNBhdymZzplCN3r1iOgC4_CnzaSHBc7IaJo_alvZ82JO7l_Tts4G4b53cghS1cb6fceDa44SA47xmR3hLgJllTF1mbdUCyMUHJGkr1E3WqdIWR3PVNWYXFJfTCCwE88zAMlB5XQDmNZ38eBU9UT7Z2kX7CvhsmMpsMklTY19UP0DydJdWja6YhJR9jeAVGnqyyhAqwNBdixQA-EMbJgAYJ7fgaltKJwTIOnhWiAXPc5bppmePbz_fWmljKJ6WaqLOKk4tmo7wz5HUrAXooUce6iEfMkIvmuSJ4Ek7kMuFzvUydjxOof6RjT08D5fvVf0ub3Jgz8fSvDCgNH0BH286ueVJEweMskYbkXWSNV-ooA37-EfFCX_s6hrbEbm_ISXFTOEiGZEZ8vj6eeLBsKok-JY_p6wU330CGmmg2nvlK1BHvoVgv_ZFiMUqCAfMHXhEoQlPJcBDb0FhTCTCuBsaMz-i45Zle1-DPTOkHDlXjOrFPF0NapXp6Lxsxp43S2bpQdb87USUi1ijcsrXM2FJxIteXh8G5nQsdwTVgpZzSRkp2uVaLy88tuscdrYcnJP6and_1_futkP0bjSw3L4kPHGNcnb6d4LfEAgWG6RRJ2CteyPhbbUQlTjPGqA9J3FUD56geK-DHsV9boRHiCGXzvU6U3JzskufwcvKucuog_PZvVKfUfKEwGwz1UVSSerIvBUVy7OnW9l93Z90W0eJDrNrhnHBNumywhnfWhuZk_mY7eqF86tcpL-Pvj6dh4ulRe981P9p46V7_u3V_Jr8UmA2F4cTetpfQ_g1OIgDkYlXWTp7gIyISbCUdpcABrMv0bvUiRLVFntFf6DmgqNtPM2-CITDc0nFQzJm24xWI2W-0z8ZWkN4Y-zxXeLaomffbjYU9ykIC9VcZdhyVpfHdEoTxTY1G_ORDNpjSqoBEo98ZqN2uckDbSBNbpM-GKcJaDYYlXHKmIVQcMjQ64eLpLDEvhLHlTGnMdmVqyYEnHuUPyHSe2J8b1RBP-1DQheW3kThjYxIv82gy-hYKHXsXzxQMNLIzxGe5B6EhZakZ9JPEYoSIIEACKPdEkv3aR4edtmgYkW9sufCi9z1WQWmnLaE7CwlW8Vd6k3zuReBxkDHvdPJiE6cCcr5M6brhoFwrMLQD1JW9vVY1BPbsEIVf5vnEBtYEjACRxWnHfwkjYoabuYHLU0czVFRXNrdBE95tf8KolzzVdmOFzNAQV82YU2Wv6jnFOhypQIVnZ3UbKM1rrYsb-xOwoHDK5i5mVGykW1U68k-noBUHEZsBFXXrFeuLtkYG913q4Wcr_fb5hSeZyms4YxtSCSfetLUocB2mHZjL0MX-bP-Cmog2JHSEtdqyK0hjnXq9PZELEJhOGBh-HeZuBGyWZ3jI6iMUOlC4AVkIj1diUKJ82V1W9HU1ZRDWfqlNuLkn0_guyacghrNskKzv9MAqbYsPQVc0rtT8l_OOWUJqE5QVYigfKJuTLKlaqahKhjp4H2GCUbfaVlBpclaJ-F1Bu5bA_J1VYWcjSWUfzTkf4UNSoqakiHCiXMYWvsnacqfryHZglNls6Wyza7HbEX5ZuslQmzlt0l_0QhkzuDKp7gfT-eMzfJbJEydRLBuYIx56iP1Ti2HHYAc0y6DQrjONUdVLvxVHnE6vyXad8GBcTpqGzD1Ly1zG7_kmUSSzIsYyfhCFSIqzXr0rrgQClft2cptsL_HA-KHSeeS_xJtv4YV7oh6GJKEoAgv3TuTifznNRVbXq_WUIUB2dQeJVPU_hkjmwBCKySgiaysQmViRSmYBgHp33PeQ94CVRPgOJy7R2LMQaR4bkPIs9-lgtV1IYIWETg5l5seHGWWg6MY88bziBY1A43Wgv3n-e18iz2oTgFuL-Io3f9F8TE3WttnT-vSKdDQw6axZsTjTmQ26OaGytMaN0qu0CdpaAs6rmywDGg-h-E3V7_emo7zQCgQx_8HVq3U6lZ0IqAkx3HjWZadYi5xT1oLzuWwgYIYF7oqHB16wAaSAD_u9vD2sue0X3R_RIuduIypA-yrQ3C5qLTJP3eEQGy04rwy9ebbRnrMoTT80zMVtjo3IWj0rJhG94B9uoaUjQ-yXStsUiVJKNvO3-DtKJCAZLcd_H662Oka-Dv7pvbiBx0l1uazVRj8OctC6I6nuBXrhaC6K7OKc8DHSxYggUYxk-c0h7Yy3VrfxAy96saidMsnYz2tt3uZZptm7tSncHhlGi6uQTGxKl6hHtGb5iilMSwDyzkrxEoAV5vFB0fQJdsMeJyj1VujMbX7kklriNWJYX9hPiL0V_RRyhmH40VozMEsJP0XDXjWehGYA-RdlDB4kV3GU6Mls6m4m-OWzcGURUC1wyt3fFMqX51-nYDzRiUTX2JOYgHJMTGr9Qi5nkx9c1Tj_Ivj2-mPcVBYYWrjI99H4hBc1_tmRpDlb_05XyNwZfCfd80JM_o1sF5T8VJZA2uT_7_vyAehi0P4mDb7G5dJTDwpyCP6iVjMJj2mZhnZTwLJqhtnJhlXGsDTskwzBaC-QXbdV_Vc2dFQvjkmcm9KZJ9HYo0AvPunHO1pY_jIhdSB6duUGUSYVSNYB23KRSkdNR7nvhsgj0DieGSLDHqyKwvs7KLnbuh7zQeHDBAmqX64lPCkA2OBviYJFf5KO6TdH07kD8uGiAvVxkbZMWbVrkK2thR1B2Vst4fLeUW9Cl7GlkLXOp8f-6XXwgozSrSg6fAxje3SibitwNqLhuRbRsRSS6p-7_sxIQBzbw1dmNAXyueImYxb2I9So4eoGal1tzUzeF60rgsaFjoLiuoLRoUIilJKnSaOazFbE6UGShEGLYD85oNx9w6_8s6Gp_5vR0_cEGF9FrxCjyrDz53bGNADS9I8sJionKViKVboRx1ZH2GnUSsRRoDg1oZyePGIJFk69_220c1qiHxzwtNNWpU0HIP_ji4f2UAIup66A1HARepq4TxZNks7q4fGlZSyLJPZJx6q62zRfD5qG5DtVqdRjz_vxN31hIm7zahZ4fngD7KHvo6DdNt9246Xg6iFlc5baWqu-YrQu_bk5wykLNTpOZ84eO4ISN1H9EFm1YwhBd1vnj36a5SyCAW4FK7gLWhEWYh7NNm35dcRciOnJi3eLnOnywW8HUNYs9GjF1hlL4OL9WKj0gPAK1P90jZZpC6XmLq1idniBN0PYOIFwTWPX-A5rlF2nPms5MioIPyr_V2fIypWBn9cgEneyxw6DGOWQms8dEwclh3VpagPRSwLVUvYfPEZcO1enZqNMy01pjJGnzbfHX3sPxjVuGL_6jJHX1hu3aPL4JWT4-KmcN7G-EraophVzI11ovFcM1kdiFQxz26Y_tSe1siub66pM3XQuSYU_nPPG893dkKIrbYZ1ZzLHc_sIBofTnxP29gbPEbmd3nQ8Yhb9z2AuPFEW5bmTBwJvNAeVqpbbfnqabn7CnJgOEagN8tYt-3KQ4RwsEuezdL8R6NinCSlBtn60G7CsBLxWuvYqYku4xis-EurtDVN-VlpTfsXjyj132yE3_mSnshdfZdTRohdI2pqEeySuGYsCSx-wnwi7bBXfZvdCHVbsBQudl3sVglObTuuB7yU0_LjpMi7VqOYLkMyqQSr-03T-PwO64JThHxRSJVEr8-GXGyQ1G2uhxv8pziOJWSyJ8bQ354mba7OcUy-YNFwsL63i8DrDZW46PAsEOpYIN_T8W45UPYvJS59u7Ec0goKp30ETfePORuA870J5l9czmQnQVpJEl9U75-1VSPMAWXK-xG2d4R7v6KgpOo36WiVUybz475TAU-bIKSq9kenj3_N_sIRbpR-otQ94eoJurj25mhcl0y5SDlS7aRO8XMhOrf-B8OQYu-awOQfHFJqGBq8Ni2GDRH99GEnhqFxk_MmElyL5DO50slm8rukiKF44Tfw-K8LUZf9uYDqY5IRQfHJD7cuDS_dKK-OvoqBgZZAMtb4RurPtPXtMWr-rYWS0ilh_UKLD2GAzJvNThv5SkJ7SqealEToCiELz8v2TJF_XrX9lZSs2D0EPfPDIIJQhkgdJxrdl9GeWnjfsTz3sLrlFOkZT7urKpmCo_OKaacjX3MjsgnMlyHKmZuEh4Lrwmwkuh6Mvhmu-w226A44NqLKMVuiwcqBc61ufiZw4pgAeFJ8_F3ZnUCjkhTiV3VqVHItEMzgULS2cdrCTQwz8XgjJt3aQfRZ0D1W-hOV_9hN1N10EspLJ0qRFkpmAwXSKLkep2jF4mcY9kI6yDk7o3YHdkWnKy7eZbFYgWtq8PymsIk5xMcYaB00DLjoLVqZAA7ibkaUz4i47hZLlM0EJrp1OLmdbGth_c8evruX64AHun5d7OTnU_RbbAlxycqwXCpPQyId21j5QcKim3BoJZnCeO9duXGh6TH5Jyg51xBz1Le4bUVgaKA4iBg1R8Ua0bLHNzx8BI2bzrV6ruqt_XBFvTHXD6PeQQyVunN0A0GhonsADgIm-bYMJqBTFBrYtW28yZ6gmvLCfUqMadCRg1TsES2Gkcc6IaZtWC82jdYdu-NcJAvTCCQBVK5j31bHPaDLJJ3SMeJujFpfzPuRVz-Pkjqb6Xw7JBi1pj0fSiNCrJvC8VwmPqUjgDrXsE0PsLXmJ-9jIYE0rBXYqshOr2gulUH1dSKe7H-2egKl2kyAnJSqEvoIjGU6MTD2ydVuwRiH9OD6Gxw4kw8DUHsjqezPZC6bTz_diYrejo6wCT-q7wRVUWvCdajY2TysyFO3Be58MbqfwTHopjIly7ztOWZRTeTydGxO3-MmTglCQ8oQevNeXEMeXa0cprdmicCw9PH45xh50NpwFIluKrWdGwS-DcZVowyGGXLgD9knJwbcF8rdEs-pMipWscXTSDlmJ9mDuLCqrv_bQv3NSoY9MboRV-Aft3uQFJLemCG6v3Z0p_LDgXCL6rcUGuusrNEoTQ8rlJRBBYwOH9ISrSfEIx80fNTGf4xmz-unG-T42Z2GPo7fA32qUkqhwX4dOOtBTaFA_huTCn9Na0B86FaUTvDCE6Tw1MGakISzXvjzy6cSJSFZ70Di_eHHCNr5oeuu_THaMfEJjfU4VXd_N2SmFMrh_5bpFbaHEEHlWvHbQWColSKJp8QgEur9NXeamuWG-mTFGZ4J64XKV_6NDoRm9MQYXFU88tZ1Hs5FCXBZPowFVpsK38WowEcvhpce9WzZyTP5qdLs6t4QCb3ipWra4Ih6juQ2zaLS0Qv09srapGMrNmHSeXz4941o8l1LbiN8SjY5k4j_lf-O_muako9kmqgKe47hGMdIS7xIKy_VX4TAUyfTNX5xg5ZR7pRHq2JjvDZQUPKJbQRX8U8EgGmuAfCgpW980tVJhveHgjq4I7mg6Md9sqpnN3_Vvfp8Ae3xXprCUg8a8IFnyM77y9KCyQaSS00b0w78-jqBqELdMj4qqwXEkS9VwLD8fmUvnon9lo8Wnc81dJ1wW2ZgXHa59kqWnAP9CRcWZ5t7PPEWCkzS_o9roSv53QBNFp92uUDLx7o4M_sH52Pz3tJXW9HbbXE0xgV9HteMRN2g9yjtbwKvjrXRCCjvKFu0scF6ealS7FohIjeyKH4aokFGRVqaPorFuR_zdYvnlt-7Lg2IP37HndMx1LNyBIRjFpSQo-dO64wlUZNQBSICq47N_TrCTpDCckseq6mxw5g7rcIO7NYK9-5xLq4csmfGoLrW9b23l2wseIKi3qpn4lJMkpUnt63BHzsQZbTODjICOmh-dIVrFHwVZ_6jGV_EQGOWQVeNDMiH9sk9X4pGeED2f2mXuqB_vPlDEynJafFIgE5wBx3II9h4j58a5ZVXgADf9ArECmOh2bk8F17nLIVD_xXUWh_-6AIJT9Kv-jM3cV2IIyqKj7CdEy4KCcs96qF1rCrEEsQbWavND1uPhfKktxARh6ksb8GRS32aKLq9dezH_AO94m5Mdmzg1Pz4yy6N9Ah5iJkPj4OQUBJL56tAH48gi2ETvy4OYkHMhuZG61P84E0XMnyT-lQob_WCXx7i36kXJbfOVwOqNpXmSo5g2FhvuTBz5ESQLtUoAP1zVvYz4g2HoidlRwtvVWBJpsW1_JOlwlVRJsGQsmXx9ES84eTt5FGl9YKeex6Sbw4UFMqvcgz0IFUZZbXUIhi2o52LWc7lOTxK058JMkWde1C6khTdVFD8w28hTvVQU-qdUmEPJH2_O88lTVIYXMkOb96o_uMILbqmnzV9BY5n7YxAweWR3kTd_bOVMqtB0I1eAZpIx_nC3cv1XPBINymQST_xIeJI7mI7n4k7AK-B1nRRQkiQMFpI0JgFB-ujd19owsZFsZLKEHYkGZdKm24Lo0QFx3vC9uIoZYNuaQUllvG-VPyEsikyNjXRh2boheUKTqju7L7NpnI-SOfODWk_-vOLM5uhAu57WnTGln-5xB-9Lg7_vRhoKJA4DAJnWU839pQ1YLc728KP8WJiYs6qn1ka_j3amUZHaF5XW67dzdNIsc6TqcJN96bF2Mz8Y06j85w5LKopdT0BFnKb9qNl1Ot9RZWPik08VH3Qhuqe2Fj7dqtyv3ctQuLANCu300aTQO7kOApCVoUjiiPn_7ZYb-3IoRL8eAXmoImeAOaj83hRCa6S-_Z6RjQKLIsleeGc9QEPRdLTxHSr94sMsF0Ku6FYpNAKkDOhiDHX6lU9_ArBz4PjdLC4eJx8BzotX017o0_-3_rK4QapGxYIPNmJSFWnAwJDN77mSfd7H-8EwkFxbwqsvvC51Mm5STv-anidmMjwJsRdy_t6yFnU9x93P25n-xvZZBHmo4bK5ZSjNIz18u1LLW-vs7jhqB5ufotgdWJTtX6Kudg135DwF7nz13vDM51W4yklawzvbrTbk6PTedtLoWuSsIVQMSTDUJOVdKGGb-qzqW7EA-33zw0i1MN8yDRYWHb2Eo4_KbdJZtU6YI8DNfgO9E9T88msYHYV9Lx_eULx_6BFw9vY628d2-TcpPOROHEFyrdOuAsZ20-Qx2tX5gwhhA6FAhHdk052_OdC_MhMFDYJwwW_STXhqzDAc-bSnoHQyD1gtetx3QO5zjMRFchyhLEiGNlO-IR3J6AAARtfcveopXR42uoz-M7d9LRdW3bv2JIfuvlprhpt5t7n4kJGylLo0dYEAabPE-lot7bhibPKCihFth5F99YuvlQsNcwb1eQ9367uAIFsnLPBrT8wqBo79_W0WdWp5JXD0_WiAi5AQ6lFbX1wwZJbT9zQsdVQ1zkR_4rsbME2HuG8U5DekyGQTL_8v4nXL0wh-atg12Pc6-hKYctqCA_8zrLIDpAx5rN7i9_Afe1TZoKduWsfXC05tiaqWVGQWaIYxHC7h48dUqNpLAt_xCnMriqpihYc_PPUSReCKrjf8yH2nwwhxdxksZ7njbvyU4XdQArx5tORhTo2z3dUTD4HQyAjfIH5j2AZa1EYQJnRvPxAwyzTKvlVMhAqjbin1SH26Fof7hu9d_kcF2vIfhybdrWdgQmM6kAuEWFyyWrcYWB7K-YUyyFyKqZEGIdCMQJS1DDrPb_E65AVse_cXICXgQGwl6r2iMhyPgAGLRErcB0bZIHp1ZyfvKLAlozBO3eEyg8Mya8J1fx1V2R64HciqM6YFPAK0jrCNTo-Oc4NPIQluJ085BLqzedVe_LYzb_T7bCgfaUQEy0QcVGZxAWeKXgJ_shHqmpnoEsAZ2DMLyBz98Pyq5h-v3A6Q1TBVmhMqB50eUb-C6o_LWwwbX5YKVJy-reG6IF0rZ1GdZZxF97ZKRH8xk9jiAzNPGK2DcYufzunqEAa3YV3loZaBT4ziEGOvVxf5MsLri3khHb_JK0g8Ll-Y-STNftkFOyvqDWqkOLEafQ1qli00FH0yd5Nxt3wYZlauIN8-ADnkcZpwY0vTj9d771im4JYgQrovYYiqDqYhMg_qelhoRwDP0LxIpuhBzq5oROrvgS2mhq1iv0nLLSB9elyP3SJgP_MFnWc4NFk-83zNTF1kbgkaaDJ3MAGliGUxkEfNXtbLFBw5_vF6h86Tb6t0PtszcM_KOs8DHiFxFafNmX6ktT4SajsfkPInPW_jSKmmDEnt25i0tCanpQf5S4rjueAoUEXrKIzLxmy3lCc5wz5K8Iw_M3_52qm8pkAu8VIhstxWvEvmo21L_UOXnPWFGj-jXzd0SLsMvhX8CoRHTMUBuU2nAD6xOMn13Ku_RLT30UpcEHlJ6nr1LEpDYlZeMedv2p99YEaJ0reUnlV4DNQ96YS5dmwd0PenL1wguMsEg-t98wRBgRt0gjj3Z4ftGkOCO9UiJrASXaA8R8A2C0ST3K9XIvCbbtfpit15yqGnbo5LtiSmo0lwR5JOT9lpmTtopXAytatLbAvHBM9r57PCbz7QWPhY5Yc3rCXNuDaqZ-V4-_VP1YJyCe88cXStsrMBAZvVOI7LdVX41ikX253_cMKVqlLBD6Bfh5HtCDs7KMVnPrvA9cawc6nLSmmSPOBAeKV2tp0ZTvZsvR010uBD2Uc2gHApk_3FkF3dG7LRkTLyLzLxT_qooO8ICEZoQRZP780RkDHyAXkC02Wl3_9YxZZyyjUOniwgqN2HPR77zMp1OU5DgvxTYcR9vcvL_hKP0F6D-Bx7ekaZVTtbwUK-KcHNbUTdyFvyQryzivJUMGsHl2wDoPES-gctYwc48wJfTLVk4hgEnbYDAfl1BqSvC8HD4CVs82BNySVPGmkV4wgThTxxdQHBtxovrnxZWQH6P8JmIXWRweZeX5jGn8KbtRyMWpFfsJ5Yq6Pm_T5PV8aIV5YlfILV12WbLhtYe67E-JxwbStxtxxnkrRUWWDC9ycvw9HGEy384yvhQoMHZJ3Zn5Lpc3JZdYiykj5-Xu29_iWpC9qN00CcYBp9tb3Cy0uLLqC8ujxD1MYaUwscv8ZLlk4Ae9BnCt_fOZ5YxbrfEoFAV2EeTdygtE5NRr1X5XJph2tU0dfZZrXwfEk32EmaIp7ONOqzjN3LTGK_eVH6L_7LoaohKMxMZ_jDMr7y8zBQbJLDh2O7HiqaSn_Ezerj3cvfw8EpkKAcJCzWhujqL1M7ZRJCla5xpl1GMyD_vdIP6MITog-VOr3u_1iTVV6AhW8cig0VcLiXv4HBKBruYY8UPiD6dVQ9tLF2ar_R3tsixkmeShIcc3WvxjtiFnFmDVzkVJaUUEW2xyeBa3QJn3_e76xMXq48PigvVCcWO1iqbifuM-m3REIPjJ06UxN6N5xIQ1SZqRwn6_xcxkIs334P8YjHqDx9MJCTqYkNrW9nnnkMk2ZsLSEeIXyxbe2-U2nnxZZhoFeoKqhYLxaSLRqTKBZCC5HXH7uyXngwyIS0BmeJAZ6HlEtiKnEN3nSS9fziKR7keH9YYBOAyMmB8A85Ado0yd9-k2sFDX68xy0jnz9dQNRKtIPg-TMPfnyPk3opqIylIrzaucKBB1dlpTDp-00XC7EsZ_s6hWJYhbZRO8Vmh0lx_zp3D3BDS8mmqD1RZMza6MA8OHHRkEOINX5gLnMsisMORT1l-BrL8Qii8niJ9A2tT6_OSXj9TUS_iU6cMPVFMOtGhBgzM-n49Ff__BqoT7806qWOdoVFfD-fe0Tm0s1prbMfalQybzVFzK1Md6VNNt4CanTu-sX5mZaBvSnTof7XPsKLiTZHeN801MEYvR_-pE7ELuD2hLu_kCQZb1dHHUpYIsl6uEz8V2PIjlEqQGwREaf33ve0bN1AkEyrUty2JxrpK4JZZia5W9hZfvxo2XQ1Id3IxmZU7HW6jnLdZ0idFP9Drbn-07-0IfvcFACsEwpfPyg08T5PA-JNegH_5k8NmTAOldQp1jIq0Jt4GVEFV0lckPMYDmdkYSub5sVzSZbgD1Z-T1HsOO0ms-_TyUWy1mCSYDmTB61srYedoALBaqHvQvhMJcRO8DscOi3UFgsgGG7ONLzBZgiOnGzti5uTbjZUi9ciK4ObB2x00RmVbLL8dSnqzHiOpUbqkXFXtlA5-Y7MHmCJP0x05R5VUE42m7rn4t9Yn9SNRU5PFCEAwoMpP3kH6XNlhnF3RpdE1suEIf700ZKH1pPND46tsNWpipG2rTzh8pQK7CtdY0Rsq3YaQ0W2dl2LMjVTdBNgtCfL3e-A_L8VEfv2RiATy7UOuhGgkHE6QwiTgdF-4vny9Vyxc39nF3JAg3VZJr8XfXM5R1Q69gNRij8GKzYimoFs5Ov_E3SwphFlpbxKtSV74vp4EaSxY6uajg5mKJCpsIz51ADaL4dmXiWfuJlovTb_mhgK1_PqcODF_EcCAs7zg2WB-kcgbfMnYJKV_5_OTnMOwfpcToHfxpa08dQXjbzO7cJ0H6MbjLvYpPy4qxDfrtoLfhINn63S3Z1OfTXRZG4CF65yvOOzplLFfmESqgUhamRByRFfe-UG54yco9A1UDtu7fURVmoevoAd-rgsrheWdsDIM0sOk8pgtL8QWqzVqPOrKF4aI5mHS1aN0ncoA7FkE5z6i5G93JsvCvyb4h0AGEjbOvLeKCF29vr9BT0_IeF48jvaKc_5uyCJNgOgwXYo4N1shB61lUi8ItisGaNvxhTCdDn8Ni-DaJeMw1en2p-y5WGkQm6MnNhADuEgXjbWau8F-qP8NVF4yoRFarLYoUg1-l4tKjeJk4Z1DFuVb9xVjo-lbYD0Tc5DnF9i_avR_y_SgZOzmP_6ax5Owf-9MXTLehaydklDvwRYSpbEYnOu6B-WkoroRytqbAuLb57JQWBMr4Nu3wZMCR6_GktBjCbUzelJMzzLSNJdQpFZVHRbbZqii5ljw1OsEi0GsddOyeEDgZDZNFJYoUmSi1nkEDZv4J0i2kVLZbnao9NRg2BIqnUB8EiUZ_Bze9nvgxhtsay3LdkYeb5PucZ3bAgBJAqyjBcso1j7FzojCXl-bsrSKlb2XfpyBQEo90klVM4FnNL9AF-7TvYDg7tAwAO0yST7lGhUFSKcD-R0-QPMxAQWnC5nSkmBoHwYUEjQ7xcf4F-QeaoMHYIL_7c1MD1p1LlNWylmbQ8z8hQ9tnle3yrynF2XDhfRqm6BewbByiHvo25wYe0-5mZMRPudrWEyzZVu8E6eplTcb1k386L8VVvqCSzPgcb0wWninU12lADW4o1BInnRZA8TididaPWoyGtI5opFT3ahnlnA3BvjsUebezqUwsFWNPwPhBNGpcmWNC1y4VV2zSQcoylOZFpv0KKmrsAJmHGsz-1wA-R40GMg7q3mfJGwKv3s85pcRXeN6bqF5YF88aaKW1RMY8REE_-8hxD_u4dnoXRYTTS4x2KLBkazvj7v-jK_fyTQpOfRfrmBcdJJxzIcnEzfaVzrdEy5QzCdAqXHLu5ur4HVanF5wX_XiMTWyrp1isKcHLB9MTejAKy90K4LI7ItRVX_dLIMNMe7M7zILXIaUfcru7fHgn-fsHirrls3bcithHiqudJi2qhFCvCiTryjlNrj5n13W1N9DlA_QJi4pL1joB6hO40uXeVyPnpV0uCZ_aYkNNdYUhVURu4gCy2pEWPU-ZKtUpMmGhWnyxp33TgJnxN4aF0wdLfPRv6Rb48pCluXX1ZrjjKEzqkMIZcno6Bwy3N8cDNK36vrmQTsxoVqT-PQs2vH00e8I_lRD_PDoAom8ZAqW96OnRvx50OHsBKBlVRYwVa1TJDFBP7Jj21K_VF7qWSFZtyAzP6xR7eCsZWrqzwBt2EdVW1i9-YNxUPeRUAUvatBZq_MFOzzvAUF_wAjHXN0fNXf8z2Q0bAZ5Wib7mUPa9iDVR0E95oJ2_iKE3z0cHzmLiJotiM8wEIeEJFEbLR4MajZ7T0gkV3tKVwxthB6hHy6VZsI2kTPioGD2N8jplDLyxJJsEdXPlbvahCUQ2wuYo3Gv8REcMMreHkbz6CxEDdVwo6_AIV77mwzbFUDQMzbQjO7eEzj7KZepU9ef4alkX32joO1e9L91DGl5dW6zSWgtGSbyWNrfjLvwZ_i8K68mckU3YZ5E3N93Ai_3-Amcnb0p6Bww1CxE0H4ML5SJOixtQfS6K15SEHdVMGCIRT6uUPPH2uWulEt7POZHr8LlwveGAogNDxwkFHsrSTQaOBkPGAmNu6E0drz1GdGaV3at6rAS5t9KH-EzBYQWyInbVF3-wITdjZPQow6z9Nt0-ymZYh5SpF7JxU390p0aN_0omn8gqCSwrSCN33nN7Zlg78XOlxiclg4K5mQQluQ7CJhQUPVGD1rR0xhxYLPgbdl0qyud4pMxAPk8zyhtEFzu90fKZ-nTNBoOvEb5RRBOTD6efAmU6K-15D5ngrKlO_rksIerxjWkqvALs_byqUAaLnKWLUculL5MN9pMgUSFC4TUbaE4QvyBfAFi2KYlHo5xRlO4XtKxeej5ulyV_QH9aJLOxtOvAgmdY_aFTvIFoGyiQhLMhHB53hTppxbbehpqzxRmw_H63cy8ntt626RceCdtTJPopOd443te6D14QxJVJuefHV11RFJo_r0-TwXI2VuOrGxOIbKBWy-C2WTvFWx6AceTWnRwZgLsS50V5pb1cd_e_pXvIHiTTeSYS1D0wpKuuGGyrRnc-Z5P6ZItH0yvcy3wqtRkr3NeJX9xgXc-ZTbBlfbw4lvb4zzj1lL5XqgeQx3kyi96aJccwFuBLVbHsA-bX_83zmEBlH_H4jTYp_tVMRtGDIki53RcoAj4L3XC8OR6cuOx39mMFqVv2JHlgcxYwmtrcyc_IML-PmkkJEbk97FTAWqb94ncucQFDZBUP3JQB3DgVKcf8IWYGl7pGYye5_ijq2zcXcqiCVUW0y0yCJagrzLSRS4oPmIxx56EjMvX5ZKS6mu069d1oFNuQ7cuDwl88Yu1Ui3ZffFrnWP7xrAYRv0FGIAVf4iJbiASwh_5h0x_UoxyZwTgggV1xNhdd_Sh38nsfTceuGFgPC79S-AcGrSbMKEcUXINIHeAeoo0clVIO6J9VvOmBJUfsW-2QfoqnVOBCorGUQHm03Dt5DkW-jjB4D1OW8FrCAQ5aGYMIBbdIl29TZ21NZswrrnFpFqjYyblrTlqYkwZna2labHkbPLMTJzedG40CdMEpiMruB6tiwa6T2hMyFkr53diOuAIoIYJbCuckVo0M9Yc9gTMOa3FKBug2iZ2nnX00Jwaj8VgijQPxLcW4IDYBt_Dh30RmBddZt5YgG3q8cGUYJ2PJjGELpSsuzABa3ob0wOFr9Vw_KE5LvTtIrFdCnJgteefwdkiuG3bG7H60x8Oixfd7V3UqFtBJqLBmbnzjErRVS_2cOBUul0C6xX2MbFiXYMqCGRQ-vgHhnbm9ZeZrCtOKe-keJ95js0oEr7wnTeKtaxYWAYt1WKeyRLg4CTegSJ8n4a6FPSsrmsnVIlW6-Spjf2q1BlEl8NFf4wjcewhJtTNSgV5iIniCtupgH5OK1J8eZDxz_9S2MGVJfT6RVlQBamFCRAVaWEYoNo9GT1XfcTFwdFjSXzF2_4ERQYaSmoD7ByD6SvKrBQCmODt2uKwDcXGRKKssyGBtf8-R6MD7ntYVqItvVdTheFvdMOl1bPtjVtrtZDicESTGuSY_5fgjRXMJnVew3KJWSAz_hKdL0mSCDABnKdlB9XshKy2EcT50mbhJKl1rZyuQsEysgK4lmoOxIdV32A2ldCzdz2OEAPN9F6-_tYRguhghpO5KqdZjcjhMpXNBqTh-aIcI-ymmJqYACW5CHBE_RoVKNjXhc9WggzE1RMKmsKEnYz-3J7mfSswDoPnJitUpu8cr5IJHf2eiLPdS9ETiKM1dn-BMPi2L_tgSnl-1xKxtw43HvD6eCoaFgnoqAgpunWyx5xXXbBgptreohnzKT-guPZiR2ac8EJW18NkThmTURavN1x1vBeUUB5gJPcwPGahqoIhZ8B8CsFce6_aoOfRutgkzaf-fzpf2baV1ZamEqcca7ruAAnWC0dIz1aH3-ZoK6_1GM0sMhHxVulLhUDIkFHuOj3ZhDh4TbMAueyvODWjDdaBpOE8siZX4imSqLItjuKWVusmIWJ6wHT_SQYNikdT8DbqkEA52pRE5DGrVpB8zm7emZN37pS3d5eiq5T6LItILtN0qxwqNWSKla2MxCtaI62gOnwLpaAWj0BIZ8y4uB8b8Be1JloA1g230Ynt_PfgIa5a3gWXcTsDi1WlU0O7nL81HZ2tXByQkbrODCyGQ0KN9ujuXGDp6c4_MY-RtVTPZrHdU0OiVjUwPnTnEMZ9vHFCrBsdOMTnz2LMT8TMxxxsjpqVOFm_h-PjLhXMZdog9R5WictHjoNPBf6iG71ZuJ_gIbiJfN-rQ2uOzIEq3ofcAWEeFN9of75iz-z_A9gZqtlu7grmtjWqrrZJ5vNG7Rt0tSUAX8tEEgkRZa5VULc74lksr2IM0ARBesKQfbbt-ipZQ3w7RdGxBsM-WpRQtCxfxPteolBlKJfgRRF9y29b6eA7aehc2V_syRBWH9wuwprAYBQOJbeqeZG8DPrF_TKeQ9veQRgngGsDfWmMOVHalk_p2SsasR0sPjDfrBqMp5V_H5skf3dBbLMgkOsHJgf-93lmZYBIUmF-Mri2cAHPOVsb_QXImzgXsLaAlaVWl5Ur5W--Estce6rw5l2UN1-e6sy6VVx28m6itRcxLaf4G7ap5ICWy6tF1W3Ni1KcT6PdNR2jLBoFHxvSsUz020zPo3yTHKoybdnVXhZcKhllhXOI-GRHuiooHhrpZR610ZIQyHsgz44OpBGV93AE6We-VdrBN7-vHUbrvpSc8LpFr-KGpRRWwpEnEHJKSQubMn-WAoI3Og3MK-zVuZlVVBqJy2dcvHeUdwy-OKZ3ZHwIYkUrwukes4sbmJAa7GPHv-ZTAC8U_ahE1QNTJk-CVHobMBXkHVCEPBUH6xuPK98KwJVOzj0CnfRSVpgLldZpthrDEHNVYtgklF1e3P4eNX1oMpKJXMZW7yDVigdqXWFNUGr0aHcFmGpwlVBGJVIKPOndvbL-E9nyTyS0LUD3t3kXaPtYP2RuuU5eNF-0qZ0wtjftiRmQCh2z5KF4SRTY33pq_K8GuTJvxP6n77eFKQSQSX1V9psQxqbZNvW90iab4lUFJmja0wM4q2_A5e0s9SPo9IHd54FcaV83WwN5zlgLxN9HaLV7L44iA0zkRPrONLNhkmMtetMZJk6rBb616KaJmqIMHAynzFCFbG8UAIaw3At8GQ2OvZBGlwZKdYEO4lwNh0M6XnmZe31w5NPY2nSQA_rSlCIbhm9kyLCjsRfh3HBnHRXyoQVbhRzRpzc6aWKxPMrF0D9fPyEgmHI-enY5omSamJRbm5jTS0WVPn1_PuuRPEK-FrsMozpATyS49bHwTc511XSczyK2IcOE9v5EBNrHln8jyp1bM7-dO9fA4zovJ2MFPNWAwsKS5BmoKqOUi3IbXPEt8GP3prjrQuUFL1Jso0DDmFX5PhesthXWKfeIaIgR-_5BDptqamQu-uvzU-SKD8fV_1bHEkCEokuq2ZPaP-NahCMBxPwTQWpdad1oEBR5jTzeGR92_8Te9I8IRpKUTjKWusYCDrPDiosaziaU_DctKV1pL-VyykF-TQlNwDnwvDELEmeJ3TGpvSOCXZPhQfJaDKr4M8k8OIcWRBpou1aWtJUT5TFG_w95HD_tzCz3ui0G0Fbws8XhLQW8Wd4LPACqgxm_h-Ann_4ePEe-NWeyqPRpH3GY20HbgG_BGtciTjDkP-R7WXekCH4CJOSh_4iaHBuVj78_z8MNJJnuIJp4oAcPyndvY9NGg4c7dSg5aQODzjcyYfggsJFZ_ns-2PxHo5qRmr7tr_4SY5oOju3amg9mASRa_N5bRzybkZdc6JS06y7BpisKcxdZscK3KS9D23s0QUTQ8Gc4p7D_v6O95B_PVDgkzf1xkjetoMGcM-FG46udz1F5KT-qme7alFWeWLmdA4MFSrbaBAhMwPOL0YscHlOv4Wwk8nHRUTKK_b7XPNbUtUx7YMXA1ZRF3OYq_oBroc13lLjXpUbIGC0bmdyqj22tPK0K710XdB_ayHrqBnIsUPOS0J-N9xEwU1gszkhN6gs3kD3lAbL4oygoup8sVEW0dK8Rqx9MYtwBd4_AsgnmpvApEx7r50ZqxOTS0H1VdwK1xDIMtzR32buiyX7E2rlZrfze46sl2nR6sqYdf-vbNeJN3Gz1Bzt4IrkJyRJFT1UOedJm8GM4XvjOJsEMvXXJBKjZoa85rtck_ECocXanQtyZsDFpi3ZmxKGnIHvvvMKtb8cLrvn_0ctSp_abeh3rEN1leaIikj5V3IPaezSzokrIi3ZxLSPjLd0Tg4pQIsmv4OIOZaE0G3D0EXYZFM1Mlc9aPdL9eeDEOK1i6QinShR0zxFWPnwhz0fBDrYTr0T95jfkvVKai4CDLKjfvIoxs23OX-Dr4FkBYI9VNaoDxGMIuSx7DlOqjTxm03LgKY7g77O8toiqEEHpkKRp3U9tD5Hzs5WWWxMW6QZd6-7EPSpE9IpriOIyIYiOCGZ2T6F87-FT8A4o8g_w1D-v2Y2G3hOsSm1cn4FWArpyGEA_lHNgq2HT6Mqr3-SNLX9gA_7_rthcqlZ-uomyHMMVN47LvTgYUqIx-iU9tivAO524aMG8_YC19EJoSDvorzWUNmITso-gduIafeDP7kl67r-9fpBwCBmboAJ29Uplk28zYCa6AAfPvZNvIhx_HwVJjeghDBkLCdTXaHEkMiEA1KWkSAXC-cjEgaOGhV1dPy3sBFF7_JL1icQCNU4SqgoxCzZNm8kx7TWJJCSlh9aQxxrWKhOG1JYZvmPykax1DMd_tF0ws-hFO7KFcM8cAWAOxKVvU-_Nye5QheHFZYgbYd_aQK3gkJA0jYUL8o1BZsarn23YSG5lCh-SmebrnsvFaA1P1Zb03fEZAjyWO4W0blZ3rIErmiz7ZZmkth62-FeJZ_TqVtoyUCLgN4udT35ZwlBV8NLPKWBtiGzSBEQBBuqUFPLYQyEpFQp_MPa65teytcLrl7CtHjMkmd9bRoFA35BG1VdJoEr6ODAnc2Q1DhkDmzQl1KPzS6KZS6_js1nP2z2L_hyzkqD9RDslmOYQtP4KLO71jkkYWPJwUY-yiW38ErHZbg8GUI2hlt7whj-uKK6FoSRdBnlSzT-M5WVogdmwrm-dSO__VpSUQAdits9NeEyU-Q3d23t66fs6JcfvJBZGzpTLHQ1HGfGXEvbVi-O8m79R0TmptDfS_8rcbBY8GLgi_kPyrj69Oas_1_Fv74zVwDkcDX9TMRt7p2q4LFrocwXUU4kie7aj8tP0FLRw6U4rpbVnheqJlnrjj9gbhzFzJGgZR1Dk_dkAFlJd1WYtBq8CLy4sROW0wqcrWzJupa3yRpOR48wNDzYlZ6GQMmXwkxbzrcNelYOaJuPxmNiJQ5_IXJBE9i-7y4b0r0ThgoPiNNCiZLR2OYBtZbkxDS_3BhphFeVxTQnKMGruR9YE34ch0DK2ide0_TgdAj3O7teTpURPhbBRnCmi39HO_3k-C9-ozs1v1h43Obd_MN3vtvn2XSGg0HGXKzoYDcQWKu81XWlMJHZmaxyr7rrRj0LZDZtpXayACv72ep6El1mtCc7Q76xbopOba6KV88fJ37Cc-mysjYTa5uQAan-CZYd5BPIJOAQhhiux_qhO7BRunufPUK7eWM_1tr-dRThHa497xzo2cnA_h88FnWEplm7GtVb1DzUsOmy4pR_wPH6zx4BoXb0Ye3u5u5xqrKtF69k2yVaS96Zo3k2l1CIRV_KWnmrLbhjRU6qnPU5ZJ48h3tOOSJDAIS-gIoOmscGEPE_m1iii9tQ1dUwwk5lcnJ5LGhtWvQVclNoOCHJCZCLDV1NQoKG2RcubSIIKOIrfdt4AaDB7omG9ajhWzuW2zp8JhDQ1keuoikO9gPIB1zLFYRivA9pVcyUwaS_giPOg5NAJR7OZQO3NYDLa8DV4k8UoeiAwHEq48ZaMC-FoMnjUp6obzGt1mUPR6aB216WbOpfXE0ipKRJSINsUuKgfFTmZB_t3ktolk3hopvJQYthgTDnYx_sQ3V0HJY3bzIMrvrrvrFmocVp8n-s72tBctBldtIZD5sUm3gwnPNuNlZa9WttW24Z1nhJorG9LApIx2e5zkaZ54xqOMd9e8mR9JhHpRU2F8S5mlzr6ZDMw9IBUJhN4LHzGL5cv0nonlepzpP6sTOEGwILEKW4s-F_vN2YU0eTIkVkYK28DH6ERzXVsb3NMf0zNMXijLVUhYEAY4Mfa80HnfhBvntKIC13qfwgT2LjZenGBcGQPFRhvddFt3NQ8DRVI3nKhP6RFAWThAPEt6hUXH6pPUPtDhr68e65oBEu77-LWf0mRtyMh3ZnF6w9Kb8BnDBzHju3g3TwNj1aaPEVyFml_gr7-HlmNJxqKxNRZzkMH3EYXDYMVtUTSmpXG4GaVOyHOBy0wpcIas2kN-x2D6Qbp5eIwstLNd2iBNwiL28tGqCRfr_9ZCEGy9y9XK50TnqvC_KJ014dv9sGKaDMglkUdHgkMDYnH4hAooBQ521k84Z5pTjN-oSiguwteDFIT2o7lZoNu4hLfLu7RajmljfcluM5RMtGHvk5WJAxu84pKPcHEDUzrPz2zHrDd2aIp2-sVt8lFg17fy3jNBaZ4JdOkL3R7JW8txq_9z4BnT6GSggj123MajGGNsAP8EuqjvLdvzI5L9vPjysZm-UNNP4xM_gOXfB3ex7AXE15vMoENWQvLFgWsHcbMPA1FCO2HsY1qm7TaKhqLf5iH4Yzk1xmCMLZgzwP5cndC8zPogJvt036Ixf5tm74-O9mG9KRPU4hUUSoLUPbRd7ge6xry4aEWvn_gvfrTPoWxPagI5e_cebQCnNSWmtmao54qNM8CdDe8PMVYjjY5_AYeMFFIDkAWlp_GiTYa6q7hmO1GHLzGr0xqL-p7iWzulastR7AVLlHSeDqeV_tmvTJlvO-qaL6npAjaDU0xrjgT3bgRfsOMooVFihbZf0MgK6Raxt5ScG-6ixhQc3717D7wpPSVwFdXljxiQ1XAHzB4ztjDrJtN_8yi4QoaUfNq9qd47fxPhQaIbxhFT4p3WZD1uszk5RckQUTPO7ZVh1KCNu6W4w25M410zPJeDr1sdfVfW3VqX8f0MT3vB9OYrQApGpeUqSQnjSxcLNx9xQNajFi0nHyDrvH6Y7_wga1dKRC9f5t3i8Z7aaCFvp06_6w2Gpql_FoRkVE8nwY6m25TEUb0-45YkHK6d7hNOx7-PCdv98Y1nl9NsrOIL_eD3dZgkJWL8BudItuOos_ZlpaNtzGPi86h21wdFe9WeXfoW_vt6_QuwRsEKCtDrCqBP_2XHHVaxu0YDgesVhjJcPw2Js5SUXzy7p9SXNIRsnz5bFx2iDemdidAbH6RaJCP3V3K-8K-uQ-WbwADN5NA80Z4IDXEj2xoGgE79a_2ZpUeSC8Ex-KEnKreta_vZskccAveOdzUVgwLZSmO08lEomg_UUphe3VfERLlxCAI3CeEK6YVyR7nm7Qwy5gO_MezK0c1A0dwSq8BVHTzOmVEKNkuxEp4DZ2EAK-hnoxKonDmuYtdt-FHKDO7yBVlIxewmUt__K049qtgoMtkZL2RJdT0OTLElHFcCC2QWQKiWLsuJMk9G6QoNWDZIFxzxRJO4anqfpug4EyGINgIJ1mmmhZoL1zR3-dLy1Ns8MZPDqv71utEyDq1ajg33ayF-CLQ2XIPryNgLWjpJshO5bnsvPrXgNOTmnkTHOXBvpkAqOZRGRcph9-URPAId-9XeKtsFXD8jkcRm67Rukq12G_j1ouGOAcTZqY6ewMwjAgb-F0jHHGLc5pK2HExS7KxxwmjBsJuUP61cxVaneN5qg9aFDVT38I_aHCPLryNKsRk4Rhi-ZL2xExCieYI-E_iA-QjJ5HOaG1I3A1XZg_sdVFRj2QfrCO7h5rBZheLf5dOIKtjbA-hGrOmg7ZCnDZ33eAFZZNegyvCV46Xn4pKv0xfxNcvi7LTlTcX6EoKplSYc1sBxs352sZZL3c4-2F970snwFqH4vKVl054uF7loYX0wt6AqDzobfTufgAB8sZqdM_gsFITEMx5KPuotva5kQlytt0d6PihFdhln878TbZQJI8lsP5zqVJfy6GG4KQQbusmJ-YQuBPC3HIVlQvfulMbGcCwme2UMZ1XAsHZaEM2pwwwMlNARMLuRBAuNCAcD3aTCl20Vqhdo3lQBzjX9z3WdFOwRZzx498SEZDg-CHZaL-nZs7dlJvjl2wvdXFnMuXVZZL5QA84jAqYBKQmjVSAuns_wWiGMu7r0rpjk7yrIYYk08bVASpLAJVD1w0vB0qKiIINNPzE4jkckV6OKCWh8NMBsEOsuSBb9m7fbB-WRbPSRQFhxyjbhGWfV118fftJsuFIviQ7mkRrA31HScKCRelwx-mDAs6rJuKrkawMSU1Hjkudd-eXbhaDJ1nwT7wcP2mKMdKuXVV8oM7eNFZe3qckvb6rFfUH0mYjY2ufQfukE12f0LBsZ9GNEV1p7nO5VQeFJeQmLh0lsi8D9W9c_88Y5hxbKT6q8Dly_6bBHcfHhaNdXCBxJkqrnPK6cmEcGnR0rXtVsYfFgvGzxqTdChQRvLA51UThUa423v4pvH6MTUn0JW6ieSQU5oZhRAyu8ttlr5vofVqHryXCqpm35nv3G3H8L9Wdso0UYUtjcFQVz5G1KjFn5Hw5GxH4ZzT3yU1hHnkvFssrnghwdRlubKaIR8IB0NxoI1_8qeLIZwE1qQxyXbUFjAwlSnqi7vMSjrQRkrFP-ztz5D2cfdkoL80b4M46NXXP8tkYPF96twZnogmssAJmyxtHYyEgwG8WkCDLBJ_wY46VWiB_o8wLqCsl_hPGCcfW3jFR-BJWk8LqQ_z6Zyf6ktTTrztE2hOaru2Zk9-1zrxNhgzh3MhgicQkk5DTSu30MScP5ZKTUHJjsKjzhqX6LJq591MgORP2_uQoSrYCH4rY-MaUEm9YDquaaWKY-0gsuPByqW0r6H7x7FLwF7bT3xPllC2dT9uXWYrRY1RNqrPE-J_qLZF40teuuPwmxORR3IBcCeBw9T-Zht1a8Tc57EXQvG9VrcJ_mtM2mzpAuA9Vy1FJsfs58jOVSvc9NE9_sHvv_-2XQjrAZz-3aB3gQrPrMhMUXwRhjv064LK4BQ7ub4rTAx2YkycXlpbiXH-qLSx3BSIaHtZ8Hd1Bv5lH8vKOCi80eRRyd1YEUpSN2HklLxi7GZbpYLi8blwcf9dERfqWAKrbRX7ZdaKwqeoHccoLgpQaGbgWY0skA9Nz2PIoCc7DYy-IzEY5td3_c-5Fn0e-0t6ttNhfvN9Qmt7D6680TKOLaFtZHBc_4--fB0gmuiKhqK42yP4GiQyUOh3q4zDXK-hp7Mjyg-86k8JM9Kk_EpqH24gCPeMWahJLNuIOBHTrt8gwNSeVM69oU6heeZ1XO08ZKWEgOFGBv6mrbkXzu0fevFduqO3EAdhPHOeo3w-nrMe7tI7CuNrDfS4gCPvo5WPOZDXJFhqUfBxY3zKCiIGxKoOLNz5OGWHe_6tKWCxv4hxPA_g1wEzhgfw4cWQkRe-BVduEoWr9D4-1ifoAfgDVTVOV7SuzviPNr59zwqJqib3Qg3ddJi1BZtOHEWnW4Ik4wchfuDKeT1-3lcvWZJgVSen3e_p94Te5Xq4mtsJ49oKzY8DqOmVi9jED-hZH9OYgiYQHZ8OEKGbOlTHEfU370Gv7dlq0pO87YK2_30rAy5f_c5J6949t_mrMCyDJ95jVxE6O6pl7zM9bBHt7_szrY4zgHmrUtYM4dAOIJ_MuCL5hJMafEJ8_kzETabupKxz4CFzSDDWwvZo8haVyBZxGbFIvKbVmCISSOuqANOdSMF1uQVDzBAxjx1Cvc-hUHlxjp1q0MC5QKk99J5H0iFmWLZJhZowqIWpfkmaq54gNn5bqgdriTSgrzY4sQuBFJZdomhX-bxrW-iFniqzVgmV6LiCyC-I2q2y6D7EnHLG0b1QlZqy79b6Gozs6sX7R-35sbcoaSJV3HNhkwHRP2mSpvK2pvwKmawYCpqJRiVFwu4lOfa7dnGVIIR8Yc31JkfyrT2IB0tP3bMK-5Udc5x7UaJSaOxwYYgDPrCvayL3pnB5_YqAss8bs2rqowyeu7z3UD-e9rAo5b2dbraAFPEYITBzUTwBQOKqY-5YHq7QCLmBD2ybPiMNX5CMPkfpOEreDm2VXKkc3dnGY0CNxPKXvGFnXEnXlYbnPnc-jb72KwTUYiS0vSA42A0sRoDrqFJZtzTMFEdp1bmt-GNtz8ltCJdz9Ibqf2-0dr4cvCWRkCqYnJ7R__tv9RVzlohvGVwOkyHYRmoLutfRQlLCbu4kC08ndKfPaNWIJ-F_8vgF3W6_G-s3iobVuxclVJoaLypTOgmMK21nHGjyENe-E3ERew-9KQxS5GTAEGhKjdh0WELpjoIML4KwlLWufSodaPORluugsI6mqRQDkXrnehowB-gZweXuxP59RSjkqcaIjx-IUd6qNJlP8z8wOuNzrHLd5lDhIAwfYcvxIaS8h14YA5VXB86rNzBlKwxPpAl9noHZmGwS8tQ_hqs_yQhQRMN1Ktm68PnJgh14gv0zxQPwvdF_qZu-zg5f1lA9KLwwb8ign0AjUXNSIiHh3gagRk1qwR51UzdbSd9DOXF3uvpAMUZTJEvQozcjhbHYPqcLIEdm_kcjKAbwtqyPurx1kAx1ki9Catebl7HyEn2HtbkrC0ah_GopnR0-epAZS8oGDn_gKjGW99HH6_Bfk2IwkrxqQy5AFf2iMH5PW_QA1a0y2t4yTgLJpKMcHXu6N4nxabDJQedvDqWq9QelIExCz2WH4AOe-wJ0K3ZylvX04O7CC7R1SwdqowuHwxSZNK4OlY0bc_3CWxei4etfektJIRAGNvbeT9Fi7S0nt8fc65fiWMToA_pea_IURGoxMmf1I6GAoFeTdk74b0oNWfTfBWuGhRL54yNCrRwDXP7W4CIVWkpFR8gQG0svnHcSqnbS6KGFbZrovBT2KRBwcnuJf_iN7nyodmnA6eIK9NLevh14ifWCeLcNPpkef4Ocjlu104vuA9_hwh8MNc20hcCm8ki4iEW15UfCyZvncXeqL56Yvt1KplZuNEA_j65J18gXY2A4f33HZn2elowUlVW3p9rG3-CDbmXHlzU2tlLQopTNwW4vrrHEneCmRed0UFfsene7xRDtoFTng3ABVteEbNi8qjOjsT6bh48-Q8oex62thdlxtiBXlCwvh8nTpzTI5po4U9hE613r24Z4JFWPJ7_WT8X-Dgg21rc2ShmI71A8OoE276KXi0dOnwWKdLIk-1mloD7wBqVfpwJD90gkintH_x1IRCEx9bzmBK3ed32q-JqSE3rRyQmgYatZDnEOQScsOWhd2-E-8HZNhu92Zrdrj2z0xV3VEmmbyHz-GThnIBb4eP-46V2KZwEG6tTUp9da6kkKc6-gbAE0ccbhM-0HE1QyApum44mpX59AVcpjCotYnkHPdoTcnwBx3E4n9AJEPu2E_QuOGBLjI3-sktQE7zM8lkrp-skvZoaD3C0UP0ih2EhDBGp41ThtcV34Vqm5_rH9pEc8zE0FkZzsK-56cdZE8AWIdmyehrgG8cPywJHTwjf5tsTA2FwQPLSB6VN01o5bm1kYDZOB_63y6WbisznVOb6Gvk5HmBp8XzPys3cZY8fwFITyS0hKfH8qYQ6wyfzugJPqjpkmOT8Tiet1vM43yaMvxNqXMsSP6MvJNrEQDqSlYim83TmvXvHewJ_Bh00U4k1Bu91FbuufJnL4IyQHauhQDC0KpAu_gGf3gy3kVkjNtmhpYoMRrA0b9MG7B3-Ni6Gm2mdd46W79LF5P9kuH14aH2Mc_7k_FPaLqbC7Cv0z1lWA9Ad11s85tLSybSaCbBOTKrUMqu-oxt6xqIuyxSeBsqSQd8-WVRXzmje0fFRFKpULRJ1Q6WfE5zhQiR2QaGBSl4sLQd4LE0YRVMXm7kzAKw08WaaeqeVROXSs7yjDvghHuUcGfNTeFiJ2mrtxYVvKGToysbM6THHdznkSQAMM1eyCZsFzMFVQIjeyIRi1umrJqUz6o3OF7rcgLuOP87X3ldJIO6EJ8BlFXq_ljsM2rzBCc1tIPbyw9TRP5TS8ViWf9P9_mAh8GbHcPS_DAZKDPUNr3C3iw9G4aZmK48GDuC1Xx41k57C3Xm5_Tc1InPaTY7wGewNstnRUIGO8i-yYEy-IQHrEx74VsN2o1vd4JezxoPTL3o92IcRimeij5BTGEW-NHU1FiOqllnOMDRxFlDopljoeA3WsOODfS1zZLkv7ObZxboHdfnnVWAt2rdsnEBz7Jwx60HeJ23qq-9Wk6tn1XCqBrx6J98B9zGfky69uyW-CtFD9Yq5YYJbUWoUPyoj76_4BrxpLtDeqLdFDL8J_bsSCPhPvvB0MHXMa5nQE7dBkheLnXiDT4hgB63a3b4Q9oGy5u3qy3t9Kri9POB5_iLg0W9TiqT-RKLOC_AkQxkzzcWNtXxYSy7sQBAa01WB5LxTTtbANv7lsobrPdht0rAIcQrYZEwQr4tIpgfoMJ90kdcjFRsfOlxWhLwlGn8b-iiRYpaiXO1rujYVFdTWqyKGXQjnSISjyQ3ViU9ignXumrPUZmKfwRLgG3-ckmYNmG8yhShVPp-faku-Jc2Hu_lzxu_w7AH6vPVCcs6do7-zyCRwSHbqet1Vw7dSoZ6zMiU8CaQp8dVFA3xgELXEuofULx2Ck9dnAMVXfh96PQVr2-ODMFW2tsD4GSIilhBKMbl-ojQJjvDB8rpQCpmuLKYQ9IDJXCj61eGkwE5Ogse2Y1jJGP5GB_W6Wa3Yk0gbW2338jLUlpwzN_Nkm6Y5UC9tHUNiM4qKi1G4vTkehJKDC47FONUL-QtqJlFitQJvLRuGuGcqpK_CAMQD1Y_Zq9DrbvAQNQjCOV6MAVH3FWowGhgFaYrTkScTV7rs9zp-cXX9qwiDtHtTTH6dhj0UtAf1h5N0Rg4wJeXkSNyPFAzvXtL6sc7COJaH6TgrXxxlDb3LYAeWjIWfTUsBHbjNqIV5shMtnUo765ieTOEc3cEfvt5CLQC9LN2hOBq0h6uX-FtZ_g8vngZ7hlVx6O4vX59sQHKzNzx3Rvdpd2YeVE09RJJEONJuZHJogJBs2DYl7Xr5JdLJb1WdN49Kt1oOhQfbBDoBDjZ2jbbVFuevIg_8IDLTchDaUjz33yjw2L3ZSK6w5p9JrWwqBq1vO-_lHKCcfu_dTpNY2Zgvy6oDCdw5RyDpShhG7nWw2j02xf6g_gUGqxSLZu8Y9SIHUCmrWjRZXJXVryJFj2KL6Zd7rTdLLItoHXp_J8HZI55NYBMA1E-ozdEbVpmx2aR-fuSaaFDS-xc7FUUWzRYPwJCChKLMDdG1Ly_zMdf3I76IKrtJBPzmJt3nm6UVirLoI-JvPrWLX4fW2y0Cdyr6DdhuECK2pu8nNXZaSo4rxCpElQLaG1_P6fkL-nyZjQmV8C_ZbhaDpkustGqtAmpVDJ_vb7-ojaKq2BkPp-EsqJ-gxlNLZVmwcAiGwrLWNcmroJOIfxrtjU1cZFc08HfEauMaG2SXqcOuDYWRgIbqViFIckbZEfpUMt1cK9RoxVFet2MK3_0tXf82VE_4o3KE6yE6J5J4WevdIGwmJCTMgdakqf6CU_AAtazFhrOrel8opQqoxIOYkuJvYq3w-RRLy697SrT2PKpLkh6x6hjSiWdoM8Xk5nRuIHAcd13lDp1ElxbkATkZsGLcw6Wz1jHUcrtxo7nymy7RYF0jDtOO8g7g2M6NWYEls4dGbfESd6VTohEeQYKdOhPKtsy-CbCASc3wkUHHXYMIxaUAtLQg1bUzdoFxTkL1HCCHVPhj48-G4aMFd27CDYfZYhfUJ9Lxm_cAznotlVlJKcEt0fnIu1XZTVufhSa97_lHaPt8aa3dvzoAYvdBYvoz-npUA58ThVB_p0uWJ4F5WjFelFQyo2IOOSkN6b0GWlkswPGTUIJAgPLrKpEAg1wLLW3Bm3YkYkXLhCVUhxZdE5rt6B2mUGYbXbmMZ7bgLIrOaMwC3MZMN8uxDGBM06iWpLm6bfgafQZLTc9gUni4VgRSotG4cQ8yEoc5kdWCK9N2lk1rBNsVxAth7cSj2WY7DRjXa5epNNKoYPV3SjrP9qCrFDbPCalJBzUDu4aCXAUALLHVth9lYVv3t5lhvPUEEqXJzDUvzCVDxZ-QyJkNu_c3nf_qD9lNgHI1TB2TvCZN5DA9MZVH7JhmeYUsJIR9JXdEicQvNKLOOF_XDv4maYrQesQFfryZc94tA-lwL7UNzu4Al5vgvsFOnpPpaR1Tax-0B0XxkQt14A_j0_8HMcusrnPYKEM8iJdsfDrjgj8WurnGu9pSQZ_4LEQrUuKzsg7GP3JEV78R-2i3l8NwIOCSzuLPhUBCMsXT4K1Uk9i5d330O3sCGbEkx1GFelgL0RR71lLvm1Ak4btSmp9x6VU0BDLH1OE_sdNIEk_FIh4EPdT4t4sAP3LDVw9LnCNUs_GCplqodSck42zQOSYXQB8c0nclxpXzEztzsMbA8yEKrsQBDi_Wjlk7SR5068ZlYPQilf2BBTOyRPfWKrKGI5Il074RrDY_wi30YNTOEyIei5xSEzf5PCFHwlLvA4KBrzJG1lJWexydOXt3sTkNKYQtJcwlzG4J5Gr291fTFiVOlRvgPSx8r3zQweA3pYFJTGzFGq6AXRUBpsRKx7b6Szyt1Gqkfni9kWsFr8JBwgvmPOosMZXv3QA9unVGUVJ3rlZLVUpaYDWae38QSOtVmV4JudM6q1xK47K4gmfUiTmu5xTLr-BVJjdROEDVV_ddorGQ-cVXzCuY060_iTC4gUvqmjCmq4W2f7PelfVNLjhaNKKACcBBMAX-miIqHB8MQv2eA-pT1KB0GQcXpkPV_0TAXhQqLF-9EDwluOi77moolOoN6exXptoXiHNPZ9r-h2B-lzvVTb9L2edj_TLKeMWrnA7oq7LzDo2_yx2W5p_lWtlfp-LeAAmXi6Ap9XtTXk-oQ-4kfLqImIjATh1NsxTk8qEhUsXzlVycnG25xJjSQU0YfrG4ZAkAai1xkV_GxKzp6SGirrDjG7EROT8MsBxauv7JkwnC3ywuz7AqxpXp7hyppku4ZKl-cg4FSeeakpuHlXpo4XDtVS9EsbKa1DPZ4KBkC6t7gASyj2csB8zEwS4ear6wdXeBjRqodoL6FwrJcgHMsFwwzxDCFE4AJCPFtoUli3yPF3xJBmOmPcNe_36_sgHpW0SkjKRCceVPTftLCZsjpu0xqKj8q3lGhu2i3xt83CzZomh6d2IvYgnVCLsxRnw6BqPjiSuqYh4lmqjwgl2lji9v2BJvpAybIvy9x0eebdma2tqm375g1ZVieO-uRrvRUx3IiShAKIXjZAZclV_bWeKuN8PTceuv4fsvEscFUnerctP-3mMEV_u0wB23Dpqu0Gh6E2pkPx0xGpqxvcm9DS0PBgrWw-f0SQIBOHkZcdoD5sTEwjeDy_ZKPl-aqf6-2JBGW7jqCVpwWLyE-6mgc_3Uui1TXkKOaZ7gXSytRqaqqtKSzKdP_v92xAD2K5wPzwZNNBCB4O7VgcuKsHSwCXJhj132gEVn0vgifNJW2N0BU-UMg8oHRvoJryLoFaRY3PAnIPiXL_Gs1D7lASU_vyhovaRKLKzOMwwXLW6_TLz2NDhRxROnWanUqFBqydHEOEm4-SoGFCUvwR5m3xAY4TzLBVP7-D2scsqHXD20svfV85Cd3r7q6SDzcBsqGsfWERPmWMuxsIrZkQaiL59iiQxizaxZme4x1BhwUwMWJCoBVXXEc-41d27RYm07SB_gQoU6Y1f6pXZeiF25R4oV5JptH9PUSyISeBBuHnPmM5Wd4r_N7mq2WysKsvJD9xMlsS_--K3CZR76DxQMBqQeKKKr2uNTOKtQFcfNprpPtB0EqN0sqVMQkvMjPW_7cAS7xna0GdoK_fmq6j1ySOAbZbdKrAN5WpSKctKbUpYHj2oEgsRfsUO0pv8QmFdZAiOskNx1qnkavkhFlx2Ww105fHHu70rROa7LCCy8Wkc0KvFPDwfYONKXIlbGmMx1MhkCJmPvM74ZrKco_furSiDfze3Znv1R441W3zjN26tYFlXCc_XUkecEEi_HDXHpyIEWClW5Dm7_lITfwcoHMOBEUm5rh7BO8ijpUjnGfBV86vBZp0YlBz9vVGFDlcEpizuX2LkBKvvbpdmY4HjYUFsuZ0HOSFbIdao6FdzQs9vgwqgW8o5rJLeJAoZQhDStAJap9LZv0O9okzyyCTCcr8yrf30GtIzYf5SRrc1S2LzUbIEFoZOgjroulQKukoL-QUSMUwrjp0TB4RT3oOy6OlnlYRpAD_aQe24p-gtCaG_OHX0tQSWplTzR3Y_m2JOAnoYQn0eJ-fHjcexPqzGoUK-fU3vKrHWeJB3LOueaaYaMJVUMLta_eOc6rVr9GA7hGHxs760mktZRr5YNCmIpi6FO3uObqqKDRZ5Jo0J8FLNONGUCTILX5EeSP7Ls15CWS6rhrGYx6QjKLLYgrntOOWplWcKxzEGe192vCXi0gbcIlBMZkaP6zBq10gIN7Qvcr-L2h5-mTqqjhYscyuqo-GPrKZv43R_xXAbKLLIyqu-w3ukfhWDxBQwCtNPEinlo5kTdCRq28o180kp0kNaY2qkjzIHt771OSOVDE4v1T5RVLW_T_gzURU-_rl64moxlT7cSBGY7asGzbnpFFRLBfTR5MYIuoO7HpQbnAZi20owzMN5xbdCDH5Tu8gH-rwvllP3VwEmxZNlz7fbZ61c4ut0zbX3Sj9U03BfMtP5oA2NNdVs-J9P2ev664smQ_5ZGTKOdfNDk_EQUxf3a9ic91Q_bfFb0Agkl3gu_II3YSzCLKxbPvd7KRQXbkzgKzZUuJKZxEjHuLQPVV4edZ0jh0JLCIUKVphzAX83ky6A9nVzVEGPLKMUUN6aWwo-xgs7r4n2u0PH_6C8TWyVBceyN8DT8rqFT1e_f5BPg1DvmYQSySX9pR1W99JSGtevlGMV3EZxaOpoSA3XCT-0ukFlysvdjYXTKq-Nso14qKMsV92a-FGLlMuSFDiiP1yHsqCAudIbGA4bSfHPfKwB2HYQYad41oMT4WOfqjJ6gXHHp0VKqceZ_XUXMP8jP9hEEp0LRKFqSiyqsCWOWW0B7GL7x9IKEBgXcegpHYimG__skUrl2n1ujeY7msaVIYRPNhs9ipYruibkEndWOWtyQ9eZ1qioleop070dn0Dr-UhJ1cQulwBz1Y1RA6KX-TMgJr8DYUCVaJFxiiglbxiCFtyY286y3b7wpHgkXEQ_tN8BCtu_tDXH4YEJnYVBK03QM_PbOKFvZ566hhu6PADXoJfRtJw1q0-YeLziiXr0qMTbL3n8W8p8Rtu6fQ82_WquFpxoD0jY11D39_Os8yHOmFKvmIAegjrqO1DOzFMfEQBvsPy1IEW8Fh1WbsBGggLSkwO744zgD8ttwr3SipcG0duOa6TMf-eWM7ZRHZ2dEZaGEpuxinyXXB9MsjGzqy1IDF70kmYsAEoHYdV2LlADeXzZ_E5ydNhhg4O5Gl2PTtaN81eaGgeU6IVo94aCljvBuK879NLjJgqdkVvyTrLTq1uc9JoNn7w7EjRFefXFpIbGY4i29qAIVYQ8OKZCzhh9z8jUIMWoCpk8GHrllNy89HbVO3M_svps4aDj4Lkwk9k3gabfjF8n_UyDtLi4ekk8YBFgL0gAisjT0_5qXzKBy9gvsRz8WsJIehpK8mUANSC0_qAGHJdBJFb9CFKeo-n6Bos-yuIBo8hsznP3quqJ9wHRcMPEHLaiDcBOnyXCxy2LxbvdkbDwpj7Wf-ngdX8Mh3ZSbSb-Vl0Q--6LqUwGpmASCsP0h3BWTqjcMIGEyJlQth0gA3pv6NvkXCZBP3cEOEy8JAIVswpMmGlHW_aGd4oMXMLlIC_VRxwv5QE9C7nIJjU6IinBKRObtSl80oDs5-I-9e5mz9MxQC_1MOqDBXHH0IvF8ugmRwI7Y5gA7Nyui0x7Q_CHR9hsugMduZAUYx3YEM-yUH3bFbVXkP2i822kQdJAbqepGp31TXL4-pN8q-sLtLZwG4SbcICZ9RaCL7_hiiwLDY48HHKFtTCcDyIkvnOHguCeT99FsUTyU62sFJKZ6uUi1oqbYjRc5MmvQ4VAyq7it84gPsHFVb23Zmt7BKmIXiL985FJt4jgQylP0exly3CqCEt7pPlCf0y9iFNPU9r4Pf77x1VrclTbLGBxi8Y6iSNr95tWG4UrQ22PwDfzLHsGbUG3qjiK1aX_7H8F_Ie7uF1IstGTfPof1il0DsGnbv7I38q8NyhIByZHuEcPhb5V1rBVvdhngXwtCVSS-m4osnzT39pPfrEWpgQey3Dylsx9genoY9mTvI6t3QRC0JnUi4OtYh-JN_7nUJ8deNU0neixygndlgOFG8q4w2lKKyEfnslO9vDAQxCQiMvVmfE_G9G-vrtYKdNxugFuBQu-wQ3-FqDJQpIe9KZRki6aDSTuBRaJDNIFBDm23t-bph0_ANVVxNFI5IwGTscBpAhbd0V5uiO_XlsV-PzYp2hBjKcYOSjhCvKsE06QOlFayuTD48Ead5vlzQwprV8F9_5RopBA4P7U0DWcGzy-dx_9ni_fAA4HKuHNBPv-8wJK79PFMh4hgxu88eo-2HldHglDSdBqXExUUt1YKhZthI9xmIbatrBFXDNG4ozYQq7RspbHjaW5b9Em15zHIpLVLLNZ7RqDxPopLZKultOJp6cUurpOkdwhNc4AK-hG4GgDJjNraGa8uVn1SCV3fHqxYq933MZ6esE5C2IsL4F4YTyDyMj3dC0v23rxD8xwKNM9Ie8XXNPQQpbyeaFhqutHUQ0roFmzXocQz7hcHorJQ8V4C34Fny512gdxgF5iH9JKessqPfwkz8Ep58kX_UkpWaUHOjioK7qQnt_z3y3jM3SZkMKvUK9X-WpIBf16WVN2dSDDjMMKWWcsudYFj101v0dshwoxPy5E__Ib8XavnJc_yYGbMxLpdpLI_VcS7S53J4hcQH7O7RTOPLb3pGCy7LvJBCL6oaPra7tCHx6LF8YNL5n-1aS1-s6MveU62Nck6kg9c_NbMlJ-2tvCa-8JUdVkz818Q2WZ149NyYM57M2mKZcyuIS-NbpFmYAJCncgr2vz-zcDPSpm62PIOQ5z1n0wHyfWCARgj1AXNG2Jy5WspCb_WsztirXwMJsceLbu7ojGzOXVlMjAv19wK4V6DmYX6vW15OOUWQRsgNlRkaESKHFeNPPzMWtqIIrfYXMhFX5_CPrREAFLlNc2vrFxr_6RRwERfl2QdoIxBjiUUEvq0ueC4peOCfl-7p4e8vLEwxuj9nhtPdiqq2cVgQ7DHi9rh9Ekrc6bXRkRS7DFUA28FbqrmvkqdHd-zZdnLFstAubi9oJiZ8Jgr5D8AT209SuMTr9BWjpgqftAw3e4e5foFfSbbA0QhAMMujIBviERcne29Hjz8Y0f5QjPmVMQusIJR-5dJj30Y7VEYoLKc8hS75GYnAk7cA3ng8VlD8xRFaavhABwYA27GOcSaGvVO806SpTRCAtfNpXT_VijbtcwIF2S-8wMb5RGqEaJYGI9yJ3SbXHEMroPfTL6vqhnRf0haHi1dvKRfTavBq8Oin-Hawu5mbpS4BDAoApHTkXiIykmNSc3A80l7fi3KnwvcoTwJzwPg8IqsrmDSEYZafkJSZT3J7MTbUENpU2emn_2QjUc6Z38eiiG3N6xtFnFYlXPWTgRL0N2Rg2xTZj2SPoHUVM16pvSD_lSd5036bfhorXxSNMKBHfu09Fm-tWckEbFjQ6j0cRBzN6omi_zGnZkO0bE_kUQrIKoBVfrJFRnPXbnLS54uSsz6Z3amjtCT5izUrWbIWk5a3jcdFl-EjTADez_UePPemLHub8afP5AMqBxwj2nDo46FLEBLxr4WY3n98PqaQVjG5frKfVidu4n2P6VueJnS76SjSr7aiFTlPRQiKIyBMgSkz8pOeIEd6Pq0pSzsorhmEw5U6i-g_YJE4eHLVs-K8hTD4dkmSepmKYuw4eyabfTCEr4PxmJxsLd9xYEyk1KFG1HVLboDrpvpbuh85uncmWxZJvG43O-k-DyKvwHHVxxtBypb4ZGgOOJsGKDxANkUNfpVStGN2-h-qL1_mXQRE9xCQvQHa_lL85K7e_v9wBYuoApgIRt1TOVeybW1we-wvOrvA51V_bIq851pVNQwIn-FWzgyc_rnHoJmf18oeNGiDrWvCvrNOdAxfIFIIGRRDtWJliNHWMArwcwyfzDvt3B7_6J4lzTCZEaie0Uskmz-Wx-4IUo055ZG-zn_P5XOTUC71vgv24V2gGSinyt0johhcQD-Aqh6efmE1T4P2ijj0x0nS_xddtp-GwxmZ7YFBzQxAJVIow64n-px4U5FF5gdRdewIVNWyvYVsxbR6PuUWxrjZC-mlHwyr2YHxF2Mik3pHI-4N_4HbTugGwK4XehPVts1HU74_SZJ3jfsvT3jWdiGkaq5mXUbzQ-6G9SlPtfkV7elK-Cw8ipDPpm3bEVcVLTsSTBJ4kHh39fAGtxmiluuX57nRxaMM7jjijm6PDSfQ0dF3W7IFIxS7SymGLAli5whjEbh3owERkVzMEYd45lAPO86Ur8wpHqaMoYM91Sj8VKhlSD9hwkeqk7It4Hz64d6T2PSgdcXo3ZnErAa_JozXQPVK0kJe1xe8FazkIF2fWnIvkJMIfixxg9etB0t391_s0I0uSKX3i3wHzIT45WRDllXmvsuFTuuliwJ1GQEv8fjrRn-V5seR6Ma20tv4D_2VrT2nNgt0ky6fh17jr0ek-lOn8egEELH5XZjsNRPzdpRLAf1HXhuRHRSVSO40Zl6Zdrkgm04rUqNj0J-5et1-bskwqOheU5ezp_w2H_6NBWViBeu_1dIyNZe_S68P6JTZs9BCmqmIItQ-lvEcxh-yUTNpeBqZgY5lwXvGj9ZW9gEOm2p_EFsb4YKe24NGDg-aTsncGResR3ZZFxMJhD-El68A8V8D9JVBTwwweM-YKZgQdUj0jxz5x_j_iRPt5WJJUXewO99AlStBRaiL4wGfS6qXH2H1GMGAo299r2Ffl8uBoj-2SRiZqab5U-Yub0eSzrGPtDwZuSbwdFgw95pteLBUeNe2m7l4GmfkvAvjcolWuSCtMFvE8y5YzHj0eE1RzfJoWurwDEbHINRerro-76m29C5d7FEgvFnqm0MQbL3OJ2gnQOvFCdKpHKlDli8Ob5dF8SSyCdZxEfJ2tDUW6XLTX9Z6FKTTVo4bEAcAWnYUPvRfdQBPArGdGh-wnYpyPeO5OiURRAMoJ9sAjpGTIGAS8z1SWgPX5HtSD_IHclNE52c-TA01raK4W90aDuNcxHIyS5AG1T9nj7Cu3EqRiNmVHwtWLU7K5TZ2MbF3UxpjfAfriIN8Aa3ZmT2gp66R_JfBi-r9Xdc3RxIvW0AULBBLmZIvm-FcDR0BcX4JAKFQ-s6HnzmUpEjAjloImIf9k_zg47OEPpDLd1YunBmvQNMHMlzn3raaGDXeL8spdk_1B5BdoE38xe0G46_zysNk57X7DhrfK7VwGhpU7B4EpFpnYyI_9F_Bd1VYRKRhNMGTqMyuRN6SKTdEM5FdbmCLv1Ko0BP5g8xP5-2s3Z43XPq4PRWzLfvwOEITeAFzlkmOwgbZn7tNSBOkuB_X7KasOWbMmTyIcMFy9czb_MKR7R43hCKJgCemrXsFVKcxJvjlvIiFpWmtXnGx-aOh1e-957LB2vKzIU4ewBg0FihDEAg9B9NhB_2jDiDk3F2w-CoXhUfhr3wz1nV69u-Weos1uGnNowA4UWcGpTPsv3fRhp0T_Nx09qXKD64Ekx0jU4VhFTw8q-SSaMf6AP-UGRbGsPKD_1WtW5JnyFrd_wjgHegsPrA8sJUOUIcWVPKksu49BoQh73WiuElrtqbxGgJwgugMs_ut8eBEuEysWrn8KRaZmHyjLBYyBG_2_OF1TE68cDUhykNB6oUVkUmTJOn9WUAAi9Ne0LeqoohmLXjviGhdL_rEnO0ky6xwES8blwBs_St1QYljQVLegWr70HHnL3QYnI9cq-3454ZcxN7eRHzmqtTctdRI4T5uW91rwfuZvhn-ws6QUlWaprnKf13GyoYpaxhxYmEORtaGwLk04AtEYOdm4k6t0dKg5-KEZ-2B5lVANzRShV3SegTWyTVuPE7azmq4MjEdLcIUr1XjUMz56ebCaEW7CxBDE3eyu-nnIz7uPAIcXVzpT3p3syTaJwwX3qE6sECL8aeTc9ZIsiMx7e6xS8zfrZGfvYJlyZ-KNhcO9188pVp5XWW_h-xUsyRlW-5IjCK5XXhK94gh8-B8qZEN4kUV6euGD-U2R2dg5j0EMQO1Qc9_a277VJ-bqWSHt-p_HBf2ShczLwmBUGH0IMbJAfOy1ZP2TcXQI4iaq3NLy_gNbrv-kdS_UPskPD11XvkC8Ej0s-hk-m41DVtpaFLoXGjaC6Q--8RwKZdRiANCTotwM8bUaV--Uat7TWUA4T-YEaXOMpXklvkd1lKubCV92IZfEbXVAQ6eZO0e98ioD4L6mC9th48mpWzOMSgrQ-KOhS4TrsQZ2Bbf8GwPUtptRFTsU2HicZfw4imTGUvAifeKpOQeQqSGqwc_vJ50VcA40MSe6_c6PhDkFlB_JnPFur8UBiQ8AjVm584HGGUJDSLUlsbvKP_GIRRtZlAYrKjohJpfgXtNzqgEqUQIT4cTSz8XYuWMfkhHYiHV7wKFFIeO6bMIV_P5grrg7WwI6XR_ycAKE9HiZp-qETJWm-4gA6PppzEd1KzBO_Vx9wdojYPGLzFAcuIGHq9cuchZANQQwZVeCMdekE4T5WPy68bD900GDThA8xplASpMhaOmOIoOrS9cdHWnerB5F5iCH5ZxLSHzljXRU278_5hBEr8_vzuvacE8A2jo6RhlyEWDoVDPy2hfAqrOdapXb1JoVrnNk6GLY_WMuVbVXZ2TzmKaggLBN_6dPk2zoUO317Qtbs_8kugq_kKKoJTN40YyFNchpV91awkwcLirkyAlV9QEKbALsfK7ccGEPkWODXIsEKn_0qEfVwAZWIiw2HzmQeQ6tWyPwyxtvSlFMQTT3A8170YuI8Gv3VRLhwd13JGWU_u_t7OS6DNvd8rTBWsj8BImWq4B3cF1jFHy21a9p0-M4NmpqIGxt4b5wSPK6xCPKf8z7M8aaMuyVvtnoresh3HrckhOgqTNC333CK8AZOAzsmOPWZ0xpcXVyXIxxE2WjPvPn5-vc1uDgEPHN5uhP1OA8RkTgTMB3cdwwVL8HNLHAuOKtDpVh_MM8xVuk4-Y9o9LhZ20fJ7C7ozl8nlgxDDyXE_1TlOxXmmur9JINPbB5xpgbBiAp3DGDxfAGAbVz2DvXBw_I5MQlYO5-rakpuu_gbNX2EzerZQEDU9VOTccj4eqk3kXZwc2M5Qf8lJPotVjXcTGshEnMpTtRDkPkHuapnT2R2C6apos4Zl-V2ujWKSFcdjkYtqJCvhu7JxyD3GG78w1Y0TVbassxMfKJpc0BSIxj42zatGIogali46Ac2UpHoeyeqNweLEXqY7KbvolFwrmUJ6JmRqEqixj3TCBv9M3gQV7cCT6jQ6DgwR20VvgA0vWUvh1T2w45R2ZzxnwuwKpD8NxQZ7uyuCylF9N3VMzD3CdXNe69LdjCTaaZL5Bf1EpqpiXtPINvSeRuxgAdjCMEYrGG1THfBePHYnQsGy-poNIRqnanTuGNPzahn_fpcVx1-SnxJS-iqHJPTmdvayooLRjtrJJqGSfk0TgWQPKh6jPUkkGq_2_n0TYksypqFGCJ9LqnXPRsKgGo9vocrJO2W8TICSFeu806PJwgDT5zItG0XUpXmIsP4YaviNgkeC2XNnsrW3ELq8FR3p0Zd9ShO0KHOqkPpwWERlzYiP4wXY9cwizwMeiSL5sVNx1lMaoZK5IPSI_U5AMaCGgY5QOjyGfXSom0R854ee0mrS5AYydGsBkT_cHrefm8HDWVSEVVnobvmvRJ7nC5QuzWrK8FQM5QF4jRe4IbYVDrOMPNUA8zgt8hD9rJsBW8XUQW9jz2eoLy7IlM-MLtWYvvKqFbHBpr9b5a4pdNkarNqgz6p92vBV-120iN8IdzD37fU4rpKxNvKvPTkov7HTz9ohQGIOHm4V6dpzYHRkpp5szePAs1alV3WBRJ86ESe1H2gG0wIpHn4bzzYO7MY5RsKvQgSo3OqJbv2ciqiH9WFKOlLP1m5InS6cY2vQuz-7qY-JiKU_8Ld7ybskSwlNlT_tOL7jpLJ2pUqoOomyCDIcpjAGiEot5UoNpgcV3wVFiMVei5NfS2WeCdyAIkkp8xiAtG9NQfc8Bk3OjxskbXY8gmsoc_F__Bj1dAArb8igGN_M60dt1m0zTVeot02ojwPzfbc8AtFm2kxplWAiLvvxz2z1ERWYzUzM8BDZNzKWG43zukg39c37n3YWSv5HunsTQdztijm55_2Y7EjIgWAtROxm7YYvBr_3goLJ6DkoguB3euJ0bFnOYOZtiwwnS4x5zRYhPZG1bB4o1jScbLmRfjpN2P12ff7S8UGC80WD6wiR8w1gKZKuwW9_niZiQH_EJAgu1kLWwpmiq-crekHRYrwqMVrVMsv8Hiu39yWDrykYqWyw_L8gPg-hahoRWv4kwZiiroCsvsC9yH-3BMo-YdSb2bTkn_q-MshVX4zQwM3FsXU8O6NnSQuF1oP9roX2J8kzFDIo7ijCMmNOoP-yt49X_oCJ7tShx9iU_1UCodRuBwY6EkC77z3imoWMvzxvLf3tq0PP6bHvPaaFFsoWMLt3iMx1Qv9E5p-B2k2uQQjA6ue7dbYl6r3Xu7IZ6_GdnwReHGJMK-kkvrk8oWIeDLWyqxktzwvkDMVTtV1q3axSlEfNgVVtnQygXRiNHnJabF7rUY_SFIsR7S45RZfwySM6NsFzKgpHKpSQNOXVYTC9zdcYmDBjvAiWvYUDXvyPhjlCUMDSAvLUm9gtZC78h8pvcKhMkyOuM2YRSezWrhEcfETUN7poTLk7XfBbFPufLtQv5lGOOba5t7SBlEzB_mKlOJHr-3P5Iuok1_2gW5Aty4zOu2lggwPXO0yoB3FHWkbkDNHH6AO5hdpYwxlrrA9nkAe6heC-wXWEN_KQioRUiGiWmma18N_610QrVdz_xagl9Ma1kF6HpyR4vEjI96YtfhOkrqZCuD7oeNSQUvC17-5RFrbTVD27VTaWoiwZ2XhbZBckKfGWNpB_xXA8SgI9QJJkaRxB_etFaLfBKISL5zPcVbC7tjFRW4Ex8vZL3V0GxLOcfhls5aSG0PCLUQ7fInNjH6IpWDEAbajOekFWgxJyMceGWT9Oek23DyAZL32U2hO5adqrTvdrMT7lKNc8dBRmBLmLNMKd1mei35STkdDnY79-HdlTHhSdmbgfWPvwmVlOHLUWFhfr3JpQqxMxWPvVNt3fuh1drlNnRCmpGCzGxIfBn2VfTov-hMYFTEQv3fM5dYUwz-qfqjPm8HQiQIjbGV_7uSE2m3s3-s14hayOHjkWk-tRVrCVDfH7pN9ZX1oUJfEK0bA6d2EKCABeCDOVvoVX-ZwNpUMC2fVM0ClTbJBBQsj6JZbmvL7mpQuleg89mhwgxLOvrpCLVRf7KwndhdS-FoN2lxP3fNWi2o9TQdDvw4YrMUzT4-eAOEqL91C9Rrua9Or909lGyOspvEGDOxpix_iHqXcJpmHGkP80KMeYG0JDdES7U6EAlBt1sF__wCcKsWMYwBKm8D1ypXluwYQ1ubiSCWdzR0fEf1iPYwGeePACaBPlJCYia-49qKTQ5OsHOZtVV1i96aJBFzCx3oPrrauCh4To60SGpos6E6hwrlrXmc-4iyV_LGdSV6YYxQL99h73UT_ddPaoFCBBSpD-626zzI6XhyEioBR-WJZm0riQhe5q6_ECCQNjW2vpxheCrmGUxm-gPStaZJDg7CipsiIPBO1s2WelUuizU0OqmVDM192AMlW1d1VvjIKx8JQOYYiCCDeL-cewrzpBDgmT7CN61EwWy_ZhcrJ_62SpekNbUroMDD2ei2sR7PQur8ju-Y3oPdW_TID7rH4SGg_YBq_jHVJFeXKzt06elR9x54KMD-Uc_ITZgv8NNzfNBeCExq0mhyVnfTWzfCTEWXgJugUzTg7HDynflfdw808XGmbT__p4REer3S4aCj4nXwoj9pXiQn5m5sjYjPdeXo86sN9JhrkUQVQXInjC3wGH216oiZ11uTiMi34fVajEK9inkaioeuTW5HCkm55XFtm3Ur51xjwo1Jw7hRlucoLgzGd9_FGG2A2pZlovozeD2xbCAryRw1UDgjpIrA6IQD8XDiQ4SN-a6O_7wShVpMeKbPqrLQdc33UgNAViOHzOh_Ew9LxFfqp_kYCEIZw3ans3dIBhcXVmZTD8LMlZcwsiLUfuELg-aVW5AclQfUd3yIRMgp_vzRyS3J4MEy0B-_pE_2nBg3Um4TMzY6vbWbIm_-CTORTCRLd21grzVzEs8jmiO_Z-fUfWfqynxthZkMsLmRcaKVSj-MzL7nLJ6uHdk0J60te3CUCbBztY03JHkINrtDIqCQNaO2-OVsLNIN4apBKq6P4uZY4_tk7KaFjSLUJ5xRDaLVNFLVo-pNaCjd9KLtnLP36e3LX83BboPB8T3eDHRJ3E70f5JQz2aX9cwvRTH1DZyZ-XGLNhIKF09uPyQ7Ui9A09VYMjKLnKr1dQelK-nSGFVOA33P_0PcOPelIHkgx8tIyoDmHF2hc_DHkG6eOFqCILrnZBnZGfWBbuAFWMfRy-Jb6WLm3ljPeLpROEXPSXB0Wi5mcJML6_iRIsjDpWWxRNgDugMHli4B6uhyapD55JgBdi3EqJTJSKBLv-APZ231yahf14B8b9zxlNaONQ3rKmP3xmLyxrus7TZ363ZACmbNKH7OLCHb7NfPSvVyyfxX6gS9D2yx-2BX1HgWl_s5Fa14-thVz7gdhPu9nR2L4rITsZ5BHVA-bhIHXBmcjuPGEQ6B7Y0-nLY3RZvjlSC8Equ-DsHcTGhYtvxzVzotSEASTRsx8C_qiX86hxVRIcQGFUIWblVt8TGhGJri02L8rkgBgQBQl5bAX869QKqt5kyL-r1ZYbNe4i4BUc-UXbZxU4aMkyxn2GWmNhsUppqmfU_Ki7j6-sdzoGJnzb3OVBV4i1-YR5uDwFsOjmlszQMn9YOpSD3bL7kljlLkcixENGRd1KzhtFf2YdhHhom0xpjJztgooFkuivdtNZy7BveOvhcafolen98_kjYVH6VTgEqwxJcdL4GuqWYj3Fwc227IwYixg2SYDAXOPTvNE_QApdOsyBWzkmzn3IPfaoCpmZzZcxb7PjMdY8sH76CpcYMNPXOnkHVvEvIw2RNKPyFjo33jY7daJ3MTJ3p9Cp3XzU3DeiBPUR0AFiDZhc8SRbNRlsMWAvy138iT9Js73XXN6JRSiHcjYWBerODjglGjVfa8EI3gSDEwuwx6pyB_rcAefndC3joQtJxajoEInxC34AZkUALKkA_Es_ksYAFqC-OEbTlkkz0le8b3cUycbp4KkWOIHkVxZd9duEP1eJKNqFvm-RUVzoO-faKQU1YHamxsWT8lpmZ05ulu0VPWd2N-y250RtuO_NAnicHXBDV8EJRaKRPHyGkS0hV1mOp4xU_uXOv5BPkgHzVLJD5SDcsbk97JXtLuguE2YqGjSKs-J1YlkIY3UhP3hzlr5mZzuxJ8JKDWqVp26W1qdqu5ZPyYkiuxcHPP6cYH1fnhLfCooS2j6E7il9MRwZdVO4kKejyEmfuwZlpHSEK96XNOR3dfg940jkhSiOK8LPywjBB90leXlLv83xcKo-V6XZfJwZ5RvaGmYw0z_jpmiaR_SYL9nah9g-M88rSZXzgYJx7YEV1BrMo-z9Jv5SNbYYWCJ3Kk11YQLNd-FokIDBwh3_5J1GDHBtsGIkqh021JJ4eV2EtKouaKleeAqxYLJ0oMJkKxrugiiJ_U3s2hHxLIuarD4snErH8WdxrdGkc-teURxHbuTeZ_DGvQfLj56KdAXZlFH2aLoMBaCNxHmOuvZdZpVtQKGygYuqLL02tRzTZPnKg9UQ9MU4C26l2yRyBpma0Yekp_YVTsKuY7CR8v3PUHNX2JGefirPUFi8dXVeAbg9WkRUAAfomxtijPNKKMsZQlMDZdkmIB6eiA2yltjjy5B6kMOLacO5_4DSwsQYFbWkaCP5LtDxIMs7Yj2FnV-t1DG10jka1OgjggH2hweCmIHudUumtxxC8eq93CKl10esLULP1yHQKr4s2EEJzskCziYuW5Ckz5RlG2N2IUTNWqFI0DinfXNOGC-P4Eeb-6IA2DT2SYTpIFaMm-i8i6VXYL0nme6djko-WjBXEUrLL3QEqXz0X70YcscMZTnfS7Svi99r8G4oHjkmPgmMloBMBVqVXDC39aPYchzDEmcgO0km1nJxHp6_J4EgtOI1t5Ds51G7rgkAAoTFe23DvS2JSIhudS8k5MIzEHetHNkoxSE42x1Ui8jA4NxvxyD-MwVxsVxMGF4YTWl4yuSL5lNaZMQT9slJsp0FIajf2gAsj6yzmhczE3qfiphcMRUE_Yw7SbiTzqelCIdTg0lprqPVxtqtxj4sKi1IS1jPGSMTw_52ghXALNBVuxgp5nsNw_ucdU78b6iNqz032b4MkNGoybIqQkCwUqUDvbePg0-DVdPgYaFBuHd9Xa2Wdv7bHkyvbsV7yBPTOnBiC4tRLdfLdOZ4YfYAQn_gM_rSNhr_ztyEVuFnedZfIyLBFoYm7NUn9WWWvbA6Csc9hcAsBDtQDQMuqwo3H7Tx7lsvEP7FpBaJqNHhfuKUyQACB5yLQX8GXnl-y_65re0Nc_ThQgWOT0_Ugf2Mpo6D2H7Nx6WHHP6cVEnDdwANBONLZ64BLqM4x_gaK-pTyaQRL4T1XIsZ5HXM4rH-hoUaKdHWZ-NWo1v21CA5h--sS5GWGQznGAD29PnzTjIlTHRVEqWMOEqV9uRKMb9rPn1yOl1Soz4oCRGAAw54kPCbNGD7GMZZgARYuL_RhE1kfRHhXjk3klZ03Cy-lvB96I3RYThDn1DsZA-5iayKLInh27uDfQEg3c_50wTv4oePlsanFEW72U-BE9TaGbzQcANjHdTVWX69UMeK5AjMQEmYIRAwzUUDYHjG49h-D_ZcoCPbCEgSefVqb_ZkJfQ_JKOpqcUh52aYlQjPjmd6xD1EyCv0uQOhpu522Wr2nLv8fTOY6nlsfvqL5JDVSPMIPCB6rorAphGPmgfpi0GSQvGuy_qSpUmDPmJNOUL9tggmXE0S31Ne1vMiSUELTPbTpd8gKAvKuiekwuNtJ0MEVKXz7p75h5dOFZfw4nsofZnVm7eK2XmsVleXCjSBxFB5YuRCU1oEBBuH9aQVqW1BNoycEAOj1xDXpV8ocXAsD8OBIxZ-O-7QUBl1_zuH8f7Ekovd0L2zkJm1pS75I5epSJdOsWo-aDCPym-o2qsJlf6NTd-Jhr6wVLRswUgVWvlYPK0a79_qzjAXluauLTS2fVusSvc7cVL6DHPiEj33dY59T7nvaLUjCMXQm_7ASKnS-rMHBJK5Y6C5uVKYVYYi7CCsGhw200s53r6T-nQfW6u3kz--FJ_oDHwBDKQE7PBpiOPQLs3uiYDptvSKUX7WLjPF-A9JNZsepcsAemVF1BEaA_f8yNrYoYsxteUY_vgRGFRAlrPCrJxx4mW_FIWsFepJfI5wdveXUWO5hHcGDSNGDZP3ck_Tw4L0TLhb_P0Eu2bUknPaZolkWrMelnMTv4nPPjOC7w2ATewApZpZbq7AwDINcrqJq52nvNrbbfJGteybzC0cXzHpHsVE8mH63HgSNywIsZs_FQiCSHJ6stiHkwjKE2GCzss6e5sst35i7yjMB8GoFLIWiBaNg3L-kexW46MoOccpHfb6_5nXEa04nA6ea4r7ACd6-kIvj3xcVpIn8e-U4Jd2EWTohBW5OHJQd39UJSk5JsMeQ8v6rnA89O3tAMBQF8953YMZz0sK_RmasviaVxuPLm1Rw1H6YBUYfsUejDAm-0qdI1BEUqd27iR5AsH51gsVi3cJsbHI8SCDf-Zd_LJ4GCxxVAkWYx5O_l8qBDWhFS3pWD1d2Bo5km-hyscj9AMmKyBQmVMrRl3poYTqBJyxoxbQpknu_KWlFL877hzOD1kO38zf3GJFWkDc6JuTjRlxxe3TjDTsGSwhQN0gWn4-9vmx_9iI8GpqkmO631OWzlQvdeii1IiKUZ59au2mh5R_ib8Pd2VCtO5GyDb_A5lknk1EJcgkwXvY4KobYdAz-U9ofITWVwoGQ76QtSGQxW2cZFONr3vrLSs6LuxB_AQYcqFCOYSjubngGIpoD3aZk_WCGMqVG4sYbSpVRTfKh9uOLRx8yR22eTwrcgXjZ7dYQUo0lMf_dzVl804ELfnYhB7mRpYm6bWCnh8kOFAFpILQ8jQ0OdwyIukSs_j5V7ct78K0Fl5_drBBBE2VE5Td73PESfZAHltp9rxlvDowSgfkuYJR7JQk1QxxQd7PiiLP7EKk5-gf3kq1Y7Lg8mgwQpd_rrQ4G19NOz_Ijy_uqdLvIpSrfypYWcsovCqM0m5xAOlZ5iqdM7SrW_ShvilqP8woF2FIwE7iD18tg13gPdS6RMh2PzPA1PAJ5ISD84xk2fvOAcxgfOD36rKUAGamK7wqBihHZc_9H0UH0KXlQb_WbpYfT2ueS3DlB2wMOUGRTO6GIrSybGrjoLArfhk1Foizo5LhBme0t9jTM3z3wSurPCYZLwpfUnMOR8hD1q87zmbzKG1fkeiBLGF0Zr62w0HInawknMEiNbIjhpNy8mk_ufOjghXsgTihanlc-pQ4ALeDaiU-y0utUjOr5X-t2XUIJFpowkPFlAt4SKmGW2L91NFRKoVinaWgjfIShb42zl8PEhkidOD6tfx0RPPXEkXdXMwm1AhC0z6VvpGEnBXgSqZkMx6FmIYCDAZ9yliOYLEwJR_j_e4-txiAJ2AExCrv59036IJAI3c1mzbpltrGRjxtFY9aGlAyP7qyLi65hP8sQZ3vmcOUk_EUeaPVpagq-j2-xuF8WSs04J0XoLTTi2vd5H3AvX4Rbf4X_s8Wt3BbiX9m3WCMpEaQqk62GzWT1A1ZWWG8TsB96VEBFZTfSaTTY0GT5J3Qs9aaUKVygFWP0rI9fz7GZ6zrrZRrMafMzpeGQHyfR9jPJHouVUH_NLVNt9RngfSH79rVtd38n1wHq0OtgMoPGdPHKND3FM5qxSkzLoTaZ8I3je-qd1IAQdGAoHqKVCtMoLLwZUMj0x2foO-wtIXomvB9sK2VK5iRHcJxXSsRGdg-lZ6Ui_Qz4J1MmbfheHhddMlmgD3eN6oCukyk31NLm5Z31hqxTfDOkWOlSehf0nR6zxykhlX4hfZiymobZ18XndWhHHnjS5ZkVRuuHi6_U9wlGZr_frXNqPX2h3OZ9AD5jvpllkD9Tn7C6my4PlfQ2A2DbVqihge-gph_sRfPD5RkMbP4QU6IQsq74ymaaanLAXWVYXgllLhmxIS1kr8pVVShKabWGxQPqm6dEmoqCPwvPMaazJwYvo_FWFjWkzpBgWaZ-4bFC-FGXMTIUpcOd0REaIT1BCfCn9kJesTbGLzvWpi7z2n-wrLcihoPcHMam3gbwVPWI3TRv1X3xZtGxGzBPDW9V37oMAI5aoCLmC59iiX2PNR75nAO_TYDzXcnE3NZVap-GR8Y4cO_0Xqp9v_4UIrMDhYdqYbEW3w4sDGkff5WZxkYd7pvePc_nkLnXWhK62GRfUQoc_MjJuxd5FR657-DXAEKDREieRH87umsvq46vfDGU0bprM596PzJQ6Sk6VpxpuRaurDLmVjlkkbdXeD1GzJcMT8Jb-m1c9OZ8nG68T9wnXg2ExTNJXMeZmCPCPRDMG6CfoUjB4QHrOGsXYN6PAk6rqB4JmYpZfBYGyR-1G5I1DsMIC1n-CCvORUSsniDCG-AsjHx8VEdkUuBdEoMRarpjZ6gzvXYPN2JILmajOeKAS_zxAgnRQc5qPT8GV0Hs1Fk0vX1wZLXHmx-sqi5JZfhbHwGqZNqqiLWMaLFgCCZxanEDlthxVGmlcnOpOJKrVEY-OVO8O90xPcHeElUyJ9r60ZH1-RvnzJ_d38I8DWrSwpBZJWz0e_-6JoxOY1p2nlMFSUuhmWXN6C55WJEXG365HNtKEFy3fu3sG2yefmAr-Eqxkt_nSDZshy68z4zXrEoyEWApfBq5U8gwGQ6_wOiMnxqlafW4m3bxo8ZHhHGn_nqOI34Yv-E9uJTnOwRRNFEH5KwFQQBx8YybQuqyklaw51Mt4xdcMLyopsaVXYpldunVpVwH3VITwAzeUcV2CHFeb-GdKejCXdwYFyRVi7eORzTJOkzS4NXxfkOkA6lqcrSa4utPy1jGoJllXoSpRBeBhs-HhDEWtPCN4jAeM7_9neyfMlV7s5Tyb8LJ5jUrGzdCR1RnlqHNPlUf95_zLWCRltWpj_rNDmZ_eiZQJ-7Yrd2j8iLcNLPdC-h6iDHeO-HpHX5vW0AKBow3qUvmGmEkgVw_jFmw5dP4w0gGhpN2GtZCCf8gVJEkMyS1LSBwecFlcWkIRVHhEXZ8AvgnBJ1i3Ti1ftlo72muNIP4GDKlbSeI8QA-rU7S6l84J12wpgAP0M8GaEnwiFwg23WFjlmJrTUt7mqhuJTebCW9qodqUPpiW0Gw3OQN0dM07H7A3vharZuLpA8ja9iddtrMDJX091oi8QkXzBQw_O7RVfxVUl7Y6f7zmoe479hXZISIE8KMbNNmwhWVYinmkFxerjIYujQq-Aa_mTo4mGwiWSVDu3KdDysZiXST9ribkhLDh0ELN9y9uE3bLu8X2QeAYeF-Xs55LV4sJ7nBsPFn2lySagEGXXFPWu08TuqrS4b_Afn7NRKx4KGGv51ZnovKnxclm4cU3TCgZ6H-_5ROQjCU8PFlu0Zg2HzdBeUTBpf2drGqneOJ1h33cZaEe0dLqon6XGYOaUxA5OEJCOK4vMQMlpEUkkQEoJmqKlB81bEnX5fWmSiCI00v5r-g7bACgFj861d_F5tQWTlaEd4NDEKHnnmgeT_PO8JVE_rJ9tVkcSvpohIBqQCWLbq3RbtehwxoS23cUNiiQ6sYkjY3hO0wQoNgrovjJUqzdztoh120Xb8U3CUPOhT4s5ZYKQuvpR4yn9KCjQqDk1xfOE678C5hnLSTgCBUh1oVnfgjNuzK0CPAo_YWfcX9B3vE0kepJL-eDrbr-F4bezWKgQ0yDcWNq76OZvMO8bQO32iU9gYqLmzjdULnipXUZVxyPr0m3Dk4MN3V3xtPS0h4DTeCo3yvfeo7enYkRQpr6ev7I_FWGoYqMurIDPdkR-R3hBIm2_OgRmQvKwVBlkNf1P6q4CqhFI6aqNDJyzukgOUlsSgxbH-vhDin1dP6p9sSWQa9tE3FjMIioE1eLUXlxXD806sSMAVMPThp3pPg4Jm3mDoDVRTt-sQ1Zjhxdgy77kLZRdKifcuESM75gB6kLL9UWIFnp8jGAZqekbuXs7yIe3crOiOrOPqZ0yOqY0SN6ZOgA8QevgwBfGpMK2_zeAYWRdO5Rwb1wvjWYYL1EAwr1dcV9XSEqtFTPPnzls8jgLbySFlsPXMGvNgUrkQyD3bD3Lvs-b_d4VLWiVhWnjmJMHp6cZ4OLSUX7h8dHMbk6ktHjasKhSL2j4I1p9A20WUMa3woOY8O7JG71JCuyXoSXfIBQM2yp9n8rq14BzpIJLRjwKaKsoQ_sqQF-c-gULpbpHDc9h7VPNroLYuTUqusp1a58P0fqE8rdmw_RQm1K3KEVs30X-G5WBwDMajfJUzFaYBldrflaGhhVEzsKiNF2pbM5R081UPSRF44xcdZoid3l3ovkGD5bDZbVKJPSiBRV8MKBz_vxswjGmDFmXuxe-ELl0QKrGcUUFkl_lgg4n3mjU4P09PyzsepJSzAnnMBIKFSi6Oysr3qXmED-zp4Lo16OAAmvqppCG_W5qjkUgwK4Xaq2BAswIv4caObtk3ch37iOWc2jxAZbqgnR9Ayo2H1tc9_S08vwGqJinbH8aW7dgFWWsRiIwWi2PgBp_klxGyeGaW7z-_u070VPm_Y5gpJpcdH6MxaH9nmhTgbl6HGyKM0sAPUDnl5_NKWz_VAXMUPTaE4ukrH9FBrJLWRvXiDa7t5AMSCAEBAZTDXk8zdbOMNrgV_QPwh3NoR4onHbaEG68N_h9mX5JwiqXyUPxHX-ivhTLHBnWjyYBrC2Xxg8gKsXoRgRr59Gvl-vx04mpY0KRvEJ5SrKTGYPQ1mNynQhAToKPkCRCoB5ogfaSN0tJ6AGE5Cd8bGZuRObsIAfJ8lkCMoFcVV55hbHc8uWOzKz4Gh4IKE3QuCXCqk9QaVPcY6MIrFHDvK1R5yMP2q464Jpm2N3L-l1K5hrlBPe-iPNqyTVM-J4vbTC8jYy1xo0w2BI0TLsgrbFBeBn-Dy6RjYX_TyiVSo67f3UiWRAi3scZPpx7fFS6c8KSgrNTPGspq6yXH177PoZYEJURvk33lX3JDpzexcYQxDv8JQXTv8wjQXPx5srkVTJgDHbyFgnf2VjYItRazCb7ka6r_H38vfP9x898ZyaAA1IigIEwlMIZfFcmEWrMEIJUjhJ_GblTXq4ZjhmmS2cb-Hj6ePgZmm_DrGec1wGKI1R9AAH9dofxr7UIg0XHomj2zfEYhIpnboNgPVvzadUM-brbo7D1aiyVcl2t6MPo2B0YGBUEu0gJ99s8OuhjQNfKeIwJecbqBLLkLR29pE0-sPnH7WDnUMpbXqZ1WBO-pP_RdeYrwiX-zK5s_yVRdapVsTQZX2-Ek8pN4nl-QWcocL4cK_1-_d54LHt5EgZylZYJLkGboWArMZHpwZXDRDty6cWiYlw3MBFAHYwhRWYGp1HGt4atoTqskk-L6QjCFbRfFltgjlsB1eztcZ0RfeKgxnL0r0Lcis0c9qTajpZ4tt7jtzuvS6yQ2Sua6WFmhLXtf9Fe_eKtX60TdAhFYXDHE0jt_i4eIpcxpisdEGf2TPOw5SEFsokJTJDLVLLeGWlxbgvjeIg4abuOPbQE3ifNaM4CHvB8DMYhL-N2LCgtvwsbNDioaX_aWaIDxkQ1j6BToJfzZbwklLBANmLY7HvydqArfTcqCilUPuAkq66SgApcpWunxS-cakKuEo_XXe6eBtf9thhtD3Tkagvs8s3wdjD7lPqXpFigM124dlb8HlAQRmkGQ4aHLb1MY8QKU6Ba-v89l3aeQ4XliUQ9Z0HZb5kckEFjTBA9SE9FVSXftUWW0pDGQF110nLOEiNMoyZsfV8w5gvsADHh4wZxDbgOQ_OaMtWhbdDEw1gMnpmNMQHeH0VJRLJeQhBLKgXyu7H1EgTReb-XeL4EFtG0OmjpZmEBZHUx7kZkhR7tpyMIJuSDKx6mvwzCgo-0Uu0vOQCIhEDyD_YNekXuelQooMEIWgHSY2LXneOY3zvdmIYSDbvwbOxkTLNkNahlwn0SyFpGKjAMB-tlgtNDCTeL9ID0PbGCigK99uv9zDnhtbdwiuD6kkeC5Hv3BjtzgP-wpVMxSMQfGIEzRF6Mw2_x9iaqFdi0DAOCWvr7EoMi8QYh73A4KFXtsjdvG1_0vjpjHeciu__s-PS7-t-TYTHjFFN-GJ5nOBxHoYQyVEI0y_is2pIE_1AHFuJYKQHfEirXnipDWvkTefXrfPnVowRllQmRttrRqf0kGxLA5-9_5XF5aQt4879z3fAYMVyNGCYLlADfLSHYf4UjDPT8wTvKC83ivvh8sReijyb_yRvyN3qmhBAcCQ5HspplGFBrMz-RNjLPy6rkDePxl3BpsAQhFE4DFoX8SRurajP_cqSmIv71MIdpAJphPkSppbdNCf3e5OkTOlSAg6BDxEODMjBpl6M8eKMF24L1skGVB2Mm6cbDv0bRJnYXChc40QbuztKziPOKilYiw5xK0lxI1-JDcY1_O2yFu79gEtUaWfAcVG_WfApx0xjeIDVlShGlNDUcENfTgE-LnP55Zb7TFT4iNOg4BTvPENdWEJCIxCt4iFTWg9Ya-8Rkpdsp_uz4_2vRzA8jPeWZm6CYMeLH9rs4mlH9Hja04cSqOaaH1TCZ0RrXGNJrwyG-dMHHFnRbag0eBUoB4VhHJrS9cC-v9rNMwtF5GDuMEZYxe1C5x9iC7oZ8XMMJcaQH_rHc7bHfffznlX01BZYv1iFOrHe0txnuCCWV7G4MqqkOFG-H5q0I1eLEcVK0XYvm3JAssosH--_VVJ14EOX-kHNP8sDbWdCsZ1qPDCFG2Ol8A9-QqUppFEByo2VKRs62r801AS0ab0HXWSfsn95awmhc-bGmGS6KX7DO2k-5VclzxFzSXngCuv8Z_0lLGuwNvPWf5PdD0brPX-cpylbw_dGoQL90AZu2lBiju7sEIiMTDydAJWOTzC-suNEEwJiJf--F-Yu3qRG93fEo7PX1eM9EmjWrGDcAYFySs9geSFBtxgPuLHLkrbjoV5pwAC54V22997bM0TZv8MLwZlI9Nndaj8MB_KKs3jxT4oJId1ciL_zVECFbagqgoMTOvFcBKyW-LV0jueWK2f1Hd9nx5pBxPedhDY7kIZQ8lt7DEGP7_odbNpcIn7naeqeHj6Hr9yWBhzBFqIqCVBqh29yphMsraDo_C5VW4QFvQZsdO07Fzw8AP5kEIlIbCxnhj_TWUja7W222l1lWwKwZVWvDe22vCOPgO5PiPKdxIwi75rsKLEtKsja0qOC_pP87GiRdQlWtJfbFtnF5ij9v2lINCyOxicHhfrkSgKDglOPpPOtUgVCNKq4L0MPQSN_iOL0uT8wym_1xxB-oJ0eRTyzNGbmXjKdSlb6KTue5GfFA-FMIix4TIu6xUv25QGfGsE6kobfUCLm4TjY4aUul6Pbleo6J4iA3GTQ6gEfxqiVxwdhr4i4cGrJ0WJEdWd22wnT6FfHipHH3mb9WTVS8ob5wKUYdvt6qBFzs0gf-o2tO6Y4ecqqhdIOc4BZtdRpo_yXlsL3u-h7Z3xhMKFZYdEHw0ZjiOGAA0wEtzVLyESMlODdCK7yGuX1T1-eCEd9pwT-Y4qSpw03AZCGnAlKux3tVUgiyPCJO6HO4Guxl0D_kdjSWfwppbQhhbkCH26PsyH9TqefWzOsEbKyDBFGUMtM1HLJgFUducMOIBgzt3ySIhxvp2sGohn3XPGxL8A-zkWPsKikpn5Nvw0ZJeVvxEdL9v93zRxoQR0XPADtXBdtG_hMSTvVXpqsvtDjvbGpeVdU_8BVapN2AcMh664FTTHb4vjf0QUkoFC73niY6z5wexdKuNzTNnGccu2sLGR1xenSEijz1q58pIgVzyyXuhKamGhWk1pJ34kocyWTn0EnpCv8sV2D1Mc1ThI_whR8ZOPrQjIi2rGAIXMsuvDkm6eb7F0qtrIUGdT5H0eo8-f3A5ycNU7xR5FxMGOqFOnvwym1CXHFvz7eGdNKE7jgdJxtIc5nuQhJ7lCDjd8r2WHdKHykQDwGwFTQGkYujsV2DCOsJcxZ51vC4Y7YBcn6bum2rkUxzjEzWPnnMrtJcq-BsIMtMryY3ZudhWrTvPgyKoO0LX0iWFakKa5bRx0P3Nr73DF-6WaBaWJZd8jyTzfP6aAXaRYyHKpgiHvk-wVae-rDTW1RLKmbBwLOpKtZ0A_-Ovnp9ytwATql25QGugcuS43H1q3qidCM46uX7T09rpfvHbQmZZL9k5WF0q9A9udyMkU_m9cqkPuM00YEH3oVH6QBpkDDk9r5egsRatSnYrwxY1PNHzQrwTYq0dEVK1cTrxeVK7-gkt20FQg0z524gvJvgDAnePM29rkngPqZ5OQhUVuTKlc3iwbgzSExDuhnlQUusp0gMestFgOXUgo3yKyGE9Sx9D1TelVZj7FczDyKjgHI08EhNu9whRaqGmERjsI5nOlI6_7TiLhZKMrgO1NUVm4OLLFC0iG9Bfqox5qdGRXfqLujPCVdMSG7LTEViaNKFzJTlI1PoDDjpz543X93FQ5w7T7zw3CXsBCz-otUAi-0c7al8SUgST4SuijcC1sk2O3uDXLpa0lzmsAT7VQtzWNUtp313DVmmXhoMjT3r3oAAHNa5dMyrfTOSVwiqus8ksi652ApGzRCQwqPYxtj9rGSF34wtF5ggNw7XY7_4pJw6vHFmDDQFq4eJIluunMhl73vNf_GBDlzkkLgNfNtxO76uohVHNyTEh8UBQi8_1CHjKVBSEAd8BY5vdG-Oqf8uX9TbmY8aVqyvdIqGvpMhc-Xm77PyJuiIyRqXjWYcVU4jF5oVIOduIcPk7jKPMJraruMuAUNHjTQfOD0G1hkD3eqjODtZyZDEULzOy5RFX-tiX5F4iMdnfTNLFJ0hVxWeJc1aKr55usV76KqQsDExXo02HOtb3w_IEru_w32ZuhjmyZxSEqAoXXHaxQ7GQ2MlA_Yb3yEUTO6nzQ_4XXwWzheHa1Rldv8u5ay-7I4X_y84J600syYQYdaRL2N2kviip_P2a3ljepI_3eCa4_Mua8WMqD4Q_eKVn_uMFGZjpcnYBTJrVQD6NRnJdky9PSFOE2KiUGw533IRUzFNylFC7R2KQDHRaPrVrdevaLc_0U2j_enf3t15za5ET3NLIZuBzIkLBEypjUDLfiLlkKgUSbbt2n4o_Z--uf0N2AGk-5WPxJsfF-JKyNHOaLzTnJpbzyt7tx9QwTOvgE3qFebL4Br6mrH3pyghhmrf7sfAJddgkElH3mHJsSUv59Wcm-dnVO4SJj-SsNG51fQPXfUNAAGc1MA5IZCdfsJeFsOxBNSzvg7QhtaS5HhgeCo35BL7eyjeHdNN_sfsVXa6oUI8hnJQrLHNYBLHVgwqTaEG_CPm0h1FLMFZF5K8YICGS1js7Qvvnf2pbEF0cDZZt1A5CbK77r-d3vURmXjfhoYaNvhNZZzfFWpwh_XP8Yh0kiLOiuc1cWz5XAPgy69m1KBSEjL9TOviqZEcBfKUhKUsD2jxE0wx9cHLlpRNpi50vBsx0D7AS3t-CspOFY3v8es5WSuA3ILbVIIFdOQMsnMJ6FH7DebTCJzLiPfOGDcF2FJc2sOMY8xS6Gw_Bv0d9Yq_F5NIJxj1x-TsOofSrS-9X6uy74zRLgS1uihRKPNFWM3Zt313CF4SM2jjLDBVYCOjQSJg2HJuW-ZsxIr-yv4prCAE2YDitqSLt6pplJdN4qOX0w20gZw-XyxKyf0yqkK0p7CZ4DJReKs4P43Q4f-PDj-Ytrr8TYxIrU_gFbeQ8sAFl_mmk_9aEw8Dq7Jj4KTQXF_bhtw7x7oJiPQmgHlVSSz_qQvIfNGXewRsZ-PHo6omX-lPiEWBDsF2x29NeAsmjZMVOdCvbxZy0vffnDWvgFAAP416BDb2Zoq3wHOjgod-oDfkSOs7t66DX03eWHPE0Eln6jC5PM8tEIdpYcvsbScnSfHHxGyXSg3MV_QR-K2AmlG45_4XywPHao_QOAOjjaFpddKlMSJ0prnXRmnOBtVS4uriDtKTXuCXR435MJCEfFyYcepEXxvsp4Z3P4UwThcrzdN96ukbVRDvXNu21P65jP3x02KJnyekn86S4CZPOFXCGGhhmwgaAllCuRoT_9g5Pg3vv0jiq8qrqN83t4ipcRIUrtqZx1rzbNMeyn2jQ9BPfzBNsnoeDBsTXFCygDHxQHhpN5opUH6bsjqg6b1CvcsPuAYzhMiH_lDW73CCYHExgxoflgzUQ43aQ5rSO-1s7GsjkqpC9Jd8HWZaJqbBX_7P8bgVPzZQNreBdyuxA4LzTIUXZQRElDtGGoSuYwjuUDxpaKS-aUxKmBDk2Zx7ZnGJNWkJ-NfDYX3TIOF4Mx8Ce6rL7LCZIL1koyab-WOcZvK4ybZ3eRXWsiRP8w5pYr8UmxPrl9QSmeCyq_Qk7db232Eybd-0RJUqun1t62EM9iHQYjwOyrTcJV1qZVhj9Q6LYsKcBJMIsW5RGXosNcCL1dnUm71imJZ04uWSQTHQIGMpXAuUO9guvsFhn5Ns5-svq8aOrAzxUM3cuF6ag7zGilajKYHDNsaYmjUKVRd2jRD2IWyX9zMbI2v8ywF5j9fB-Z262AJ8FyulLjWWJ24zOXcg_JYLSDuybZ--IFHl3NcHTHFwdZCfbynlh94gqj7ynI8O8QjU5yg-nkSb4Kywca6s5UuEkuOe2i_DSVoJyBcVtIHC5mq8NqA95qJDB5P-rdKSo_DB8crc3ILGxGUYEPv2_x5aAqJwIYuHdo801vnR19Dk9jZX2C_DRF3RA1xzUCcxKdRWgf_wUIqMwvXq5m3hYVoNhUUh3L4rsrdcT_D7s4R5ITBlbsoB3JecJ3CAkl7j6V15wJs7tuIVpBRpcf_JubF3mH6WfMk4VX7Rs-KlisfEVnjc7CEGDn1MikGCRDEcVlt7siGS9br3TW140J3eR8vz7XGr-aNAa0ja9iHSpUqY_KwwBTOLu047rV_3FPLcwmQzEGPtQ_LYhPRIYhZHILrHWr00QJSVk_Wszsfm83Tieph3gFbhkg-ySYsAzRfgNsV2BHKpj0LaOduzP6_qimovSSEGbddWWnW6Dvz-bPoIZ8Qb0SZCvBNa-wz1B9jQfuf9V8tvDMdc0jMjxIR1v8cuW0zMFI_46pQ69aivwSz-lYo3ssIRz9lBz6qBcp_obcdDYJRevN_b9o7hHLPyrrZKzuOUBtJU_AhudmGtOryLggQtLwfOlOU6WMpU9Jqr_eSipQhBF5lkVE2eTLd3H4XGOt4MeofebtBqHuV-ifNGrHwblBklYVdHfKPv4hFxVok8bvMTv3axKxEnCBa_bJCMPsbn9eK0Wugbb61HDKq_xIb546UvLkZ4WPoEJoab_cOZO0_vWcTdpPP3lUf3EPoGNGz33yrg8pGWuzUyJvr84KaTqHGgdIy5ZBYrwm2Dx1I-KPp9ACmLGu5A-i_9Pa1RibHoSDOKQyOsCHMeYtI4BuJ0nH0rv6Rt7aWC5oHNq24JyzuoH1AUq1vzF4JiHpWE7RwhEe6rg5EOrypLKKz88P96xymzCXEgkjfwMx7D2x_EVoiQx2Q2w3LmAwWOPNSTeE0XoCvh7V9A8Hsz05AIEkov70ev0jK05hGMJQN0oyuZUpxntnUlcOS1DO5ooNRm1zeZUCqhsxiWROkANGpmXayFKYQ9MNE13Q5HgW2fRMPUHRn6kCtbZaZhtIq7qIPf4NUR-JZH5nouxsVVJJ-J88KuG8FhgKJwlDMPEaUcoNEI2cE11mAh-anlBRHnaRiGPxOwa3I-ozzHpMrmNDPDYG8_zI0tNMlSHj7qWmZDUOWSkJEKSky5f1-4G3nEVDyzCM8x92kuETJXnhjCtdj4cai1qORReoDocL_4-lqT6NmAR9USSoaNp1P1rZO5ClEXnktIzdqWZoFhmqHPdJpd1YLdcSfyu5Zchm2reQQD2TYiCjMVF6cCiNfSfjny-gnUPU8j0Osj0iLpmqnMvPS1gqaV1w8PcTuCC7B-MEEi804oWxNgIJdgw98kiEQ6q6dGJ5OtcRE8AZ7Vy3iQFVuq73kdV_kk5W1cg-S2j7bOnxrUm6A_0xVmXWVO8ZwUwevw7MVRE_4m1DHyIPG2JCEBimdpNb2p-ShHwq43hlBd-eZ0e-pPZ_0UtokyhRD95fFCgB3nSlexjA9rdsUvr3NXRbOAlASoQeBdqquCp4-C8oD08lr_q_bhJWX1BLpYe_5HJLv9XdbhVOMwy8zwGehhDW7VS6FDXq8l5ae2eMyH90G8YaJ5Z1DMJkESx-ylAQRsxTU2igEynIz8lKhmsoFOR3AiDXqY8f690I3GCxGGKgSJnETBV4WOi3z4012wNfdM7VMs_MYGl9Obsg8vc92hWuS_32VH_vshQ3-KYaAb75vBZMK2-68K4PWJuRv6B-R7zY7qH9p2U8Ug5egygM_EykKZo9vD9lp_RAtyalXbFPSM1VJJFXVB6FOwcbDfI6-PwlIIi72HqhwsVeEesvxw1M62gAeKngjXKqCGcIG2dmPVHLtlh75-o1MohFQFsK4lsOTTM26HNu-8i-6bQB4dFC1xu1kRVxbVH-D2rfmMUBvNUt4f4nlH3O_hVvFJNrOd0O3bNX-tpGqnOSw01VlfZuaOj4e5Rc2JZBalX2rSSg6ChOlWarOOYycrv4OUJNq5KTrdbGXn28kNYuPJRm05QcdhkN5mh7IsnulUElteOzFr_rtOObZNwPZCz1EoBwWe3rR4DpoyKSMqPujKXJtewtrlkAVWPAPaoFFChKeDSeWcEw9BDAUeejjnm-bSB3cn56Fjk1llxiunH-0OHvzYaXDJRaXR7tZu-GNmXOC6QHlpu-DOR8KBqWsiPSeBJh411x5s0P6toOIy_XGDUaBFrkbqffjD62yB7UpAWE-qCbuvxDKdhIT52ZQIF_s7wbeFR_mAYnYPz0_JIXZ-HkHy1QWx_ybTvEXjfA_x5pHxFf9nQ89UhB3lXxsxLgDKJmN7btaAn8JVJM8boBd_qqiKG-m7leIsafC7BSVqPs3exVZGJ0F10tYPWN0ryEyyks1hrPDH7RZMrZGPPPq0shnnB1XB5E3e-yU3yL9jFqq8cTU5aUVPFEK3IVi3jg4N7zLIJg3_NVdwDcU5hJ3ZpAp4-7KDgVdjr0sYbd25HJDaeQjLqu_SUs4onyVrUD6MqPoY12qKCCSlUKxAz0WPBpjKWcXrBW65R6xoaSL5Rz_4hgUqEvf473-GEuZCRX1CEBfQu0D14pofQZF8jBhKKsE8CXH1hlQu17B-ZURmO1cxqVewkzrewYWVhNQo0J8g3-jRtZxIAhfb-gaziGsAwHrtgEbTti3kxT1RcVhhQlU2gcTxF8_SuJeN9zuEC9FsBSlZLoNt7ck_fhuVtEn2YgahISGuXYsDqY1aPuX5z2MDro7sg-Kx60hQNCIiy98za3OPmzBiBOJzoqTbMGdS9OlFm-lyCcKKI17bRWZmhowp37i3_0uisQj_0STBls3rgrJ6Mg2J2AIkMK3J1OYDVXpXlpzPelPTe52GRd2ZRZOrmtIOaQAqX6j5ew7CtqiPB0AYSfYfbbnby8jlWrz8fbwzxzSPNbc04U7Gf3WaKlxZjx878JC21bAaUoDkBC_fHjjSH1F6tBE6zTRERv3VUmtkh1Ve3GhRrfZWFvkmq7jY_oN6pje3WYAUDfgXPb1H61kkSaQaTAUbBjTIvxzWjnu1Dx1MImDnoRzIuFf51tQmjvlenZHknTAY97yt7RZSq3_1KMg4O9NIeDOk71yKVCYj3JSwp9qpXyIagJyXV05SEYwc39OUPUiJnj-JNzCPVq8luLisdLrrsBJDJj0HsnNAAyqEEqKWcJxLzj0JJUTr9pEjUEboViwFBwOZGiYObImjM3KhUDIW9N5aTDbaYKTHIHZZBF0qfPPgrlxdUGjufY189nEFT7vDFiPpDMFl03RhqLxTVcAtRmXJ1BwkuisdCEwz-fIXYVOPgQGPXw2cQUXUL1Kr5ED6vnl8QlHsKhkQX06_M6AK8GrKfZdG7nbljRvfOTQDMMwTd_DdHQyP9sDYmE-QqjnCi0s-EVMVWp7FDmOEmv2qrbC37_BG_BzUReq1RFrFZ3qgmD53qHJG7GBDoaPP3txyjY7VSelk4lPFOFOugNxLZZnCZdLAol0YmcerEAfl4xAsM4bQSrcpogPVGn3GlKdWj3-PWli8EdGGxqnFE-TvqvPvXIBCVf2DHbQhCQeV3WSRNvAjBQzX5llz5B1iiicbFSacRvHEHP9IY4nj_d58EoOfgtyMZwWn3Q8G3pzZjy18uuLms6m9IF1JGhufDkJ0sQfmf2fpoymZrXkyes-a_2sccfbCQ9L5K2UrFBE7bTLJMiOsUYtJJAlTLHF3ZHHr9EOmGNy7ZkD0dM-bmLPgdsTyY_-5WggeWgeosVoDnuQITHTGXaZsxkxPDZ-0-LWmGRXYRyWsIlDMMDalphD0UhY6Jc5q1BeGgcr8uJB8xZyLXKida_z4NlCtkNl_C3EcwULAcHglhVyVbQHySUyUfatFPdEmXDY5ajH6zi6tSnhMp6CFW8nucXaYbO44jZzLsS28o6ysvAqHnnD9IQXWJGHWk2GDALcapmHsWYgiJlXKnqV5Zm-le4gSFDE7p4P2gPVXeNVEWvxqUTYL0sqoJBXumjTEST56oThteyZDv20Li2mvAx7Ueu_cj58PCKtbOrX9X8HLCaX1-JinrQW1Ssl1HSmSqtK0efYcQ6G0K1fD3r7ONO07KhFy7aKpR5Cu6ujd6iTxkG1v5gw0ntm-TMh_1bnQ-NUX7iopQDxK3lSrjmKvTW0OesgXnXjow5LXE1qe927OUAimlnxD08wcm0DzD3oUvGBasd7cGKHlV5nafed_Vjooysk1moQ7E_mNVkcVfqMH7aDZf1KHMvhpMoR596CqBatbP4l0-ju5Ik3UHVK-yDZfPxOl6pYufxDYHtkYGYJqm-ok6oYZMfaX5hqGbE_erlmO82CuAXjsSIMGd14AX4U5PYzhjbbNr73y74U1tc1f4BlQku5P5XQUCvrB2GVIJd1Rc8WbgklSowiC-CSAiFMUUqGPnKcbmHw8IOvLGglRIaUTrLWI3RWJXD255VaQUdcSRrOS-_CHGNOxkc3Q20yMYOld2LAsQ6m_bEVnFox2wy369gtXlshk6hBHjn8OEiJSagU1fbJ7yQ42pY47X1olL0O33azMMdMaqoRScVWsibGINN5xRB5NVnymPrysqCO6HA4EP88yXnX1qu8iqoEaFOGOdQy17_BidBDt4E-UwfYEYdEWGGEujNxwGbiTZp55pSWHLf--fjEb798Un5wW9Ep4qKOHRxVl2D82GCabkS0Gk-6y-gdeQrsnlhhH-QryyXmsL6-CkBn1lYRgOKr-WC1RYF8fkSMJyIU0yI-fgbLz4CuxhuvFUoIlT8gh4kTrvp4cXaZ-YbKZrqa1SuMfOSaT5NmmYbMQl0TRMF9sWUSUlxi-3wdfRBmkn9otGbi4xsrvoi66MmpH-dHjEfLxv7-M3vsXATXKqfIC4gjLcA3OnS9toqjUuAQmobm6PFw0S9P0HOxt6e_f8ku0_H9TX1FZ_SuZB_nbgYYjv4zFHDh_WRPVbq2Qw8hqwpKJlVRNpRmgIlKSXX2TNIovBesbm3E0Bt3AxsLh1RK_iUGe8NMHMdJvHn_GS3EkkNumRxksb1JGwW5OOBIOpqNP83f0nmDs7L7QkkQkacHiQrdZSZqAvVYZxuhtAGcB-gi0kly2k5lQhNrwmpd1QvwH8BNj-hyqYxGvphD3dmaiB_vASzdmBD8LHxWSg6Xku_CBUHpacGYIrCxlwSkmr1mJUzfeZOfeZHc5uv9a4zsl2j3w42LsbwTpgR480GEs3blVqA8bBtzFobDWqkas_69hLH68d__iCRqVAzlL2RhOA_bRih8iHnUBkEzRRTVdBihS_m71_eLfOuFb0x54s8lm0OQ9bpt4q8gd-8-KNKKYY12cmtNZN9_MVbQrpCHTR239xTGPLZ6gp_l1xcey-dURu7oNQoB4kJ7lXODIivwXVmBFbT9G88TFWERMvY08LK9XAH0pIqiEYz22Z6cZj1e5LMUxuTC0iVBMz3BqNAZfThMAHGF9ZAFf9dpYnP-LJ8W2gNJr0HCsS8gtuqDsnghYvv4l4wHI7GOQv_jVXxO-WGA_kuPKRyirg7jhHy4x9Er6pOPZP2eon8Auky-MRbXAZaz9tLxOWevEhs_oV7dqetqwSpJej2B4_uC9BVUY1BKBjQHdAndnvYmp6vG-7thoRHa5tvx6eU0wP6emLackZf9rbH9pM5kw2Jig-XWbBgVuHC3WDvT4Htg5pIwhzUyyw6FA9TkR4blS7wG4CGn8aZspG5GGg5lpjPaxj8yLRLxr7im-8IFgKoiWnw4iQVisc3AtQD6eIlTSreGL8HWzkDKsVbFyoPUNNvgkCzgd6VA6Ge0ukFoXDNVKpGaoCick8vcyETNdzzLtvykJg8Dn2tLASl_iopdqJmqNjH-fbiS3Ai9zfErFCg4_S1u-enTsKeEpB_UJ-hr94JxrgGw3i8PWK7iELGKGAoad6oY9SqOwG9wrqYsJ1TH9VxwLKxX8tEMAjxuPWrJz8dJAUZp0Zq65LpFbEXq6kzql7d0UWRZ6WG1-nbMeYSA6ywtmzQikeWP0YLfm2osKhphrWLBMC3k2GhYsXAQNzBec3KEXxPgfGaLk9S-LVf7kKXAXBGXLcCf5ASOa_7dbG0U6ybuT45b1YlFzAtNmOzw02wPOoTQiB81RfHJyYNBoKxokb-TebFjJxYf6hfOCY2ylVKsSOLrG6dHbtL6ySmxPq7aSM5T6HJeXOK9Za74OqwlbICMBXu5PWshtxRd8ja2ZOXfPwXcVc6c0CavOFwKoSC1fL8fDbvF_Z9kvm5hmZKX0o7_DrCTtLs0_fbXBEnLdvN2OD9TJj3ihbroHAbRGH3QfX9JEUKWN2-Op_h-QzQBdsDCO7zRujI9tJMZ-q3rbYGGPWKMzFffAyVryZKPftju7nC7Fn_Y-lysw8LG1768LYQwjlpmR5koaR-GKDXRskVuHZ6XFOYsNjpSF7tkex99iCFdQ3kGeTkzqCS4OJg1xumFYnXlQeSTAb_LYaw3bA_WPBUKotEiXFd08xY2MUXPaZIGW6Yx7Oa_9kAEQhJy7SUvoWUsWKSKtqThKRy0_Tvaji0OJ7LE8kVaifYDgrxZAI3Kxgkkwsr7fW_uz8zdOO9On0APa8ygOsgmf0DczHW4kX8xd4VQD5SvDakI7-M3HnI0VdlY6rZWgEq-3pduVYPeOovxwCEO5mq5M6k8Z-PIBTaFHrue6EE-B1pHt76HR75Z8xjbTd3pQ7U79WB3Ck_OsIFR4hD6XMBfAtSDehIdYa7Wbw7mQPNURG8JafqcLJZEBLAkVrNtu8dbc59pxAlzxpj55wZYLovgdZHTH1fa2ZPaSOFLVZJHxOzptOKK0NCOKvZfYqqKfAN5scJHjK9D3ixjnhWnb0v-J4kCo80ynsD1HwHFrq5rW_jAobr_vmO8VLDfuJlVoM8TWHxPKDYkiqTsGgZg9ndAgz0HZaDpOcZNn4V8HBZjpZZrMmJiOSIGlm3v_IaB5ftIvGf2Ycx0hITcADisin3hj3XFBPKQTq5nMKnVL4yl4bkfBBhxhC4XB7oetL7rfij3zgoCOovd0rBRPdZpP-Pmw6wUdi-HwFtsysJEynrhNWSXNtxT2PcLNqVcqT-4_EApJu8DULLcPnKWUdvI8-A_liOLyotRuUVKp4MF9Ry3ZpAUvyYfHSp0f3fXLGxD_UkG0u_DQrx8ZDWweBz3POEOT76lmB3zycvW13k-XJasJmd_mH0TG9IjfXmQol8IUpLflxudgGJzNDYbMEveJ9eXndHvY48BhIWncqsKhWN5v0Roy-2PqyAOCnBmdp9xlDyC59OV2EHx7EWSqCxlChAJ6fVIXoA86CKj1vkKbKthRDpkmNqnvIxyI_bf-rAsHhyNPeUHr8qFQNJufSyZrvpLMahwWYGrTZJtUOlNsEyZaArIXOagoFy4dOmAiHwliS7eEOu0dk082TVe4t6ayzzvdkTR4RPe-4G30pJBu5BfhCJR5mwM06IHz0VZDu-kCLr3LY7nLVZqkPV7k8xV4dk8vgspjgqCEZ6CfzDvdArSIe6eRD0GN_UGK5h19sYT7qcxuOuAB3CuoaFC9Ycb_H4jfoM8qvIgGBTTpwUkkHjyx8_b07Zb8Algg88vZSyL2qnGlYq18yUzfY9idVe0205sLvhoxI-gUhZhaFz6cpXd3puy5N0B-9CERz4I3tz6FGH7qF_6BppcwE0QP5s5AdH37PIeIfIToy_6San1C1tiwNZvBNFpROM1YmS6mSfvJbYUlt6L-wK9UsPDqQbx8cJwkrxVgSQdSrPWvTPXq-tPCCYkA0I0ZaT3Ig-_o8ouV7jLbPzPMrFd9ic6LJ9MPNg5qWlvCwt-veBZ-yIFs6jGvcBIZlVPDXdFhnsgLDgjmBioApSWWA5pukvHTAbRScUaOZRHv18MOwRdK1ucaujkk8fvdpDaOYDO48kfquKfC4TspWD4Ei_pptTFrVtQBSQiQWsbg0KKDGuzvXeNckTI6QwOAiiEwqr4z_joWav7SvbPLt5UjwYQeOW5FesgbhkcrBw-vr59P6i6TGlj7yEVRSSj8SuymdS06lP0r7TDbTYcGoQeqNFL-eNjtixA4hHvUrVVX2yIa-n5paZ3oz9ciXSlLD9YiyNaIPmKazlMebHKvAD-dUms8Eia5WtN5_1RJMO_POxNCJXvxUzhhkvU2zZxtDXpDCmexSHzhndB7SH7R7Yru1EimOtzgOaCVckbC_pnQ8xILr_FebtsogmcD2L8HI46uXbSB1l4JkMUK3QT66Pls9G8DShSsEmVH5mIAMPCkVfBNhWkChmk36X-2MNjv1dbu_LfhmElEYTIoDofMU6dr5iIjzD_cBcp5IiCYo-8ULNATI2pbQsQeRx4X6VDV8rWgHyAxfw5aDo3xAkU3OEA8nx7NIWrkV0YJhV5sxjmqf0D8RvaN8Xq8nhqeohlOO65_eVS6t2jceCfKPNw7Z0ryGo4FPsP8ov7D1TcqaZc1AunuOuWJrzqt2PGL47uUQtULNTqijmqw3lR4xWmoY7l_ea6fqDi6iLPFP3NDzCiC6r_h1AMYzPeON08MCMQeUCQSgY5tGZ2C53t5RBcVneFZXr35bbQjq1cUWM87er3OzRrT41FxwkURkT1E8dQjgI8NR5JcSGsAZE2BLgenKDB-f0p7BsLRjCi2O52TiLPW9hrbtZd3aSy-DU0AHF5QVIx3csuBoQ4jH9uyIpJ4EES_nxzSsCJWFFTEXWMt-jqZg2acWv-oMHv-7DHtCtVejkzgogoV1IYyttwa6Be0W4IsuaFbYw2AomG-RdmtmNZZq-5OYhC4yF5HJjHxLQ7BCFdlDMLzRD2Yyn0dg8xM256MEc45ZzF7JsynozMunNo5acG1B5X4mUiiDCMM0KPjA6H63bshxB3_m1g_cH8mHZtmuoWaMraZNnD0Rd9MeFBw-lIrgZzgU-lXvmmiArRdelM0PQlwSId64H9euuHylmztEOpR8wAEhaS1rjokH4-4fSZSPIp34UAKad-wCUBGeinX-d3jSWtvb9-mgfu0bh1iMm6mqn5JxRQQzltdfKhIPuxI3Xs0Wg2Ym5x0MJ80c8yIdW9T5ONlbnxDXxWxABcqCUb4aqqyxvye_2_b3Gw1-Uok7IFgZJh3u8IBts32yQTUuW4FwVguoKdhgzItbGM59bsnE0dJlE0i3odc33fj7TMgSfwCXDG5lQ6LAxifw6h0ZpXs8a_CehgnVjIXcnClPX2UegXiHsffy7n8oKpjm3V3XtMn8m6oFz76ngUWZzeiWXwIVpVHv4P0MG5tuNWb9A2krYu66pXV7A5XWVIarBbK4o_ZCCOxGkR-VJouk23UF63KE16m5STrRbfvWHM9_EEMy4c6Khe_vZXEakFc6g5i33xbOTWPbQqQ1OCWlZqxhy7Do3JT3AFss000GSQxEHFp8I8j4MUurrYo0m_o_RgymTYHR5Fop_QDYU1Tq4vFTIlz9wZZmnRA4ojQ47DSJlYnr5SDgqp3RDk6spgT_gP_6D_wiTz6nGitEv35Yuk-xRAQsiL_Dppv__uJkUwJzYKz5pZimoBNXri_zBntVQhxCjnwmRrLkNNSd-o2oq9yFQqzg7Ur1zeOr5bIDcB5ZwHLgOotlJagR2oUaldfx8hcUcXkiLRh1YuJozY5QdpxupdY1NJDheeKWAWg3qPtUgMW6iuqpuR6ySk_yJ3YziPL3Ct8IshX5xyLu7G8Mf8tLwRyZ48euiwInBJ6ns_0XdZ0QYFqN6HuFqki6QMnGQVa4RCvy1Kih0VWr6N33nijkbyKd17hD8eCIQiDUhui0D0Hxno2mMawpdWYCiHhGRWH_34krr0AglbdJVnpVGaKGzFURYWyOXG4Bl3-JQjNAlusmp9Sz1FOVfOc3Gd0bajnSsJVwGWo7rrdpO-AbwPk57nbrOx7Eq2xCc9zmVrBfmKDna0ncr7FgVfKy-1nw-ADIsxFSxQp8e5lRtBQi7bfHZs6FXjKXaXUCL_c_l0iDI8RaLBKnAnAF012HwK4A9ErgX93Qv4mqYGbNnCuxmd1CHpJRD1RDuh0YDY9JjClBIt_CY9Jciii8qaiGuyV0jWM7tjVcpUlPlvU9Xqt6DtFKvv0PdslkWY6xcybsIcadi_J4b-Dix3LlDs_0Z5w26P3PHdiPrLRvs1uVqzitbZVV9c-DcDTgQOhs9YxVhBj5M2gfiPkWdcdxcQ1drNyYHLn5Jo1D8MH_s94w01rYmzFR1qgEjyi7wXklI1JDYtobxcElcwOVEzl39Ur7AdSeB7yXvVt5BxfFAKdaPD1Cg1Oy7t-faT8y-IhWiUAwAxAE_GiuZcnqCIOM6igZyN9LYyaEf8a7Y-CNkjkZ4VLm53HAZOqAMNuEUGGYQXyMIDxjzw296Tnor18NZojq9hVSDy5LmrpaxOXgA1tQh9CtrAYAxBIF5lGRcnjz3GCml5_PI-YqWF90xlz5OPJwnEPp601kfnAhWm_mnpRXW1-UBFdALipv70FYsaMJN88UzOWBjC_gAQUnGgUTQu1oBjIzjwcBgXIG3b3o2cLGahSVVgPHc0ipOemy_HbPtjKoR8caU_vXAID1NqXZhaxSJZEbew2iZO0zdhwCNAwE38aMQrr-iD5QldZxuuHoWfyz80FsEzz1Laxv1bpbQQnJueQjR_3o74gJUa-zszGMGkR_DxqW1A9ZrIKhYQinsFdkN77KfZlD1GL43-sjXTiwInANXJc1I7_EJ6hemFz9p_ZcZGagYHsRV9EgEDob10H9ckBD-iResdh-mmE1goZUVGzv45iTSLPicjlQETzgBxJC1yNy8MxB7lJLyyxiv7DyHKxnzKNy57myhSPC-RBCpzGxb-47CydwOKGanY8PV1yrpJSkIgHykoZWvjl-61yrGt7-QwVjKU_r226hqysLWgSdgu5dCPjuSh9mbzaaoVbVCpDgQVUpG9NXz5LMpQ8zNTfkO8xJUJ8QJEy28QT7SRJPmDubKF62O-MVeT6GUL6KsoywUuy347cZxWvCdPps6ToP1yD_kdGudVuKVVYQGIlmtRqzXMphazEmodbfFy6eaol-yHYr9our9bsLbrGI5eN5p9Gyx24ykTZHTQ4n66h2fWohCtJkMzTFswiw9cPmcWhvf5KeV8pcuzMX_MhGcBc9k8Gdo9NXVSemIF8M7v9VXpMuhh30VUWDbfkBwITKYO8f86DqBdCSGm8MkPrPmTxNbtNopneM7bLOJX-q_gxKKJEKdjHiXXBoXJDZLlwvEpaf16RtverOSvTe6m_qWzEZDV1ZlMPoU6GIC4hAG3DmVIFTHbbd8gIq0KJBIZGmrNx0Xij0n8XsQ0vE9_-B3v8rFM-0ecRe6a9ofVOgnMfwzXPh7TRqZmi51AVvEvAODb3wsEE2_TFLQpUOFqyZEFae-AghYN0t2EGspeU8Fa0ZQdmGV28fl5Sp6PEnfKdPGIwReVIXG76kFZdPLid148VbNPGS-12dXxL7q4DsHWaCrIGUqLxCSPJBphtyPQuHILdmLSDJTfux9R8wjfbVB9seQPyxQf1tDFrIH80EEMzz0amee425QnJ-q7OQI-A1giCjmsD5xGXYqESpT3JO4S8wOllFI5l6EUfxK4b3YEqmSmZJCnlDLlK8N3B4GUENWOMV5c5mq9_6YSkVwlns-oCtHM_KRSKDFLvwMPM2evqXfyYfVh12AN51Oy1fjVR2nRDhjZv6j6Lk-jgbreVqvGfz5c8JJpBE8oLAzRIk0hVehpkUrG2Cm49Exw62fDUnUKT5jemDuSKYOxLQLpS-MnqNNwoq0UpqRydrTRDUbmnqeDIQzjayxUvomrHuz9sfBp3rP2UMQm35dDKOwkkdDkryv_c23jPu7AeRQzm5ZtvNBzY0rzS6WeEBKQJ5sM-RZDaflCn0gM9pvLf9_IcDbKdupfaBr4-iTUhgvip2zdxkVntEOTvClqZmx_kKlfZdlYAtUhKMpoLWHFbZa5HnNtTID4m8sQnMjnyvlwi4I7bKNPbxW5W1vzN_zMmGT1yvSCVumkUW-K-DeytbVbOvh2pNe4xn9l4LvGKRu_MbObrgAY39tqZ7bEUik7f9pu-Y8KHUmqP9kfX-nPWh9pAB1V904KD9YbWOtVlmvfm0N61vtEovq-13cumIHepvKhe2wxNEww85jK8yDAqTSrIcVgK_fbzovk8vQJVpVDIALj4MRbbpxVXDnZrL_DOR4nI1zxKe5MC7nBSRgdtblu2VImdd8bjzIeXVEE9R5thnWjBvlWx6wEf6AEzq-zjx4bUhDXirLPX8xZMrcVCZY2oiaKikBYjzf1jhQr4xlLqt05Qm95r2bp0AMo75a4x5PhCcAcxE1ma_WEMMN-iY3DqoKE0LcP_r_qGR0-YVzDfsXo1RUW3TZPusiaIHP0_6CcK6W8smiyqHbjsyAz9c1ADtlohmHL_TvoL4J82Zc6nV4aEmO_OLwrWpE3VZ8yI594-drBAT1ncElCUOYT_MLxXqpSYnYKF77dwdvIzp4DiYumok1wY5al_shpyCqIhoj8NtIBsOBPS6-DDQ2gTao_ZZlr2VNvAHKP-xzQ13pRriSrjd5GEuYjmbJuyWUp2H12y2HHeFjgw0QvVRx3lDw3ogLEIaQUWEAfWqSR2PrzWa7nlrCTlQjnxpOvtxswXuSuojI81GHvCAZLqmckG4rbZfERJel4BpFE47PUoHPqbTeVSPmNt-OyPdQVnJeDQK9MYuf4oK3zBXDVhEnsFuXNGWlp2yNuJwwrhOOCHdiJSs5UGR5ZRXbdlTFErVe-CKa5_Z7Jeq4UlWSWiCirHTbLSHCBtxH4msEOlEsTleSd2BG16EaUqWL8cGTbVc2Ip_-gCdXRgwNowz6lvW4qORNuUVGleXXsxssAoe_lgWqJAzoBYBUn6vQf9B-LoxdornPFtFUA_TrcouRX7bqOyqIrbze-KcpEkhC-AhVbGNecxCejQiyRBWmAWasrluWNzZN6ASxX-H9gh8Bxlj3W7MWtOG5FROUjmh5h6Ue7KN8rmTQ9Mg7c9ETtx725LymhWrIzXSr5UUKbrG4hTFfi3-HnazwthBh8fs29PguNyMRtp1IS5FFR5ZPL-O0qfFGXHYSVRJyg9KNExNK1QdpNU3thEK1eV6IU2WzIiCpHLKqXGQqTUPIJ99Yrq54lTwW9ywCpqMDl0NlIqh7j_01NH1nWWjMFaxzIPxoGfnZ77aMBoIKzIB_3z8uvKhsY25oNST77eoac__ixlbPs0E39EPal0XGUzrn-WXpWhdVKAWGeS0kYKcZloMijqTZGPgyiH2z1Ji_FLuVcZO871lg8VowFhwM8YjfQdEy2P2aU8kQQa4v87VbQVUq0YI9iqE4jIt3XsXsT9C9Kfj82W2VO7XoxMTAwozObG1arE1dEjokCeGXchwIhAZKNbC8KqooBeFewBKBleh6MJCSvrwxdCCcWqxNn8J441P4-ihU_KbIiHtKqe9HrwVNrRZyCHjC-oYxkW8rhZR8efWrNhpC3Fpv2vA96uRNGh_4o94PJy6XXclI1lQ6MuJoIsCYyPc70wsHq5DEEGF51h7qvgWiETxnaIAdM4SNCF_vz5mkBE6k2P5Joh6PAx0nGYI9anVVIrtJU1939c8N4L-_4DV1XrOtaDjEr9Hu5VzHQm631sOqlaVimlX4AG72h5MJGoBCtguTpsfEeOpxjr8IlZXYe3QIFcTjKfJTT0Atx82rVp7LqkzB1P_gIfpsJQdrel4T44JucAn3hllayMxVdDyPCVUFcT7EajPLJxvxgbkXscU9_AuOkh9SilEJ7izfWyK5RMZPH8wxfyqFKsbL_1eU1W89_8AEzDwor1fQIn12GeKR9xfON2utcCvQaNSDXJtJiiUF4oZiqUWYKVqbyu9FtbeBrlp56MRJjPd0YUbpUJE3ddDfjToTZbbm3SuwnrHXIWy2i4K8hsLfwCXqi2kq1hXOhGqln9NRNBR7AJ_xr2nHddzT5MKS_6BdP2sxxOhprb3deYkedYTdFB4ORzWFwmqXy47iZceMHqwXrRjWOlW28Uxa862Y2u_4cXVL-ZWco0MDmKoj6NkOURBSOF6lgBBZf72RFVAyq9Q78ABjAsbKAglkkhu2m6SP_cGU0PmWAgiREOnQHHJHtkCIG1GKOzS2XqH4rUklx77QV3xVjbbptpsFYm-kGbgFz_12buMQ0teZdo8WTeghoJmF6ASg7Al56S47veqTmgifFsS2HHDTtBlQmd-vhqfxw667z0iVU0hIri-UJy0Nv_kxpgzxKHMCcMzdFT0weA40_fe5TsYY-NWOdP8axacLACCYV4dFle6HpNoicJTjZ3NuH5ZFxsyf8OA1eO05KAw5O30WBnMuVpViyRvWqnbnlQaCKh2cRJ1dpqgOGKBbd28ISNdlIp5asfAxXtHWMfs9XTnOt5kGOIv-FDhI57JoAqpp8Y5SWWBzS_dhHjmgJaWfHEXtyGpKGiHu07jtGB4inHhOSfIMrAw4RlODUe3fb5ZjvyEh5w1TP5NKtrK_6sp14GdECrXSQbUPY2aWefJigvBVdodzcLDhro6Lf0qcyFNj3oE63-mLvAlB5ombvCOSqr4Lh8pTcMiN4DP_NpX7MGAZOocRnlK1Tva_Nbx4ByXUhLs4hlDDPIKhM0eVHg04Clc9dTxXa33EOsgVUPXh7IiLiIluc52ivMz2N2JuwWuGbsr57rKrG1jVfD1OtgjbpMWUuNxSUc8Pyp-cIxvWbKGZuB23xqJAE2jc-nZ5GOGDg8UMx83x3nlrH1TX5M1pSERkeYDjKJbdU_HwQkYwOLLw86WJFuYy1mTzjcl4-dbO9Z_rry40hS2JSpK5zCMMwhjcY_YvOlHr1nsSdyKHpia3F2KCXQKWfnExgT2c5hnBUr9fOoKyDn_3yewhcIrNMEOPucTE5AqSxrvKGC7x4J3WR7dBDLkBG1W4yTtzbR4dVoiOg_nTOgsbNC1FFevyZcH8K6AAegZ3QvKto5lzC8--0bm7OJlM8ceANGmRVk5ucYx-V86BqSep25Nz4EA";if(!e)return null;if(Ut&&Ut.sealed===e)return Ut;let t=null;try{t=Rr.parse(JSON.parse(Sn(e,cm)))}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=>um.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 ue(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
|
|
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(`
|
|
78
78
|
`)?`
|
|
79
79
|
`:"";return gn((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,
|
|
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(`
|
|
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:
|
|
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(`
|
|
84
84
|
`),e).join(`
|
|
85
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(`
|
|
86
86
|
`)).join(`
|
|
87
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(`
|
|
88
88
|
`)?`${me}
|
|
89
|
-
`:me,Os=Buffer.byteLength(Vn,"utf8"),
|
|
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
|
|
91
|
-
`).filter(
|
|
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(`
|
|
92
92
|
`)}
|
|
93
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
|
|
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
|
|
96
|
-
`)}function fa(e){let t=Hg(),n=Bg(_e(Re(e),"tkr-shim.js")),r=Kg(t);if(r&&r.format===
|
|
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
|
|
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
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(
|
|
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
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}
|
|
101
101
|
|
|
102
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,c=>Dn(c,t.mark),o,t.matcher!==void 0),l=Object.entries(i).filter(([c,u])=>JSON.stringify(o[c])!==JSON.stringify(u));if(!l.length&&!a)return"present";for(let[c,u]of l)o[c]=u;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 cy={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};function uy(){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:()=>[uy()]},cy)];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:[]}],VT=[...my.map(e=>e.host),"shell"];var KT={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 us,writeFileSync as fs,mkdirSync as ds,readFileSync as cl,appendFileSync as Cy,rmSync as Oy,statSync as ul}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()}),QT=k.discriminatedUnion("op",[gy,hy,yy,ky]),eA=k.object({id:k.string(),ok:k.literal(!0),data:k.unknown()}),tA=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
|
-
`,
|
|
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
|
|
106
|
-
`).filter(a=>a.trim()!==""),s=[],o=0;for(let a=r.length-1;a>=0;a-=1){let l=r[a],
|
|
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(`
|
|
107
107
|
`)}
|
|
108
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
|
|
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
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:
|
|
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
|
|
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]!==`
|
|
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=[],c={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},u={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()==="*")u[d]=!0;else{l.push(tt(F[1].replace(/:\*$/," *")));let me=t_(F[1]);me&&c[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=u.managed||(u.loaded||u.loadedLocal)&&!f,m=[...c.managed,...f?[]:c.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]??"*",c=l.indexOf(":");r.push(tt(c===-1?`${l} *`:`${l.slice(0,c)} ${l.slice(c+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 c=/^\s*([A-Za-z_]+)\s*=\s*(.*)$/.exec(l);if(!c)continue;let u=jb(c[2]);if(u===null)return!1;r[c[1]]=u}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 c;try{c=new RegExp(l)}catch{return!1}t.push(u=>c.test(JSON.stringify({command:u}))||Zn(c,u))}}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(c=>Zn(l,c))}}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 c_=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function u_(e,t,n){return n.host!=="claude-code"||e==="unreadable"||Xl(e,n)||!Yl.has(n.permissionMode??"")||!c_.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=u_(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 ec(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 tc(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 nc(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 rc(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 sc(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 oc(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 tc(t,Rt(e),r);case"gemini-cli":return nc(t,Rt(e),r);case"vibe":return rc(t,(s,o)=>Et(s,"vibe",o,Rt(e),r));case"antigravity":return sc(t,(s,o)=>Et(s,"antigravity",o,Rt(e),r));default:return oc(e,t,Rt(e),r)}}function vt(e,t,n={}){let r=ec(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)),c=a&&l.size>0?new Set([...a].filter(b=>!l.has(b))):a,u,f=null;try{u=await Or(t,n,c,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}),s&&r&&(f=await Or(t,r,c,{verbosity:o.outputVerbosity,yolo:s,exitCode:e.exit_code}))}finally{ml()}let d=u.filteredBytes<u.rawBytes||f!=null&&f.filteredBytes<f.rawBytes,p=f?.output??r,h=p?u.output?`${u.output}
|
|
115
|
-
${p}`:p:
|
|
116
|
-
`),t}}async function
|
|
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}
|
|
117
117
|
`),process.stdout.write(JSON.stringify({action:"continue"})),process.exit(0)});
|
|
118
118
|
/*! Bundled license information:
|
|
119
119
|
|