From 66e38dc62237fb04680390f3ce1689af0118111e Mon Sep 17 00:00:00 2001
From: oxo <31625368+okisooo@users.noreply.github.com>
Date: Mon, 26 Oct 2026 01:35:24 +0900
Subject: [PATCH 1/2] fix: keep the dashboard inside the tray popup
---
.github/ISSUE_TEMPLATE/bug_report.yml | 2 +-
CHANGELOG.md | 11 +++
CONTRIBUTING.md | 6 +-
README.md | 28 +++---
docs/dashboard-dark.png | Bin 91459 -> 417682 bytes
docs/dashboard.png | Bin 92614 -> 413614 bytes
docs/providers.md | 2 +-
docs/screenshot-dark.png | Bin 283855 -> 283872 bytes
docs/screenshot.png | Bin 280022 -> 280031 bytes
native/FleetPanel/DashboardView.cs | 119 ++++++++++-------------
native/FleetPanel/DashboardWindow.cs | 131 --------------------------
native/FleetPanel/FleetPanel.csproj | 1 -
native/FleetPanel/PanelView.cs | 52 ++++++++--
native/FleetPanel/PanelWindow.cs | 50 +++-------
native/FleetPanel/Program.cs | 16 +---
scripts/check-dashboard.py | 75 +++++++++------
16 files changed, 186 insertions(+), 307 deletions(-)
delete mode 100644 native/FleetPanel/DashboardWindow.cs
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index c6e9b86..9209a06 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -11,7 +11,7 @@ body:
id: version
attributes:
label: Fleet version
- placeholder: 0.4.0 installer, portable ZIP, or a source checkout commit
+ placeholder: 0.4.1 installer, portable ZIP, or a source checkout commit
validations:
required: true
- type: input
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d1db8d2..48da758 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,16 @@
# changelog
+## 0.4.1 - 2026-10-26
+
+- changed **Dashboard** to switch pages inside the existing tray popup. removed
+ the separate desktop window and its taskbar entry.
+- kept Back, Refresh and Settings visible while the dashboard scrolls. page
+ navigation resets scroll; fresh data preserves the current dashboard position.
+- fitted the summary, charts and token tables to the popup's existing width,
+ using the same acrylic, typography and controls as the main usage page.
+- kept expanded local history, full reported limits, coverage notes and privacy
+ behavior from 0.4.0. stale launch requests no longer reopen the popup later.
+
## 0.4.0 - 2026-10-26
- added a **Dashboard** button to the native flyout and tray menu. it opens one
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c2e9d99..a731084 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -53,19 +53,19 @@ Rules for a new built-in:
## building a release locally
```powershell
-.\scripts\build-release.ps1 -Version 0.4.0
+.\scripts\build-release.ps1 -Version 0.4.1
```
This requires a .NET SDK as well as Python. It creates an isolated build
environment under the scratch directory, builds `dist\Fleet\Fleet.exe` and
-`FleetPanel.exe`, and writes `dist\Fleet-0.4.0-portable.zip`. The whole `Fleet`
+`FleetPanel.exe`, and writes `dist\Fleet-0.4.1-portable.zip`. The whole `Fleet`
directory is required. Use `-ScratchRoot` and `-OutputRoot` to choose physical
storage; `-BuildVenv` can select an existing build environment.
Building the installer additionally needs Inno Setup 6:
```powershell
-$env:FLEET_VERSION = "0.4.0"
+$env:FLEET_VERSION = "0.4.1"
$env:FLEET_APP_ICON = "
- ai usage and quota tracker for Windows 11 · v0.4.0 · MIT
- Windows installer · portable ZIP · setup · provider guide
+ ai usage and quota tracker for Windows 11 · v0.4.1 · MIT
+ Windows installer · portable ZIP · setup · provider guide
@@ -20,15 +20,15 @@ older result stays visibly older.
-
v0.4.0 native flyout; sample data. readings depend on your connected accounts.
+
v0.4.1 native flyout; sample data. readings depend on your connected accounts.
+
zmE!$IesniJ=vKy$fw~+5;8YMWFrlJKA?7Gxr2Q{#=;B;Gk=q$DJtA7z1W Xh%pneX}{796fK1LwHZjD@=~_E4>1Tf1n{~} zYWE&9^I}p^@~ zYk2%ub;tX$HTA>LFPj*)y_Z_-qFbI@oo;^$-iZ{(`9C&Y`m8g9@MXzw0B?VVAE#_T zNCgN;eTU3_4#!7}b?UL8x(@5EhFO1YMl`?wb8IJvVtc)2aO+24m)3sR76(3zHoTrM z^YnW^9WL+Hxdc%-R6(#f5VxZ1HUcVm9b$N>>!Z7N-cIy((HXx@#~diXJKwAR|ID2A zT-2 c7SsGUVGHmwf*~c@o5Ao7|@Mk z;b*0Ph--+=XV4`Zqa-QABPuD$$0PuUeIX-ep@wQK!;B{(i?l&i5ZYr)Vku@s`TLGo zzmNU)(%#C;SLd)}c~_7L66SRTOKxvpIJT7ZiD6v~RFoA=xE#ztJel#87xI}1{aY8w zgacsOl)=x3*^$~K@TcJ(Iq5f~R(2z}jUR!c;Tk;%jMdN)y%JJ(qk3KdyizNo{b%y+ z4ak;1nud?`CK)~>_udZmgaQbr5^6<}gL%bR5%LD!FavK6M|WShg%EndGs_sTvX295 zp)q~?Zxqk4iT+dO#$&=qYDR&Ftt$b2Z`XOYudsm+;hHz0nfW26z!#v~ykZdia7bXq zJGx0M(p{hM%YNIJcgs6s=gv2_i`7<&0%*VBR-ONxDooQ9h@SZIw7j>HnHTckiT2)j zqHw#2QyoPyaTg4HI93_XH-0f+h6c;VL)(5#F7Lz#J 1Owr&fG*#zH*AIB*!g#PNPz>VkFCGD5EyzdY~A|a!K2J3fh;O7hkQG5 z40(|dpV{Yk1wm)g(=Wl2eeZ|pN;wUu)^)<9<}A^2w7_$3DKo4UiBJkBrg`GNwG z6MZg z`QI{4lP1}Ei6Ke^0sQ}3k1fFU{~1pdj@@Uj%4b(`X2{p&!?^2q$g=S~_+=lDJqUW{ z5pt8#?7pmQk2?&mJC|>{KO28>s^Xvvx&{e>S5^Dr2m(V7Dgsy|q$@$d8TIztYS8W@ z&P*Rf5FrG^ kN!HN*(Y$K50#;H7#c z-b(lR`+qLDd%xTRJ=%NX=?`)Avz+i_krzhD&78Zw#;J@Vu|LuIUx#H{Xe0Z?V*T3q zMvw@cv**8*uGp1k$cx$R1P|tKzF2}nUiQ;;dobDk=T3cY6a$e6{I4}Gwz@?vV84;M z2IU1TRXrXC-MYAL+*Is^XTD;aJjL!e+JfG1VdWdBIOfJ+fb-(j`j~C0DX(~G5+({Z z4>hS|Ib0 sXH!taWig{U!>CX^`)(`m5-QNU;cN9hasPmT(c3 z)k+QtxfCvK6}amomKeyuj^hJ7G6wQsdiuLn9tppUqgK6%D@=TS>53#zrCh7F!UU$4 zlc0{%Ymf8Fk87%XSP@WpE1z-NY%M3mz;Wu}4{GA3VlXk4SAm~Ary5RH3QApNm$-w; z(XWZE)6>L|M3s}B_W!G0EyM>mOELTscuxAdb=5_Va47)Qick8KHF*7B@ca5}QyQR_TrrBk{w!JRJFH#s z#7){BCGi^kb`>QId95#7zHBo=#{&F^rTaf2KH$?Qj&N=AYeAv+b;8kY@~d}YT40)@ z^e|4MKknAc`Y}&x^tto-!f@79;2lH&y??%j^M52=RaBeZ62;v;xVyVM#VPK^-6>Ec zXmBmX-J!U `q|g>#yu7WUt9xG02_ zffF^YaGo1CWKC$0_=a8#q>rmoYE7*FIaoE5=-paRFWBPqmqA}TF8_-OE!+P1;I+P% zI)<_Tl9Bh}hv;z{-F~I9w+9z1GlqS!>*EtRdp>rb8NN+B=Z1;^ADrEKZpY75?fQ=D zBbjPmh(&rZz|P>`dR|}QIx*E^zO3gDo*LQ*a}u(-5ZcDStaW*TXC79GcA4ig+ HMO<2{4k?tGL4|>O&jM0;cH? zI|RFhCDS_LZM&$XWn?C_Sbh} 7?D%)zN7aoqMQsWd7#i@F0%}ph$c^YsIev@-Pye9^apPKwjamLmT*^ z`AdYrp}nTt1zn7ZMy!H@9>4b6gd$8Xt-fk^i6&=oAVg(4tG5!Qj_;8mapN(BW(**H z(zhX5M@s{wdQ-+E8a+b#LFM(pl@szAY|9EP{3d_N`hSAYM9i<>J|p!Z!&nqw%R>aA z7dN*JP3+yR#>ovv&H@~n=)mUDlQQ`)0RKariwyvc^#*$}EVVg+q_6!yH*+~KM<1vI z AFYB z`UvQP{AZCJmoJK(KdV#%L0|kJAa^uUjbrzXzQU!erMtx!pZo1xJ$3%GjGB$Fz)UF# zHt8BcJj=(+*Znx5zgV`s#LWEV7Q#0-;rkIIBw_g72TGkgGC%j~nW}$yR)t`xMv%JC zIvIW&;^DtMRsrWxcg8r8UGBGAu~#1A+B1JtD?=T=V;ZVu1wllPox#+1l!x WfR4=e!C^A1@b+9&Ct3eujnZkPhCFK4hhPd@>9eX@^WeJ4T2}_eT;9h&nMIv zWNF!m!|#4V$$DJAyV>&0jkXrKlcygal!l1ozhx)BX_az)o5_yb2R}U+QQ9S`|BD~3 zf0l*Vr<|Ut?d9HrAjshySSM>6;5Evl-j4l6vmdwIjU`@m@5Wc@An4&HJTWZF8V1dx zMz!cD=%>$ShHy9>!T3MY4@rl{I{v#3Om>Ni5vBURm#qi3!&FNtE8`e_#^O+bo{mz( zIPxI03dW6x-j %x<+;#5 z9L+psrD=Qw4NY%Boc6)f5sHcWyYjA2k8QKq4Zf4zKf9d1=!9#2V2th;g+jn|+b4(P zC0ODemadQq#`e=dR|sWO5C48kXEBCWzPLMfzO(-&!fn8;2T(RNZ0f7SokdfqtjF`Y zp>virL!#Il9U%?_6Q%||W`^QrlAPQdw@8|R>jJUCe`OH(%XP9;V-FUHohY$)V$#2@ zvSu@ouYV@ X~YG-#t0- z`YG3 V1_(NlBR*t#|NauG_%*7GllkEizJ^?i~Reo!4GIEbCS z_1pUqUWjB6aLMtx?@-4m`0w@U44BotAXbi71K%*e4_ w7>3MSh=Oq6TBe18*nu`Mw{$ KJGwlKqkyqRuE%0Of24W@xxZr|0z?1s(B z?hww^nQKb-r7~BXri PbBY3%+@s24*tVUBO z4*O6V`J}x!JB|{yHbn3P=jV-2m`M=ps O0aN_UfPSS&PiZcR8)%CVqd-R1X zjO^NcDRYKFy%}EA*apSZKeYzr W#|wO^Ap=MOw{^xSO> zc!9%Y2mtRvzWP{h ^Fl; zOs`wdKEi)PGz=g<9s`b1`5$Pk$!nNC`mjl3b>8}sF^WoApJt1ng3 |9tEf}kA(}Uq1+q0+hMGQyRTclSaTgpIXo)w-e#VM~yn4TI`;V>v zvqbUU% 8JI(thS4U2Zf0#X3(}u7;{ww#PEsF vO8?AEe=gPFpFnF z ;-D3Vd*YLfhMB~y|?X2es=fP~xcbb1-$n`doEj|RiZNf6u z503(-^Z3j0-cznn7h mz=iTa*-lF z8Q<@5CAmvn)g*x)yQ4V{{^2IR?XU2n_q$@??6MV<>$5fI_0W)mlDBuuR6PWaAG=e| z{^*x4zXOH~(F6Fw^g-q9xa+X1b#MHv@k&y1P;u)of&8Q1rm*_gGd_~(iuNv#FD-*+ zpqQQnp^)Y_W-!7NLmy|%3fos8f125Ty^3ql0#L0@)i8A+;CiE|4woOF>?*AaQj4y! zD<)v7$_*lkC=WbF{`AmECKI5>uz+ycbXTnbvZDbSRAVYePZ;g+oL(wGZXLIWz_eO= zoisL+Ax+Cbt6XA=(S#XosOSSpb+c4^?mLVD>KJAz>Qh6msaS>Vg*=_|%F(`FiK Mj;(xr-FgLdgJq~Qd)mmtE8*W*=I zFn-t5 K)^~e>J3g8|c^^ zQW&)q@({s5^M=&_3Q_CM>VbFyi{BAQlZ2UdMu1*G-mGpR90?rtZWXgm T#MXHIWiyjr5*(h9 =_eWq-@#VmYpU7k9#+he9a2Q{|*|F z@utoIH`w!iSF#NH40S}QL9j$oF{-UU9YUi+5{hwQY3ussySe1iBaZG_`)K(AExcYj z0`+sRb7Na@g56Ljb-(3J zdpQQe((Wd9#~52CRtwpz>+sE&np)hVH}E>B&@ z-YFgm2vpobHYFv283(A`p=D3QCGE^Ge_oiP1j6#2jbf;?w3L6otGxT!gm{COucRDK zp>&uG3Dpshfqry-S5*xN(XqL94`#6@v12fm8 ;J}Sv(0+x3Yz{!5=ACBsz#yJ_Wvb8_UZ`ii7anxO z>rdR%mbpKDPOn+fo}rPULbpFir7UDF|6<@E0$ny*ft()x+N(;-ZM_7N;bDy9M0plT z#E+=N5qE4dtdVK!T{Tv D9CF}CQ0fWC4TH~Oq$=+FAfb!$(L z>vzt=8DldwO^;I>|0aWDk?D~GW>u*j{JkYAT@ (} zo)aX>SLAIMbCA>HQ`(YI$-PPv#=f4$;6j-P>cNGEdTY)3YCV67Z_!)&K(W%5GdX#m zN|3kSRlX%qFpYr)xi5D`8FC;^4WHvUXl*%bf*{W=kri4zkcr5#2v{Pvf0wpimQ--N z-@*HI^0W&$+?}^R#9t#y$jd2AePnO@X4jJ$hmVL{V)E~&8g0Wg^_0g1>&4a=b~<0R zVT+KPmm?1M(cfmI6sWKic+S+lbQKpxnOTMW1%3_prW`XblX}Pv_4d%t6`{RRAP`!d z?Q|CIs79uxpem_iFM3!o+3~$|!8qZ5=C*H2oaX{aedVP?9sHqVmei7X+9d8a$&{Rt zT-0%3oh+%eP$Y8Xv!W0(VNVK^3k*;_t$Gk({{TSYmTo)e&^r7^Aev9p9?8C?^J(3( zzGRpSEG>aIgnn1ykY&2zUqpbqZ)XX3V+CJ}k$ipY*d}rr`4Uj(gM($fS+QFh8X3xl z=pc!QS+rc6T8mKkY9wb+OwTeohJi&OrO<<)m9B^d60Gjh9? q1}fi$Y+2j$VV8&00OCE2FXCt;5WKv0u5vb?z=6^$y9 zst;6|_@bld3knw>ja}dfkqL$SV H1p{ZHUtcbW?1GtU2!YxE*Im9;s2R&k0|)k!&;i$#ix9BU`&CQ0G&ialCb|e z+iRF2g8*&$MJZBdPYOR%Fa%A`EkOiiqga*pv#f8q0&Rx)F`p=eTkajL`=@P3)ggut zyR+2W> n;ABYRfA5bL9aPAPp>l}0qup3Mg}3jb2z8lrOIZ4*^s zT)3Fi4oa83u)845#O@g0LvaEW36-$$s0JU#u!n)rghAV $>_IYzgH;k zezJd3=g1f bxPeXjrN5kV-rEoKh!FAxv@B~VN`&%+IN}FvlrmyNHQYu$E znXnG!%Hnlc=|`?Hzpq>%)URkr#~6xMsC{AD?76&Gy0Kd@DLj8KKC{k*98K^#wz!d3 zy%;>-U%`A-x-U|m#DIxf-LS$1GZb#AsXJOD*bIYJA8WiA)NcgysYV+$jL1*0OyQ2L z(3H{$*=OdHb3q#tBZ{2qFCxUS4cw8C&xom@y_bnzO}M; zPQR hMDa?t;^8EH zX$6q}P)!gw=6YPZ)8_^JVpj3_QQHF1!j8^iV!pNG>mKv{k@HiD-mBlOi#xI@g?}!5 z(8&y*UXR*xrQ;BNTFt1}ZU&gaO>mN9Q*kZuGk_xK4K;t#l+J}EJ*M 84DT2zSzP zlk$iK-UD Y%p4oo9 1UJMwqz z5qN&Pr~>R3q^XA7&zsm`glFz0ebFcC82x!`<_bMg=|7X%yi$8*+izgofsz6Moi*M$ zKjs%7zQ4(JbCYqBZVj+#(JcwZ5sH7Fd*%DAd0QHPTLOA)u%^H(CJ`HSqG{rE4yvc% z{{5#39GTxE?W4(V2+;iJfHz@tgnI=(rsj+C74@J>Ip&?CZ@k~rXW@h9DZgliV|j=l z6*Y6H0c64)mBbtQ!K=)*i)3WwMkPgLBxFVN+p;$;_%b?vRp~NuZbd8g@o=Ds+fQDV zg;ne0Z+(wK6NFu#{muQOw?TMS9Tsy`>TcsW7SPBHgz!)3MfhEyW@yi)>(M38{TMkF zRMwcblLv!L(jr-cdrob?y)}lHrV~#=O>eJdu4($QW&YGzOQ8Y?xjWV#IBLyYzeezh z_6guKX|i5Ro2C {Xo>~FKpe77nELddno)W z?+(A}B52WQ?orR&knu`|dht9R(*5P`RMo7ygZVwPk6-0QluXqaYi&gewm P8a0U>+lcP @|`v@#5n2qchFpOJ$rMi|6T!Rac-Vd >M%37i|^z^21y=pdOgwWzX#z==ZKn)ON mZ^lutwY})#ISUehP ~X16Cljz!^|C5zcYQHq~ZMu?~*&w-7HY3 ztm1s|(`OtuemI=PY!IRnr;+sMti*Uo5AiX<_g}^(WK?8EJ(qoDTyZ#i1pA7& jtIUD(7oM!2X z&AYUn1QOAf`?Uf0Y?1=-rwlMu-Y1sGvCs@GS*f-s?FWq$S}1Ki~*Kw{+A(7cQF26SO+oZ_3bO zyzXH6`^|q--@9~@DAeqn!muYrlR`+m)z&d@qD*&F=>b|qy8*Ic6hZM`>+go6n`ry{ zv;^oX%@Knr3#$MaDc)q^m_YHNEU!V?r7o$w+OIo}X#CB9GVOk}CX~~vAP+i!I%Dj9 zlUOtf!)|1j;w8MC`9)MeZN1MH7Lv%twQfExQ9U?$`5H#QR=(AR;;(g7)o>*zgc4Gh zj^*K)kZRRR&q^e(!AmP35+*QVeLWA8+}*q1CGakARrTdT>aTAig2A2|*N&}spF jJ$Oo3p(5LYM%0L-4)#Uo2b7%7I17qC$|l~6t}kMDR-3zkS5pQ&nYK;IOxA&C+R z7b#oMdUv&1Idx9(l&Q-_D`1z0xWsVp2|J`31Zp#o%*4(d0AYa2AjNl~JGp5bU-_E_ z7U0jOFHO!v?7I+tdXQ2S-c5eX_(BPQ0Qh8F)<<|9;k%)& i;C$uWk3ogZuvlaiwG_s;U3%9h%jogEA zYvbmW!Va4nizq77uWFyEMaY4)O0Jj=Qn8MUtV7kp`1S)LMSNPYcOL4ef_&vee@Iv6 zk11vj_U5$37lfdd8L2l~xzknMI!=dsicvR1>tUsK6URH;cUbF2MBef#=0ibm81`x+ z=99refxF%*OT7~{bkO=Eef5vT+Ali1;Z-l<46vDk=+5euPzqjVx#9y}4xblc1!M6S zL}Aq*p}?)&bE-yFMV>(E=7$PWUFm&Q;$lr&PE}L1CcEDukW0kPgWo0MZ{6_RH_!>q zFJma=z6e{aXC47;*-7b^m{iK!EGolS_y9Ye
kQd;Swuh1q{dk?zsgs zr zo2;0@Nw z*BE`Q7i`sI T&q*qHWAOmpZ4!;^)+*Yh zNklyE2)r;55^KMLgD|MN3?Rf$s_K-S)wbfF2e^?Wj=>^u7osJ6D8skZYdTT;kumur z61G2%4J)Vqm@h!wVInsIWUo$AEc5a=%K6#v-}!yIj6ZYM@pWXIzvkMsTDklw6m-i} zout-+Z45DUNLFCyK8eG_;|j3}dVRH}d{Z? U(JHQdC7H{E(O-Ya zYh@iA6OhH~xw;T|_CYRD*CqemrW+ygsZaRx;Bl%l5|ZCCh^lm9xP9KNq~NP?0}vXI z+9L*&{$`L=gShhB6=bTiQK0Z~9wF;iw4_N<`VN0^9vkp1_W94plD&f7VyD8DMDlU+ zmk}=U!4gzGjSEkSbXU#aUpQ*g0e*=)#@pfBZloF+`sZv>)rzLVZbjC}! jrs>cg1D6vZz_9CV?%?n$6nkxSWITeyX6@ zQ$O_>_+--jebJ&iQtN1tUsuZ1KE$&Sy=aGmykH-q;OY9E3TJ{Owb_oyJ}?2RB=S|f zZAlHkI+nW2|KShB3Of^k-r8z8BMi0f1sQZXfzfhXOBwr{Hdx$k^%X U(t}QIJ@TJF;f# z7IP {A;(18aA@BhdlSXm}|Sxd7 mXp`q8}d(!G@|CZ|# zDK}f|1@wx!7O|7-UlGJz^^+jYIkIDbxWwd)hTIsDs^kEkesUiK35OZjo 6I7*aaV~NqD6AzE#|{9%c*5M ztG|TwxtJkL`B_CXO+LPGB@w8hwyx*s_byy7L@D4ZGpywz(Q>&zc}0$1HC{^R?Dhnh zb^upxH6`qc5V8fG$wvXZck V0%miXC}XlGvvzWpEP}8~J|piwP*TDQd9C0p=%nyBDs*}+ zcGbtcU0u5e?~DV<;Z#Z9nJQFdcCBTML Z5yFs35i&0% zM!!^DZ(GWyAY(SPc!i?Rd #BE0x z*`k050|)&m6=S^_#mwlIF2en-tR)tq^u$aJ >}qrN>MQ+J+===~VH~(mJPg&n B-%UeZ&P>@mv#n^aC}y=)OlEFf1n*|5OkWkq$pdB z2c+ShE5Qn-Xrja;AsSy77wuE0snpC0t6N8XvZRP(H^U~DA~A98tE*CF$mE{OX!?mF z;g)Hq-dV1@YR@^mS 9IY4v1Kh1td T~y+pU9jV7Y!cK1)!Bl_E1 93_t-yjW;0ivS AoB=zU9>= *NIFJ9$x?>&&z zoRRqQx2inxwtcy)6X(Q_UAHE`4_!nr?2O9FHpQxix$0?sn-f>K{Kc-Eef>4dZKif2 zRJLI-uU*K}fc3WX({QzvI%>Fj8x6$8v!vwQ<89}T7ga_U+*mSHBoJ&I7*_FnNI~{k zsF}a^9oFLR)w+7LBqz>(A238zJIcvO%*R2_xfGfb(6C2m;7DO)QOM34KF;#X?poCA zIjnjmmD3LCC(67dC60@Zwrh6BUzbR%QApO5?HXEF3Bql}L#@z^m)7#>-3y)QDX&Id zz4Iu?93LH(U9*J{d2fsrgm7Mc$Hnw6oJeM7E5jpH(bQMZTIT{*84Z*d)keiJdWlV? z3A~DbUaBsu=0uP|3Ob2-6lspRzF8xgs()PNRgGG`a`xd~BrZm9bPuIC6ss5|O5V-w zos!bLgOYm6(NVo%ecX;@F#KNnP4EAM-~Ak8dl?oo>b+PBn6OO}kbSzTq25)YJZkmY z85mfu{mVP?)rxIqY4dBJ1#_flCmA6#6vaF%=x>Vj>XV69U=q#U75rLcaH-=HO?ZIl z92o6sp*KX$`a=%1`bM%X-M>Z3I(4mfT2aNB>hbuL@RUquR8^%=qKZ+Kh^ZYURWFkF z5_0~w|8@_7bV5=%a%JB{0^Q|d9Ey}3Oy2V{GIw@f4Q J7sWVZiV{+=e`^`<7|L7CTq&@?hoN1QW@!3t %U fbAjFrhKd=;2gzq`vrK4}eSGz6(Dt!@~q9_Ya$ z8kahaDUHxY$r*q~X7gGt39+EA-%1a>#72LO)>nV3DL!E?Y4&zXAUuuCz=Y_w|EAXL zBasoQ{M1bT%skXBofTY4OC>LHw=NOcF3+)g6ot3EtW+$o9A!JouuSt^KmovO_Ryxj z&cw;4)A+X%=dMq%8l>D>3{rPEeQ|^e)qDMX_b5DCsUYP W}QDXq-3}bCt2H($fY$Da9(a2I~to}Cw z61HzL>G9Ry?>j3_x)=-DndAr00F=1lwk{cKQ=6faMUIkjO`L7EhUiRf1bQP$Up$Ki z^weq_sVR{_lOUP=KOs1g`^6GtOgJH%Znb7eVfsz1bE*u^2q@b?)C3gK1%~a07O{QO z`S?TqKL>Hse~TFes?lvn?oH4Mf>vPq9w5wB3+F5gsbq$@57nGXtDO{nTkY3lhH}u3 z6pcptu&yv8`8@ilNCga2K9BlYDK)T^bkg=XC&%0y0XJ{QX;-!4y^~!RcP>U9zTATB z iEO&olA`s*~06mg#^G~FWhY3qU=i`Loyb#lq z D5x9j1@Wy^~WLo$p>3Jy yju)*>uRO z$kR%T*pr7l5`m=wnM2&H?5U)Xa3bp8np|o1QD*xO7~L_y=@^L^?UQ%&6_vUq&A6ms zrTZobp)$ntyb4!4SxQQ73|!5E&aoQN@Zb@>hlNI^{Vx~izqJhKn^5HG$|V=DP^uby za;;shth{9`)i@I@ k z`^!JqqM08T0 {;=S-^}wP>lCYuWyr@Z4_mC<$QB1Iwa`WA>X_oo<7f4xxToNS4u So zU0}q&Gt##jYC>#nQ9bnABNtRQ97yi?6AtTZR$h3wut~&*=|_L=tqze5hM_xi9(}9+ z1;Wuw+Cz$?S|c#fQDSI9sn=quiNZlOB}V3B#754~BUC_&bgIM@JpL%eUDCf^vqw;m zv5RLJ7>H`M^9$x=PpsEeM#kYMY5%;i9BdVh6!1)nSKHZwi8!4IiZ<@-A%S9AEoy=~ zF$I!coUWP6sejcj`2@L9*$ag3+tYKEuNkXv6ClS)V&G6k<3D0;DV>^llYJInKk|8e z92?(KQt4{}#V73glv2x3U~JcfYRHwB?lEzj>%NwIy7_*c$Y4O@FN2$Z X?hb=+e&0G=E`8Sk8AlsH{Cvb%2V3oW2;uzIA;!rf}@B zQ;TNCK%%ANh(|aY187pO+fs6KpaGGZ36ujR@bIW3@|4IJ)6o|Cv`eEYA*Y-I&6h*( zG(PFazmidt*CYOFq6==}X*+wHEow!?qm$HimDab79m7Gt7ka)6BCPL&qq)1cj!*+} zj?jAQ*vy8mBp9XchvEH>|4Lq{fuWj~j@glniZM)>i9`3NsWN%ek}a^mkPcqc0~RqV z-4XzuhyvL!ZPvaE^OY%r!?e$(`mq+Qmq0Pmf?ussXKtgeMEmpW-lM ^7oy5t-{BGB_ZT zQXX^7?+R2|!5VIATEduBlq_&hd^vE1#9Bg=Agbu%GOa zH;~V-Ot%@WZxuq$w;`O&USXtLJP|FA>HUQE9Huw1^ez$H&yE&KPdjbA(C`(nA@@gU zAPpe*NOs=raZB5~YeSJzMA}JiC2TudSaCd2+(sDUu9ITx^lB^s5WRT`?m JoBiFL7Ke^F!HWwFRe)v_+>=_bfL&2k zTW7Ix)zK4(`!&ezp1txug`>5Mj2j ev-*wo>y z$RR#a_83#Y@!XJ9w9GS3M6s`NqRxLUVDX8zI3zE{0QDnjs2b1U!7kM@(O#di>x zzvhl#7m%gZ `4v zL^I%f9BMR}P>V-~sJh|}xsjVw5)P^EigtaW#d58AZqv8FTSib5avEpvYX={xVJ)+f zb;@7 =g;#=uF{Oe!+YF+t)Xlu!P2iw$F+1 %gw5@W#kovL3BqZ-nRRSy=hi9`(LdHl`*MU z3*L9zIBaUtOFsRZ)q}&CS#9II^jTDVHt0S~(jpsHLYx&puhvD88EdF=!O~uhu@T3m zYV&qv6@NNb2iMI`&jF}Mk0+?69OY;Xub11D;PN8)