From 32543ac616b4293102fd83cd4683bceea3dcfd8b Mon Sep 17 00:00:00 2001 From: MeowOS Date: Mon, 31 Aug 2026 06:51:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(launcher):=20=E5=AA=92=E4=BD=93=E4=BC=9A?= =?UTF-8?q?=E8=AF=9D+Now=20Playing=20(agent-204)=20=E2=80=94=20MSG=5FMETA(?= =?UTF-8?q?0x72)/MSG=5FPLAYCTL(0x73)+meow=5Fmedia.c(=E6=9C=80=E8=BF=91?= =?UTF-8?q?=E6=B4=BB=E8=B7=83=E6=BA=90=3Dactive=5Fseq=E5=87=80=E5=BA=8F,30?= =?UTF-8?q?s=E8=B6=85=E6=97=B6=E5=9B=9E=E6=94=B6);=20=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E4=B8=AD=E5=BF=83=E9=A1=B6=E9=83=A8=E5=AA=92=E4=BD=93=E5=8D=A1?= =?UTF-8?q?=E7=89=87(=E5=B0=81=E9=9D=A2=E7=BC=93=E5=AD=98+=E8=BF=9B?= =?UTF-8?q?=E5=BA=A6seek+=E6=8E=A7=E5=88=B6=E9=94=AE);=20=E4=B8=BB?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E4=B8=AD=E9=83=A8/=E5=8F=B3=E7=BC=98?= =?UTF-8?q?=E5=B7=A6=E6=BB=91=E8=BF=9B=20Now=20Playing=20=E5=A4=A7?= =?UTF-8?q?=E9=A1=B5(=E5=B0=81=E9=9D=A2+=E5=85=83=E6=95=B0=E6=8D=AE+?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6+=E6=8E=A7=E5=88=B6+=E6=AD=8C=E8=AF=8D?= =?UTF-8?q?=E5=8D=A0=E4=BD=8D),=20=E5=B7=A6=E7=BC=98=E8=BF=94=E5=9B=9E;=20?= =?UTF-8?q?=E7=A9=BA=E6=80=81=E5=AE=8C=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit launcher a42171a1→ddfe616e; 宿主 test_media ALL PASS + qemu 端到端(META注册→PLAYCTL下发闭环) 出入: 卡片以媒体会话为权威非通知; PLAYCTL 走会话fd(断连防御留后续) --- patch_v2/meow_launcherd/app_launcher.c | 2 + patch_v2/meow_launcherd/build_launcher.sh | 4 +- patch_v2/meow_launcherd/main_menu.c | 37 +- patch_v2/meow_launcherd/meow_ipc | Bin 64576 -> 70288 bytes patch_v2/meow_launcherd/meow_ipc.c | 144 ++++++++ patch_v2/meow_launcherd/meow_ipc.h | 42 ++- .../meow_launcherd/meow_launcher_internal.h | 3 + patch_v2/meow_launcherd/meow_launcherd | Bin 551276 -> 565436 bytes patch_v2/meow_launcherd/meow_media.c | 202 +++++++++++ patch_v2/meow_launcherd/meow_media.h | 93 +++++ patch_v2/meow_launcherd/notif_center.c | 240 +++++++++++-- patch_v2/meow_launcherd/now_playing.c | 326 ++++++++++++++++++ patch_v2/meow_launcherd/test_ipc_harness.c | 154 +++++++++ patch_v2/meow_launcherd/test_media.c | 169 +++++++++ patch_v2/meow_launcherd/util.c | 47 +++ 15 files changed, 1429 insertions(+), 34 deletions(-) create mode 100644 patch_v2/meow_launcherd/meow_media.c create mode 100644 patch_v2/meow_launcherd/meow_media.h create mode 100644 patch_v2/meow_launcherd/now_playing.c create mode 100644 patch_v2/meow_launcherd/test_ipc_harness.c create mode 100644 patch_v2/meow_launcherd/test_media.c diff --git a/patch_v2/meow_launcherd/app_launcher.c b/patch_v2/meow_launcherd/app_launcher.c index a8db6c2..16eb6b4 100644 --- a/patch_v2/meow_launcherd/app_launcher.c +++ b/patch_v2/meow_launcherd/app_launcher.c @@ -1301,6 +1301,8 @@ static int launch_app_chain(struct app *a, const char *chain) * 让菜单音量/状态栏与真实 DAC 一致(watchdog 可能已改)。 */ settings_load(); meow_nav_exit(); /* M3:前台应用会话结束,清导航栈 */ + /* 阶段D附录B:源 App 退出 → 清其媒体会话(如该 App 上报过 META),通知中心/播放页回空态 */ + meow_media_clear(a->id); logmsg("app %s exited status=%d", a->name, WEXITSTATUS(status)); return 0; } diff --git a/patch_v2/meow_launcherd/build_launcher.sh b/patch_v2/meow_launcherd/build_launcher.sh index 180ef06..2e4434c 100755 --- a/patch_v2/meow_launcherd/build_launcher.sh +++ b/patch_v2/meow_launcherd/build_launcher.sh @@ -25,9 +25,9 @@ SYSROOT="$ROOT/.tools/mipsel-linux-muslsf-cross/mipsel-linux-muslsf" "$CC" -I"../sdk" -Os -static \ main_menu.c statusbar.c fb_compositor.c settings_page.c power_menu.c \ notif_center.c app_launcher.c audio.c backlight.c net.c about.c \ - subpage.c wifi_page.c bt_page.c \ + subpage.c wifi_page.c bt_page.c now_playing.c \ font_theme.c keys.c util.c \ - meow_touch.c meow_settings.c meow_notif.c \ + meow_touch.c meow_settings.c meow_notif.c meow_media.c \ "../sdk/meow_ui.a" "$SYSROOT/lib/libz.a" -lpthread -o meow_launcherd echo "== meow_launcherd ==" ls -la meow_launcherd diff --git a/patch_v2/meow_launcherd/main_menu.c b/patch_v2/meow_launcherd/main_menu.c index 139bbec..d64825c 100644 --- a/patch_v2/meow_launcherd/main_menu.c +++ b/patch_v2/meow_launcherd/main_menu.c @@ -825,6 +825,7 @@ static void run_menu(struct app apps[MAX_APPS], int napps, int state, /* 阶段 D · M0:菜单/主屏循环内排空 IPC(非阻塞;应用可随时查询/声明路由) */ meow_ipc_process(); meow_notif_tick(); /* M2a:通知 TTL 10s 转储(§8)*/ + meow_media_tick(); /* 阶段D附录B:媒体源死亡(播放中无 META 超时)清槽回空态 */ /* sim hooks */ if (sim_tap_ms > 0 && !sim_tap_done && el >= sim_tap_ms) { @@ -1104,7 +1105,15 @@ static void run_menu(struct app apps[MAX_APPS], int napps, int state, * 已删;如需物理启动应用,可后续加「长按播放键」,本轮不做。) */ if (play && !m_prev_play) { any_input = 1; /* 仍视为输入(重置息屏计时);不再 launch_app */ - logmsg("play key: media-reserved (no menu confirm)"); + /* 阶段D附录B:媒体键路由到最近活跃媒体会话(播放/暂停切换)。无源=打点。 */ + const meow_media_session_t *ms = meow_media_current(); + if (ms) { + uint32_t cmd = (ms->state == MEOW_MEDIA_PLAYING) ? 2u /* 暂停 */ : 1u /* 播放 */; + int rc = meow_media_playctl(cmd, 0); + logmsg("play key: media control -> cmd=%u rc=%d (%s)", cmd, rc, ms->app_id); + } else { + logmsg("play key: media-reserved (no media source)"); + } } m_prev_vold = vold; m_prev_volu = volu; m_prev_play = play; @@ -1296,7 +1305,31 @@ static void run_menu(struct app apps[MAX_APPS], int napps, int state, continue; /* 本圈不再按 tap/其余处理 */ } /* M2.23 滑动不启动:抬手位移 >= 阈值 → 判为滑动,不 launch、 - * 不进行行判定(为将来左右滑切屏预留;本轮只判滑动、不打事件)。 */ + * 不进行行判定(为将来左右滑切屏预留;本轮只判滑动、不打事件)。 + * 阶段D附录B:主界面「右缘/中部向左横滑」→ 进入 Now Playing 大页。 + * 手势分流(MEOW_APP_SDK §5.2):顶部下滑=通知中心(已在上方处理)、 + * 左缘右滑=返回(左缘起点不至此),此处只接管「中部/右缘向左」横滑。 */ + if (dx <= -MENU_SWIPE_THRESH && adx > ady && + tx >= MEOW_EDGE_W && ty >= SB_BAR_H) { + logmsg("menu: left-swipe -> Now Playing (dx=%d,dy=%d)", dx, dy); + menu_arm_touch(TAP_ARM_DELAY_MS); + run_now_playing(); + /* 重播按键防抖基线,防播放页内电源/音量边沿被 run_menu 误判 */ + memset(&kd_pwr, 0, sizeof kd_pwr); + memset(&kd_vold, 0, sizeof kd_vold); + memset(&kd_volu, 0, sizeof kd_volu); + memset(&kd_play, 0, sizeof kd_play); + kp_poll(&kp_power, NULL, NULL); + kp_poll(&kp_keys, NULL, NULL); + m_prev_pwr = kp_is_down(&kp_power, KEY_POWER); + m_prev_vold = kp_is_down(&kp_keys, KEY_VOLUMEDOWN); + m_prev_volu = kp_is_down(&kp_keys, KEY_VOLUMEUP); + m_prev_play = kp_is_down(&kp_keys, KEY_PLAYPAUSE); + last_input_ms = now_ms(); + menu_arm_touch(800); + dirty = 1; + continue; + } if (adx >= MENU_SWIPE_THRESH || ady >= MENU_SWIPE_THRESH) { logmsg("menu swipe (dx=%d,dy=%d) — no launch", dx, dy); } else if (tx >= 0 && ty >= 0) { diff --git a/patch_v2/meow_launcherd/meow_ipc b/patch_v2/meow_launcherd/meow_ipc index 9c8970056608e740e7cf5af45fa923c37518e841..7f6d15d71c47ff2bfc33fda00f20436822f84027 100755 GIT binary patch delta 16241 zcmb_@4SZD9weLE6Cdm+D7(z^9jKi79nMn*7hKOm50VW8D7$JN#A|i&6AZQ2?0wN+a zAX>zb8L~q}K$t)hqKyOzQc4Bm$Mf-&*ZNhTkJ}=)wvSrt^{Vw!w9fmlbIv3K;`{af zelI$#eb!!k?e(?SUVG1+zVnt)hc%Qj*q$Y53=vh@m95#OHMT4w{#bz`Qt%&<9nVar zlWrm!gHK#c|CDy3DeV^h*fze;APMK6zHeFp_v!Y)0 zu6BFJtWKn8*X@&Lm&WwSC&lmL%gajdym_{Kz@o})ED5sCQfp;0`MvPSk1b#LXHL4g zLN$oWiq(ZntH-)msw--0?jP%}t*sv5y>MAwow~4g*@_w<^+Ai4FIZZmHat{cGu9A9 zt*xmW>qfUO$Flp2)dltSW8Ev%6%7j-YMAfBWz~S7m^OX(t&{Imm)$QZ{h( z)KsrfOCZEJ^)8m-o~0}9mYd`D_zexC1Ymp563~?Bi~;MHtpF(+)hm}9jfN!+wKYI2 zSl$4;a-+6t<C3W{k?VX>WFKgnL6`1CSIezGYsLc#sD_6jL*CtZ$d+{IJ{2Xv+ z@#(4*^nTUFpMwi7e!jGypSRC5XmT;0(B|jphx-{9JFXhIukXQH0extJ@b`CaGAEyC zLLS5dWPxzkDnV=U3E@+ZPi=*uF2KY1l&lui_mH3>eCqKziRaWcf~xUp$MaFZEWnL` z-RL`qj~DGmz}XMk1kFL?>_fdr?0;7LAuOxWSa9zrDAa{^Qkp{V1A5aHIuB^QN+AtO zodcW*cs^4hR{Ye}3atg)bq&S=W;ihp(CflDz)jf-Wm$--HHAt5H+mGRX1EmN0Q&&9 zTgXppokHC}lmPYtb^)FRJO}t4U}zZ_A*q}P^a7^VD>MbL1h5+LB;abmwJQ_~10Gzd z&{4pm2f+vMrPT`AkaWUp6dDQm{=*8D0hX*)XmOmMXbu`{fd~MG0J{L&0kucK2=EKQ zQ-I$E6#5!)-g+=ZmI^!ufdIo#C^QG~eZX44F911_b#I1-fJsk6LBNfGecTWDK43$m zLg$8}5ki9!K+ptJC&&xK9P!~SxHnlkQa$3sJUKblCB7RW?@P@SZ(k={Qyu=p`ADi5 zMH7>^`^xqxTSdr{fycM;d3_Y(4-kD}VfN+X@iTn3dj-91j5}{zyhqtBp0c!Bx5c%@ z%Yb$qhmu1mZq1XOGe%q@~%qH7*4G zm}W6(zAKcUr#d{W?d&2!zXKZNA*Fne(k!-GLU5J_R5$v)H_C!5U49P4@|y%rG)UEn zdlX_dKV$p`tONsZpRz{@A?C=A58|5|(O1cR_+uQbNuL3S?MVM)2uqOdQLHS+Oia#* zkwTxNT+sd000N&u&_4+euEpTP=<722)Y!p1VI%tIZ4|Va`|*c;jKaXZ4xBCoCX6a` z6!^0n<+!x8OkO~?$FNfML54Zb0oU@FtV?tFnTs7BnX(Dl1Zaqz%UsxMxxla8ENBx< z1AI~S9_1;~YT0IOiIefo30rNUK{{PI=&TTLq-h=a)#*!Ho%AIvuz!)IO9G8P6LhujQQ zT(5_jiJKTlqv$0dH!>Cec=9LC(Cp6_q80&r*=8 zl#*d$jOJE-VsslNxpM=;NinGn}Up_H6Gc_vEUQSHp{tLE>XTouFLWax)RamRx8Eb^7*WE*RAc8 zRLW!3uwdFE@EVS1mD)Y-Toupq&snbIG7KUmQFC|sD7RgvU6bdZg^^)U?xBzK_fV=f zIQ+55r5AGyPL+cD-QIw3+73e+HO%p`UO2VHuAk^G{+(6B;&`!#XLWm3@wNng5kXqA zjR>UaG!c~7HkxiQgVjo3HboUn5%Tmkjx^Tn4;DkSEIOpm z18tHW1+ED!8WdKjLK|Ug6^UdlCbz1>2w{jWs~nU4{Yr0QrFlp|U>R$lku!}~NUm}) z$XXS|Yg!g{1l``sOSG`-T8xQfEtHZ^hUQ?ywQE;Gqta$dQcR7atF78LKsT1+GA|*r zBX1aik|wugrT07Xpj-0LUH*^w)PD7#7@mWOf&dDRXz=57tJRnbqv1(*o{ys8!_E+c3bZ)Wow=L^Gbm=<#BpM z)jm1R0ILkJ+v!QZD@HysNWSZIc_O^Vu&G2@TM!@l)TV3xJ{C=`XwSj=%XGQ?&qE5< zE=tN${0T;h4Gr}&p)rdJ2G}Xg&al#dT!!C~OZepv@bl}dCu-hLhH8jKrQ|fS%DJu3 z!E5Ni{j5W+84m+G7?UQ@Z{e{Q#Cv4y5;ppzi6}*jH8<~LNjiSO1@5rlNA^pRMLuvf zd}uWp4*0O3F<`sW^k-gU2K}WemCiL;!NZO79;X&hBLtu0>o-0t6n{zF^jp+_$!d#Q zz+;VCK-C#VEpV3^zdvSyj{l+s{BA6{|KAqaaTyCl6`N#bP2=D zn?Wgg>XPN}xD3Cp?~muqR$lHYR}S}-DZM>YltVoe6`Ai&i|521>X1|2dA#qha(f2$ zeSHg*&$%7Rd*PF49zTaV#9f%jOC*)rbI!rwC|*sS3>yXeqfiwfFZ9ffPSfgfOyy0w zMBz>PEOxERnDXNj>{>=Sl8%L2MEu-m;qqiWp5v%5g@a_ZfoE~Q_oOjM%b9wq)O9(I z~10@;h<=A&a;Mo=WTCo_W^Zo;lV-J+rMZ^psl<_PDoKD#*Z!yGvEvM@ex9&XW6!K5`!nlY3JD z2PMT{619J+X@55yoJEIw+~GcY1PwIx@|M&+CV`Yv&} zr(GQE35ydwyuc4CUW9m`2wz>8)>z)CeABnUmj0)30X3_qjPKW{VI2Lk1 zgwWS_5tB*?wm(OuXCa(VEJxp9tPiinrv1e6{P2$M5me!R zxL|~x>sO({d_kBo2y+Hu)*#FqgqeddcMxU|!u&zFA!x&8;cDyg9IhYY%t_d#I7=YE z{m`Xl{aN3b4>?$9Q{dCX@aaMLv>QI{f=}Dw(=dFx3qIWrpSHlKA@*sw68`il?t`k~ z)9t2DLt(^x_-qTi zig5UdL!w0LgUd$}y9@s3Ggg2q^kbn$FMv?JB;d6EyvWS6s4dv7wDoi$k+&<+VEYMz zP1S?V-XB98Y?>ZysWCWsO2=g|&d*WlJ&Rxqn8Bu*!FJY+*Z=}(sHV~WoY|IMT?-C4 zVFsLgN~MSf-JLYUJliTI+1N3%qOpaf&MV>^w$O)Bce0xT)?eh<$)WkD->#G>cNC0a zf<p*%smu`!a^}H$pe_=9dXel zn`ZP+vH~_tHYZm@ZnthDS8&a-p|v#4EPRkJM}L1-Ift+A3xHHE|$gm?*K=iv44 zMWQh~jLN{+MLYWUqiA9!aR^I_8O74|#n7z;9}YV1e;jMvpv!4Yh0CJHPgd4Q)ZoW! zlo|G+LMTCnP=pF$3=BuMJy9TaTT3^;mcZ!F1`t zv>X~78^zh{e`V6qT%6flJVEA5|4%Dy6cJ= z9J{Uni$Z>W-694R`7`}IRWGLM)TbJz%gwmsm*ArHGao!dh}c;A*glC3BDRlt-HI!r zOK~?DIGHo*x+`MGpOOnkjS{bhW%DSHXz7s0M!7_Kn>;hBK-hya#k)wq{@MR>Cc6X=R-Ht#_40v@r zia}1W6c~;hT-t{qzPX$Gn6|#ti!q|4wo?|5cDSm+h8JCJ=gr-7(N<`oHXUxsh5s9o z8m4to!JaL1ocvlD8IlJ3VuQuAq)tySOH)f%2r8o%FfdGt$(4FXabxUwfqBh-M zyE$Gj4bHOU4 z(MdS7iIS{A6Eq@c%TTPspHzuIhUBrIc&7f5%?t2GNX0NTpXaWqxutVSts39yWycAw~sGoXN>f}$(+b#0Ujdh}^SxzgS zoH)9fqhOe}rbX^9P7{%>@8Wnc()qRbNrVqAFiD(6i(r7)R3(b zH`>j*TuZ<(F)%cSULLqGVL{r)ev@+yc z_65h7p_@58q+q$>RX^Wb~MIv zy&WB^!aUKjs@Oy~9I#Mj+7uddz;vzr%}s9EH*SvO4$1zg4$s9r(1DC+f;q#~A!XtC z`N_+562odMn&sZ{`N420M zd{dLowolaFW|CZ$DlvX71n=?8zvlY&DyZAeu{E z;_k3KQu?^S)3^!qMFzrYf5#KBqN4Z{{s_T7AdG&mXq)vz$AzP(btMiT6ouQjxf|UCy865I1a->n3HU7>*_J zbqgn)StCbmlg~{m5Vmdd%p{LMoX1brX+4vx#H-D6^W<;DXDM>SEqMhRzALIX4*(CN zU2C>aD^6{(*wNL)Hd%M;A#r=FbWNQg{`!nu1n`e%*s6zz4)Gpkiz znA)7Y$L!{#+ul~WUi1-tG}`yXA!2Tg7KX z<>}kUiIY#u%xQB){&u-)+I^XKK1DVaGx0Te7!`-pR*Ko(-8;9*3)Aw&olnWU>3Nx5 z`zh%Qe?rL!eC4l)6KY6K!8`ZMy6KLBf7_>rkl-M}ts1Usamm>UToKwwfeQheeLSpd zzdSL$BC`j(vpc{?X@evlS`QA~K>vNa%rAGO9ofwseBjE9OT`U52~1d3?qZWZUOs`r zo8_4)QNj_na`84jAB61Rlur{2cgV>z9HOUPE}Ahee{%`Eka5*-nII+vCum^sEglcQ2?$7zBspA z9+^2!9N8`7XSw((Z&rSqkt_Se2wQ>pn_lDDJ)3sQx>$H+ra=CDXtH{&4{U|>s8UYT`roPSNwZEn|Adn&J34G zR>D|fiP}V5Be?5*_-#pBa3ZE=_S;b=@-w%2iitbro3kCP(5JJDi&MM61&NMxYEsU_hf`8TyHACxXm51;;!Z5 zksb2QyQ;(}Of@ep{~Ol6%d5w<5jU69{yin|>Z(P&^7 zdwd^b;y&TU8Ey(LDxv{Q^h&czPW*1f_cB@wg6^U|9)92+mnS-$)N{p5rt10)42>?%dtCi%mW4IZd6f=CL+{ke0!4hi zQ?6T(mX^HB$cyeuANlC#!I8*N$-Crp3nmMIFBhy6ckYtQtEz-=m;9jW1k2I7P&ddC z06cxLaJP7Nmt0lt5ijnNyQ>S>SnpO(W#Fhe!r+6N0`bH%GI3F-xZ@dlXi+gEKVPJ0 zmx6os^u7GvyyS*w3{g%YM>HU7->dU~^Ilg9Yn`2|Q3w>AqrmL@doy|V%*8H$)VBkQ zl5KEE5itoR%x$7E-LIvm5+@lejt?>Y?J@0GyxzWa+*^=hI$fz{QXf}j@>h#T^9Jzw z;9bg4rZ7Jswm`N$fGTKxBPRR!|y|V z{1S@DqqylgjC0IEoMXE6Q|eh>iMGi^2P>#4*ukuPsA57uvExB^4q zVDcb@2tt@3gbG49{TiuHE*+)%amUP+Z5BO-qu~0+?CoxvO)WTjZfF`|n?-~1qb;1R zabl{(S2%rS{2Yd*Ti@hVujjr4RwRfM z!p1VUn0x+5{g}(?RT%7PX zar~R27VbmILda8AYLg#?rEA3mpyi?!lg01D^1zB?;_5beUqhiQ9oJ`(2p?mAc&_2g zlD~!Js|^#x>^2#{vM^;~8`~|=&etLqTHm#>O-@_6T&!x7udehIZbh$x^@oX5*b+q6 z16(I?3%_i_A{eS!_A-akZUP-l*xcGC9jhj!yrDBjl>o9tuZP}glgn2%2>|inTrmOP zY(F?o{I*T*elRVQSq$EE15T#KGzzWvpj5?F^4AYe_J3!x`Vb2X2hkoky)u%|=WctL zZ>gZ^E4s53dQ4NvqD3O@q5q7m*W$=I5)RkP9?$F+jICa`Y(59dOu!HWSh@xpWr}A>dsgH?AU-Z7;Mz4&q zVS`O0x6bEnzd0E*7z%URz`&gwpka{C(5yX2;YuBKTn4_Cz1lQ+)M_qhNdXIf3OZml z){uE{Wc+)iG8LOWEYzN}2S3b+@-dS*O}~f{m>3IIXzT)BxTz>Pxs8JV-*wH*FIS2k_}_el@7 z^w)+carfmB=A{r(0g`AME~BXP@94u%W^o~4To@@-iWTKNz{`dE5P6-K>tj6M{qUFD z^8A=I=aC?+hGO2xB}KR+`PZzO9%Ie4%UDzU5oV@!t;iM}whtGzN2{@93~L#d zOxG=0fj%p&dO2%x-@jtX3~avgyD=##KeVRIT3saW-zO_p*KtyOV|9h_?~{&)rtwqV zLlw!-Vh)8ydpPLd-6!9DXeJ+4J!_7*u4%^>xJe_1Snis*VkmuY5n3d{>9ziS#@cJz z<@amy1wj78)A*`&-NSW4+}$oef22x$-!5ma%P+pI13Ut4NTVAuZhda_gzyDsBV;e5 zU%_Q(0LBF7pBvWlPee=bCB(XXaa)J{bX}e!O2yHY?bXPK1bv0+NRSlxJ;_lLUgT?W za`rzrc{xtb$ecO+=xpVE_vq3I`KxAoYpu_yx%388h0eW(Z$|R#hxQH z^b~F>;GX-oWHR03Tc#!M00F1k9T>gk!Z7w?9RFkfbxjxe>Hn39N#%H}YdYQngE4|t z>HJ0;|6PuB&J2U}WT)I6tg_(6H#syo%u0dsESVW{h;WuH2EbcJa{=&{(Ha1}WwayY zaPeD4*fIm(MIsS>0{oMq5?up09G}-m$Rg$F>cRzinX1>$m9| zoh|D}B`m((;Lg&vOyjm8xep;_YMrolplt~oVaL`@KnO-@#JTCZ4{*18VVfg?BaJ!v zw`YnO{U#H>nKH9wc>GN6RMWrhTa|99fL*r26=4XI164eL z(eS8T(>YEYezf;k=WfM{K=PhUnje}Mhd(HcDn0~1uuZZflp3*RSh6^~+Pjf|s&%?r(3OCLMb+EqEb|pL@N>b1fFUiDh;s%lU1pbR0~U zW#Ix7s=Z0Ce3oUwt63&dzMTIi6J=WPYL<=*otcvGQggq&mXq5IeErk&WbH>IMJ_I` zKiVzIcJvmXg*EU3mND!XSu*JlwF&(46|2X~4li7BU+=*`Krp;%WzIQGuG^Q~TlVK9 zVZp0b{m9+_E4la7xmv}7pT+CL%0JyCEO^ICr}*O8Au`f_MQ_sIY7>O7O|JQRw{2b< z&o$mKAKt3cN7es*ibZBTt@a*0|A`{1hsoU+9D|HE(D4?Y{BIYACsyJG*-G51bj8Wf zFE|p7*V}Ocvq`3X>xehrW|zg^y5a*J77BF8Dl|iAZt9Smzx4=!L*IJhH+A43w?v-# b)@88`QKaQNcg9~(8LedX%|B#7{qO$*^U$io delta 10792 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 diff --git a/patch_v2/meow_launcherd/meow_ipc.c b/patch_v2/meow_launcherd/meow_ipc.c index 81ed824..c2e5206 100644 --- a/patch_v2/meow_launcherd/meow_ipc.c +++ b/patch_v2/meow_launcherd/meow_ipc.c @@ -342,6 +342,126 @@ static int cmd_dismissall(void) return 1; } +/* 阶段 D 附录 B:媒体会话上报 → MSG_META,期望 MSG_ACK。 + * meta <artist> <album> [artwork] */ +static int cmd_meta(const char *app_id, uint32_t state, uint32_t pos, uint32_t dur, + const char *title, const char *artist, const char *album, const char *artwork) +{ + int fd = connect_path(g_sock); + if (fd < 0) return 1; + m_meta_t mm; + memset(&mm, 0, sizeof mm); + strncpy(mm.app_id, app_id, MEOW_APP_ID_MAX - 1); + mm.state = state; mm.pos_ms = pos; mm.dur_ms = dur; + snprintf(mm.title, sizeof mm.title, "%s", title); + snprintf(mm.artist, sizeof mm.artist, "%s", artist); + snprintf(mm.album, sizeof mm.album, "%s", album); + if (artwork) snprintf(mm.artwork, sizeof mm.artwork, "%s", artwork); + uint8_t rbuf[256]; + int rt = xchg(fd, MSG_META, 11, &mm, sizeof mm, rbuf, sizeof rbuf); + close(fd); + if (rt == MSG_ACK) { + m_ack_t a; + memcpy(&a, rbuf, sizeof a); + printf("META ok: app=%s state=%u code=%d\n", app_id, state, a.code); + return a.code == MEOW_OK ? 0 : 1; + } + if (rt == MSG_ERR) { print_err((const m_err_t *)rbuf); return 1; } + fprintf(stderr, "META: unexpected resp type 0x%04x\n", rt); + return 1; +} + +/* 控制转发 → MSG_PLAYCTL(launcher 转发到最近活跃媒体会话),期望 MSG_ACK。 + * playctl <cmd> [seek_ms] (cmd 1=播放 2=暂停 3=上一首 4=下一首 5=seek) */ +static int cmd_playctl(uint32_t cmd, int64_t seek_ms) +{ + int fd = connect_path(g_sock); + if (fd < 0) return 1; + m_playctl_t c; + memset(&c, 0, sizeof c); + c.cmd = cmd; c.seek_ms = seek_ms; + uint8_t rbuf[256]; + int rt = xchg(fd, MSG_PLAYCTL, 12, &c, sizeof c, rbuf, sizeof rbuf); + close(fd); + if (rt == MSG_ACK) { + m_ack_t a; + memcpy(&a, rbuf, sizeof a); + printf("PLAYCTL ok: cmd=%u seek=%lld code=%d (status=%d)\n", cmd, + (long long)seek_ms, a.code, (int)a.status); + return a.code == MEOW_OK ? 0 : 1; + } + if (rt == MSG_ERR) { print_err((const m_err_t *)rbuf); return 1; } + fprintf(stderr, "PLAYCTL: unexpected resp type 0x%04x\n", rt); + return 1; +} + +/* 读一帧(头+负载)→ 返回负载长;-1=连接断/坏帧。type/req_id 输出。 */ +static int read_frame(int fd, uint16_t *type, uint32_t *req_id, uint8_t *rbuf, uint32_t rcap) +{ + uint8_t rhdr[MEOW_IPC_HDR_LEN]; + size_t off = 0; + while (off < sizeof rhdr) { + ssize_t r = read(fd, rhdr + off, sizeof rhdr - off); + if (r <= 0) return -1; + off += (size_t)r; + } + uint32_t magic, len; uint16_t ver; + memcpy(&magic, rhdr, 4); memcpy(&ver, rhdr + 4, 2); memcpy(type, rhdr + 6, 2); + memcpy(req_id, rhdr + 8, 4); memcpy(&len, rhdr + 12, 4); + if (magic != MEOW_IPC_MAGIC || ver != MEOW_IPC_VERSION) return -1; + if (len > rcap) len = rcap; + off = 0; + while (off < len) { + ssize_t r = read(fd, rbuf + off, len - off); + if (r <= 0) return -1; + off += (size_t)r; + } + return (int)len; +} + +/* 媒体源监听:HELLO(MF_PLAYBACK) + META → 保持连接等待 launcher 下发 MSG_PLAYCTL。 + * listen <app_id> <state> <pos_ms> <dur_ms> <title> <artist> <album> [artwork] */ +static int cmd_listen(const char *app_id, uint32_t state, uint32_t pos, uint32_t dur, + const char *title, const char *artist, const char *album, + const char *artwork) +{ + int fd = connect_path(g_sock); + if (fd < 0) return 1; + m_hello_t h; + memset(&h, 0, sizeof h); + strncpy(h.app_id, app_id, MEOW_APP_ID_MAX - 1); + h.version = 1; h.flags = MF_PLAYBACK; + uint8_t rbuf[256]; + int rt = xchg(fd, MSG_HELLO, 1, &h, sizeof h, rbuf, sizeof rbuf); + if (rt != MSG_ACK) { fprintf(stderr, "listen: HELLO resp 0x%04x\n", rt); close(fd); return 1; } + m_meta_t mm; + memset(&mm, 0, sizeof mm); + strncpy(mm.app_id, app_id, MEOW_APP_ID_MAX - 1); + mm.state = state; mm.pos_ms = pos; mm.dur_ms = dur; + snprintf(mm.title, sizeof mm.title, "%s", title); + snprintf(mm.artist, sizeof mm.artist, "%s", artist); + snprintf(mm.album, sizeof mm.album, "%s", album); + if (artwork) snprintf(mm.artwork, sizeof mm.artwork, "%s", artwork); + rt = xchg(fd, MSG_META, 2, &mm, sizeof mm, rbuf, sizeof rbuf); + if (rt != MSG_ACK) { fprintf(stderr, "listen: META resp 0x%04x\n", rt); close(fd); return 1; } + printf("listen: source=%s registered (state=%u) — awaiting PLAYCTL...\n", app_id, state); + fflush(stdout); + /* 阻塞读:等待 launcher 下发 MSG_PLAYCTL(同一连接)。 */ + for (;;) { + uint16_t type; uint32_t req_id; + int n = read_frame(fd, &type, &req_id, rbuf, sizeof rbuf); + if (n < 0) { fprintf(stderr, "listen: conn closed\n"); close(fd); return 0; } + if (type == MSG_PLAYCTL && n >= (int)sizeof(m_playctl_t)) { + m_playctl_t c; + memcpy(&c, rbuf, sizeof c); + printf("RECV PLAYCTL: cmd=%u seek=%lld\n", c.cmd, (long long)c.seek_ms); + fflush(stdout); + } else { + printf("RECV frame type=0x%04x len=%d\n", type, n); + } + } +} + int main(int argc, char **argv) { const char *env = getenv("MEOW_IPC_SOCK"); @@ -408,6 +528,30 @@ int main(int argc, char **argv) if (!strcmp(cmd, "dismissall")) { return cmd_dismissall(); } + if (!strcmp(cmd, "meta")) { + /* meta <app_id> <state> <pos_ms> <dur_ms> <title> <artist> <album> [artwork] */ + if (i + 7 >= argc) { fprintf(stderr, "meta needs <app_id> <state> <pos_ms> <dur_ms> <title> <artist> <album>\n"); return 1; } + uint32_t st = (uint32_t)strtoul(argv[i + 2], NULL, 0); + uint32_t pos = (uint32_t)strtoul(argv[i + 3], NULL, 0); + uint32_t dur = (uint32_t)strtoul(argv[i + 4], NULL, 0); + const char *aw = (i + 8 < argc) ? argv[i + 8] : NULL; + return cmd_meta(argv[i + 1], st, pos, dur, argv[i + 5], argv[i + 6], argv[i + 7], aw); + } + if (!strcmp(cmd, "listen")) { + /* listen <app_id> <state> <pos_ms> <dur_ms> <title> <artist> <album> [artwork] */ + if (i + 7 >= argc) { fprintf(stderr, "listen needs <app_id> <state> <pos_ms> <dur_ms> <title> <artist> <album>\n"); return 1; } + uint32_t st = (uint32_t)strtoul(argv[i + 2], NULL, 0); + uint32_t pos = (uint32_t)strtoul(argv[i + 3], NULL, 0); + uint32_t dur = (uint32_t)strtoul(argv[i + 4], NULL, 0); + const char *aw = (i + 8 < argc) ? argv[i + 8] : NULL; + return cmd_listen(argv[i + 1], st, pos, dur, argv[i + 5], argv[i + 6], argv[i + 7], aw); + } + if (!strcmp(cmd, "playctl")) { + if (i + 1 >= argc) { fprintf(stderr, "playctl needs <cmd> [seek_ms]\n"); return 1; } + uint32_t cmd2 = (uint32_t)strtoul(argv[i + 1], NULL, 0); + int64_t seek = (i + 2 < argc) ? (int64_t)strtoll(argv[i + 2], NULL, 0) : 0; + return cmd_playctl(cmd2, seek); + } if (!strcmp(cmd, "nav")) { /* nav report <app_id> <depth> <top> | nav exit <app_id> */ if (i + 1 >= argc) { fprintf(stderr, "nav needs <app_id> and report|exit\n"); return 1; } diff --git a/patch_v2/meow_launcherd/meow_ipc.h b/patch_v2/meow_launcherd/meow_ipc.h index 43da2b8..5247360 100644 --- a/patch_v2/meow_launcherd/meow_ipc.h +++ b/patch_v2/meow_launcherd/meow_ipc.h @@ -13,8 +13,9 @@ * uint32_t len; = payload 字节数 * }; * - * 本阶段(D · M0+M1+M2+M3 前置)通讯子集:MSG_HELLO/ACK/ERR + MSG_ACT_DECLARE/QUERY/RESULT + - * MSG_ACT_FOCUS/BACK + MSG_NOTIFY/PROGRESS/QUERY/DISMISS* + MSG_NAV(导航栈上报/退出)。 + * 本阶段(D · M0+M1+M2+M3+M4 前置)通讯子集:MSG_HELLO/ACK/ERR + MSG_ACT_DECLARE/QUERY/RESULT + + * MSG_ACT_FOCUS/BACK + MSG_NOTIFY/PROGRESS/QUERY/DISMISS* + MSG_NAV(导航栈上报/退出) + * + MSG_META/MSG_PLAYCTL(媒体会话,阶段 D 附录 B)。 * picker(0x0070/0x0071)仅预留协议位,本批不实现。 */ #ifndef MEOW_IPC_H @@ -67,6 +68,8 @@ enum { * 待 M3 延伸阶段定义(m_picker_call_t / m_picker_result_t),此处仅固定消息号与方向。 */ MSG_PICKER_CALL = 0x0070, /* ↑ 请求跨 App picker 调用(发起方 A → 持有方 B) */ MSG_PICKER_RESULT = 0x0071, /* ↓ picker 返回值(候选结果回 A) */ + MSG_META = 0x0072, /* ↑ 媒体会话上报元数据/进度/状态(阶段 D 附录 B) */ + MSG_PLAYCTL = 0x0073, /* ↓ 播放控制下发/↑ 控制器转发到最近活跃媒体会话 */ MSG_SYS = 0x00F0 /* ↓ 系统事件(守护关闭/服务死亡/播放器状态) */ }; @@ -90,6 +93,11 @@ enum { #define MF_BACKGROUND 0x00000001u /* 可后台常驻 */ #define MF_PLAYBACK 0x00000002u /* 后台音频/播放 */ +/* ---- MSG_META flags(元数据有效位)---- */ +#define MF_ART 0x00000004u /* 封面/专辑图已提供 */ +#define MF_LYRIC 0x00000008u /* 歌词已提供 */ +#define MF_COVER 0x00000010u /* artwork 为可用路径/槽位 */ + /* ---- 标识/长度 ---- */ #define MEOW_APP_ID_MAX 32 #define MEOW_ACT_MAX 64 @@ -164,6 +172,36 @@ typedef struct m_nav { char current[MEOW_ACT_MAX]; /* REPORT: 当前顶层 activity_id;EXIT: 可空 */ } m_nav_t; +/* MSG_META ↑:媒体会话实时上报(阶段 D 附录 B;FRAMEWORK_DESIGN 附录 B 的 m_meta 微调落实)。 + * 声明 MF_PLAYBACK 的 App 首次上报 → 注册为媒体源;后续更新(含 1s 级进度)。字段全 LE 定长。 + * - state:0=停止 1=播放 2=暂停 3=缓冲。 + * - flags:MF_ART/MF_LYRIC/MF_COVER(可多;声明哪类元数据有效)。 + * - artwork/lyric:封面/歌词源(本地路径或 MeowOS 存储槽位);空=无(mf 位同时清)。 + * - app_id:上报源头(与 HELLO 的 app_id 一致),launcher 据此归并同一会话。 + * 边界:防越界(128 长度由 meow_ipc 双方同源 + 接收侧截断;payload < MEOW_IPC_CARGO)。 */ +typedef struct m_meta { + char title[128]; + char artist[128]; + char album[128]; + uint32_t pos_ms; /* 当前播放位置 */ + uint32_t dur_ms; /* 总时长 */ + uint32_t state; /* 0=停止 1=播放 2=暂停 3=缓冲 */ + uint32_t flags; /* MF_ART / MF_LYRIC / MF_COVER */ + char artwork[192]; /* 封面: 本地路径或 MeowOS 存储槽位 */ + char lyric[192]; /* 歌词: 路径或文本槽位 */ + char app_id[MEOW_APP_ID_MAX]; +} m_meta_t; /* 128+128+128+16+192+192+32 = 828 B */ + +/* MSG_PLAYCTL ↓(launcher→App)/↑(控制器→launcher 转发到最近活跃媒体会话):播放控制。 + * cmd:1=播放 2=暂停 3=上一首 4=下一首 5=seek;其余保留。 + * seek_ms:cmd=5 时目标位置(ms);其余置 0。 + * 语义:通知中心卡片/播放页按钮、物理媒体键 → meow_media_playctl(cmd,seek_ms) 经 + * 「最近活跃媒体会话」的连接 fd 下发;宿主验证经 meow_ipc playctl 发到 launcher 转发。 */ +typedef struct m_playctl { + uint32_t cmd; /* 1=播放 2=暂停 3=上一首 4=下一首 5=seek */ + int64_t seek_ms; /* cmd=5: 目标位置 ms;否则 0 */ +} m_playctl_t; /* 4 (+4 pad) + 8 = 16 B(mipsel int64 8 对齐) */ + /* MSG_NOTIFY ↑:推送/更新通知(freedesktop 对齐 + MeowOS 扩展;定长 LE)。 * - summary/body/app_icon/expire_timeout 直通 freedesktop 字段;app_icon 即 SDK `icon` * (icon name 或 path;映射为空串时 launcher 用该 app 默认图标回退); diff --git a/patch_v2/meow_launcherd/meow_launcher_internal.h b/patch_v2/meow_launcherd/meow_launcher_internal.h index b01c700..e40712e 100644 --- a/patch_v2/meow_launcherd/meow_launcher_internal.h +++ b/patch_v2/meow_launcherd/meow_launcher_internal.h @@ -36,6 +36,7 @@ extern "C" { #include "meow_ipc.h" /* M0+M1:IPC 协议帧/消息/负载定(与 meow_ipc 工具同源) */ #include "meow_settings.h" /* B2a:统一系统设置后端(SYSTEM_SETTINGS.md §3/MEOWOS_API §2) */ #include "meow_notif.h" /* M2a:通知存储 + 分发(NOTIFICATION_SYSTEM.md §4/§7/§8) */ +#include "meow_media.h" /* 阶段D附录B:媒体会话注册表(MSG_META/MSG_PLAYCTL/最近活跃源) */ #include "meow_ui.h" /* A-1/A-2:launcher 用 SDK 渲染栈(meow_ui_fill_rect/text/flush/theme) */ #include "meow_ui_internal.h" /* A-1/A-2:launcher 与 SDK 共用 back_buf + 手动脏模型桥接(mark_full/back_buf) */ #include "meow_notif_panel.h" /* 阶段B:通知中心面板纯逻辑(header-only,可单测) */ @@ -686,6 +687,8 @@ void restore_backlight(void); uint16_t rgb565(uint32_t c); void run_notif_center(struct app *apps, int napps, notif_click_t *click, int live_open, int lox, int loy); +/* 阶段D附录B:Now Playing 大页(主界面横划进入;左缘右滑返回;阻塞到返回)。 */ +void run_now_playing(void); void run_settings_page(void); void s_about_open(void); int s_dd_modal(const char *title, const char *item[S_NET_MAX], int n, int cur); diff --git a/patch_v2/meow_launcherd/meow_launcherd b/patch_v2/meow_launcherd/meow_launcherd index 969f0f3b86e0b6c67a61cf2e935cd92328605135..d9bf63b2485d3333977870598225391c1b4e9220 100755 GIT binary patch delta 197221 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�F4i%mgQxVG1Cpa1cMBum3alM^dl4iL z-1T<ArZ3dN&5gIm%^0(;-2J0bM>lS0QCr5!>dCa8+2}XPlGd{`U1LxGb_wTnIoiod zYC8wGW82@?ZL4s#4Ci@mK6Xl*YJN31+RYQf&i8S>9owY4rKh+~I10}K*p%6ZaoM3a zHR^^0VH({c7K2L}SD=Jj#6oC#p34xXmX=<`3&%9EQyuZ%&({OS44w`8b6eL~>5!=S zUE81`vdp`x8z+N78qmvj4;85p1sP&!Elq|t*8d|0u7YUX)OD~?tsEyCqT){SAd36% zhCl25jusUa?Pd@v5T76<?$SJqd6<^~Qw`v6ZnegIL%2I`+b~fcY@FsGfIB+T(7LyG z0+<4PNe51cwl)uG0i=bTRT%7FV(`}hsj$+i3u|O3=p}eN5ur6PyZOcSxXa!z0R#== zx7EO~-u$9^9M9@xj1d9c%bx(bayo>B+I!HsJO{@4!t=0|n_M>3-b|zYwDYhJi8k(Y zpC6tFS&sLd@!&$3#dYK1Sd8uNnd2eb-)L9&Aidy<1SM!U0qP^QfFbn`gfW!iX;bhW zdc8=!!yvQ8-W(_8==6$2I=G@{=#DE}yqyo$RRimWE(2NmUq{un^W|(i<qoy|e8?`q z^YZyJuQ1!KKMP7EjcR}ct0BLx)8MT@ji{Bmd2-*oZ6V>;g3D_JTS60SW!qG5i${Q! zR{`M++&Tf~j$TX+QV&U+dikIkj^k}NaT=0ch?Bui35kXUM;h4*SZeSqvNU?b2y<)X zG#J43A_9vXubw3r8t+8zYRq+~F~6OY={O&wL(ti^_Y}XMpY(l7W#T*Ydu==qD}28; zqM2tTH8M7-5;iawVl%mdSFJF3YnHBrB<=y4J}Cj{IZ1Ua7;`Eh+k9alpdMBpyY}9+ z1}D8DvtBa<LI|cjvkpw<<0+;P8}b@BfFAMP+kYueT8$9UmD35R`A$LWd4;h21bkzj z<nqJ&m1iE-og!ou7M;XWC%Lc(%-558>uquJTT@M<x1YGf)Bnjvz+k|2Pi=$4Lb3>D zsp~F)?)b?a>VXSnUCzPA02o7+Ad?WHqIJYT_1OhjMEwI+s9G?ItIi(a$l;cgUNZ)a zO<;}exB0CS-^k2n4ODdzIlr)E|K!`B`R{ZQSok%oq3H}^H+}UxktV$R>Ma~3*c$=g zfJ5h@2s8s&&8q9=+B!-PN-e_0x+<_ALRf?t)0zWPCbOf&(o&<tY#edpj#3MC4r%~{ zHPWNm-gT#$->hdsQazAb(;DO`pC>`oD}S*n)b0jZKD)o*^#oeB3z8?$5`xmHqJJO# z+G*_MkUS)d0VV^{r)uFDf&Kf?ovQ9aEbG78NaLM!8lbv+LX(1vo24xKMS`pOG=ggu zmJmj8#k3`jlOw@GAqP%**YYZw<ZBhv0*d^Z(wBmxPhe>QX5Q&)b$TRJwO$E;iT9Q( zKaYgFd_+R54+#~xmTb&jwPrwAu;t1?RhGLrEC(MVRw|RkdYLa<z)ag!)}ABEAjzIN zq}nFHfo6NTdVYcoRyVHpB;Em=zbWyqzRT2~Cq8i{qxnVxrBT0ewJN+w7HFY11yXL1 zC7pD?ve#iWT3zYK^hG1p?2BZ0R05kl31l56vdnuzy7OIazepAiN|f<4?X8RC>^?`l zg|5qhnKaE56jLWc!2RwnwRR#LeJHp{32)w|UY;n!b)KMl)9u&w5L8tlc27_x>M=ev z^veCU>y?|mT2)ShstDmUbCMiy-*yy%MP+rAb)`W4$`COv6N*+FoDCK$^n0%RUI9Ox z3J9!$A|OK@evyzvh#v`yNT}ri7RrxwO-6kX<SCvCJ3z#Md&5P?p|0)a4$RP-;{1(t za|0nc&vNj2PA3WyZ?~0G;An>9Ftf*6!5&ZHT-VOlY`d)yojPx|da+SnGnIO9Ee6h` z)M9tKvc7+$RBD#~40ce{aZDY-YC)Nigx(81-AwB-t<OAVbGz>5uR@CB2-KFZVm)HG zNyNT)wffUnWw0PLVWO_@&I?gr#b{BD%lG!^>8uJT%gSiaF@*e)2>B!Tc2&toyDH?a zu5$TESBZSM%aO3z%ZIu~NSKslcULNJVu&5UJrq5Nn_xLoJl%<qS)GkyOV<p!KJK^H zcQxV3-Cn{N*>57nPS_vnWZ$UMic?*EquS^FsFhG^->_)&8sd;2c#cxLbz0(mO~3c+ z`@OFcRpC7tbtyvO7jR3P6cfS{;=zYa9C%n_lV>yb>eJAMntWDjezed@Kb&q+xl8Z< zi*Ra!!toVB>Sn`m`81w67>cWKihmWlyqR~o={U2DkNr{a!?~e|4h(b(H-w>8^1!4| z?u3zYD2DI=1P|ws=RbC-78+WAic+e9i}5A2ty!!CYv%7Y(Aqo&YZKBs@J^S3C00k* zV&EDSnv-QcN;d9P;GOG%Ogu3T@lkhMK5me6ocQE7j*pNg57RkLOpmg#Pa3n@H_vk% z+NphVvp)0YlN;g}Z?Q5Pam)xNlG<%Q#vp>o4-GJj!Fd^GQ;h@8GaYBa!}P1J+NdWC z7IGH}Q9u#dWIfU~!`j((uy?v+Z(EF5g<Q~fL~Wvqnb#Z(cDji+U1gb8j`OAKkX|Y} zG@E2v)BZ7?F?cRUva>`Hjv3Lfp@Ju7w(-tQqMECJ+8-I#`LGU8{!fM{-_}jl(J9f` zlFm;%$cm$>&d`mCrE3#TmK6CdF&=3nL`YA2o=#b8;Y1itjOF9|!6d({5ujA`DvsX8 zR|D<rDS_Zgm<*AH6LRdB9}$9eZ|!x*#C9(~(O(h;G^ST{-SMDG?OQ8)s~L|L4!ZPl zfb;;M@~w@!JbkDfmzQK&r#}`TTyOKEm@)*8Kt<OalX{PQ4IpE}x?>LBiDrK%$9~;0 z|8`DbGQ!a~o(E<S2UCcHImE#v;$RkWFpW5vM;uHf4rUSuQ;9Q@dPF{1TyD(^w}aTq z5I-W|TW`1G_Y2_Gt3&|nxb;y@g}J~28_64-u*0rO@_D}rzU?(A$UL#~0NA?ueQ|Zb zaopbp_+9S)PJy5M6#VvfbYgD$Kj7O=J8lZ5W!^(p?JpamfvQ>V$5-L3G6BE;_Y$ji z<V}GpEP`}{--P3e-~Am$#dNIaY<TSf<IrMehH;=F=4S0Tj`d{mIKW)B4EZt3;<e}` zr(Tu&oPei@f(Xj_1J5b$^A!}}`)ls=IG!xn<bL<LPse>8b@Lr|pC7r;i2MCH_r1q` zE^(h9;0gX?Io)o;+wOC*`)qcftKH`eR0t-+*o+#$M!XZSPQ0_{i*dM(y%s0OwC;f< zP1fre7c}|3#e_&I6gRsr<^t3Yk3%>cYy@#^iPN`unfjzjj*FJM7m}B_Svjn+$4Kzw z^b&Ou7~w+jmW5gtP@<<g-jRYcT}@^d%*Ry8JuXbnJVacI^7P2gau%Rpp)6r%WW8(8 zx8Ob58>pCU1!_Y1B5J4S*NbK(B9>E4dTgHPU)kYa!_rAt_YO4n{m-9O@OSnXR&VqZ zUc39fuhH+|QJypur#Y~2)Y_?gmW<sHwE8})kJba56MA7g^+NNm^+Ko>-h1D9g>Iz9 zB7&ov5e0{Bg4Y;_cm~)4We~V%JPLjjTGOmKH5n(aR)^hceOE5{kKwKf=Gv$Xb0qo9 zur|cQ;M`@<oJ#Q9!SCxeNlAyUCc8laLijK&6w?D7b@ZPp1#04SnXAH|;cR8I9f}Bu z;R6uCOLF08CwTmUxFr6(V-dui`7P}0`+hgu%K+UvYjb>$wK4uSTE{GiZ-Zj+1~}^x zEoJ>#`=BHsG6jO(6yZOlA?0j=#Er+I*!=8<Rg09)GZy82i`Dv)H$de_&;@hGqFyA< zSa4gqft=Kt57Et;^EUF`>Y{}evrcTLXx#uhM4wwr;@pLmN!b+T;IblCas<#{m1<U@ zF#vW&s@bXGScPIdtN}$`AJQ;o?ptU1`Zu0DUgehMvg-=4>v{TUS}S_)$sw?ds6&3> zF(d*))KIygkRorOkfMO{6b?SgJIHH1Cgd@th@0M@d3j9DV{$$>-*FK=l{@;~53dji zG~jX3a-<VTvROXKcKMxbn9s92a4j8v<A_RI6Nb&RF>qKg6kTVe9!SG)m$3y}rHf^Y zEL);r2}s%Jirn6m6!tJ)>Vu0ih^jPeKJ>_XbX?02XAzzYHJ9S*Il-Mil#%=_XuQ<8 zs5f}r>7bmhIU4~LD9dM!`;5*&PZz<kwgBT@VeN?LLQTt&8&#Ivq|Oj`>w;r(frh6K zG-4;L916;R!#Zez%YIud(0Qsb3&yO$qR1bCqH8&q+beYXWXp1z?Rollp-Ye>+#Ns+ zaa5aPT7j}MsF~sX1)`n5vnGgi#2biNh8THRIT`(>YjM&XJs69IJb<Q(d79d*kv0Lh z`B8gH2I>Oam^Hs*n?0{`Ox;=bjF`?ylyHozfNqRw{4(1#Tojv&z}dKNxup_p%^Y(5 z3GJvjuzYK(sSuJhKHK)oXNP5J?gg99^WVf~*^K=veKwp3eb%O~yLwlY(82ns*i1D* z6Ssr*4ud8>B5@;)w8W0Fvl9TE2Ru8%ca7Z=uu}Z<9shuLb5|{3F2_b5Mz5>XwcVD8 z4#{$15sT^{mRLVZA|vUDHqx_1P<K2{tS{%TeTKz567sZ;3U|5I&w2w+X;w)5j~iI@ zqTUtGFM9*!?;;;7=FK7;{(H5)n}!LonE*l1!a#;V1fiH;_yJ(3JsK0C!yV#s&;}be zi6*VA8#XHRHbv~nLoX0*+F;a1+8Ib=Lm8q+YwIDu-~N1KI_isQaGPH@3UcVeL_tTZ z#T0Zn6wTTI2G>yT><)5qq?z4Z@opZ7xT^`oJO_@NY^cb0r+9XlCBpFJC~Da&in4;@ z*}>VM$$(vyKTqU~dF2u_w6`}EDr0^5B6n?awFv0)jE`}ZJA=8FVJv4#y(qaS6Q=C1 zYu#nnm-13(Hn<5hqsmGF^z%ijuipO5MeUrEppTO_(wjssdJw>^w7i9u4VU^hV5b-J zC{QSh@^2I|JOg-^=3gkB{33DCYSwi_4TYy)Jw5%RV&y;!g<-#r6=?#Ug7Gc&SqPTf zVROtlozDa0+<YLg9Dn#WJ4M^-0oV>~JmB!@wt&v-5iIjH>Bt@kX35pq{;{2`hlEUS zOFA&TCThW6%$c=0{w`>MJtx{Zol9|*C&!6&fh}K6SjZb6;-a?5w^t7diIyv~T&&FU zai*jw9~i^=jg0)D?vT&g2mp#`8|Y(jY_pgAD2h!;{R2;KNS67AqQPgzhfwK_ZbK2E z8LU1YbKh?e>-DTz<`U#7v;q1k5do-=AZFx8*{;yG4h@JI=FzQs{4w?%?x?pb*nhl- zx{c+44pv%bykl9}A~HN1#5Z5W@C@KtiU!kN!kPgNT?6cK*tY)|y~Fy{OXEASOVJ^Y z2QZbPY3*-N1Ln#iHEJ$65%HYiOBEECtf2>*$}Mg!#2q;h=W3`uCawqWI9GYM2nU;? z7n;!3rkBha9#41UfK!-o9`pAXiDVFi`p<93Gos#t;)`VRYp&?^qf%D*?}}owPIiD} z$uXf1gGXF7)<f};hQOkFpqg;>DGydC@>)O~FY>JbRyfy!AddQy()?!x+&A$5EKUhU z^cGc_Zz2MpWA4gqCx*i!ycKfgIkxD=RcO>KNnFG#H%2)IVO%|HVKKmQNsra*aSFwv z5giYu6pElF{-mkU4~Q#43`M(FiZ^=S4etP-9pw%<DT{W-WF}$=#xRap7MQ_sFau36 zU<NM1K*VZBKuRQ0?6T*Twla-2B14HV0z)f>lEJ9ii1XpkB{lJE7R@$GxWvIbhk!#; z<QpcI0MK;bpKQ&QK$RRC(#`wmA*K&#C!#GTP1fcvPABT*-Vls)=XaF7VWqh!P}Dsv zY2MVeE<vI6-A~)7I3CD<*UrHn!b(h!^opQ}`CPV#q0(%xWQ8d8{~SidSQeK`7L*jY z5Q&T$3%q=bD6Igus|kaJZtXe*mU_d<G<5ixC=CY!`Y4Wv&_%}q1}+q@^v*9KLtszY zBd(G$uevbT^gDZ(m?06HDmK|AH6{`s)h;i;_l;=;jCm3&S=89=ZaOhtkI$X=nn`;( zI1S}*wkv19=`sf!6>t;l%S0ciHN~elbvbRnP1Xk)Otve;`jU*2r&HL0M%sv2881=d zFqGq+&t&bR|2xN(V@!JBxPHwgt^`q5wB|sP>7fEoPPVAUU|FN|Dut92=ty)h3S*I= zjf<QvoO)b|fZ#w}H-V@&#RGouaj~MLDC<Iqwh1Bw-!uFdVk|dxVTj_-q#7-Ri$?;R zJZuy!o^hi;4?$;*jVQUdiE%xZ^L<fzve?vu1$59qjk5Z5X%TDE`nV?$$RvJj1xu*= z|A&iG_D1XGSmk7ZgJoiPl6%z0Ue&t`<gn=JMlTHYi^@waloXJWCbK?821|-s5h$PT zrh9$#nz$awz0O50M>iLS*p(;ioo7bET7mWJh544ap|?KFk$kN;6fH0HJ)1JXrBy`k z(IR}Jm<Q4RbjlTOx&?c8D*AP#cSY`0+#i@Go-TXU{q|XJy;GWBCms>ay6i=$oO<St zzOoXGwI{_RSxv*%Mo`Lp=rorZnM6@cmd~{)5eOR9&(mRt70eJg{|P$9^AzNIi=ux6 z$vwS+Qg8dF2zz#nQC03D4r3Mvy2?ucrvrpD5>CY02nLdZEuA9WPY>bwz{O=rV~?^L z^hlyBD*ip0dfJipD*0D^zHpN<N;4lTCJxfAdQBN#9ni#`Y^z=aM+-;tw#ggTrsydN zyZdEW)9?NCmL=mV`9+o`9;~I3@43&=gyOw_m!@@?Li!T4X$kMfc9vM`9_ux1)sTtl z=@Rhre}$nDqJC6IubC_LB2ap-dqanCcR9+UzDvX!H^aZGY`9Cy*)A=6iXQp+7t`{W zlk#cD|LDp3@K;37fD%zuem>UYpfvH!U|c!_V&qKa<Q(r3*DSC~VvAn)=J<fHXK6wW zl@EXyd<b?R&okeo2g<2I-i4iw#{KnCZLl-?ZAGg`NMFkI{bc$JAfJg=8}gnm_UpmZ zxm>wOWR!rXms|)pj1FxXB+vGS?eiGMDuO(l`WodeG?1<dr|t1GDRpj-*?YL^Xo`N? zodMoqXRe{YNV8>+sof?^H*KdOd->8HyJGHQ7XX^VD8)$e5vW9`lV<Fx&>gd!!!Dto zPD9qFb)TE@%lMn8@QsiWO%JqM96;}RqGOnw=FNF;7{3_peR{!sEG>);hU3%-^smPB z`}{cd70~(rjf!<X4Tzfe4M?=pb)KKUtnUPkc?@Nk+3q2A4HPVoum2lq(JmT3_dyIA zx}^(Qk2XYvVlgoVx`}7n<AkAkFUxfsALNFpCfRs_1{RCtKm$0hjYTT~ZN^A12L481 zw=W+`^&Gd3kgsXJ?aAyB5Fcf}?+V%t^QkCht%RCiuNCIZeWBK82d9cMOfp)(i}JrK z$||l92*rbQoiRP~1jIx$D2Sf_SuB@^Rk~4l9q1p~;Cju(Eqy+_ANT+N%KW3wQP)xa z|Bd^fp80#!#V0XpcKdBj3hXS?X%k=KS$V%A3>MCFPqd;?yvgMdA>Vv^oI7zxfK`?G zb_(o=0_*epc7}cX8d{$nX^XJG2m+rQ`+=IG{GFl<d0=9yN%u{F#m#V>#i+Z;{aq4G zLVI$I1-%jL##vwwydIH8P=VVcOGo%&+7R@HJ>$^Qfh6ArxF)Io<b2Fe@`-vs2vxv^ z$|J;o)mTNp$_W5{>jcCZ>!s8w@0Z66M_(tRdQ7|>L9Z9imlry1nG%SsVMi%Z05&jU zgo1HJU`LF~m(4|27fjkTZFkMU_{Y<ansGt&wfG3krZV4+q65=6A7fpVwLy<DMbi<h zp`0uKA+G6X*Ab&TmB9C%jZV!pPmj-*`E79!_VZ5EJJ_{_TcW94Lg8zK+2L*QA8dMM z*B-`>%ttu5+le8N;Gs?UcoYDz@b&i@G)k;*c*fk7vu*#5w8`ivZB8d;VEM^%2nk(K zh$b$+nZ|dc8Eh%Wf%CX=#*j!`k1Mc)CA79tQ-;Y9;S7vX9le6x+H{5;nBoHeMe-CI z|4}VaNicKz8cB0ZFGu(5B@AHMFo1!n#qji&j-&hal6=JX1v1r}MZLYIvyP>AdB_;( z4m3<-z>@_LSEhPfNIiPmSxzN3)+jed027;#mXBwL`;E3msx<$0eca{Y7<+<<PY+5C zhu5eFga?!X(gWIXHq&@QAaW>4OE5xfLwPd5Y?DCipd%q{!xH5*N*B00F(#lvpbbt< zI+Vo+I2E6XVXA^>7h`=ahF$AbIBtX>?0AYk`8$2&`Q6*iOKzBrvhh$>kB#)`DJWzj z=kW|{SDY*tM5H|d?iNq$9$+aKk7N1)P;GnWw4+fCYa@6IY>5BN3g*K2BCsn6Bin^` zS=Mi0+i0jM%fA*p;qn@8u(R&_EwiR9%8J(6e{y?F%iWEz+C2>W$D^+0t`x3;7J6Og zUx{s}8&Q~w8!5kDw1{2Uh`UGp-X*{QzL#cIi;V6d(w@@*FV^k=J@%WMja`Ku*yYX& zb|MsQff5G2f*)XB#L6(S6En~?j8&j_I2xzbRrWN+{r%3TW&?z2;loec4NysFYIIP? zd2XjDM`(_Ok_4WzElw-_#lp(w)>4`8Jv$oqe_xd4&$rW|kQe!<i)TklAeHtnvpmhn zUxB^p`NCT*_+a0H#m{;c8;oJ>{Y5HLP;L{<-p@kM*dm@8nIa-Juz}{kr%jG!`S_MK z5p_<4T0a0YBT$lFL5mNuIB_UYmI4dT7N9v5`tIhgvXX;B9lb`5h|btQuCoMs(8!<C zz$9$27Ho+<iXG9Nae~o;bkrmIr?dawH{zBE4*}0axQA;m&8y36!+S@2QG22IAde=r z^PonuAqrQsMY0}&+>NN|fz@1Or|Oke%zcU+^Ii**<cdoOr?ouINC#TWSx=K2teDPE zTvHhClgtLA47==Y5dC{*v|vA8csh=6*pu0dA%`I+`4KQl!<6^V^+{?JkkL1S9}L7H zz493eml{IsIkb5NjoIFI4C)OpB@6np2F=7Zrg?8(6zO^Nv>oL{D(iht>)77J33bPS zP7iwWy<v1vh!1mnUItq*EGsrADPlM0Hd-6IKo8)9o3+EpYDgJ6ji3^dVtj*y*AbWl z;#d}H4FZR#%m(xyT_R(nXh>HE8*rRvcvhNd(01z4;Biba2675*J79Y}RX^c<X#&Z- z51wj)r>^hXWMzS$!r~GeBXX=E#!9*-s5|I7AkZ!#+(=K&Ft2ZlZ`^92&)xq%PDJ86 z4#$#e$#j{wkLmX79nZ;pgwD|L%+ByPjoBR9<alp=euq(1NXJ93LKgBYCaY1<!$@*v zY=jL!jKw`8STYafX>IHk#X)p&Pdyn3M^+Aphe?#vtS-vl0>$xEiW#`!tOHj^>}n`z zDfSvnt$g$vO1MpppeQTF{vgFDXgE5O3;xiR2p(rJ=5+)*7IiK7kL>6IKY%%ZSJyhx z-L(e%WgB#^ePHZI#ExkE4KNS-ZxFiE6-vsi^Lj4fT6ssA5g@!|&&iBW4RNh^T{u1J zr%3V$oNbx($)`>W%Ein6p3rY!Ll2Ud>nNm$q#RFA|22CE*|^^9douSNe(_RRTVqmf zwfJ^QZEE@V<giPVi;#*59k(tE+-YL=ixNB4oN~-VlMZ~g<Cj40h5QlQJ623u$<$S! z#i|L#;1ev8?RZE@WEtmW$<~14vMhH?#0$Po-pSVbISs3CTqo;ia}qMzG`1)-<Ie9p z?peu5)VQ8t2k`YYR_Vl>#GHU(z9ORM8gJcz>$(1Ruy+8A+GJ-EKABX0)ZeZ{=pcr( zNkcy1y0&p(*vUiJvcxZR8HNwK71L)F^7FfuG8W&m93JsSNS@i>hdVu@b1mib=tQ;l z`!ZbLIWf>m4?(~ts<1ZU7|sA}EPo{EI1DE;1BdIHgz=)jZ>ULYLK^eDr>yJcq-r+X z;x_x{Wn-~e+=U`r<FNMFSxEQJm}emBPwxKT=yZT|!}W-c#Im7^9-ckga=i?m%?L;v z+`8mg2fnT*s>u|9z%Vv6da&t7)hE}>VY69$53<*y$tkC4GI#$gZgb|iQWe-}t|)HJ z!n`ZO*2G5$$iwmpFkV3%^GD+HNj3imIJt4)hwA1Z;1Dy_PpT3ab_gcBwsF7Og>=Ro zfBgqI4vFVUJcn|GB=RwcP!2|fpsrWvEtN&1OcNat6Z&9a?eW5i&a8pOI?EEAi<pHj zq}NmlVh!i9Z(Ax01~G<^K4rBn!ZQ&MEtSD!jJ<<A={i&y!k__z_77!U9zpQCM6yIy zfdFD8fSEtU=`s+~Z9g<%Kk!3zk0I0XK8R%)c`r{q5=J|p;hPChhI)<09kD^!eS&~} zIBJhU-Oa4KZka4~L!Dt45-5hcs72c5AE+Ca$-1#M=bPvzh}c#9y$zOc7Fg*lm#BV# zQD(R}eq+5i*#;+T)hEm3kZC-oz8HZXNJJziWO2Be&1x(WEcdGMXwy`a4T{)t3LV$F z)xUX}nz<aYmAv{!qdwMEip#)#;y3Xd@S79dtG7sluC^~npbC!ia#=952lIw=W{9{c z%ted;rLk=bP>=tmz;=OAABf)>emH4?uy<e2czFYycTg|#;c`@-RNK`>9&n~u6`q4W zF|ZBlzUBrqG;MgMb4Uj2a%z{G{`w6FXvp+Tw?4vY+OO<uU!wibw_AxzS5AeKON<Qv zZ&Q-<5<U)r32^aHT!=|+vs~Qg1I`bHrG6NdfneRRFz9tt@nW%64-7xf5|0!Q0#kJv z&fcgj&DJ!J10_=tWaegQ9sfuDGb+c}ofFllm<&%`cdVjysJl|s>K=~8XNzWis)Fw& zIN~0|ewMce=giXwBHDQ%f*v#xhC^5zlk<Z(WYOA)703vHz_RO(Rkcpg=b(%d-Lzj7 zuD}6h+@dshg{&M@vA@18;2$SKCC#kkz7=wQdIh5C1u$-SPhTl-PBT1E-Ln!0oiV+h zSt-Nm_YEC`@gq}Ge_JWXPcw0}{5C@^g|K6E2HI|UETF?R%@LzJy={#1HW|7iY-D5$ z;JS*XOcq3y_y~J5wr_>LA_eW-a3c;>57?ycxlxX<BVGTiHdwbYrr6l)<PNnl%r1OM z4O%5fMcE!{1#>coYgdjjnX6YXVK!l=D%>zr_I5A4R5JW*gZWt386t?~W{zfG|Dvvx z?fdtry{qKx=xgr8VFmf_{4YAc0{&Je6e9;UAN+&SxEYDtduM1VcyE+@p`{*kk;#tG zg4{F6aXbt19(=R0g7WG=IL_1$9uw`WP`V6?4KR8(C9xMX<OgFb^az_6mcq_;0n$;n zk>86`<za>ma>?d3c;8Udpb5q$$na4grK-;ptE%v3904c#7ocI1&H_xwN8Da{71jJ3 zm|-xj(_uyrEr4a+x!~Nm7N{=@n27*3It8?eOWtMOF#6yx01u*46MG=!kcYwerbgZ( zho)c^sm9$R&rz!<r45a?bclLwwuxc64HJ&u_OhKhCj;Sj?3BZEKr3T4VnOR{*Yw|m zZy%nt!{>;L$_L=Cn{&Xmz3bwreWYN<Ua*<7Bgffr(n7vKdAd73KG&u|9ERbW0o!4q z+;T(WdWB}Yg|PLnrA~6?GO2Pz_HG^P0(^t8N-JGpzXJf@Gj2{AcurAX*rTvrcD9@6 z1GvJ#Log~rZbA>-Yy{m&XdBEi2ewZ3+O@9?X{ciSt*d)iI%kR?Ot=w|gT4(HMIy(K z{-W5kgF!F8qQ!xddhtO@n$zdB6^jVkk{FeOyd(s#pqq*98aVl2k!OhltM=A92MaXw zk+jc`BtH{bXTdGfnS>iujB%|!CX558QI`W*l{VXC2WcQJ&AI}{R0lj(ipXfhyYxLR zVt5AdEcLBdkKQ6L89Zx00*bAnMPWf3X<=B44CO>{?H7)+Yl9POo3LL^Z2{Lp=%6cG z<dqCE^KuKM*@F+NLrAY?=%_2}Lk@$oaPlLDr!LEJ{XNDW%hT<H+%zC-1JwELzu&CJ z---Yz44Cs%Q0G>pZ$@5r_H6Ag*T>nH-YRF-@MK%aze4v8D{ZV)?d_%T)5*wMfJnEK z5Suj&ZP!E<r&jH)&2;3l*!wBz>YYpMoN=L84-9-ALa(UT#B_DW0u!*$btz1*uG=H< zT}v^m>HMI&>^7V&=TWdVMcTp5@8+E&=7meKKLaN?m%4I6T`St8XwX*9Bd~H3ED9p3 znR6iA;h+KwDh!R#ueiVt-jA+fp`eKZ`A8VwWE#dkcmK_1QI7P?UqWGI1?-z@`Y_E= zA5Bg3DgTdT)|4sxX;wAvgB&xS=4!GSU7D6@2a%;?dTf4ivElFnSGThaV=t8=80M#N zLzrca4o}%HwwstoA6=T3uI~Gh%*mSq*PMK~Dt-f<wlJqzKXl~he+20>W&fs59JqiB zDV+i4p*iCekO66~i3`%4e1MBK@?mnLS@5+p=UYQq2{8^+{dUs9NYH_UbFU80z!r(f z2Br-|S}oFQk#@eDb^+3sA#IrmjR_-Uqt19465kfn!*3(wexwn*tl(UvXIc}&2dz*z z!(v{wrB&9QQBV+e&K31=;j?Rxt4~_x5FH4W){oAM)u7wK!jGPOvRGPAbqTEfk3*|F ziqqIfaBADw2OsMC09xoltn)pdx!a}x8pPIq1h}F!Ca&n^?1L!E#Vj8L`sQp;Hg8kw zqj{ToHyy(ban_hH<`e`PMxBWr$DGyxDsL2(;r;_@z8fEcO~=fNfaTctU!d>55HU=+ z`FBzsA=Oc;p3?V1M(n5u1)BiOFJO@Lnyv;1mO4Q#Tw+j<F%1Pfb6iTI(TS1|=ZVlG zY+HcLBQWOALZj@_EVoA;$BJ>pN;(tpt@3MDW)r@DeXG%zQ1+BMX2I0cS5GvlBA*C^ z8%6L=eYPB~_35x`ne~Z@!^&_Gy}eacMZOI-f>w*b?jY7wCe~{fhVDZ6l;#TuL9N~I zVB!~o*+i@m6zXOZv$ZA$M(k_50l+o@*eEAu4tg<Wo0Zuv2I97aaJbP5gkJz4^b^f> zGtWV0#7XbV$2o_KSsX6zXz=Vn`4Hkw(-9Kpe;f%7V%}jB7j-N_zC7gf^6YWT*&;34 zmv|#~0yTH&@CYgh`Bh(Xmdkan#^L0A*9J)FZva5-6*&$UtPv5$o?4F{|KVbZtwmLd zNca<j+m-sJ+Zk)>5faj<=$Q~l+NgNC3e}YPX$6CK!R+=Zb{Ng6S)aP&xIEYF|8&HR zh{6Q$Y?9=v=`rI)KLyPCN*A6Sz)EjUToBNeUP6yfh>_uG5LaX>X|VOrgA)%(7>Fwe znGJx9FTrL5++9kG;M`N{Um`L(Ec`DJ<>KKej+<}j3W}b5M{Mre)H@`MLh+&w%hqR4 zV5FeYG(+Un?y^^u!n~xBQtG=4cTO4>-t^Mb*y~x3Lp7haWprZ~K|JlUYs>?LZ#L}O zk2%qSccft*XxO#ip0fX{i5S{Pz*4u^e+EmPBUXn?0KgcxAvT<g#fc9jKz6`Oe`u~S zv4aJI`jQ1c9OncIfgU+qCxil3(0Oa+#D*%rphMz?VuZTCO`bLX7Pwz7LAN)?sc{sD zghqk`3}~PT{|pknvnx<iA&w$06)R>V#oNpbguSHASejrx6RBY~=#yb>GhxIKm33Z9 zg>vqeje{7GFufy;c^9KyVCmg5nD!Nf^}+8Acgw4}&>D0P)C9bT?~&sh+TA7)>9xzq zIv@=;2eWPz_G<S#oBYZYtXN>;q1P1i`(ajxL2JW3vRX};ns!!njgi}-SPWkB?;@5n z!@<DO$$yiW3F;{-35iI1HWuX(EaZ*sWOy#(jSAZbNox}<qQl2~L*dUbEqi;hAE9}N z36}CLUDs%FqF07L?VS|n3`zmIqJMLNJ&q4vVb15%6}Heoa$&Em$E4Uu7UW3Ln$hB) zx}j-^KNbi#v|woj*3BbdY}jaq$mh#G2O(Xl8J_yls~GNn;gfEU2$b44HO;T~T>=3< zb!ys>%Yd{7Y%3L^eoIukFpsIS#A_wmT{jEoj)0^<MZKMlnL{zrfN7}hXjx%QMN6b- zRf&MV3CIp<q|jalRXzN1Z)Kj*Mf#c>h~_9Pu-KgzmqDF<CbE}{z^LKwB;%O>mmC8$ zFh(8(%^|fmj<|uaPwk4!(gDVv)~sHdnif#Lc1cZ0O>RdHm{P86hf!`8u1RP|Of!lU zKl;4menZeVJfNQ8cjWu9T~_CLk-Gc571vm_wpHJOa4@Eo4jW~zz5|9p{SNA$VEw%< zVtv{+xk;_PLq1S=b!rgG?S(BV;zG!sjfkS&(1NrzWHr?fsQGuwspH>E3&WgiOj&*~ z^y&u;Jhb@Hn>~3cun3cKA<8a9{;MxmAKr<!51ik>yeha0(N69~zv{$>jl@{}lpqAi zg)Q|{iqQ7PF5Eufo+=vJsdVv7fnTiOnj!Ll`B&RUz+#hy;JL<P!`Q=I1T(7n-mU<6 zJqMfy(oE<}9v*7N`(aAJ-2G3tZRkB4Wn<@K$&TZem?|g?$rXau^?sO=FDaAF@065{ z*1K)+IhUj$3|QJ~tP)_B46lZ52G1*3%bCFl>^|7+Oj=!3whj~#Z5N`D!z$w)mcvbr zC-L;H0U{$J7*=oGBWKyrJ1Z5K!eWJ6Di$9f(>mCdSD_X|bxV#jh<OCnKxSek<t<8j zd%qi&*uwJpriEX9K)tNw#M0geFv+lt!Va^i8#&Tf-$`8melX`-L{CNpF{@jHfPv33 zKi1tN=rW*{JA~LcJ|70>`Vy>9^$LJx4;6S<5(~TdLDE4sCQH4u`1rie9@sB>l9c2n z$FTxyp~=e+5oHu)pU;aRDzqL)#W<AZS4BJQp(^*svcm3tKu!EHqI&&ewrcw^qI`k( z?)@>S9>{wi&%9BLB!U`m(ydeLdpi8x2UT#btSq2rI2bi%Ar2`87~g-2cSP;FX02SB zcYj}*20%T}5#oyWdmmIM*W#q<a}TJ7pTJ;-cCPse;-Eg`=4D$(>r`uhf_%`j-}#9g zRe0!>x>i8lUv=mENDFoN#cv)|rR!vM@W`@Cv@t}Fnumdf>@h}>>m$^)a-AGMzp&HH zD5y?-aOEH^l<x<tsxRRw7-%q>_Z(SP1&!ja?S$(gP{R4ZtR*gTpkde!472R>1!$uJ z<u8YZtohNUs_<T!mwQ(}M_#xiPd40at2xuL2w!xstco647H}NlM+f|!3-HgPT&l0c z1=`<nLBz=;EHe#39$7X9O<T?aF%RH0qf7q2LG_Ep+d-f?*aF|+hy@sqi2g><E=L;c zUJP&?aTUJ#8IW9!yiblk^GkqG@u?|8RqQ_LYnrp%Twv_wCb$GU8D#JG6X!YL4@Q;C z$HnmE;3$uU%Yl?R%l(~2Q2SM6R@zYY*ZX9~oaW`DF+ho)4204<QusHpSj_!q2G1aR z7cg@{-*<lpoBhc!6QHVjxrtaqEXJ0H9d-CmxYcmcPi1CaY`MRKRW{@4L3+<j)%H_a zI<0wmpxqokGfUDK-g_a$ysdkd<BV-y4r8c0!)vYSeH<fVUE&yUy=xCtdIu!TUpiH| zL)OjY<^cWIp=W@TBFqLjY?iCX?b&O=tcaaeZ~{IFTkcc1;5)~Gp)HZdF7=%2kN|4$ z9cE|VdaioBLr$H`WpFkIxiLL){$T~)pBs4U`zE~mlftP}(k-(R_vf*m5^#$HtOuI( zYUoab3e}bC!5ccqs_pA#-t7O01hB~hSL*cj#f$JHEbjzO5SZr%t}kBTrad<<pq*Pc zA#IMEHf&13X~k~@2hn}_b`ejrnK}Yhs&E6&dKMy2i<>6TN!-XftSZpA;dnL5HMx1F z!pKe-7}cB_{eR;3Rr3=!F&!^U+yWay-K*Skbr%G%lHukm?+3A*ZTh#Rp4cEq+pio_ zhX4$pgEpGyC_D$f0-Fgp%vvGEuA8l9Z<N)vU){M87m57lXX^cpa(vF8e+DKJ^NX)- z$1V<#{g0oi%1yE^ND;zagr_Vc9(IdIi^<9v@xU-Dbtm%K<=fS7H=*7k+g18zdF3dN z!43w!X9*{~8wBJrSqlq-x9x}F9{_(N1Jiw*<#qOdY*%?(WOe$rfC2ML#I~!MTV!eB zfq7<=JVV3^Lc1d%wJawFb1&-z6TWYYoa}h*u`O@Tk)c0`x==ubIuQ7{XA9zx__rd2 z|K(klkGLbv%o5#1%hIjbF9hoD+Y0@C>{V*}HW^lLZ<W5`kD(48xMk)UIy1$pu&-4s zw#qXLh+ZGi`(iImPq~PMv#EF)y5-gp*wY)-^WzC!O|Gt{DXE%EPpxLVu4Y)jYDVSk z)y0SD;!_OBhqfV9oY#D%Yx!dH<)-=4`w{mKU|e@UcY5ckwfD=y@$=Dj3l<pmiX%y| z2sZ2Y+%-M)z{2S8q|hoeN`Jdw-f+eeUH)<e%$#qJRe>$CEd5p_allj;2P~*wdjR73 z&LWleAgB<cEBqjo&_PgVI6d0|`x_?=dr0k8*FFds-|td;AH??U%U$Yk4?=_k=7LU$ zbd2ugPHX}H6Af?_zqVan)5*Q6Znd`4wVZNq@e+)BW4fWR7~cJO-!zc#>a9-Hi|3%9 z;i?@57h7Q66z=eCfGbTT%NY>dUNXQ5mkhWm4E15!&*arbWG9jOG-u|=hP~}cC`Prx zVPl;`nYQ}l&*WFej1N{hi+$^hC%AL-<B?`=Hj4GdHE!CvxhCS3PgIur&al<jx67{# zGNz>tI|8iUUZ~b?$30pe6XU|N;AarHkb<v`P%m$nQ*#J48Qdk}zA#kjln1X+qq<~p zJZXL;dYj?esj21~m9M8y<>RI{sexBEkP$Qb9TcbAP(H}=23yaCBiQNXJFz)hJcl{d zlLD;0+=Y<Cz)Wd3c8Bp?+Kt7`(rz;vwOFKkzyF}kGtKsyJIuE;cc^E&<(1=st<2XW z4w#(bAE8)801;5kBEqCmErhB$rqanmG$gDE^(J}UNHu>4?&USO>amU15VM2dQ1|VS zg%|K@l%aqXTC-MLO`XDiuh&r4l`b3$^%HX!JVY-;pt1s1b!>+`&o0@asvknc`jQ=H zs3{3YqQV!TGZ4T~0gbPz4$>saZ-F-aX4mdU{uh=zZBSeE%zhj|Jp|*pNtbO{fkOk! zu6=HKaQh3(Q(+A;>X8pS8_z8dwDF|&P5{>18`PcGLf`K=OyiUz93Kw0(FPBHO=$fq zezSen%epQpOz771eayv_$`?CS@gM9#s(z;&S=gD2V5f+`j#&v`3lKDVVNB3|`}Hh! z!%q4{AgEz4%+QQsh@j06?1bEZXtsKOr<^<fx#d<{rYq+O4SEYLD5jUi#L95gXVOEh zUhnR>fW1?5AC{BnK8P#rCGtS$&=|VeolL|od%`l`X$(25AzngQP2jM3Upld|5c)#- zLzWL4P8vfWPOs3<r_a=JIny4Ib*0SrG$Io-AF;rCsOO%Gb}exUf<PiLiq?JAHILvL zh0=4pON$~nW^`(ML(XA6YRe;#<*Zl16ywz!8~6zD*rAnH6P++(2Ye4f{JHwr@URo} zxyLQR;JoSG0vvdKO{+zo0S|$^d8!iI0DbxV8b;!a;xyC|8Hr^O4h!xi4?v?B93pGb zln^@DLC!dTmn@z9Eq8ep1D7M9CxC$Dd#tuxYDk3Ne~Rw}<XcIdz8OZV*uX8tSk}G1 zOOBe|Q6F|%q*1DlB0{d|1Ok#mVIxn<ODcPBzqW~d!kArCjny&h5I|OsHgql9spdY4 z8yrJBIY>iwzMLRDUQ!+@jtykq4m-aO8OGT69ImyhNZF#lJqA2PAY38cG=b1&#J1YY z2(LkU0^XPlFLZLztbJVB|3f>iZ)qxH!JkfJ$2X(nR%UF#7L7cCImd5ed;)16Qknk8 zA>Mpzw!QQg9rh_^pMRN}wp*6YX9q1&RbGKejby@X<E7pNl@;VV=#<+o5RduVl?zRk zmOi#|w3K(Qm^<wg9YPcyJpcmjs&{tFg4sk~i`)z3Z3TjQQaDgV;Np}=^}9j*0h@@U z(g#hvZ)SZJFz9{*HumE<297XMnPWd5lQVO!Lmm%5ya=^sr+WM`-1smKOnck}1QU1b z6R^9`X&weTO`z==#o$9b&>tPcq4uncdE=ky4`JK`qPlmO3O+8coYq~;P|POuo%fA6 z_!u{U+!7?gHQPKh!CNvy+sI3;+I`E-z7Ad5doM_HPL4!Av>ob>h^vF@t;eA@Kzp;F zkT+D{4poD7<-4%54(J}W`=0#bIv{L!Jz<pQ*PoDA7jBJ&osVpDb9bbVK!vtOpI4^l z?g2+JlSH^<)XeMX`f&XVJxSC(d*swgayc6lIC)i+;C_DI!_!xe<I{Am%6k%=DC%-e zaM8qfa2tP$d!u*~T;wVq*X>{5#?g**?!$&l63=Yo*I4T&r_m(}b^_2sA9u<Cg2|q6 zOX$ODF9CXQE;8Y2L4OK~&xjTn>@lz$H2MZ50g6U)5tli+kypW${5H7`xtp;0&6|9) z5h?$4-@1=JSv+OHQ(cV%9#Y@hD~CrpG9t}TR$^o#8c+`dmq6|?2$M*Iey>^SsTT^~ zsO5-Jvkqt=j7;L}`aqhx6KpA>NB#9+C9IoUGSGAKw+N<~I=L6TZJEoX&UJ+yO`v1} zIDJ)|<lj;ICK_cLdyk5WlN;XY4?FAhb#M`TM&Gddu^DIB!}r1O4kO;ONF(MWTBwsv z0P`0B^>m*wl6D;$_pksu(9)M_%P|LOKJjRD5hM=N4?L`1e+sJhp@&skkDMIk4hQ2h zrq_h@yv}TPu;R=PUm}Kj<`?YLci69CuWhEQArK))9wauK?E`0#hC1xn;|9BQ9H;Q{ zGyuS<Y1!)-8M)AcAZBAUqo0#Jp3?K*P@W9kU^raU14aQr)|b>$X>$EOu74@iXWY3J zn&-6$+f4utLfyH(XjAbhSD9N@v?<POi$-VJncOgV4c8P22J9J)3~+^q>-zfmZ7F^Y zEi*ItI4gQ(WJeb&ioY^)b1`)&iNZ#Q(hbB%yVlrOMs~-kxoL87HMf%4w5xflxUj`Q zgj4}HUIR7#uftJ)6qT*n&8cdP4ear`P)@uws)YpN6tz%e!A$E~sD@r%0!%=Yf&W+K zqvc5zyeX_ZM+3DC()K9ElYUs_AL}p!D}si9ufdKL`Jn5%TKi~4H58Q|&5OvZlX+1` zzi+r#OJkSI&hAGnUw2wZbYnNBEQJ_Vt$bi(Gd{4t$?5cnFyke}7HKMhN|#UT00I2% zR~)B1&CE2Oa@dn%{JVq0j26Y4uz2khCPVIG3^mJi!=(B5kD{d74toJ4854EvbLfBO z3WN^L2Z|?$9Pch4?^Hr7DrwQX5u3yQ)V-JiJt<4DH^)wJi6wC_Y&nANFA|$@ls}Qq zHr^g-On_9Q7DX{;4vsOs1=Lf#vgdCB^?Wk(58(*Nsk;mn@%`W!^WKd2JrLzMO6#nF zZG_yI1VzeD7nh)(JZDeJMg)GHU(w~-a?r{6bh|l+b>IJ}!E#EKcvM~RoE#dhOAk2L zyUW-Vn8j#zVv7oao;@?x*DemgGsUDA`%U0x=IOXOP_@uaA3iE!F589x&@^{3&&{(E z!Jywm0O%P=M<2l<^;5n2oE)xv@R5u{Ey9*}y$p5x?F9YSw@Q%aamyH2s3I_s_RlSY zGw&dA1~xzEEU$0<CDP|Ck95Ka$U`)zu%wS&d>8|K2Ne6{J1!yv+yr&Q&*dm<k^0%s z<%Q8%y9~bksko;R>uYbIImj5`zW4qFB2Lc3#<yWAGcf5nzlnb@<nXVS;{9YZyqV#_ zx-ZZ=(Y>*U?~HTMV9J&WRs>_R?#Qn@O(k#+((hiQrV_RGd09EIRoovhi+okIsNX#= zFOGV*_+TV(gU`Ia_8ee8)FHH&FRP6`R)MXZ4P6zO<`}tndQFAE2DEmTUx0o(IFQ0V z@G8ga(I0Oi<1PG{MtWr*J+LrYF3__j85xl;K}OgO3IXG~CRW^Q^v*A2-oRCYF&i$o zW9q~&<gkLnFRf}VLwH7gDitmhSZr!^OnE|$dO;RcuYwQ22+(;9&M@t;U7QVjBH>~h zpG<T5rMYEi_AhJ0^<u4M#*y|+en)JI0@m&Ia}~N&25;pU@Klt4g?8sCL!g+VEO;;r zS$p^;b?60L;*7c6hqv=wn3?9`tqH%0YmZhaEIiW$=6&2sNp-NOpZrVcBD|!IbKcyP z(QJE8!_3F}D5$*hT*ULZ3G1ck7TWNh=OokrfwPP;-n((+U(oycI@T(YNsjmjEW*eY z$;<*St$N5IAfYGFaCbA1ky7itqzYez{ylx9s(VqE&TMrD#d&Fdr^f*20LeH-(ls5< ze{91)RXSiZah?%N_XkCS0X_@{80%wzcbuG|2_d*!?R`-e3~zDk7QOQ-=x-bHJxz`u z-=O~bqAZS<4Qaq~Fs1g1(U)VHf*1jyCC&kItt&4NJ53`t754ylp8DVFT3&g@jU}XG zE<+^Er#Uyd+J^2fOiC#zM~#EuAblje5fc-uxa46vj3!YuZb2Dbztv}TY+Z*1wJlav z!(>pqWKzf>qcOKDHbV)G_1&&G(UqkM2HDVh59-1GxR$Zt1x~Yj5j@=1oFjh3!}agP ze<G~$JsPMe&DcVG>R*2sJY_2?+=25bYBIDFekV3aIk_-gc@#Amy`!Xo5Q%>RxlL)r zd>-{?k7ZsXok+pV4`6CJfCuh!s`LOxQ9-i!VrBbJT!LOCL>mhaL}3;%Y}<%CqLmF3 zKo1B4)HK3`kk@xO!at^eXOe-AdQh`>8=?OGONaqjGQbO5d7A(r0SxQ*8V`#Dn*VV5 z?O_Ac!<>;NF>$UiN_&}anvOa1>j4tpd-HI%oJ?dIBB9^}eSW>jbwgk^J(~+cI-up1 zC;ZP4-_YYv6mw2^^Utf3^|7v32AG4MANQ*Cmt}gC%;M52vunrS$yy2(6gv22>v@Rt z)$Vis*_@X+c7q}HoRP^)eu*6t9{(G9*vwm!#7b-xGoQCF>&Kof5xxM=V;S}ctu`~` zcWNEy$&@X387}3wLs=2E^<_CanmjBCT1e0iX(4$CJc9ie2(}SyZvt3qD>x8oCAlsV zB@YS^WB&CHFp5S`p*P(|RI``lMmV<ARU+6FXn`E%I8*;#T=YoSk|Lvl(u^`@A{GHP z<P}!!OIXhH*;E8ADYyd%<mlAt8f~!-<hSDNfO7`)m<hi1U9m^&+ZneY;*0Kp3}xV? zYA_tjNqx-ntwy6v%S2iYdMLz-b~3VM{>z<oKbe?O8gt?I8+&w;^U6qLKqDjbqp>R} z2+%kiT?)Vs`;9>`vC8)2B(mkOokn%ZD{@%QPmry{t)@mV1=P}4aENabR{mVp;fmlb zuVCjTa}saut_P}%TUq^MD7Uz;dG+BdvT!c%vfTr-8m|f8<KAm?qAu*bapsQVJ-DE# z435ekZg?O|ichv<qb0syII$=GU<Q&dDXc&1g0Rzb<}NDY@ZKS>R#*N;j*q^Me2c_Z zI2~GWN{r-Uk*E3ktAM9l8x<mUd*Aw7XjFU~-<n43D)y&tEpA6y)=88xAKSVO-w&U; zx41{!BYRSsb$gg@u%2)c83P||5jt#v8u?o}Fz?%!(9huH_AK$~cA7!jwGyT3ek;S{ zt0rCIjF?o(F|D04X&mJM6w38o$9n^C_+Aese^+riZbfCoyxThFcHqL%>b~E~yn;Ur z3pnja%NHl1lypO-KG??P)c236mr;LS2@ue3r8(8Eq7lN{9UDsNugbzwuT#czhMt)9 z<%3-IkGA6h$k^*KYp^Xh?NvD*NKkDk$LID}<+MRR#L8%)%ighBH0U)Pfzx&X*aKjT z(=wQFSJj8Xxpx#V77syAN9<(!;`h+FFm5?AGTeMqOJ9?9bqOz)Nw^nqz8;)eK)z=< zA^c51KI?c8>E-SYNVg$?PhSIJeo#0;`!vDu9sC{On@gn#@Og5R1SsIV4ub3A!kH3- zEBx8W7X@!~Qg?QBr>zGuz*#i4ql@FTV3KP49h9#HlLD<xBY1a>T^rk7->%~q3!w?} zAmEAZo`gw}u!*v7Ge&fq{FvC@!hrB|{&9{HKkS!4-dQ6aLfi0$NZnjaxSK|7DJERx zxkr1S98fI9Q(Z9RjCx&Gr*W<O-fVUC>vCfF7qiW_h_~&r?QzRj)P4y-6C2v`n@dl) zKE3`r_Ef!h5(W)MR5)OR!Ino31dHvoKd$nAFT=C6aL}5kow*4FmF;Od?hO1It_@>H zKEWC>9iF%7h&WX{_1nKg+XRC7Jb|P9f3S0P822ok8Nm9-Q(tg0vTyw(Ug&+YxC*_c z3hCB>b*@o$$PNd)st!dGbuv#>1)eZ1dZLQy{7w<}0-h%gM8zUG1Mz#y-%LXtVe>S{ zAl1}2;4RSdn0oOKDV5<mGzK19eA!Twhvg{$sE|_z(qR<W{_TB3mZnjjLTNwr22MfK ziZlRu$h@!<m-i<8GA{z43}AQB6Ke9CvU<?B&`|=4A=v({Csf;;a(rmU*<sA}1U-@Q z5S0l#Iu7@#ckfOeGPS+YIQYbng*)*f9I%1oj>c^WEdM%C2yL35x?2|9FC8c*I5z?e zf^`#~y}gV{nC-yaKJ_j5h6J(U=Xzx6`Uu_zs`Q{5TmM$u-;(3=)Z|mQ0thCy0#3dq z!)ZKOiIb*N_v6CuW~dbefBYGVv;}V3;}F_jzJ+euLZ~N@FZb-nY1gcMIv{=RNR&N- zYw6!ceXAZb^{vlJl$HBT+P-nRtj-s6^OfZ#^7-6+(-UcS=00`9+c=>t$BuT)KD*y; zaB*nhrazc)_u&2Zgrske`%nGmsp~Aau<F!rjY;K3o^k3o7`CH&&{%MN)~O$-Cl%Z` z?$mFWCVeZ*JN4T)lD<vv_idKTx3gflHU~b{hCj%h=+E|8zDyt~k?yxAyLqYCVZjt< z9u8`9p8C_|;UFjHsX0v^4m$IgL#uu@<{f#?AU42}=Ld}XHSb^(o@pHU<O;ESsfAB6 zV5Eek3b}Wo^KfE&z>_kP>yiEHA(gnB?{M4Kj)UslKiH|t_eUAApPQ^E{}H+m**E>z zy<HLx-9z8x+==kQ_BQ0n^VD*L1FL=G#ERB397lTNgnIFhaPNNO#L7-7HtIk@5AA_7 z-%IKw(nqk&8z-{EIM=xSjT5%E;h66@+DR^|nhwZJd%;U;?g1H;7>QO@ahIKs1qQD_ z3bbCOnJW&aweUp2kXlyw!HH{8VSQT}^u;jN1|OWbqOGjtB9ZQ2kHu?D)82|FxwOk7 zlSLFSoGdsoZ+if-u24<`(Tt<tMD-#Vtg^)ljn;Eq+YQ>zs6BilgdScb4xdorcV#fo ztB{3246O!0HTPXOe=owo^PQ)W51jCKGOs5ycnFvrgyp=RC)cG-s$Wn(Q=|e38#SQ3 zr%9hz^*NA5!4k#-r{!?LOATu9pJX6+(MvCMGL*}rm!8%K-VdDU=v0dvQ~avpPFv;? zwE<Xquq;Da#NL9^4Yc3zCs|py2v;~T=)Kt`M}RIcb<;ogD@!B&use!}F^c^5!HFQW z+eqgJC)A-oVRL5NQC0Y!%o}OW;2Y~4&*0AyaNb4!b0T_gME#m>uXDa*<Iv)yv<$WU zJvkuyDJ&KgN<MI1Ly3^<+EQWF{`XJ{AzF-5aRSR&BgpMZ^Paq>?9YJpl{oj5q*Hbu zDk55bUzOyPVph0*``DA#*?O=}Td>3w<ihUJvmD2q?|u6(sW`E5P!38nz`^T0)%dE= zUz>nKLbe^0c{#?VN7(+oh9LZV)vklMe70|MC}!&a8+K8rL)yYUw}71+ApC_M0ZoH{ zt65kId#YOxiRpR}1PP%QtK9VVpzh$efMjaxJes1*U`pd|1zndJ7{2?@&};e`?hchX zN80{BGWTl2;2|5@utsReh4I}hMpM(n(HFl>B?(90u;lv^q`S+<EZ~g<Fde(y8YaL7 z{0w?uR+jo<4$pJdC+6YzZ_IJ@X?$uXOuP4DqlJ7gwP5mlxkl49gC{WPR_!j}#Q!q9 zrM(R|;E&}zoT9%4>;r;a=x!U_sh8iEc~!$Si^JL(szw4|2KNbknR0#TYQAznzN+}M z%&)G7bf?P_QAQ<dn1?b=pHzB?E}`$;(#n$|jT`=q`SQ+Qwf)bsE`1)l$2zdU`4s8t zzk)P3b*fPxxGqrr$Vx5#K>Bjp<{DSHPtbqF7p?eYue$96SzYG2vsJkg(;L5E6(MK_ ze3I!<nTt~=^!5AS59Da$>xW~AG`&FGEB%Wsn5G@CNX)xQ%#aOOPrlb{Y(W9vqqcx! zky(O8fIRdP%M<QcQC__1`nS;^)%e`OSLi8q&tK#<bGgG=gRsK4YAKb|w?lTdi@A0H zO?Qb}!~kQvoCGzvE`z56sRJh4CXG$f@7W|_)>ZRAlvDLB)58J#RJTrViy7Zv{18WY z{`!=ejI1wI!cg(*vk&FOY1?^=Dwd&x02}-L7dPK<_j=d_gQy2bHd~JOAWzvgtoZ>m z%HSqwE<xY59V|hyyu9;&p^GsO;pdaLWU*hs0j?EG^znq-mbu9_0{rH{i(yy1LUdqX zgPg9X&s6MlB|OtSqfc@k+I!5Hp?|PMjr&NBo|fF`O*0KUB>?<QV{kGsoIMsq%ZhU+ zI0w!(OQa96pPB_=R$~jAMuXW`sK-B&r3J>rKGso|q@Uren6uz1b@C&bm-Y*I(7|)L z;IDAN{z{LU{a0K&ZkB7!Sgzfr35kS9u5wuq6m!hPwF}fef0eh{tvxDu2tG4-PCg_j z+xPdVd-#s$-a~S}{VKkHjQ2P2{bRTf@9a_6d<@syJw0me$Ff1g7K+8h2@RVu^G?gr zuziYhb=r*<$nt|At6+EH6lNN?ba6);T$E2u`v4*eA&T96YW86noXY%u<R{L4(O9RS z#|y`4KPjd?-&n2FZfP8=pQ{>2>t}bP*>ZdXwv$}fKJtFEdhsyU=v)e?0~VW;0W3r4 zbMnMdPYNd)4~B+ad>h<haw0tq>E1Y)bTcV^NH0GnzhCFi_`kHh4R}<=^#?qAcPA_% z!V*G=5yS50?j{C|A;cIljhld&B1J$%M2i9WDn*Mxt)=|kfK*eOCJ~jPmeM64qRl@+ zML<-HO8rc!wN|NGq-xQs^^+nZB=7Gxb8oUBZU684JTK1^?%lcbapugKGiT16IS1)y zC#8dk8d1+6-2iM5oShd>()d9w{S3hA^%>{YH$Q1+krcPV;#XMQwYlH;JA%_14rmOG zxOr2M7l?)-Xir}En;+kR@Kb*4gKzW=9TajzcOz~=0+4}^Jl%Hz*xVI^2hYjTETn^) z#(eH8=-UeGp)wCmQv|g^H-GLMnfg0g6d{dTqAz@zYTxIGfwTjO{-nggUm$T45_f7( zOD1Ox6BQEQ?@k<<8cc;I(ENV+3*U_?Tg*fle+V0JTmhSN$Tx-0-G^|!tK=zzzcevX zTLD5?#jW1`dC{j->c4#1nU6W&bA`wLs;e@coDlZ$Bmaf9BleV<|1aMn>x!q;{(r&K z$D*gyn8UCkr}gt;D7~&}SKALGAATP^?8_;3>l%z>3LBo)uIZ}PZMx}C=(gw|av<d} zqO9~wX9BTZpF;~IXzmdHk*8LF=^K-BmFeI9FMZK;cOqb~0qvt;KQoW`N>8J)4o_@Z z_L#czi0_<qm%iO<Pk&n7jjX)z@$wPO-@K<)=MkX5@QHTti75`BX!oMp!moVOGcS3X z%#?><qnbuJ?^i#qn!f^{xb|uF@mIczzPBKqo+$-Tc+1mj<WaN%z2KswxOD@=@m+jk z<gKsKCQw!QwJ$S=BwGZM4Z>cz4Ew__)Ik(L{4D>`I5m@b@oe}SI>oN1RqNN-7`b^O z2}pX~<<tjXgD0WhzQ-{97?S8QxUM3DXMO%XYRWO+_1QP#yn#IB`x?dczwIeM?4T9p z2JWv30hSGIK`aQpv7j0>_CD@AC)-7%W)oO{glKQ(g>10fNykA2m+Vmu$3Yzc;qY-d zr8AOsyLT8syls!^7QT(`M3*q)H+K5wYj9wX-?mDFV{Bmy^EJyn+Ud*by}zc!0U^}o zyO4uCvkNBhdr_T7d>Q?!>s?r2)q=aI^<6N>-@iwF+@(RdYl^I}PW#<mYh+=z3rG<9 z(_z0efN&vRGWV|ivXHR!^~kCmqK2sI=TKkI{?l6?=v3ExWOm;`=S;o3AXQGgMy>In zl^Z`*uX<#-U_NvzM3-x7`Ddpd3PeZ1%8SrX0hJ{#VudXkE+ndH`2l@>H%q4aI)JoV z)H6VYN=h6`-dCd*Su#5Ec7V_O)e*=Nyu&~?Oi9nR`DZ$10j8gZ^gErk``+KFmn}Id z=YCy&e;ynt6fAYr*j(2~f|-?Gsj9rPfXKYwD<@fh`JH;oE2oikb9}Oj<2utPM|PvL z@EL>3!BAO~49|N;ZTA76$al~uE2><b+GIyQdu1@?IsxvEAZ{Wyn7FQX>bOKdE!)k* z+r<O-s5w%O^nc6AqdLBC4O6d3X^-JXZ-NNb=Qy&wJ9MsBaSlVHCL`QK!U^G-?ofbi z`Ry-8N~lPY;rQ?MJ3&iWXE^A(Pd7QpKB}F`nUy@%8`UDArX~p4tDZI8{|tHD<Iy2- zk-#B1IS<?HX{X)#%prHIwCb%C*?Y{2(IudT?O5ucTx~WeJU?v*!6z-vpT>Z(_Ki$8 zy2;w^J1r)!D(odQtv%1EF}-At7B@0M1DA>enwtl4qp3GIE`ix!LotDO#z<$wON98_ z>Wds?^0*Wet+|&hOy3VgaH27dvMOlf?Ovdb&z@1Gei^m8o>9~Nm;=9jR;~BTocKrQ zN5DQF22U^uEdp)8{YIlP^EK?|SHmfyneVRnK$w0L>q&<m7Ag{x|HiVObZG0f>V*0K zCn=o)50G|g`6al~;8sq98*U1i`Ld*RQ#pAo93my9Cs)320P9h!ddtG%lo`f5C6|^m zvGER2Ng%b1-kml;3NTB}B@^KsgGw!&P1HTBKIknArji<Z(hRj&I1uG|VI8Qa54;8t zhE6|kHeyl)a-n80MioDWw?(%s%NRi&GFbq(juStyimdydQR`FXW^2#0YD^z+xr|Ov z15T#25Y@xFaO&Kt8v4lScsDJh(`v<{spXPs&v5mT*jLkm;cyt7g|)V-_C>?WXaUXd z8WQcQ##4R^HjvmnLM$9J<k@G*GR?l3dAZlEeKF6S1FG$H7_8N%$+Wn8Gq%Up6=ybD zT%(hm4Zx{^oHcB9TJIRlJ%I5x83Pm-KWA`AoSo|n<3xH?oe#bjXgIX>#h>E$#w}hk zrtVx{bgfrx-qIWP_`Su3gkMyuOHY%%3s}L{7jNCk3I_g%3I_UA#c47-&b%(*uJFLJ zMkcZCs^6IvgJ__pABO%Kt%siE^+#z_Z<W=_i&Mhd_f${XU?=TLly~z5k+#s<+PK6r zm#uHI9#^lOCeMl=zzLdP1Tpmu#kzRjs_~o<dTgLKYEQzBo5zgBH}ep%!JX#VIpZAi ztW)O+cIL&Q^zoGc!GG#Z{PuroEX!$Zxcv9^To01x@Mm<8fLwsePu;Ws)ceKb+(y*M zelnc?vvWe=0ap3gJovPNN)iVx*Y}e-=|iI?y{RXCJ@UtsZ+K&&(hSEX1JEjrCC#B4 zJI}m2dKpH5zv=bXy&dkBbyugM`4;9kg0CRtm^+#*%QAuI3@PERy}B?UFCQ<e&9HMr zxfS;dB3M@5z=R>aXpKRUX>f$USTi^RcrIM0q&AsDV2;XGEp>4Es<#8Our#uau5EhR z$DcP7$?epsXnTTXjG6aA*6%M%(~srwqDTy`ekGhp)l!gc=r6O=w>Wi8a1NFaJ*jpf z|CHI?o6{1Ts~T@vrj|YFrBzoqOF=zCe9<~iyc#VMi=+SQ`eCLItIZ=$o$mZ{VY%{m zYE1gShh@$Yr(D_#2AN&XZw|~v838^F9x3QkV^d_&q?w_+d<{hwv>s3uo{S@wt<Yu7 zMG#0geFw-e@~PqhvZ{C~4jkQi OIe$1%`PQ9G=UDnHK2T5}C0GVSIj#JMJkkRbI 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%0Ak4MMfm6ru(Y& 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%0A>1+e za&hg%k+dXLOiyK6RU<CUNUN#FE;CE`Iw-bmmN%g21+0mDmVS_vTmwZ)%vCS|E9|%} z3tVu30S&(Dq;jO0*-lzE5Yj%|xqItC5o2>^{8C@uWWf<(JX#xA{I2dnC(}^igB~OX zVQNEo{vaLRJV;b>e0aL3Y(qMnslSrur(+5Ur7kW3;4tI*ZGY)Ojp<@nbQuKkBJ}D9 zJxs^<*q{ZRxq~63S*}NGx!yR~lJgUE_}pM<x+8x{DH)<?d(6Zv3&*KoX+Zod@v@*U zi8*O=hA3BNs|9rwK18^cXkz(}oiP|<wB?(brMiv^hKOuc)&>&~!pnvTr^=5}>8Yzr zWV4E~(5dC?V@}#PM9-L~hlsLpo+<gc8;GO)OfkJui!a}QFrq+nS(IdRzd!+Gr8K}q zTBP~R<5nF3(gkK%j#tl>tMU|iomkAKhUM3ZReYK#B@3k4<fMWuk?qp_0}is7ona{j z7y~=AC#}nZ>5ykyo-SLmL{v<~)Fe+SOM@us8PiiY@^aMfn4u!qW-jeTrP-L9hxXb% zKU++<ne%(m+3TT4#rC4e9FdCzD#`&!WLT0T(rtjfd+!ax%^t4AYnJvTF-+vf>`35I zXP9Stv3++;f0oz7dQ;gj*nbVTPQ!M_a&%CdKFEj(m_Lw!G6USShGATXe9WU2uw$@2 zi~X<(UKl3wT><!DcI@)%ksg5S?oCBLk^5is4DC%@eWEZ`!-+R<@6C9Y^yl*~%}4X9 znTNT)=A$F3hxOKV`+Ji+Pb^-f>xnm?M;Xr3&+x@?hy663&H4;)B;W<!jUE{SFUenQ z46xb=YkqZiYm;dd20ikJG3)?-D=qwNMl>bni_R&G6pKX$f^+d|mnwijmNBU2%T|a_ z{9Wg!@_bPh|F(tfVXHBL@V_hz9yN^>E(#wm(j%L#tUM5QBv9dS;SN7<#r?}ebBBv} zO~e<B5Z-WIrD3MKXzmE?H$3E`ts_K=GZV*7!ZGFXUN+l0aX6zU(Q&sq%0(AOfW<Iq zqi=+oJOziT7)`(}yAiVHS1wv|BRI@((>|n|54z|o;-lX#Gb1kIaJR?m>qEH3Qh@y6 zyD0@C+xt)c?ju$l9jsGrOqzgPJD}=N5C0u3z#al_zJ%Wd>jlG{2ON#C^h|tQ3$us8 zY56yaxo!1bXVnKA^WmGI!?19!g8*P5kG$X91RUVHMvD3F8{)VvX5&u>^mHBXnI1=b zM~dlV+CvZ-5KisE8>edX;o5V6dLynbHSVdI<cWvNdFIvdce?a`LqM2e1*|3;)_X=F zt+yUaG;xaTL3KBau8!eJETT4V(@%Og-7Jb-Pb&l_*RRD#KA6}#Y+zkeZwzx&YN05P zd`acuhs;%{uPGF%k#DNFl6od4@|`FYjZS5JU+Ty55KAz`+dx1zYb;8jb-xhP!!^U= zvlsCcJxb)dSz_|}lQ3*JB{+tF5%L-n>%TKQ!3dtP`d8+!Jv1BnoSKn*=7@OB5V(_W z@iZMCB}&ZXcyiq$Qrp%Y0cp7^p2}|#yTVtga=7e_d_|(HARr*Lp`Aal2Puq$O1H%W z9~fgh7!}dVbYTgjeOA5vQd%%C?JEKkJ{wP0i^PfaK-(DRF@^&sU}@W4!K%PnDIM22 zLAT*pJc(kIzZ6de#lqD+z!;+q?5V3fc?~E}6Q47?QC+c^V9rgT3&o-!{63Z1#q&20 z<=%=_<qZi`daKChVYB>JG1qEcg&ACI`%G;1sx1vW)&NQMJ`0-)Twz|WDER_lhWk6C z*Zj(8l9oV4C1Q<vC4tVB@H~+~?lHjj^8~6KBl07USgl}=IFdj+$B1?DEUuFLe#8vN zc0ol{mSJzqFlIGqQC-|X70;Qyx&)N@6<8Rse|4RkYK!dM9eTa6qK@{B6|>!UyG?v9 zZ^Ki6g9uV2clZnm{^tE*?2*-sbW_P~K<xcqwCpyKAN~mP!=_w|F@NGVF}rX*!bw{& zS}?cZ%y^%G<~LQz06rP?W{s8$@#ZLN9CLTY;w%=-s(r>HUj#OYG2bjN#oX01k@l7f z_o8e*s|D-TP%E7`kk9!NAbWPg-mPyNG!IO`5ykb;PWhP_-p5IRn$BMWVl`gpVby*f z>cIyZ`#^2S(8HG&0h2qY+`?fVEM`88V;)K@kM8ET4j?quAm;|~P6xjO%UYsgY^n(e zwZP;Uk*Iksz*~WFq2r^NFl`E+Kg1tMX95IZX{2H|^$EO75?UctkZ*1m(|Nb8d>kbG zkVINO4g(Y6v*XZ9;}Xd=9=oxap{Kx&C_XyE!?Fl!kfCMKk@2Eyn>G?(Cc;+X=ipOQ zQ8=xl^B_9H?3G5TWy0HWEr<kG1IPM|&GdSf=pxxnfQ=#g`g2=%D*7}moYt0!u?+Q_ zGEvmN1=PSvmHLe;H%FJ>fu3ziq$PI%M_l3BcZXQQ@dXn^x!KJ_n<qfMEA-I838G49 z$xPXIic*KcT$u&~MpOoljW^sW=9o`=$XzZ{#{?(s;%Z?nI`>*koMlASTxm7bh-1cR zSmCMWG;Rl9mS{eDZFr;(Ya7O%auLr{>&bF)f+ge5iDI!OQR7Wl66IDv79hT~LKMUY zX8Y@t&}O4J-ELG^5|f8hyh*c0;$i<&6(Wn(#+XUMmAZxd!{-CX_`(<=%pmyER;Z?7 zm{S3cHMVt0R5=O#{9qETngkj`6zu~Hb4wDPo`lr^X6XD%ak0m&ISHQa;CMXwhVP;z zWURHge;eI;m*|piq$hZ0Sy47TVu};r>blOa5)<(5ruJ8kNbvAusI2At=F+OWM80zv z9yxu~N`D^jj#gX#b7Sb6yF{7U!%Ibzv4}|XYW`32(vr!LUXW@BC!=fc^pf{(Y{oTt z>Ezv*^vhGpH3ja>RH~dJGM#T)<qpD4YN-G*Y@Rn!$3ZXcoFbM-M)%Qh`NOT<`cTPK zus+;<Q=yD>vC_K1<@7Fn=<-yt%Uz7{6~M5|JVjoxhUW+d_@A!g5Z9Jwqqq+pp9WIS zOQp-x#H!x2LKb3I@R8VUX1%zClR+$So~IY@5sBvYDRlfEG<SV6rA`+`wr%v#bkWm! z1U0cJ;;r?1h(z8t$2e(-1oqQmIy=&b&P<1D0t0B|4DgKmKJw1MGHqg|8jx*<VV=2R zge{waH3jm{oq;0<ylKH@vis6mF4GqSlr5J@JcD9Q!s{8pbIybs2WscegiTA&Jx$nf z{UV#U4dWrT@ESF?A`LT8zMrGmJZ8LD3mh9~!i;w!g|5!z!8e^;_ln$9Z3IRg!0B4! zF5>oJ#>E@yIoM3_;jRG6F1uH_U5+`yrR*h8I#Ts&M#CYzqPMLd9llqT+McI`D$&zi zf|DavAk7^Esj3Rq_Z>+4s?Y?4&mcY~(1d=Dbn`29GA7FVLqGD~Co%!z&illS(k1=S z-%(Ar)y9rmt|1Us{RJM)K#y=gavyT~^|--d7~!6z?SAzJ4G!tqjL<8%v*OJjeaSTo zJ#~0I70wc_?A@q?;jA_`)`I7;;kkYr!{T^`WwwWqg5vmmM;u5-uXDPIcr<UrERpS= zHj8`Mr}UEFz$DMIGf2^9-uk*aOT=hnH+YvSW<V;V@6+!W^G)2&X}lkT@^SS2{m?ho z^d<LfVE18PDw+*l;hny_&&?K9xPj82%H{}nBoEC1is02{bI_r4Q)%lQ6b7)fb1;+w zWEu&w0L>-868qE+SG=(Wsus{wyJgLcMA=-iETwaQ(-CHjgpS>;6ctt<+jb_}^4D`y zB7Y4#MN0}T{<Wwq*c)g%@-%>SI2(dNkx<9`=1E)9enJL|Ocp%D_+SH1v0%oOc^IO= zrDPt&3EbuLKp1dK<O66M7(Vp@3>Jio7QuW~@qlnF3b0OM+7678CVYGgiwaEk%=vu2 z)G%IO9*>1C7IkV~=LZLQu@Wfv-$qReMokuYN{<|DE!Ek~v1nXk)F30pQG|nXuhZub zh#Sq_{U~)lFoat)A3dXnov&FH1|Kh+FKSdP9<*BVpl(H><xY7}xV;)7SX<OEHmqU% zLal-Y<vB2XkvCn%K`bzWp~xM>@El?M4nws88`m$^dW=TwKX0jx@4wqz0GmPTRCF); z1t;UG2GyzY{5x#lZ>W9PichNW89o5eaa8#bl!}M@)7FQ?Li0#}N?C}>=lA`oW}(<; zb%W}bszqoRx}|23SZDScK&gIoWAXqh^<xr4w=MJIC=uKfezA+)nuig8WdI#`SZp>A z51{Fb!Lo?oycn|t+;fZdY?AVbNJ;&CfX4X<@D24x8)w0$@iy-9X!JPuHgH({h;S>J zn3(J_?5U6%kb_qM14kQe{A+I%pqx*YYp*zkj-$+?|Ba|2vaO!|hLO?mM)$4;%eycf z^9o7d6ygt!SN@-t%LQ(ual+K8S6lSUN5vrTyi|-0j5!B3H~7nH->Y+JgS`33Y=gSU z1)vQceiVetPo>DmMEasqq;aPP0J0l{d;yos^4a}BIFK(ip5X@Kf9i5RJ}DfC{~j-g zN8>hJgtpVr{>MZ|GkMPLcOMfMOxAbyErr<PZd?kP57+rPx_b&n?c-v;bI(8%6Q}7p z(7v6q-)8s38Hs9O?!jE}xTsR;VMq@s)#IQXz;4`t^y$k)N;sFdt8`koOiXXH3b6jT zdOyYd26YZkqJrOuDqgZ(_>JgJM}H&YtiWPr<7G1fFXJabg6Cjq!G&9z64c}AlMz-1 zZOpfm(`a2aG@8uubhR2h4uGyF#A0_~h5JC7HeJCq1e<a2!&1-_4<Mf-B7>!ngzcR~ zukfwN%^j7LL5;Pr_|(;iQRZ*b=yVOH{HN0BVvU$$_8COwwFpOK(A-)mS^vJaklASv zy;}<lN~b{@n2B4weUu;jzZoRzFx1{iqmnu(O~VG!zB&xq;<@C0Qk3UBhkQvbKIon- z1nV)~SD4=p2FKx~(;KKK31_}J4-U7eg*Z#)Yn!mds?}=3s^wxFV_LRcIK#Ig4Mb=} z+QQ}F&#Yh5f#sOx!4YSdgLqG*lXwc8@Nfo2t`ONY=P8j@`ENCGQ~;&*wX+9vlkkDr zbgY&!s>cH$znsHq9M9=|2j{0@&d*yE{JItQYFG3sF9egIH66KuD=Twq*ozwiM{9Jm zD~#ELY4HlME0Anl0oCM@bh^4ixWc*a@a=iV_(9}dDZFkDCv9;XIlzVQGb}SUY<vXu z@&Q_oL%FJzSd#hE>A*@%j98jwu7b6@LE)zQeEurblj5Vzt3<h%4`uq3qjAbjuQ$I` zZ8so&S?|yWP{2qb80S9^!k9uLyNJuOo)P#^*WawNtVj1(9K8{ue`js36~DxX@37$8 zR*Wa7b6S>K=h{7I2jdfL*f8v2<wfVEt`=TLB*Hf14_?i=sln96t1-ZG2h+~gSSNvc z%bv!9Ex<ffy<EhuS|hrqY()t^{5TT&8vB{=8NW1zUl5OVgDH27@VWv<W<GNj@CR+H zw0MokPv2m{VVG&i_kR!5#Wi3+)Zu(aySZ><*8L1V$TQc<v*sD})2qMUeef9(Z8KpV zJ-JqFFdqb0Ka1(@=?rqMgPG{X4BaRYtZJQ@8~&~pe)T%Kuuc?)M-ORB&wmc8ed!Qd z^PDJ&{-11gp0D0~^*S)rc4%Puh}d%&vonU^>rP@yxKEXH@mStl4>%n&aq^p)8KY)B z!gWEomFv-Q?*+pfIQ^4g_~Lp@-|L1@?gr$0HW<HfgIE&I_2VuTkJiYINdE)s;VweB zXd~p$w?k;kMi2tw<r`rnOoAw5v50f!o{ZLFSm<LsHuyVc(z%Ub{F#~fAP+`;X(lb+ z1a$$f`Mf9zPYS{<e;xzuU=B4tkLmqXCS7<Q@S8Kqxfz{<SuJ-ncAvGp$!lQz_~sSr zpS~G#KLp=(n?<JgNB}Ny(gqr7$*LGnNZHHCYu<GorN1ENr?NJx+K4i2jrt8M=}Rj@ zv{UQ65JW%v@#G8GB@fI)%$RO4uxl1oy&|01`dpFGww&YZkAXO@pZk`}1nT5-T1+#* zow7xw=l>^M#tlZvc<=<Ya;*`weMWyS_@{A<-xl!UY}94LCu{x-{Yrle8q{1zHNO?P znE`zGed_-^4cd6r+$zdkIV`N%@X9#OFeChnaN^*86=wjS`CB37Ej)Nu*tJy@P5=L? z4|~G6|LubkZ0007GL5<o`5r%7r<d5CYKHaG{!-_+bbnR-PBfZz8_3ll7KRVaV*Yud z;rcAv+yK5Dl||<oL{ap;h|e(ilk`0Q`FW*O_#y;$Wftvw5qw#bMOR-0|L12>Oe0qR zU5C=_M$B5hhtlRoC^#FkXw^2f^J*6D+J^YJp>%E=_}D#^Vzxt&xrgd;#I8EW1p^1h zjg9@k!76LJ$Sq?&;W6!Zz$A<_TM2lsAKS~-iXXR!@?+Z>D_kx@e<81;LA{lS+rV!e z^LZ?k!wTw~?V>WK<_6qVNgJ$;cY1|aZ;r2|={vA?;50U(2N$OG=0e^mVDke1LQDW@ zI1GW6-o72e6{%K%e$<7&uST19fTy}=lY1w|^cB!(r^r-i8u|0qX*e(&;A5CL_U(j9 zeue45ZS(ta4wLndCbU_PnPdN1Ci3?<*Y@AaeDU*TQUYauTF1}iXT0du-{V9$6F?n! zMB@SjEpVs~vyj@3?4FGVz_zCbfQ397=X?o=S@jaRsZAKLVg<q#zJ%>K?ri<dZ<K}7 z)z#RyjcqEUr%}yI*e^d?1>%D_0(%2Y6dw*#9<8FoNatnng_lHG+cUr{gtVa0@ZRDM z1tb5Q&{2A<|Gx`5w*2v+^GC&Cz$GZl#)qx{G1%gOV5oG|lHqYK4CKN6Xa67?!@mZR zl!VQob-S={a72aimGlfcw@Vay!>%_Stb*v-q+ZP?(%{*|Fha_f?FLt&%+}plDTiH8 z2X{k@jk}&w_F$yWyPnqVff926_4Mu@ky6M6-VSb1odfMwjgUPcXd5Tvgd$EZa=v7| z%+IO=e}0?Ob;t4f_6^$rFaKqn01kB6wfSh_%Oc&H1?$aYt+#r@jfB)auvYP7sle^< z%fJn@Tkc*gW)pH~{$5Cv?m4t~uh`Hwi{N5g=q%#my7+=-V6=qJB71Xa^DDyJHd6%4 z{{PJsfD`$uh$#qY@(d>+mG!KIx9f9EhbMLtdcpKGC=<FJdn`YfkEXv0rUY}=04ARz z-TW$~A>4zniWFA~;HdtGWMW1R)X8uekJm&|k(N$_42GYy8ce*@>N7P6n5lh1DYP8} z5`8(Iji*a1aMHWNcnEc5puaSJwDmPeUks8HuZeW8qNh5M+Eu|-5)}skLwJFWo~ipp zOp5Az7zcuBI5fg1;rT?lB?#DffPq}KPdL+9An@!H*dhwd;K2b2SdgH4K*GG2^G7p{ zzSt+mhJO|yO9mC}7lkqHZqQ^p*jnk;{%$-(Ht&Z}b=*Lw_oGP<-$3C_7(yN^FVah! zL{)fRF#K*46uDm^tUjomLFKQDgGw=JUZj<VR%uI(gXJqA(-do4X&m=s2V3fo9dIQy z%4WWL1C<{TF=}$Eu<P<eFWFK%Vl@(4K9I(7_kU|ko%JogF{8?xj^(o0^D6MMU5WDk z5f@sGj!`(YZ000nxz&OE17MY!8|cCTu`2w#U^{Bw5ap>|b2Uu@WYxQA-5~2+o?g6f z0_8~O!5OOza=t0%$23`Ga2(1LzIree2V2hjzoxBk!WyetkIf}o>C^CnumD561%-Qt z1q0!^Z(%}zAeXkj1%>|UV0_9!u`1@BVZ173Q3f`E5@gkN;vj~3FCWFcjbVYhv){(i ziVMNAi{FNFjQA68i=uERV5s4NRn{Ra_TL#ss}8|n_`y7WNMsW5w=@0+4`Jn49LyX3 zN0I8h%L?~%{L6e+U6YH!5ZzG=7$tucm0|Dyy03?d-x9rIo(Pm=RSl1oC+%rswf@{6 z#atJ+f-&d{yJjq26JiJnMnzX{+3{ht@UU>r3{Xx}-G%jZFz?Tm|9^=K<l#Cs<<ih% zyzjXEO_5A#?}+~4TwP*IC8Ij!9ju6;N$z|HhQtqt(aCpkP%O}qf$?U;dun{h7Q~M{ zqE`^<M??`0qv3(U6}04tSmqw97zd|;tV6#VMsq{Js`QAD(vRYd%_GRy58ri0xcsO{ z&uq3j1jh%fTU!r%pagVgvR#LKHsg5@=QoVMH<;><c5{PaJko%&2ajUKwHNrji<MqL z_Nhr2G7WZ*+3$*?&MUAS=L>XgSE*^x+;&}tsM8%#j%>!Q9(`>QZ)97#hZaW$>`&l5 z9KQUs)hvV7j}zThi*ai-^G{am;a~PAtU0st=**u$$>cmrJtn5a<mTzl=VJw*wl;-v zi@N90)?=XF&^&tgm{`++sdwonGvcKc9(8b_JvP`wf;dO;whGeD_e5iA6g2g*wRzZz zO;=VtF8%%r{i4?a)CPaU*xF(b$A7qjYK~*$==BgRSf^l_xe4!Yu%T=_ut1(08SeWl zhU4s3h0+aLTPJzmUy;|KucPauGP-V`Iy9)^CsgAlYL$O%?Ff&Jb_^GZQD3&|5AARk zzB)|($BJ0;|5;23e+K7GnFjbU&e=b+j-OA?_k}z2PKAwu?@-_B)#qE|&A`!e+##vC z-#VF$o41YnXd#|~x|wFbFLt^7R@ngTfXmgRUkW||hjegK%?A+i^G49#4@9N+$$Z@} zfn(?an82(taPm7I#~x3J*+cmhln30yt<R~;tD9pPi}=Vp!dR0h)MZ2D*VX<Krz>>( z3?skVK?#2m-JMzRUbbvbfwKpUTEhx*{RPsw`KWeB9;NcXhyr!VxOqi_hnwMpxxi}1 z-oFTU3Uec)GSebs;8Z*BwSRgvp_=z}+5g2+5+9=Db=gGh_5Qv#am!N}l$F&S*V2kd zd{<Bb^5k;()QW`aM1O*r*a9I7!!!1E?A&a&@r~i5$yi3u7_Lb+aD?d?59PwbYx9Td zvalU6=){L2b<y*D7sMg)nxs}Td0CziKNebkv$-6$Oa4ZCV3Y*}3}%{YhIs^!EHHZ{ zIR1=NrZ_ORBER|})SKvcLwT80od`Q1p2omM?gWo#wcB8vl3L<{vkP{}DB!f69{H>2 zVLsoD*8Nr8XxBi5(bS!RBy4$K9be@WX816Cbz+On3J>CN%{`HH_OD_|G+&)yBDA#f zCr+B|Fhegq3GM6IJX&>9ctJECh54w|j@#$_k_a0>cWm=IhMVn?=IK1b!){pTd=Eb= z`w)n1bn<5K+HpZ1T|Oz^%?*seFvEv)6_A)9EW6*~{Xb1yHzZabq#>V-i|-15Lk#jj zGS)|pAaP2#%L4q%Jd2N`^$A>efX1X?dSHNr3~k^}V~sG(Xo}`Kc;oInzN7=qi_;RL zqOXaYlShkB!Jd6Sk1m|TQDDZEKc#cm2rBs-4$DoqaK%A?@AV_7=5L@4@^1bc4%aQW z>SCF<as)-6#tFlRZ`Ad3oPp!r(FL^TG~^}RZ%*Uj!u2=P=8tjUExLf|9&f(eI#x-Q zhi}|{_G3|EGw->PvOmES2iF4;rM~0%)RSn?MN8J`3h>^FvPLH~1^@-(AHI<ee}X-< zS8t?cXGCT6DIkQ$jIcIrYA}4ZoG)*rt7l-$KziffA(-Hv`MdC@zlwZOFuJjeE^2$= zmmgy4WT;(Eh3FGE>VfYqpzKe@-tZ*_oWGZ6asgfa6oLoBD&;e5koa$=HJ_oLssbuJ zizOA@`Da0hj|%AcSxgG{o9N<Mk*S!23BE_c(c+i)OwxKKK|9dTc4uN*NJ@h^KNPQ? zd0^7Ao|Jpj?&+W7?0c7tn;40}XI=JhYbd}&m}hW(Xv-J46t*s(QGTp}55vZr8}sS( z7g$H#eiJ$W0RsH?CcN4SMGJ1tKX8f&J=Ay}2qRo@PRxyLvS4$MHrzyq&*4pqk3-@P zBj1-;pS4=>MvtTmUjiQ7)bp@b2H+ul`aB3QVI*aKg$}A2Nf*DuCgtjpwC(~p@N-<T z`Wl;<xQ~9|Yv?BJZ>Do!gHQ-Zwt%p3vs=_V6Zph=9W8DV>FoyIY&xE#ht7(4`fH2m zo)Wlep^rOOSnC};zRou*crEDnskIR<B{=^na`6T4=$ubi6x4(pO{#N0T~Ul{Z2ZBd z;M~cb!+9>ZHYt%sP0P*LaHa;2-A`BGO-tcbdIJ0>L;T_!ksF9F{6;J@-@KVld;^v^ zf0UN|3wBpN^~Kln2N%-be~Hab4s$OKF4Vml4AcB?MQQH)H>YC`vgLe!bCT!TLLNUp z6JN_wSaJNwA;Eau=};{S;CX%pMSdr|eI@{Qb6>ZIWdx@&t2HMldU!H9f7FBc$C}z1 z8)@KK(SzoECt}Ung;evMdOrg>R?xxkpfEqJFbshJh#CS#UKEu9t!eH>@KO0MX!Awz z+dGAHhTTJj<oX_p`-MW9{k<qi`4X^_Dk^N!$X9yc`PSjxm<lR>b%jm2)7Ygm-$Uc- z^9xG71Sy19Dhn>*3<KN)m+%<FEx(}be}k_M7t`f`3s>}pU+6&-yzxURmvP2>_x*JF zGOUkqOMeh&%qQ-r>?`2A?GNn!=88COb4`lydRUK6Har={m{0jM68>}e;Ki#C(3z_u zwPae6CVvv7(+qhA8_Ee;{bFy&!$0fIgxELC$Rez0VkcqB$*+mPhAy6RYwM=INc-ie zA)b3|dHws^bo{g;s%#bRXfBr&TcK7!kw!v>w}@7?LU#a?yIQeVHW=w0Vm)d#_QNfv zBLz54#GD<0dftdLjlo59wN*Gv19dQ4Tt&X$4)<dE%Ez%dtmdNJ2IoyfIflm!9%hvf z#PJ<Zlm$E38X3ko<ZC~5WtEHx_cDs{ZlkPtWsP*l1Ry{WQW$6mD-X)d^u<HHe2l>4 zhxjH#!2r)SG9a98#Q|%L*pw0cRV?ivH;htkGA1&BJa@tmw@`^q=9^20(kh!Qh`bgS zowLc@B1T~`6bAfXgYc<|Lp*_w;{A@$#%W^Y^?&F;ItH)#$W+NN!()@^nO4ywb2kj} ztU`wZa9q<~-guXa!a>U7X&*Vo6+kW?%IyN{P~xr<%{_gKXrW!kq;MWC-wS#0;H4)B zgOvcOxUnyK`od`1$N4*qMtK}kVS<J)HH{FWUPFKmQ|YQ*dKW!m;UB1n39Gv?uZ;`B zta_Y^>u|vw$_(d|2($kJ*U9D^7|PXp3T7y-mvO*oZR3)NsY8H+9UN(T#=;C09{(n7 z43kM^kNg*I=!zTSQP8fK6BhhG=KED!K61B{1%i=@n7X^Fos6-YM@G{Uhs18`XxinF z`QbI?`YU<2jwZ9ctTJberrGVK+uS;eR<)Pe;g5~xaggshFq%%bmo?_^N7M9hxmcZS z2$w10e?dBn%)gE%cL!PG;2z+8a4H_&t}E4bkWtaQZf2>vzM8K=4k)<G<0z(`9b~4t z<0d-SLAs+Ort*#p&R^g?r39Rw>iQtLBBV102aSNYTa5xY<{|c@Y*B=a$ql68?b-g} zA)FeB=MEZz^2ran6_c>PpXHyrfHp+P0<WjDVm5=zuv`ti%@}X!ccJtfjTG5YHo6xg zPeL-p!@w}3^)_|mqEFxj2;{4Mt(Z=Clo!ke3+UZQIa|FW#j7}DrN?s)OwI6lRt#I| zuEu$FH3M;Y#7eJPj*MK1w`L^2#e^qPSJKu_a;tabts1X4I<+^Fn&NHeTXBV9WW0f| ze<*ydyz`@^*A_+Vqa^OouB5$DGSzuPW%;DBwe?}oGuBtqIs3OO$n1>Xg^2fdmM*jP zHY(^WbJ<;ja6adW0?LIv4zb^$?i*m^hvPjV@tv)+#~j~+l@mXOm5{vN%vwojJIf{J z+qY6xv@BGw+;Ms$c&MFvczV5B&1J3Bafb1U3SUAVjq~fw>T0Yq>_EQIvH^G@Wg(># zs&VR09nI&3ER!AIkfA>vwGW`lUE~OJPzi1ABE8ObC6Fi?33$XSoDH<Lq~dthI#BLh z7nyFxl#r_{#=(GFsivzei5&n+hNpdkHP_wfLT??1ld_r&YAKX`J3C<L^83LR?EqwR zACNJ<o6L1Si%OEVRG^z;Fv)eVVGe0+UG4>!Eb9i&$E0<jo1AMtTSD0}a)~07u`<oN z*J_vnj$tltSTG3U?^d;D;WgK#6?wQhmZ!q-tEP9h!c4L-kQO7Njl&`k=5jeJ^Ral$ z<CpnNe(;`eUcd^@^G)}hPk?a5)IlD0Ig)>Qc~sh67L@Z-S(*8G_Yf)~i=pX55<KBp zNMZ(D&a;2Rf_$hr_MC8kp3!pjZkSK%qmnU%)Ps!ic$M4cQ^;To2DhGhk;y#fR<36y zUG6TOQ#9fp+>7_OA<m04-^!$FEmIBCjLPdDI8mtylZG4F+qdz-EUy3Cqm!%oO;j`t zQ(lQuyIOGCzKaEO=op$GE8Q-(b0Kd7ltgtxpX+Qn>Tci@npouSMV{yxWAqTiBemOl zV^R6`Sh^4^3l=pj(4V*DxM|ifW||}q55`wo@pv9=c{X_YudS0*XEDsAI;hY1T{R}9 zrz%A=XeZ(YIbL|I%d|RA(>m}uO&_+cd|(v(apT_tu!aR`9!(sdQj0ijKy}Ku0H_^T zXu^EYBo$glPMbzN1$unEHtfMhn82Sb#nb8x_oW4cmAqtF+$p}585oR{mJd)c@kFVv zP|tRW>JlBe1+$;F68hBY>s<&)Ugjq_er2}cgM>D`&bVE*-iKkrK$AQw50Gp7IAvX1 z8XiYpe~nNNOHbm{ljd;#&^BMeo)98InMKq(9vMO@6JQa|TJa6cD(oMHai;H><M!WJ zMwIWBcfq)t)p(V|pbWEm6uw2r`CHhUxN<ot<}<y40+&`y!g44b2@fyF$LiX6)`mWX zj4kacGm97)KXLdyw_E|V<*@(T74Z!%|BUi7@T`?-Kx{*;VdT~I$J)BHk!ESbc|ej4 zDm+$_JY#R8lRc$N-DCFXu-QxMC+fmhQhF~r8&iiJ(+O?uC0&KMvkWR9tWHQPFq1}Z zF%pesbx}qKG$;bUjyZhNEy{?@NgA1A3yZoL(#>s*T>0>e364JSC*qfEBt)ecn2Mr% zW4?fN%<K)VA!j8`=`B-I-bOn#K?UHo1M%t`vQ{=VL>Uec%y==%Xpgxj{>4ix@Zbvs z9^7wGUi@yX>1bJj$662vI+eSmljn^2F6l0O8EFCbZdl;)Tw1ZIfptqwr#^rUBQdOk zk;sQ<A7KV(;Rsn2?@?U!U28?>ODphYqOo+=CCkiXV<|rl?!~dY*Tu<wHnZWj-Q@`q z$E)_=Mzh^=zIhd++AY-sBe{t(#w_SbrHL|yO=pV}(dtXL(dI<iXwEIAQjhfVthvx5 z%ToNM8q?O+e9wEWMl|0fkFny|AF1vLg?Yx6l9?n=ns84iVRGkXYf?O=#=#bx>Xk9- z(G-66PCrUh;g$XQs#1+tF6kFo0-plhq-LM-DPA8)f;0_;1503}(bvOa@B8$2D(fTX zIyeK9k^COfmCpB(UDd_=Y5Jl)U%Xduux#uU@&=3lY3OPd$uftlUzd!IzUg*)H(92K zk3qF;0!4gyU%8HL4O{!lq7=T%&zl0PZr8QN8vGan-;Jx^hS$gX6rehsDK?Pbog&XM zyvTll$K^Jus;RJ_^vbUke8E=#ZdBb*PGAhq^#k$yjHAf@^0ZkvjxO|<xTZ3W3I?DP z;8qQgQ`kK*K)QRe0X5Mdh87otMfkIE`!Uysc^(^wPk=OkV#b@>$5Cdg%yv8i(<?@? zLB~qXSgK2vc#Qy`)>^RAtZ`VP@#VXzF%_J!U?m+)m22>!BdQ!I3(X(KQR6^V-hDis z7zo}SIG!TYWJ%<J@!WiVf5qQ0U_4bJ&irv49Y~Y8sRMB(nw0~5QdZwQg)HDXhROCL zqoUR+8*0Oh^-q<Jr_@2RC^~}6;Fd1;G^>}-jHjAGz~}Mtw0RKpHUD@zI7k*cHY1-p z<9lkLOtY|Y(X@0q%KN5536nFF_Lkt|*bRq5P(3uBPNqwI&te?K43?E<P8rP~EYqXA zbM-jZ5vD}a?pnm}8;k+bbsU`=46f)fj+_}FLkHZN&X6eu9aJ+aphM)Pv3-{LE}@JU z4Bunnk5^RT=T8=4&iYxu&O<vh<ZQkW;~gT`X%Z~;w~-)XJQZbv1SiMSg&_eF{Y*MY zg!FV;ohiG<DB2^F4d?E|6y4*^f1qD7Wv(mGFF;t$%Q~I=1)nG$N3QFzls^r`6R^L0 zx{PwK1M_`eMyswvzvCIucdtV~j4GoG*FpZq-C;&dn7P}PB`@2|_wOWUHWDAagR-+_ zY0+nQf|@?R+1mOhsBw_3=<0>EkoZ1`2UFmz2$&%dpJl$#XO6K24~sNoYDJl}Ci`c1 z(&=nj82LWK#LbM>))Mb~_$0>l5HF}VI!Dfp;k0BtI5H9z@1&MyGok)rv)2S#mm?Q@ zIV}rm3H48!3EST@^Cm#7>}j&+pr=P+dvpY@9DR8Q72E)U33wZBkn6JRkO$vDFtbc% z+<M^AY>vPSEk1Mmwj6WEHVt#%wt2|MJwL*Dsg_Sb72QGeb1{MeXI(DD>(L2xAs2(_ z-3gRE3`@p9x#T;kYM9Qqd>AYl7bnmOb_M9@lWvtS885^9YXTJ@%<!iBWVu;*2Oajw z#kqktaeG@^Pk6b#x7-Pw_k3dF9Yfqm*^PF+RGYND$(|5(t5KlR{)xN6`)ZfnNz3x2 zH**-4zkK%Nexz|5T3c6m=df{^+lv{W>);WgPVOlh_|0MEbT$tIeFXYBA9%qn&j(&_ z+)4ZLWoGno1<St)6BPDvAKr5OP7=fAWyaqe0Xo1f8X*hd?p`%QrrSDkCB1M$>-KWi z5SyseQ2QWq6v%PrbLCW705ta^g-@lM*6mZn2>Z#i1D!qnCvp?=8Vuw!jK$0Mm(#ui znIHW%%5u}xd4)8uak-qLZ^B9*?uMJt-8=52t2bc{c(t5zN6Hu{!|AYe2ws^m)cC-s zioFmgs1F~y1=>jyY1c?}(~T49@<{2;o`n27>zQqO?}&!Lu9iOkU<W>V4R0y@O!zsx zscy<dD!UnQR!^jLH)DX;1MbaoT}n!YVsRtZSWkHJUg=f=cy5r?@Plg=JX%;NUD<~w z2J>S~|7U*WZC%8dRZS1$(At`q0kcZ&TNClZfn3Gyulj{t>^iC1QQ|c%xqw%;V84lJ z1o1YzDkyRkbQQRbx5y%zH%czxf)_{0g`ONN^b+?>hF-1(iZ0k)6<mb0FaV*nQL?MK zNEKgZuB@Q!B6RC^r2co(<uyc2;_eHQ?GF`9woE!wBqN-k^BOaxZ--**npdY^S1>JS z)8x^zzjyMaAc1=PF9eF3M7u^yS9+I_yn$8ZHN>}w$ynjybq30bV!4cIapG2Bb*Naz zIunt|7m2PVNKE7SNt9b6o$baWJ&bnTBD+)Ct#Xr9xX3x@e<`=sD!28Ta%r@wL?)Yi zC(*kl&@5CdF>U^J5`~XJS9O_0-Z7Zl{xOM`jlqH*7+xL&QU2p3Dj5r@gz$#3vNW<! zB_lh?%Pdk{N#Zs+ov*vjzD@3OuSZ(aQtTkY<vuVwb~disO;4*#NDKS!)&=V;sjw9D zBHa0<sI&1dT2(4D!_#nCg1hCFN;**rNnzeaDYwh?%<Y&jIi8;?W{H#pe9vP!>PgNs zPOCbCJ5{`<;k@5f((>D7YDAzHU{0>)yYn%fc5I8lng&BNhxg&5=%2UCuC|pV#>r*Q z33utztTgjkLB{?Hw!HmVAdHhWk^S!C7V$gnwj9J2jF+k5f0<%N_^}8<jSI(P9>ZdI z-FUe{EjoD6B41&d-0C&~J8WqlWRZ1<6W?QLHFl@>!pmG1yqG&MuqWI_Wp_Z(ynh#+ zyF(VH47I4zak6GweA^s&z23;XEgUz?FgDm=NE$ks$|p#tI}pd|jDH{;_`)az(wYg7 zr_k@tPLKm_A5hGlkWbLw%kPxwWe=!o@ac3Yhzy{{s@CI}Yb3^EBiujSfYC8JvCd>s zZ*WKORFD{z4g<+zC_!45B*b@Bos^h7R;@GYKcI7W!p8MRCCx5}YK!X2C(6u4#@%2R z?5FCdxP4|{gjp8rb2YdZ&FQca4>KmE4Ko&}!DyotCN7hNw1h3UgCYDT?>hW|u3%M~ z_j21Ac}k}7(>mM^u7{mKyLf79yvw9674l|As=PuLv~gfxD6|#O;Bc+yWChGyC3jQg zB<XYpIJ86o3x2h=A5MHsLjFgfWlw^_qg^L8O_IGhaC(wl$cLoLE78FSZ>U73_=o6Z zC1#MDr;zh548^km%GMy{E4@pW<epy;ytU24jMH0N(=xWAm4l5ikIj*nY&fDkT*ipC zc`qC8Yz@P0yfcN)-X*gmnX%YH(#!Bx<M@2)WHdtOdBhlrFMs3V_e=xK%ZnA<tE!wV z%TotV(UjtRF!EqiGXNv4TE&5i?3!2woV}YaOqK=FysqLU8LTbVOhN^BgK$`u%)c9L z-#CRX-wiPWw`7V;cL!kNeFT5tpiqE8bsBA+B7^VPuu{OY*CDhE<ryx&))n3iT5zu- zoI6#Ph6m1`T%1Ddrpm&$!@Pm_H~ZiN2~(kb;C)TkG+7W_N;Xx9-n$>4COg@}?w*Pz zknbMZze50{$EM=T$xpQ#L}Alq28+4u=~&NxiF`@05wbX9a|kP#d}<R%{ME>SeMcQ; z#apQRrpuy8m4*-9hcBIN?4L@`8ED5}r&7@j@PGp+%sG5<Djk>sdPPj5{F&0L%J7PX zEg>i~cc#pC-!cvL#wKc2AN2-~=7;1vJ`=F^Pu(r<m1}I~gnMX1l`N8HQ7|z%iCTXp zdq)m3;?=e&Kknzchurr;r-8fhKJ*gY6Zb(t!xghI*TY>m3ma*!dzdrAJT2fx#2uI= zy(JxSxdeKNGV6O<o7CGH9Opn>1WqG5j2*RATyb4K-~e-fv619RGA}LSFDQq3I8NC> z0aJ%}XWuX9+RV4_*}ZeNEV7x8-?Q7CBbTdotojw^rl+UV<zE54v$%ymSGwZQPG_(- zvzOslAEOKVaq)s)upR#e@%%weI(47KF|xUMjvqyq&&5E6yKgS09=Ipxg3bXDQNX(U zbX=I1TMI&4Htm0D*%VZfP*-Ab`Ads19ztAh4d7q>HJ0O}XVB?+n9}CX*q#1>jI^19 zXY9_OFPGU&_e^^CL16UsOuGD_^rk#L6OF<0AyE5kt^OG9{UA+uDVm<ZorMMHtNUlt z)x}r{&YMXw4}p^ar}QE8KHOywVLF1l^&!*@_v%A1p2MBHQ0_GUF_TgjA-(^-RJcf% zI_15nH~wLKA8Rx0UV2gL18*RG?;@Gv?1=QRcn_wmyky9DC4>FwGo)W#1Zf60(~tez z{>aA%mvFt*lL-5mz}6Jfs{Aq~p3``=;_W3RB{+;Dmq^Ev_V~#LRop6*cQ^axNSpcc zy_zm*RhlkoRsU~vxfktWx;UydT{=~1x&V%%3tUAPxQZ@t6<y#Se^hQY7go{2$3U0Y zt7zS0pvzjWSJ7q4HFQCG<Py+j1JZwvE=Vs~0=mFmwnTbkUS~MT{%h!hw1Y^C4y1kG zTA}Frde!c$OJsq~yi!F4OQCgT-nV<zQdwd%@4k=DJr0A?oA=SOW%8mKJ8Spi-^hhF zvvSsM^9fmQGk46|U0EYjZRWSLXn8FxKE*hnP%ATIith&k*s335Ea{pMRf$FZq%@=z z)PWf|PaW!6gd0{*LOjB)dQyk?JqhOg=zco)Bs4s@rOPpe!CkW)u;H3dK|mDFrZrE2 z`NrW(tWU``k%hClqq{<6n;xVsULn(6<7O*;+KjXw<Hg=447lqXVaTaPp5rTIQMe1` zm`JYKyHi%m0=rp~MzdE-w|!oX<EizNW5Vkk#woD>rn*i~mH)dpRjig_^x<mh>%Qkm zICB=Z%YuKpP`B_=PwG+)byW1UtQ=T;l=DJv#^dF}<o3oLD?73Gr+@z93s}s-BpA0* z_K@{fVAylAhxzISa;}jsS^PEU7)EhxWDonPukF-xt#sL1Xg(6nL;s{T>@NL=_OiP+ z;;HwZiJ`P-rNi9-gFKeaO;=i5Te%MYn^s^Lz2U~;H*P5I!J^E_>nR(q9Q6y%Z=*$f zrBf(>Cu-d$owiYJFlELqoW~%>P|geu>`?(5wVs8@D+;4K*2vywY%yg6TN!mL7n7<D z=B!)W;F)7fg8n%rw3jo-j?s0rzKFWV1k<P87W6L&@vqSSSsP?~TS)YF?T`9}<C^G0 zu-89}R?i!+phbNl+lw-;Fpi%4OgiNq>~C!%{}I_klv`+bbvVUD_S>m7GT@KX%^6ie zd)EQrOOq79W0!%(U38hFKAlX?=isiLLfLQ~71J!>@oQwPefvEYmAcN*+4@&02(w<4 z?aljinj`0aRm4wz6mjgC9TJjPe#s$&p4$XM&7rb-5bxMLj*Fw#L+Hc@*l*LF)t~}# zH1QX}f4(lry=b2~Ka76(3|KA*qwCLuwH^wR*%#s;72=;2^vg#d(!f4`16V-aTr1<? zFf!(x|KT7Ws`?+@u+1Qi_A-N--)eu0Ko2cdIk-3IfsHcG^yrA~8)f8EA3PJSINHov zO3sadSMfMy!<A!Up$#<9oLm>gdzSXMyoAoJv+^_py(j4;$~nGRtx)!_dQQel|I<3d z$7{jTZ>m5iii>wRZEJ!6tJkQSW%4s2nP;j12FWeRyf&D5PKf`*wd8yrRgQd474%cn zI@DRGLY-(o*Eyk{lk7?am`(Mx2KmjjO}eS)Hz~NqcF;(B73t<Z-&UPm@w~=~MTnWa zIhc^KnG^J2H7AE8JQ|W9Us3^!OJZLL7O_{n04Dr1kb(QmWpKs|ZMX<4-^7g=?OVd= z!MD*JzvHrtbQ8_GhBibTdtilEgR1Fe3@S+DwoZGsk+Qd-hRNHgjNPUkG#{>e+V45j zFn_4*N`o8>$gVG5qP@sxuh<htuUwQav4`_xbjCQG=F4H!^DNMPxeWueDa8Nb-nMx8 zExvY)^Q$YL!=QLYgHU9QcvW$*ed(Kk)eQJ=seBaoDTdWS_FH6~bx;9gPP1w6vE6On zS!ck1Z*y)NDfWsw6jIcGs0|Nu&mY_T^2%Y(1nHvs^GGnE`3NUST67$&d{o7A4f0)% zhRCXih%jG$Ps_JaA81}b^%pDEzXgo9;3S7E`MpO4Ks3k-+eb9N0UZ!_hSsp_IYWEd ztv^F2+3ocyU4|<!eaZkdv&u(5<G?W5|1|)dZ9~+Y8RDO#{ZacsinF@%iGKzWEx(#b znpHs4$b9s31*rH(6!@GA*yy=-=$<dwZw;9%p@FD#8my9L8Rx(dub}hKX?d8|foE$F z69ZaAu-`^;uc3bBm-O-P;qMrdCzAbknz#-l^OOqcsn?twMLTkBF*FNOOhjo&s#DWC zb3o^kTcSf!zEA-W_*IOOF74<Q2p?M)I{6AjWLFIhqq)88%4J%8RPhT(53@%*`r&V& zbPtZS`>FXg*~5m9%yQjnucB@zC+IG;H#pnTM{8wo`yuUd*_>@~9S&bl&MKkvqBX)5 zEGNU_bl~GxfLUBS>bVgxJn<Ts>5HebofutpNx*p>=JEP|L8xX_|6o8?<KTyy*(ZU% z1K1x&A722_0qxXmVy0Tax5M)aFqOS<BByQqPaddYsqtg^S-{D)Dwo!a%u@p?`z1^Y zX@K<{K=jYh6|qX>IHUrd{CMybgc=fp+kzpS%^IkytrVpuSbiR=LS^bi&y9i*$Kw-! zfUur+9T$Wo<4M;%pQU2$9}aD&v>LhedQQe9f$Gf+T<Jv_^U)kS$!^vSI=u7-9nQ&B zVS9D1M&7K;QwefJeh8G7e4V>txJ8e3&;f?G(_+_(+r9&W#qz89!161NV??msChlKo zZsAEbHW2t4rAN@o-N3PV1YL$Jt8WP*P{S=cab^*f?LnrdBAU<cywN(0<B372A6fw( z47SjOsN!HQnNw^v@igQ^v8HX)tsEDp=iW_YIDi2H1xt=)zw}f5^AJ?WRLJVP<l8h& z=iElly+A3pRENiwQW?VXP$?G$v+%%Herr0*xSbPpz?^kEo#fKrE~U#{>ipw6Q4Qiz z%Q#?7!f!64GRP1|^0OS-YE9Y|8#rVQyi*&%&Tn91*cb$2&e|AkyqUZyB+wihn7LUE zFPXKS%W9EkZrZN1L*r?0?tl#V0kUF;j#Kl<PR=Z8e;*7q<&RT}otd*oXJQF!v;2xB zUJlkTt6%2Qt@JTV>Q`v*YiM1|eg#oUhgh@M>pDAgmian39pm0U=Kv%Ei-zroEZ)!f zlg7FAO_2IM_6KP8Ua&gzNN6DTcu2~(Ap!fSKewX?|AH<#q3e^5zc55JtP2|XR}Gyd zvH9ppayCI~euNh@WSsaYm?Wc41q0^1Q<U8VfLBiII*)yc5&kh}kktASP;S<l<MzRS zhW(m~_U1EM)Y*@HriGw9{~0G6G%*%};VjMH0ReQ@5|G;wejO|{;vbyH68+Q8Y1sS! z0N7u)`FqF~73f40_o5|ZztWhs90O(-bQNk6Jf;GWD(g`EYffmTIIKvp)LU}^!uZjD zTLR?$ALt}UWOWy+m*kf2e4R?qS@yJ8K|P;AmyJvkbUjPU50g0AnmHr-Z~!{QGmz2! zEC4I|aU_OGIGWm@E`zVlBk8zPjV6v8q6@I*V`f?f>N9l#wb;836@o|1rt4@gm&nQH z#8!F^;!#HBaKNrKU2{$jIo|^2#z?^7^`YYzRE7vg{H>~pwaTe4QK2TPcn8a*QHupV zcn)wETd}?-$cM4~+%Fn6@gUHuMh<{;%)ti;SZmZucEpn$f^dO)j+e%if6*4;<W~VO z1h0`+sv;DJzOhdx;DtF_tmeo#iu(i^o@T$KVMkEW(;#V+?43C38IEkdMm@z=RhxQR zy$&=1?HxzzRmLWY-wUMu8!Wg?nJ+em1eR_J2JDlc7xc^v=)z0C)ugriw+fghx)Ccy zczQ?q)ifFPJ1(dD*1r08f_^v+^i`ytKHiD-Yy)TD^(<6xvoWM-LnEgQQ>$Kc8)|Gt z$sHP89BW0&uf?5=-N^}-?3=tZ1k4<jVkv|XzYk`UIVxcBU5k}6@vq?Mm+0~z!D7j; zlk+g#`Zp;Xt~~OVF0I74^4qnpdyv*}`b%$fx{~Hj+aWs1Wh?OYUAT^xqnw5*+xH9z z{pq_ZMEkk6KT+8`C_U~N$AR<1p=7nZM{5viU;AfJ*yC{7{)|iI2!Hwy^e`l^c}`Pa zo;t^+tmaMok^>M4P{74`ozU6{|5xm{^w*hR(cU8fm39FjunZ9wbfRLt4^_Y->ZleC zBJN)R@eTW>k`Z#|zc_$g3|sjX0#5VWAmQy<R-o=%2$FBP09K+bl`m?j`!5Fk)?}Fc zy{<xyhfCV8j7qC7S&c3Jw=T*n5BY@(V8Y=wYRhGve-W>Leh8K|i?2}jpFpp=AE^wk z^h4cLLbVC(w!lVteOYaVB4VFum-Nb?z}3g3q>tc{X&pGP#Z(m?B=tOo<grok@YtCZ z&B?7zt708JM7Lm869Zw*F;I9~4@q~_LySyz>3Z05BI7uxUF#PuI-r+Q&}y^a1B$B? z+F&_FVw=B*^o0gyg#=(ZrjsaYrX|y5<))GIIKr23zYnfs`z;K{W(l6LMJi<3^i%*+ zi0xvdCH(-ykQ~DqELF!GHI^;|i1d}}Vjuq<G`9TvG5Ltwb-Y^NJbF9Y%%Zb;0<FQ? zTwW>XRBf>k6BS&FJ0YC~73{y(`Zp5x$iNDE+VuZS4;5jTsyKZSef$UL*kfm@0CY39 zm`t9{A&AFsf#@$SKSY{+)*Q5tM-SZV!!fFUMcMBI$MbVJ6L|O>hU2ekKH}^d52Bk{ zXn(PQ6QN|)AAqtQzmQIH5ziuywREE>KRG`D*z=1i8?Gbj300(te18Hu4YeEsIzYkP zR2O79v*Jlys7GDCm71kw6LD5+_%*8lR+n5Z?P<zB!Q@=SIUpsz1FFviVcBP`Mccl` zaDJ9ESVQW46|kg3{ko8p<mW<anydl<`aF1`9^B6pEL@(n%x~8Rnb)>~_Cg<$X)ox~ z`|E+l3qdSQ#};yah{6+oN7-;4D|T>3h`pxQK)gdcX+C1z@Bf}-<u%h&EHsKh-;diB z1Zj8d)*WHr4$mt;LhIZcOqHI!8WSZFwyS_{yWR1Mq-T&_yrOd`_Vgk0hi!oIn(oFc zuLToj?7omdg$h6;1%Jsy`#A*!`Wzh9#D1GHRN7vr%YTEu_qt9Vwiy$e^0S~n4uh!i zhDyQW51e2>@-~_RRYX2|h@+v}u^{VpSOfeR7C`ebsE<{s<GhL-rZo=v={uZ7^M%=b zL=9^9hsQbc+7YxG=dJ=&{Pr}R{0N;D(X8QvL{8f$ns%(k2mCDk%oSEb3l?_QBqW~+ zQrnzq1&U8$o<9TnUIu;7F!)Zi2nvY!yRJ&n`u)GF*1Bw;(R?--c<j9Kg<0r*jM%y_ zR4Gd$HJ{Tkc!<a?=Q&^vf)7<7PDB4H1p2A3z@M0<#RVOyR!Qeo07GpnaQQlz;27D$ z0Z24u-t6^H71G8P<?p1sBI_HS5Z8qA|I&UX;=X0S))M6w6|hFw*za^oD=#6x3zAAM zxX1}st}7~_joaoWkOfn^xTG^M;`XS2Ln6J5fpZzH`W&tLL4#Fn{iX_7ipqp5oMLHI zSFY%>VZQn!Zup~kL@SlSwZ|F`dhip>R&{m<Jp+#;SupiMf%;>RNpq5eeE}7W19565 zwU3kz>UjnwW5XR<5QOu#Q#U<Hey9U0qa5u;IG3`zDFb`mZGp)u02{yQ=&3+Mc&hDz zWPIcvG{I<q-9px@kgitF?7~UIl#rAox^e(>28e2Q1wN2N_Cwv!q%XinF`NjH+?Doe z-5ttoV@AZTT;ss;cus`s%%Z;s`=O%!6Mm<L$O?$r6A&>9`+VC|LAquGDn7)BYs6WF zSj|>`XrsF@#N#>M8k=^H8x%eX+PgKKcmxIfJhU85ZqB|4t>#TBJo^h;YZBNaydktb z<V90>Rok4bVil29KMkXg3t>0z2fVj}H~KLMJ&x?f{T=kfEe@ACAOzB*p@G;`^dpOu z?Wv(vFCFMmt24*>fgBADy!mSw;RbO4&1?mo($O$ziZVT<oH=JO&HoM}Z!kw{%ZSL( ze#NY(Q~<0F-OwBoLK4f*`(0uP7r=JgUJ&Hebvm%$22~<U`*|^={TA0>QVEy~&mdta zXR=u3(QFPt<%K3K@FhnzjVr@6>|3A9Tsb0_BOz*I97Ac`AV&rrSt}##TZUPvc^tiH z)N?XIzBJ5 IbFoyrQE@CBhtzY170OoNq6_41oKn<Zh!4d+5I<+4Eg!U{b1BXAs{ zYk4lhaSQc7D?6Gatd4`}6n?rs%5j6e0iKW8u3;2gsjQ(cC`Om@Q24L}$tFZdi3S$; zTL2!T{Yv!C90OK43RY2(TDX~YV`<Ho*q~lfN+;pU_iyJCS~;*MkJIBwP9CS>@OGJr z$Oqe@9xIMv%bf9?0rTH`ka%Tu@;t;%@*Utp$awP(i>ktrY!=@^WnZD5$#(`ZGaco$ z_bVs{bILgqR?+&mAPQDj1hdFjLj%nr0ejdaiyCYzoJ8|4pvF%tX$@R^!&Iwk9)44; z#<Wb;aCuYFoEAdL;?TgHkbqn<%_@RT0NXTLa~TS|ih}5Deil=D-E<3cHI+=85yafy zJVRHZY*dz?XIeRvGXVhW1agxKftN3%*OcE9qOtdez#4ZiM&I-3?D*LlD4SQ!*<cWe z0P~j?y?+_nCXPIWPM^bI0!p71;Q2`>NVS<XH>9fMUxQnIi-A6mBQ41)Gv;#$q7=4I z^Fb{#<(m)cNH(Ek7nP|a9tr_9YoV2K?IN9VKQtz(`~kRQALbNootASJb3p6HvezRT z63Y?0?-B4GmK{PxT4G?@qnrc7uL!b2`5~%ck1`(vv9Jv$mvFk>Am0zrnU@BMBj+r& zN-_(-qyiSzPlW{RSC)dnka^;9on1}-%h=ya!?0wuS5$`poms7_(+jCDRKS{go(QRJ zj|v#H{~w^)6SU?>80u<t{|Q_l!k;pf+GnZr9eSdbIJeQ3BKN3(KAs@?><5?m7>g*0 zvmk9Vk>oQT-0`fH3*`r;q8vlzoaLNgah&BJ#ycxd>Bh7uA=oH8il;au+Q19@73{YN zAF+}H*h#~w1G9b=WnaROYkpZ5=Pe8KRfwebq1w)TjdNPGU2O%F#bloaj}_|G`#GT1 zI$IMt|Bb$DY0`B-W;&r*mm$u6>`%H1WpzFlLi!cQI5S9seI46zI*H7VUgtQ@+Gv!q z|571kQZ_F_a<bv<dycc{o%TIC0rRcgf)`ubVq?wrL3Jm?Y_A1!F+4s0jnVi8$NV5~ zkYRQ%q(_;fLI(_LUJIQhtepjdcf;Cg*ep&1ekDeaSqWNRi(sX44n8i{Ht?iQm=%p_ z>iiq%A<2oD&X^hJg$Ik-t3v{gwc(tN&1$a$q4QBXADi9H&h6E*h}~CM)9kDfRCtVy zZciUQ3tb^2Mpa|1I*tC0MTs*II&fJ(k=vabhqy{ehF&2ktnG!I9Wj4>2#=bedT~x` zit+UZ>2{#T-d1tUjrL70tATu|BrXU`Hpg);i;u3TfEE+>oP=OD`-0FwgB4IGRNTM? z?K9mWxqYF5ijaWZ?$*_@$|;q9m?iJe<1I2!+|oDaB!LKEHZw_s<-;MS*Qx^jExnvu zZ)wKLwS72*_OtZGDJ$+)-W?Zx*^kl5gD?fOItQ{0(CMr)*q5g2NSV%&5S{<0s_Tz! zx`^WK9dd88jETU;<VP6>8dD}AV79t+AU}dqqzNFply1Nnoivd@h%A5`F(_3hAu{@8 z>=%ESVA7byXgY9?`4d?P`Uih3g!n5<oXIedEQU-3Klfv-Hfj5Q-FtWMd-v|{-KEv* zXW3oxuq}D2(r^ZN;B(9=tyLQHn6!YXvYl21R%@cyX2=o-ar=g`=N>8|8Ca8Nclv?n z`H-Zr8hSyOvnge@QN!>>H%`6e+%2}8ncy6(S3fGc&6?^e)%hS>+@!4UZHMwZXkE1? zx{<fF8pOZV0yhLqydMSaSu9yZ3=Y;O#t{doR4k|HuM^a{J0__VG020X>2Y+|xK*H{ zHBRCJ96kY?@b8f3AYI_QaXOx@*+pG~n`V%o!-e<&RK_j&6qLbQJP2K#XzirSM0;&^ zJfGsy>*F(vX+3up&?{=gE^QCN^O7pj<YsQ1POUszMG;B6Crhi;Zd)<fui>zd3OJHa zGc1((9ZSMo;V~nO<ra>a<gz+A4jFV&XVvM&^aPBa7!X5sJpLH<tKvPjF2+RDN;K)` z)i}aDX2{6HE}*5H`BzO-^;%Bv$h^op*CWXFKzqH_j-V4zfxSk;*k6<|$p2Fg0o-nw zNI5KP$m4%}w1&g$(5lQ#im0ImT^`fDPIW|IwTQJp3)M19?;i|VntK%9ecUz+u5H<u z<FT=Qx*U4XO4K_t8_%UMiQ%m+^{=6jDo;8-PD}(ihcTYKNe&g!eEIF`lZs^Y;3Pt= z2X!d~$yJEj;$9<PETTA-AJWujH{?c-z$e3)otllTjRJK3Xbz@=Z)yxPa+E4$<QNLH z!HI8~?|JI_+nS4Oi~7pe@oZ=g^$RYJqV2_ge0&&2|7n^_H`I}Lv>+1NTWIO2p1LXc z2^^~AAWomMqw^>tM9;e%@?(7Z-qV8a4oHtdT%5d~i%^RdGt<rf_iZgq@}>8LM$mA- z-iHsI)R@&EhEH<!LW--z2af2c3hFfoq7af|bG)rwQc9gNaoPp@MgV$B6g{Uow21DD z5qv+1N9a#mXJdKsni(Q`upQvYBI-8JU93%W+hS@GnKYLyfm?>td}9eAQ*=ffx2b)3 zz72iqKAz`UzPO5>;r#(hsMy(@Iv+i&)vV*HTj*k=hBKXi`9oF6-ga99b1vmz9j~OX z!!pdgs{5c^WhvR)iV6gWgETG^PDo$F5DvyDD_}FA;^n%FPow2L0r|7OGRn*lcRO@V z<6>rKwq!N+Pmz`9thK@t+RR;Hsxna~+qs@XQ`ClYx+%?EB`}+QWCZoj-+|l{MJUpP zSH{j;EkDi1S|GELf)x1J6m?y7MaJ??16v&eleQ0WON4wXg};l|#=3C$B0jb9Xi_En zHc?QGd}g^dm%+X8koz=0*i3Wy?q-_FS2rP=t@y(6^tv&42NBB=v}uv-<4_cjKh@`? zUZj-j>(i=T{2!X&OoczRZrS>!l{E?q`?FBcDP*vJk}6vqg6fu;SecD%p(Os2>yi_S zQA#!rSj23W9Bd09AZ4#^(*?S}vNE@~(<dBX0J`sG%6O&k>l|w%4uP`~E{kXykG_PK zC%-W=+5Od&^2%Y0G5Sn9XJX(-zjM0b(`;l1Wu)?bZ(CmT1XkiJ41(MZdZ!w2932|P zO&lWbq$WyU*5a6OO?s>LinF(iHb^eNrTp36Jv8Ed>cks3&UG)drUkqZZ%xH1il?|) z;O+Iqig<7@&0l^XEj$O(UQhdWFx|^sO9Nbiw=SoT%?feFyYMfsXYEZcNnq!{buiDf zb&$geDxF$8nD40_<a!NzuHpXpH9i6OQ9oe1raZ?K?kFT^p#*Yj=apGJmY~9^n&bJA Z^BbsCPzRSa(Ben_>>$r!{w+a|{|5kb(kuV~ delta 184497 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%0DG{qP#npP_=>xWeKkWz@|VNe3d-)qbRND8=+mq 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 z/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 diff --git a/patch_v2/meow_launcherd/meow_media.c b/patch_v2/meow_launcherd/meow_media.c new file mode 100644 index 0000000..9485aea --- /dev/null +++ b/patch_v2/meow_launcherd/meow_media.c @@ -0,0 +1,202 @@ +/* meow_media.c — MeowOS 媒体会话注册表(阶段 D · 附录 B / D1)。 + * + * 实现说明见 meow_media.h。自包含:仅依赖 meow_ipc.h 结构 + <time.h>(monotonic)+ + * <string.h>/<stdarg.h>;发送/日志经 meow_media_ops 注入,宿主可单测。 + */ +#include "meow_media.h" +#include <string.h> +#include <stdio.h> +#include <stdarg.h> +#include <time.h> + +static const meow_media_ops *g_ops = NULL; +static meow_media_session_t g_sess[MEOW_MEDIA_MAX]; +static uint64_t g_seq = 0; /* 全局活跃净序(每次 META +1,严格区分先后) */ + + +/* 单调毫秒(self-contained;launcher/main_menu 的 now_ms 与此同源 CLOCK_MONOTONIC)。 */ +static uint64_t media_now_ms(void) +{ + struct timespec ts; + if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0) ts.tv_sec = ts.tv_nsec = 0; + return (uint64_t)ts.tv_sec * 1000u + (uint64_t)(ts.tv_nsec / 1000000u); +} + +static void media_log(const char *fmt, ...) +{ + if (!g_ops || !g_ops->log) return; + char buf[256]; + va_list ap; + va_start(ap, fmt); + vsnprintf(buf, sizeof buf, fmt, ap); + va_end(ap); + g_ops->log("%s", buf); +} + +static char *media_cp(char *dst, size_t dstsz, const char *src) +{ + if (!dst || dstsz == 0) return dst; + if (!src) src = ""; + snprintf(dst, dstsz, "%s", src); + dst[dstsz - 1] = 0; + return dst; +} + +void meow_media_init(const meow_media_ops *ops) +{ + g_ops = ops; +} + +static meow_media_session_t *sess_find(const char *app_id) +{ + if (!app_id || !app_id[0]) return NULL; + for (int i = 0; i < MEOW_MEDIA_MAX; i++) + if (g_sess[i].used && strcmp(g_sess[i].app_id, app_id) == 0) + return &g_sess[i]; + return NULL; +} + +/* 找空槽;满时覆盖最旧槽(LRU 式,防单源漂移占满)。 */ +static meow_media_session_t *sess_alloc(void) +{ + int slot = -1; + uint64_t oldest = UINT64_MAX; + for (int i = 0; i < MEOW_MEDIA_MAX; i++) { + if (!g_sess[i].used) return &g_sess[i]; + if (g_sess[i].last_active_ms < oldest) { oldest = g_sess[i].last_active_ms; slot = i; } + } + if (slot >= 0) { + media_log("media: sessions full, evict app=%s", g_sess[slot].app_id); + memset(&g_sess[slot], 0, sizeof g_sess[slot]); + return &g_sess[slot]; + } + return NULL; +} + +int meow_media_meta(const m_meta_t *m, int fd) +{ + if (!m || !m->app_id[0]) return -1; + meow_media_session_t *s = sess_find(m->app_id); + if (!s) { + s = sess_alloc(); + if (!s) { media_log("media: meta drop app=%s (no slot)", m->app_id); return -1; } + s->used = 1; + media_cp(s->app_id, sizeof s->app_id, m->app_id); + } + s->fd = fd; + s->last_active_ms = media_now_ms(); + s->active_seq = ++g_seq; /* 严格递增:跨会话先后唯一,不受时钟粒度影响 */ + s->state = m->state; + s->pos_ms = m->pos_ms; + s->dur_ms = m->dur_ms; + s->flags = m->flags; + media_cp(s->title, sizeof s->title, m->title); + media_cp(s->artist, sizeof s->artist, m->artist); + media_cp(s->album, sizeof s->album, m->album); + media_cp(s->artwork, sizeof s->artwork, m->artwork); + media_cp(s->lyric, sizeof s->lyric, m->lyric); + media_log("media: META app=%s fd=%d state=%u pos=%u/%u title=\"%s\"", + s->app_id, fd, s->state, s->pos_ms, s->dur_ms, s->title); + return 0; +} + +const meow_media_session_t *meow_media_current(void) +{ + /* 最近活跃 = active_seq 最大者(严格先后;last_active_ms 仅作进度推进用)。 */ + const meow_media_session_t *best = NULL; + uint64_t t = 0; + for (int i = 0; i < MEOW_MEDIA_MAX; i++) { + if (g_sess[i].used && g_sess[i].active_seq >= t) { + t = g_sess[i].active_seq; + best = &g_sess[i]; + } + } + return best; +} + +int meow_media_has_source(void) +{ + const meow_media_session_t *s = meow_media_current(); + return (s && s->state != MEOW_MEDIA_STOPPED) ? 1 : 0; +} + +static int send_playctl(const meow_media_session_t *s, uint32_t cmd, int64_t seek_ms) +{ + if (!s || !s->used || !g_ops || !g_ops->send) return -1; + m_playctl_t c; + memset(&c, 0, sizeof c); + c.cmd = cmd; + c.seek_ms = seek_ms; + size_t n = g_ops->send(s->fd, MSG_PLAYCTL, 0, &c, sizeof c); + media_log("media: PLAYCTL -> %s cmd=%u seek=%lld n=%zu", + s->app_id, cmd, (long long)seek_ms, n); + /* ops->send 返回写入总字节(16B 头 + 负载);成功 = 完整帧已写出。 */ + return (n >= MEOW_IPC_HDR_LEN + sizeof c) ? 0 : -1; +} + +int meow_media_playctl(uint32_t cmd, int64_t seek_ms) +{ + return send_playctl(meow_media_current(), cmd, seek_ms); +} + +int meow_media_playctl_to(const char *app_id, uint32_t cmd, int64_t seek_ms) +{ + meow_media_session_t *s = sess_find(app_id); + return s ? send_playctl(s, cmd, seek_ms) : -1; +} + +void meow_media_clear(const char *app_id) +{ + int n = 0; + for (int i = 0; i < MEOW_MEDIA_MAX; i++) { + if (g_sess[i].used && + (!app_id || !app_id[0] || strcmp(g_sess[i].app_id, app_id) == 0)) { + media_log("media: clear app=%s", g_sess[i].app_id); + memset(&g_sess[i], 0, sizeof g_sess[i]); + n++; + } + } + if (app_id && app_id[0]) media_log("media: cleared %d sess for %s", n, app_id); + else if (n) media_log("media: cleared all %d sess", n); +} + +void meow_media_tick(void) +{ + uint64_t now = media_now_ms(); + for (int i = 0; i < MEOW_MEDIA_MAX; i++) { + if (!g_sess[i].used) continue; + if (g_sess[i].state == MEOW_MEDIA_PLAYING || g_sess[i].state == MEOW_MEDIA_BUFFER) { + if (now - g_sess[i].last_active_ms > MEOW_MEDIA_STALE_MS) { + media_log("media: stale source %s (no META %llu ms) -> clear", + g_sess[i].app_id, + (unsigned long long)(now - g_sess[i].last_active_ms)); + memset(&g_sess[i], 0, sizeof g_sess[i]); + } + } + } +} + +uint32_t meow_media_display_pos(const meow_media_session_t *s) +{ + if (!s) return 0; + uint32_t p = s->pos_ms; + if (s->state == MEOW_MEDIA_PLAYING) { + uint64_t now = media_now_ms(); + uint64_t el = (now > s->last_active_ms) ? (now - s->last_active_ms) : 0; + uint32_t adv = (el > 0xFFFFFFFFull) ? 0xFFFFFFFFu : (uint32_t)el; + p = s->pos_ms + adv; + if (s->dur_ms && p > s->dur_ms) p = s->dur_ms; + } + return p; +} + +void meow_media_dump(const char *prefix) +{ + for (int i = 0; i < MEOW_MEDIA_MAX; i++) { + if (!g_sess[i].used) continue; + media_log("%s sess%d app=%s state=%u fd=%d last=%llu pos=%u/%u title=\"%s\"", + prefix ? prefix : "media", i, g_sess[i].app_id, g_sess[i].state, + g_sess[i].fd, (unsigned long long)g_sess[i].last_active_ms, + g_sess[i].pos_ms, g_sess[i].dur_ms, g_sess[i].title); + } +} diff --git a/patch_v2/meow_launcherd/meow_media.h b/patch_v2/meow_launcherd/meow_media.h new file mode 100644 index 0000000..9c0133f --- /dev/null +++ b/patch_v2/meow_launcherd/meow_media.h @@ -0,0 +1,93 @@ +/* meow_media.h — MeowOS 媒体会话(阶段 D · 附录 B / D1)。 + * + * 定位:媒体会话注册表(App 声明 MF_PLAYBACK + 上报 MSG_META → 成为媒体源; + * 最近活跃者=当前源)。通知中心媒体卡片 / Now Playing 页 / 物理媒体键 / 控制器统一消费; + * PLAYCTL 经会话的连接 fd 直接下发。语义对齐 FRAMEWORK_DESIGN 附录 B 的「启动器表现」与 + * 附录 D1(MPRIS 最近活跃源选择)。 + * + * 设计: + * - 会话=一个 App 一个槽(app_id 归并;单 App 恒 1 槽,防多发 META 占满)。 + * - 当前源=last_active_ms 最大者(最近上报 META)。多源时此即「最近活跃」。 + * - 判定源死亡:播放中(1)/缓冲(3) 超 MEOW_MEDIA_STALE_MS 无 META → 清槽回空态(App 死/ + * 服务断);暂停(2)/停止(0) 不超时(暂停属合法驻留,停止由 state 判空态)。 + * - 空态:无会话,或当前源 state==0(停止)。 + * + * 自包含:不依赖 launcher static 符号;发送/日志经 meow_media_ops 注入(launcher 用 + * ipc_send / logmsg;宿主单测用 socket write / NULL)。可独立单测(test_media.c)。 + */ +#ifndef MEOW_MEDIA_H +#define MEOW_MEDIA_H + +#include <stdint.h> +#include <stddef.h> +#include "meow_ipc.h" + +/* 同时维护的媒体会话上限(防御;一个 App 一槽) */ +#define MEOW_MEDIA_MAX 4 +/* 播放中(1)/缓冲(3) 无 META 超此毫秒 → 判源死清槽(回空态);暂停/停止不超时 */ +#define MEOW_MEDIA_STALE_MS 30000u + +/* state 取值(与 m_meta_t.state 一致) */ +#define MEOW_MEDIA_STOPPED 0u +#define MEOW_MEDIA_PLAYING 1u +#define MEOW_MEDIA_PAUSED 2u +#define MEOW_MEDIA_BUFFER 3u + +/* 媒体会话(一个 App 一个槽)。fd=最近上报 META 的连接 fd(下发 PLAYCTL 用)。 */ +typedef struct meow_media_session { + int used; + int fd; + char app_id[MEOW_APP_ID_MAX]; + uint64_t last_active_ms; /* 最近 META 时刻(monotonic ms,进度推进用) */ + uint64_t active_seq; /* 最近活跃净序(全局递增,供「最近活跃」严格排序) */ + uint32_t state; + uint32_t pos_ms; + uint32_t dur_ms; + uint32_t flags; + char title[128]; + char artist[128]; + char album[128]; + char artwork[192]; + char lyric[192]; +} meow_media_session_t; + +/* 依赖注入:send=发一帧(launcher 用 ipc_send 包装;宿主单测用 socket 写); + * log=日志(launcher 用 logmsg;NULL=静默)。send 返回写入字节。 */ +typedef struct meow_media_ops { + size_t (*send)(int fd, uint16_t type, uint32_t req_id, + const void *payload, uint32_t len); + void (*log)(const char *fmt, ...); +} meow_media_ops; + +/* 注入 ops(send/log);NULL 清空。launcher 启动时(meow_ipc_init)调用一次。 */ +void meow_media_init(const meow_media_ops *ops); + +/* App 上报 META:按 m->app_id 归并到会话(无则建槽);记录 fd/last_active; + * 截断安全(不越界)。返回 0=成功,-1=会话满/参数非法。 */ +int meow_media_meta(const m_meta_t *m, int fd); + +/* 当前源 = 最近活跃会话(last_active_ms 最大)。无会话返回 NULL。 */ +const meow_media_session_t *meow_media_current(void); + +/* 是否有活动媒体源:当前源存在且 state != 0(停止)。通知中心卡片/播放页据此显示。 */ +int meow_media_has_source(void); + +/* 向当前源下发 PLAYCTL(卡片按钮/播放页/媒体键/控制器)。返回 0=已发,-1=无源/发送失败。 */ +int meow_media_playctl(uint32_t cmd, int64_t seek_ms); + +/* 向指定 app 的会话下发 PLAYCTL;无匹配会话返回 -1。 */ +int meow_media_playctl_to(const char *app_id, uint32_t cmd, int64_t seek_ms); + +/* 清某 app 的会话(App 退出/源死亡/主动停止时调)。app_id 空/NULL=清全部。 */ +void meow_media_clear(const char *app_id); + +/* 主循环周期调(~1s):播放中(1)/缓冲(3) 超时无 META → 清槽。 */ +void meow_media_tick(void); + +/* 显示用虚拟位置:播放中按墙钟推进 pos_ms(clamp 到 dur);暂停/缓冲/停止原样。 */ +uint32_t meow_media_display_pos(const meow_media_session_t *s); + +/* 调试打印(经 ops->log,前缀+每会话一行)。 */ +void meow_media_dump(const char *prefix); + +#endif /* MEOW_MEDIA_H */ diff --git a/patch_v2/meow_launcherd/notif_center.c b/patch_v2/meow_launcherd/notif_center.c index 59ef49b..a30bd2a 100644 --- a/patch_v2/meow_launcherd/notif_center.c +++ b/patch_v2/meow_launcherd/notif_center.c @@ -26,6 +26,34 @@ static int g_ncp_swipe_row = -1; static int g_ncp_swipe_off = 0; +/* ---- 阶段D附录B:通知中心顶部媒体卡片(固定于通知列表上方,活动媒体会话时显示)---- */ +#define NCP_MEDIA_H 112 /* 卡片高(封面/信息/控制/进度) */ +#define NCP_MEDIA_CARD_X 12 +#define NCP_MEDIA_CARD_W (fb_xres - 24) +static meow_img *g_ncp_media_cover = NULL; /* 封面缓存(按 artwork 路径变化重载,不每帧解码) */ +static char g_ncp_media_cover_path[200] = ""; + +/* 卡片顶缘(恒定 = 通知列表区上缘)。 */ +static int ncp_media_y(void) { return NCP_LIST_TOP; } + +/* 卡片是否显示(活动媒体会话存在且非停止)。 */ +static int ncp_media_on(void) { return meow_media_has_source() ? NCP_MEDIA_H : 0; } + +/* 通知列表可视区实际顶缘(含媒体卡片时下移一个卡片高)——绘制/命中统一用,避免硬编码 NCP_LIST_TOP。 */ +static int ncp_list_top(void) { return NCP_LIST_TOP + ncp_media_on(); } + +/* 列表可视区高(含媒体卡片时缩短)。 */ +static int ncp_list_view(void) { int v = NCP_LIST_BOT - ncp_list_top(); return v > 0 ? v : 0; } + +/* 卡片内按钮几何(供绘制与命中共用)。 */ +#define NCP_MEDIA_BTN_Y 34 /* 相对卡片顶的按钮中心 y */ +#define NCP_MEDIA_PREV_CX 300 +#define NCP_MEDIA_PLAY_CX 372 +#define NCP_MEDIA_NEXT_CX 444 +#define NCP_MEDIA_BTN_R 22 /* play 半径;prev/next 略小 */ +#define NCP_MEDIA_PROG_Y 74 /* 相对卡片顶的进度条 top */ + + /* 短串拷贝(同 meow_notif.c 语义:保证 NUL + 截断) */ static void ncp_strncpy(char *dst, const char *src, size_t len) { @@ -432,25 +460,25 @@ static void ncp_draw_row(int i, int ry, int off, const meow_ui_theme_t *th) static void ncp_draw_list(int scroll) { const meow_ui_theme_t *th = s_ui_theme(); + int lt = ncp_list_top(), lv = ncp_list_view(); if (g_nrows == 0) { - ui_draw(NCP_ROW_X + 8, NCP_LIST_TOP + 40, "暂无通知", th->on_surface_variant, 22); + ui_draw(NCP_ROW_X + 8, lt + 40, "暂无通知", th->on_surface_variant, 22); return; } int total = g_nrows * NCP_ROW_H; - scroll = mnp_scroll_clamp(scroll, total, NCP_LIST_BOT - NCP_LIST_TOP); + scroll = mnp_scroll_clamp(scroll, total, lv); for (int i = 0; i < g_nrows; i++) { - int ry = NCP_LIST_TOP + i * NCP_ROW_H - scroll; - if (ry + NCP_ROW_H < NCP_LIST_TOP || ry >= NCP_LIST_BOT) continue; /* 视口外整行跳过 */ + int ry = lt + i * NCP_ROW_H - scroll; + if (ry + NCP_ROW_H < lt || ry >= NCP_LIST_BOT) continue; /* 视口外整行跳过 */ int off = (i == g_ncp_swipe_row) ? g_ncp_swipe_off : 0; /* 左滑中的行位移 */ if (off < 0) ncp_draw_delete_bg(ry, off, th); ncp_draw_row(i, ry, off, th); } /* 滚动条 */ - if (total > NCP_LIST_BOT - NCP_LIST_TOP) { - int view = NCP_LIST_BOT - NCP_LIST_TOP; - int thumb_h = view * view / total; if (thumb_h < 24) thumb_h = 24; - int ty = NCP_LIST_TOP + (view - thumb_h) * scroll / (total - view); - meow_gfx_fill_round(fb_xres - 8, NCP_LIST_TOP, 5, view, 3, th->surface_container); + if (total > lv) { + int thumb_h = lv * lv / total; if (thumb_h < 24) thumb_h = 24; + int ty = lt + (lv - thumb_h) * scroll / (total - lv); + meow_gfx_fill_round(fb_xres - 8, lt, 5, lv, 3, th->surface_container); meow_gfx_fill_round(fb_xres - 8, ty, 5, thumb_h, 3, th->on_surface_variant); } } @@ -462,9 +490,10 @@ static void ncp_draw_list(int scroll) static void ncp_repaint_list(int scroll) { const meow_ui_theme_t *th = s_ui_theme(); - fill_rect(0, NCP_LIST_TOP, fb_xres, NCP_LIST_BOT - NCP_LIST_TOP, th->surface_variant); + int lt = ncp_list_top(), lv = ncp_list_view(); + fill_rect(0, lt, fb_xres, lv, th->surface_variant); ncp_draw_list(scroll); - meow_dirty_add(0, NCP_LIST_TOP, fb_xres, NCP_LIST_BOT - NCP_LIST_TOP); + meow_dirty_add(0, lt, fb_xres, lv); meow_ui_flush(); } @@ -475,8 +504,9 @@ static void ncp_repaint_row(int scroll, int row, int off) { const meow_ui_theme_t *th = s_ui_theme(); if (row < 0 || row >= g_nrows) return; - int ry = NCP_LIST_TOP + row * NCP_ROW_H - scroll; - if (ry + NCP_ROW_H < NCP_LIST_TOP || ry >= NCP_LIST_BOT) return; /* 视口外:无需重绘 */ + int lt = ncp_list_top(); + int ry = lt + row * NCP_ROW_H - scroll; + if (ry + NCP_ROW_H < lt || ry >= NCP_LIST_BOT) return; /* 视口外:无需重绘 */ /* 清该行带全宽(含左缘 [0,NCP_ROW_X),因深滑时卡可滑到左缘外),再画删除底 + 位移行卡。 */ fill_rect(0, ry, NCP_ROW_X + NCP_ROW_W, NCP_ROW_H, th->surface_variant); if (off < 0) ncp_draw_delete_bg(ry, off, th); @@ -577,6 +607,139 @@ static int ncp_clear_all(void) /* 绘制整个通知中心面板(画进 SDK back_buf;redraw_sb=1 时另绘状态栏在最顶)。 * 性能:面板体单独;(0..27) 状态栏只在打开/主题变化时 redraw_sb=1 重绘,交互时跳过, * 使脏区仅限面板体,绝不整屏重绘。 */ +/* ================= 阶段D附录B:顶部媒体卡片(绘制/命中) ================= */ + +/* 封面缓存:artwork 路径变化才重载(不每帧解码)。 */ +static void ncp_media_cover_load(const meow_media_session_t *s) +{ + if (!s) return; + if (strcmp(g_ncp_media_cover_path, s->artwork) == 0) return; + if (g_ncp_media_cover) { meow_img_free(g_ncp_media_cover); g_ncp_media_cover = NULL; } + ncp_strncpy(g_ncp_media_cover_path, s->artwork, sizeof g_ncp_media_cover_path); + if (!s->artwork[0]) return; + char path[200]; + if (s->artwork[0] == '/') snprintf(path, sizeof path, "%s", s->artwork); + else snprintf(path, sizeof path, "/usr/data/mnt/sd_0/%s", s->artwork); + g_ncp_media_cover = meow_img_load_file(path); +} + +/* 实心三角(dir=+1 右向 / -1 左向);size=最大宽度 px。按扫描线 fill_rect 近似 */ +static void ncp_media_tri(int cx, int cy, int size, int dir, uint32_t col) +{ + int half = size / 2; + for (int dy = -half; dy <= half; dy++) { + int w = half + 1 - (dy < 0 ? -dy : dy); /* 顶宽 1 → 底宽 half+1 */ + if (w <= 0) continue; + int x0 = cx + (dir > 0 ? -w / 2 : w / 2 - w); + fill_rect(x0, cy + dy, w, 1, col); + } +} + +/* 圆形按钮底 + 字形(kind:0=prev 1=play 2=next 3=pause 4=暂停态play)。 */ +static void ncp_media_btn(int cx, int cy, int r, int kind, const meow_ui_theme_t *th) +{ + meow_gfx_fill_round(cx - r, cy - r, r * 2, r * 2, r, th->primary); + uint32_t fg = 0xFFFFFF; + if (kind == 0) { /* prev:左三角 + 左竖条 */ + ncp_media_tri(cx + 4, cy, r - 4, -1, fg); + fill_rect(cx - 3, cy - (r - 5), 3, (r - 5) * 2, fg); + } else if (kind == 1) { /* play:右三角 */ + ncp_media_tri(cx + 2, cy, r - 2, 1, fg); + } else if (kind == 2) { /* next:右三角 + 右竖条 */ + ncp_media_tri(cx - 4, cy, r - 4, 1, fg); + fill_rect(cx + 1, cy - (r - 5), 3, (r - 5) * 2, fg); + } else if (kind == 3) { /* pause:双竖条 */ + int bw = (r - 6) / 2; if (bw < 2) bw = 2; + fill_rect(cx - 7, cy - (r - 5), bw, (r - 5) * 2, fg); + fill_rect(cx + 7 - bw, cy - (r - 5), bw, (r - 5) * 2, fg); + } +} + +/* 画顶部媒体卡片(封面小图 + 标题/歌手 + 播放/暂停/上下曲 + 进度条)。 */ +static void ncp_draw_media_card(const meow_ui_theme_t *th) +{ + const meow_media_session_t *s = meow_media_current(); + if (!s || s->state == MEOW_MEDIA_STOPPED) return; + int cy = ncp_media_y(); + meow_gfx_fill_round(NCP_MEDIA_CARD_X, cy, NCP_MEDIA_CARD_W, NCP_MEDIA_H, 14, th->surface_container); + ncp_media_cover_load(s); + int cover_s = 88, cover_x = NCP_MEDIA_CARD_X + 12, cover_y = cy + 12; + if (g_ncp_media_cover) { + meow_gfx_fill_round(cover_x, cover_y, cover_s, cover_s, 12, th->surface_variant); + meow_ui_img_cover(cover_x + 4, cover_y + 4, cover_s - 8, g_ncp_media_cover); + } else { + meow_gfx_fill_round(cover_x, cover_y, cover_s, cover_s, 12, th->primary); + const char *t = s->title[0] ? s->title : s->app_id; + int cw = ui_width(t, 20); + ui_draw(cover_x + (cover_s - cw) / 2, cover_y + (cover_s - meow_font_line_height(20)) / 2, + t, 0xFFFFFF, 20); + } + int tx = cover_x + cover_s + 14; + int tw = (NCP_MEDIA_PREV_CX - NCP_MEDIA_BTN_R - 8) - tx; /* 文本宽限到上一首按钮左缘前 8px */ + if (tw < 0) tw = 0; + ncp_text(tx, cy + 14, s->title, 18, th->on_surface, tw); + ncp_text(tx, cy + 40, s->artist[0] ? s->artist : s->album, 16, th->on_surface_variant, tw); + /* 控制按钮 */ + int by = cy + NCP_MEDIA_BTN_Y; + ncp_media_btn(NCP_MEDIA_PREV_CX, by, NCP_MEDIA_BTN_R - 4, 0, th); + int pk = (s->state == MEOW_MEDIA_PLAYING) ? 3 /* pause */ : 1 /* play */; + ncp_media_btn(NCP_MEDIA_PLAY_CX, by, NCP_MEDIA_BTN_R, pk, th); + ncp_media_btn(NCP_MEDIA_NEXT_CX, by, NCP_MEDIA_BTN_R - 4, 2, th); + /* 进度条 + 时间 */ + uint32_t pos = meow_media_display_pos(s); + int px = tx, pw = NCP_MEDIA_CARD_X + NCP_MEDIA_CARD_W - 12 - px, py = cy + NCP_MEDIA_PROG_Y; + if (pw > 0) { + fill_rect(px, py, pw, 4, th->outline); + int fw = (s->dur_ms > 0) ? (int)((uint64_t)pos * pw / s->dur_ms) : 0; + if (fw > pw) fw = pw; + if (fw > 0) fill_rect(px, py, fw, 4, th->primary); + } +} + +/* 卡片命中:按钮/进度(含 seek)。返回 1=已处理(内部已下发 PLAYCTL);0=未命中。 */ +static int ncp_media_card_tap(int tx, int ty) +{ + const meow_media_session_t *s = meow_media_current(); + if (!s || s->state == MEOW_MEDIA_STOPPED) return 0; + int cy = ncp_media_y(); + if (ty < cy || ty >= cy + NCP_MEDIA_H) return 0; + int by = cy + NCP_MEDIA_BTN_Y; + int cmd = 0; int64_t seek = 0; + if (tx >= NCP_MEDIA_PREV_CX - NCP_MEDIA_BTN_R && tx <= NCP_MEDIA_PREV_CX + NCP_MEDIA_BTN_R && + ty >= by - NCP_MEDIA_BTN_R && ty <= by + NCP_MEDIA_BTN_R) cmd = 3; /* 上一首 */ + else if (tx >= NCP_MEDIA_PLAY_CX - NCP_MEDIA_BTN_R && tx <= NCP_MEDIA_PLAY_CX + NCP_MEDIA_BTN_R && + ty >= by - NCP_MEDIA_BTN_R && ty <= by + NCP_MEDIA_BTN_R) + cmd = (s->state == MEOW_MEDIA_PLAYING) ? 2u : 1u; /* 播放/暂停 */ + else if (tx >= NCP_MEDIA_NEXT_CX - NCP_MEDIA_BTN_R && tx <= NCP_MEDIA_NEXT_CX + NCP_MEDIA_BTN_R && + ty >= by - NCP_MEDIA_BTN_R && ty <= by + NCP_MEDIA_BTN_R) cmd = 4; /* 下一首 */ + else if (s->dur_ms > 0) { /* 进度条 seek */ + int px = NCP_MEDIA_CARD_X + 12 + 88 + 14; + int pw = NCP_MEDIA_CARD_X + NCP_MEDIA_CARD_W - 12 - px; + int py = cy + NCP_MEDIA_PROG_Y; + if (pw > 0 && ty >= py - 12 && ty <= py + 16 && tx >= px && tx <= px + pw) { + int frac = (tx - px) * 1000 / pw; + seek = (int64_t)s->dur_ms * frac / 1000; + cmd = 5; + } + } + if (!cmd) return 0; + int rc = meow_media_playctl(cmd, seek); + logmsg("notif-card: media tap cmd=%u seek=%lld rc=%d", cmd, (long long)seek, rc); + return 1; +} + +/* 仅重绘媒体卡片带(进度/封面/按钮;不整面板、不刷状态栏)——局部刷新用。 */ +static void ncp_repaint_media_card(void) +{ + const meow_ui_theme_t *th = s_ui_theme(); + if (!meow_media_has_source()) return; + int cy = ncp_media_y(); + fill_rect(NCP_MEDIA_CARD_X, cy, NCP_MEDIA_CARD_W, NCP_MEDIA_H, th->surface_variant); + ncp_draw_media_card(th); + meow_dirty_add(NCP_MEDIA_CARD_X, cy, NCP_MEDIA_CARD_W, NCP_MEDIA_H); + meow_ui_flush(); +} + static void draw_notif_center(int scroll, int redraw_sb) { const meow_ui_theme_t *th = s_ui_theme(); @@ -657,6 +820,9 @@ static void draw_notif_center(int scroll, int redraw_sb) /* ⑧ 一键清除按钮(勿扰对称处的右半段) */ ncp_draw_clear(th); + /* 阶段D附录B:顶部媒体卡片(活动媒体会话时显示,固定于列表上方;列表可视区随之下移) */ + ncp_draw_media_card(th); + /* 通知列表 */ ncp_draw_list(scroll); @@ -722,7 +888,7 @@ static int ncp_slider_apply(int which, int tx, int save_now) static int ncp_row_tap(int tx, int ty, int scroll, notif_click_t *click) { (void)tx; /* 行命中仅依赖 ty/scroll;tx 保留作接口一致(0-warning) */ - int eff = ty - NCP_LIST_TOP + scroll; + int eff = ty - ncp_list_top() + scroll; int row = mnp_row_at(eff, 0, g_nrows * NCP_ROW_H, NCP_ROW_H); if (row < 0 || row >= g_nrows) return 0; const ncp_row_t *r = &g_rows[row]; @@ -849,7 +1015,7 @@ void run_notif_center(struct app *apps, int napps, notif_click_t *click, /* 首次绘制:先拍背景(应用列表)→ 渲染最终位置整面板 → 拍面板快照 → 还原背景到 p=0 * 起点(面板隐藏、先露应用列表),随后进入循环由动画推进 p:0→FIX 滑入。 */ ncp_refresh_rows(); - list_scroll = mnp_scroll_clamp(0, g_nrows * NCP_ROW_H, NCP_LIST_BOT - NCP_LIST_TOP); + list_scroll = mnp_scroll_clamp(0, g_nrows * NCP_ROW_H, ncp_list_view()); ncp_snap_init(); if (g_ncp_ph > 0) { anim_ok = 1; @@ -869,6 +1035,8 @@ void run_notif_center(struct app *apps, int napps, notif_click_t *click, anim_last = now_ms(); int need_paint = 0; /* 持久:跨 tick 保持(动画进行中延迟到稳态再画) */ + int media_prev = -1; /* 阶段D附录B:上次媒体卡片显示态(检测 出现/消失 → 整面板重排) */ + int media_paint = 0; /* 阶段D附录B:仅重绘媒体卡片带(进度/封面变化,局部刷新) */ for (;;) { unsigned long long now = now_ms(); @@ -1030,10 +1198,10 @@ void run_notif_center(struct app *apps, int napps, notif_click_t *click, int ddx = tlx - tdx, ddy = tly - tdy; int adx = ddx < 0 ? -ddx : ddx, ady = ddy < 0 ? -ddy : ddy; if ((adx >= NCP_SWIPE_SLOP || ady >= S_SCROLL_SLOP) && adx > ady && ddx < 0) { - int eff = tdy - NCP_LIST_TOP + list_scroll; + int eff = tdy - ncp_list_top() + list_scroll; int row = mnp_row_at(eff, 0, g_nrows * NCP_ROW_H, NCP_ROW_H); /* 起点必须在列表区(DND 带/底部提示等不在列表区,防 scroll 导致误匹行) */ - if (tdy >= NCP_LIST_TOP && tdy < NCP_LIST_BOT && + if (tdy >= ncp_list_top() && tdy < NCP_LIST_BOT && row >= 0 && row < g_nrows) { row_swipe_row = row; row_off = mnp_swipe_clamp(ddx, NCP_ROW_W); @@ -1057,8 +1225,8 @@ void run_notif_center(struct app *apps, int napps, notif_click_t *click, int ady2 = (tly - tdy) < 0 ? (tdy - tly) : (tly - tdy); if (ady2 >= S_SCROLL_SLOP) { int av = g_nrows * NCP_ROW_H; - int vw = NCP_LIST_BOT - NCP_LIST_TOP; - int in_over = (tdy >= NCP_LIST_TOP && tdy < NCP_LIST_BOT && + int vw = ncp_list_view(); + int in_over = (tdy >= ncp_list_top() && tdy < NCP_LIST_BOT && mnp_scroll_max(av, vw) > 0); if (!in_over) { int cur_off = mnp_anim_off(anim_p, NCP_ANIM_FIX, g_ncp_ph); @@ -1081,9 +1249,9 @@ void run_notif_center(struct app *apps, int napps, notif_click_t *click, int ddy = tly - scroll_y0; if (ddy >= S_SCROLL_SLOP || ddy <= -S_SCROLL_SLOP) { int total = g_nrows * NCP_ROW_H; - int view = NCP_LIST_BOT - NCP_LIST_TOP; + int view = ncp_list_view(); if (mnp_scroll_max(total, view) > 0 && - tdy >= NCP_LIST_TOP && tdy < NCP_LIST_BOT) { + tdy >= ncp_list_top() && tdy < NCP_LIST_BOT) { scroll_drag = 1; meow_settings_get_bool("input.swipe_invert", &scroll_invert); scroll_base = mnp_scroll_base(list_scroll, ddy, scroll_invert); @@ -1093,7 +1261,7 @@ void run_notif_center(struct app *apps, int napps, notif_click_t *click, } if (scroll_drag && td_ok) { int total = g_nrows * NCP_ROW_H; - int view = NCP_LIST_BOT - NCP_LIST_TOP; + int view = ncp_list_view(); int target = mnp_scroll_target(scroll_base, tly - scroll_y0, scroll_invert); list_scroll = mnp_scroll_clamp(target, total, view); scroll_rebound = mnp_scroll_rebound(target, mnp_scroll_max(total, view), @@ -1147,7 +1315,7 @@ void run_notif_center(struct app *apps, int napps, notif_click_t *click, * 绝不把「滑列表」误判成「上滑关闭」——scroll_drag 一旦置位即跳过 * 下方 mnp_vertical_up 关闭判定。 */ int total = g_nrows * NCP_ROW_H; - int view = NCP_LIST_BOT - NCP_LIST_TOP; + int view = ncp_list_view(); int target = mnp_scroll_target(scroll_base, tly - scroll_y0, scroll_invert); list_scroll = mnp_scroll_clamp(target, total, view); if (scroll_rebound) { @@ -1205,7 +1373,7 @@ void run_notif_center(struct app *apps, int napps, notif_click_t *click, g_ncp_dnd = dv ? 0 : 1; ncp_refresh_rows(); /* 按 dnd 过滤重采集 */ list_scroll = mnp_scroll_clamp(list_scroll, g_nrows * NCP_ROW_H, - NCP_LIST_BOT - NCP_LIST_TOP); + ncp_list_view()); hit = 1; need_paint = 1; } /* ⑧ 一键清除(勿扰对称处右半段):先转储留档 → 再清空显示(留 ongoing/media/progress)。 */ @@ -1218,10 +1386,14 @@ void run_notif_center(struct app *apps, int napps, notif_click_t *click, g_ncp_swipe_row = -1; g_ncp_swipe_off = 0; ncp_refresh_rows(); list_scroll = mnp_scroll_clamp(list_scroll, g_nrows * NCP_ROW_H, - NCP_LIST_BOT - NCP_LIST_TOP); + ncp_list_view()); hit = 1; need_paint = 1; } - if (!hit && ty >= NCP_LIST_TOP && ty < NCP_LIST_BOT) { + /* 阶段D附录B:顶部媒体卡片按钮/进度(含 seek)→ 下发 PLAYCTL。 + * 卡片命中固定于列表上方,先于列表行命中处理。 */ + if (!hit && meow_media_has_source() && ncp_media_card_tap(tx, ty)) { + hit = 1; need_paint = 1; + } else if (!hit && ty >= ncp_list_top() && ty < NCP_LIST_BOT) { if (ncp_row_tap(tx, ty, list_scroll, click)) { hit = 1; if (anim_ok) anim_target = 0; /* 点击通知:dismiss + 记录启动 → 滑出收回 */ @@ -1253,7 +1425,18 @@ void run_notif_center(struct app *apps, int napps, notif_click_t *click, /* 列表变化检测:~500ms 对比 count;变化重采集 + 重绘列表区 */ if (now - last_listchk >= 500) { last_listchk = now; + /* 阶段D附录B:面板驻留时排空 IPC(App 上报 META 更新媒体会话)+ 媒体会话 TTL,再做展示刷新 */ + meow_ipc_process(); meow_notif_tick(); + meow_media_tick(); + int m_on = meow_media_has_source() ? 1 : 0; + if (m_on != media_prev) { + media_prev = m_on; /* 卡片出现/消失 → 列表顶缘变化,需整面板重排 */ + need_paint = 1; + list_scroll = mnp_scroll_clamp(list_scroll, g_nrows * NCP_ROW_H, ncp_list_view()); + } else if (m_on) { + media_paint = 1; /* 已有源:进度/封面随 META 变化 → 仅重绘卡片带 */ + } if (ncp_rows_changed()) { /* ⑦ 列表已变(新条/撤下/TTL):取消当前行左滑,避免行下标错位。⑨ 同时取消面板跟手。 */ row_swipe_row = -1; row_off = 0; row_settle = 0; @@ -1262,10 +1445,11 @@ void run_notif_center(struct app *apps, int napps, notif_click_t *click, panel_drag = 0; drag_seed_reveal = 0; drag_y0 = 0; drag_paint = 0; ncp_refresh_rows(); list_scroll = mnp_scroll_clamp(list_scroll, g_nrows * NCP_ROW_H, - NCP_LIST_BOT - NCP_LIST_TOP); + ncp_list_view()); need_paint = 1; } } + if (media_paint) { ncp_repaint_media_card(); media_paint = 0; } /* 开关动画推进(§9:状态时间轴 + 快照 blit 平移;present 尊重 SDK 帧率门控,动画不更高频)。 * 每 tick 依壁钟差推进 p;改 anim_target 即平滑转向(可打断,不跳变)。 */ @@ -1321,7 +1505,7 @@ void run_notif_center(struct app *apps, int napps, notif_click_t *click, g_ncp_swipe_row = -1; g_ncp_swipe_off = 0; ncp_refresh_rows(); list_scroll = mnp_scroll_clamp(list_scroll, g_nrows * NCP_ROW_H, - NCP_LIST_BOT - NCP_LIST_TOP); + ncp_list_view()); need_paint = 1; /* 行已移除/重排:整面板(列表区)重画 */ } } diff --git a/patch_v2/meow_launcherd/now_playing.c b/patch_v2/meow_launcherd/now_playing.c new file mode 100644 index 0000000..dbff86e --- /dev/null +++ b/patch_v2/meow_launcherd/now_playing.c @@ -0,0 +1,326 @@ +/* now_playing.c — 阶段D附录B:Now Playing 大页(主界面横划进入;左缘右滑返回)。 + * + * 定案(用户):Now Playing = 通知中心媒体卡片 + 主界面横划进入的播放页,两者都做。 + * 本文件实现后者:封面大图 + 元数据 + 进度 + 控制按钮 + 歌词占位;返回手势回主界面。 + * 数据源:meow_media 会话(最近活跃媒体源);空态=占位。参照 SDK §5.2 横向分页模板的 + * 手势分流(左缘返回 / 顶部下滑通知中心 / 中部横滑内容)——本页只接管「中部/右缘向左滑进、 + * 左缘右滑返回」,与全局手势不冲突。 + * + * 性能:封面解码缓存(按 artwork 路径变化重载,不每帧解码);整页 1s 刷新进度(墙钟推进), + * 元数据/源变化立即整页重画;交互只重绘按钮/进度带。 + */ +#include "meow_launcher_internal.h" + + +#define NP_COVER 300 /* 封面边长(方,居中) */ +#define NP_COVER_X ((fb_xres - NP_COVER) / 2) +#define NP_COVER_Y 60 +#define NP_TITLE_Y 412 +#define NP_ARTIST_Y 450 +#define NP_ALBUM_Y 480 +#define NP_PROG_X 40 +#define NP_PROG_W (fb_xres - 80) +#define NP_PROG_Y 518 +#define NP_TIME_Y 492 +#define NP_BTN_Y 568 /* 控制按钮中心 y */ +#define NP_PLAY_CX (fb_xres / 2) +#define NP_PREV_CX (NP_PLAY_CX - 78) +#define NP_NEXT_CX (NP_PLAY_CX + 78) +#define NP_PLAY_R 30 +#define NP_PREV_R 22 +#define NP_LYRIC_Y 640 + +static meow_img *g_np_cover = NULL; +static char g_np_cover_path[200] = ""; + +/* 封面解码缓存(artwork 路径变化才重载)。 */ +static void np_cover_load(const meow_media_session_t *s) +{ + if (!s) return; + if (strcmp(g_np_cover_path, s->artwork) == 0) return; + if (g_np_cover) { meow_img_free(g_np_cover); g_np_cover = NULL; } + snprintf(g_np_cover_path, sizeof g_np_cover_path, "%s", s->artwork); + if (!s->artwork[0]) return; + char path[200]; + if (s->artwork[0] == '/') snprintf(path, sizeof path, "%s", s->artwork); + else snprintf(path, sizeof path, "/usr/data/mnt/sd_0/%s", s->artwork); + g_np_cover = meow_img_load_file(path); +} + +/* 实心三角(dir=+1 右向 / -1 左向)。 */ +static void np_tri(int cx, int cy, int size, int dir, uint32_t col) +{ + int half = size / 2; + for (int dy = -half; dy <= half; dy++) { + int w = half + 1 - (dy < 0 ? -dy : dy); + if (w <= 0) continue; + int x0 = cx + (dir > 0 ? -w / 2 : w / 2 - w); + fill_rect(x0, cy + dy, w, 1, col); + } +} + +/* 居中 + 按宽截断(UTF-8 安全),防超长标题溢出屏外。 */ +static void np_center_text(int y, const char *s, int size, uint32_t color, int maxw) +{ + if (!s) s = ""; + int W = fb_xres; + if (ui_width(s, size) <= maxw) { + ui_draw((W - ui_width(s, size)) / 2, y, s, color, size); + return; + } + /* 近似截断:实际按字节长度比例切(title/artist 罕见超长,够用不裂屏) */ + char buf[160]; + int keep = (int)(strlen(s) * maxw / (ui_width(s, size) + 1)); + if (keep < 0) keep = 0; + if (keep > (int)sizeof buf - 4) keep = (int)sizeof buf - 4; + memcpy(buf, s, (size_t)keep); buf[keep] = 0; + strcat(buf, "..."); + ui_draw((W - ui_width(buf, size)) / 2, y, buf, color, size); +} + +/* 圆形控制按钮(kind:0=prev 1=play 2=next 3=pause)。 */ +static void np_btn(int cx, int cy, int r, int kind, const meow_ui_theme_t *th) +{ + meow_gfx_fill_round(cx - r, cy - r, r * 2, r * 2, r, th->primary); + uint32_t fg = 0xFFFFFF; + if (kind == 0) { + np_tri(cx + 5, cy, r - 5, -1, fg); + fill_rect(cx - 4, cy - (r - 7), 4, (r - 7) * 2, fg); + } else if (kind == 1) { + np_tri(cx + 3, cy, r - 3, 1, fg); + } else if (kind == 2) { + np_tri(cx - 5, cy, r - 5, 1, fg); + fill_rect(cx + 2, cy - (r - 7), 4, (r - 7) * 2, fg); + } else { + int bw = (r - 8) / 2; if (bw < 2) bw = 2; + fill_rect(cx - 8, cy - (r - 7), bw, (r - 7) * 2, fg); + fill_rect(cx + 8 - bw, cy - (r - 7), bw, (r - 7) * 2, fg); + } +} + +/* 进度带(进度条 + 时间)绘制;pts = 当前显示位置。 */ +static void np_draw_progress(const meow_media_session_t *s, uint32_t pos, const meow_ui_theme_t *th) +{ + fill_rect(NP_PROG_X, NP_PROG_Y, NP_PROG_W, 6, th->outline); + int fw = (s->dur_ms > 0) ? (int)((uint64_t)pos * NP_PROG_W / s->dur_ms) : 0; + if (fw > NP_PROG_W) fw = NP_PROG_W; + if (fw > 0) fill_rect(NP_PROG_X, NP_PROG_Y, fw, 6, th->primary); + /* 时间(左=当前,右=总长;MM:SS) */ + char l[16], rbuf[16]; + unsigned lm = pos / 60000u, ls = (pos % 60000u) / 1000u; + unsigned dm = (s->dur_ms ? s->dur_ms : 0) / 60000u, ds = (s->dur_ms ? s->dur_ms : 0) % 60000u / 1000u; + snprintf(l, sizeof l, "%u:%02u", lm, ls); + snprintf(rbuf, sizeof rbuf, "%u:%02u", dm, ds); + ui_draw(NP_PROG_X, NP_TIME_Y, l, th->on_surface_variant, 16); + ui_draw(NP_PROG_X + NP_PROG_W - ui_width(rbuf, 16), NP_TIME_Y, rbuf, th->on_surface_variant, 16); +} + +/* 整页绘制(空态占位)。redraw_sb=1 时喂/标脏状态栏(打开/主题变化),否则保留上次顶条。 */ +static void np_draw_page(int redraw_sb) +{ + const meow_ui_theme_t *th = s_ui_theme(); + int W = fb_xres, H = fb_yres; + if (redraw_sb) fill_rect(0, 0, W, SB_BAR_H, th->surface); + fill_rect(0, SB_BAR_H, W, H - SB_BAR_H, th->surface); + const meow_media_session_t *s = meow_media_current(); + if (!s || s->state == MEOW_MEDIA_STOPPED) { + /* 空态占位 */ + const char *t1 = "未在播放"; + ui_draw((W - ui_width(t1, 26)) / 2, 300, t1, th->on_surface_variant, 26); + const char *t2 = "打开播放 App 以显示正在播放"; + ui_draw((W - ui_width(t2, 18)) / 2, 348, t2, th->on_surface_variant, 18); + const char *t3 = "左缘右滑返回"; + ui_draw((W - ui_width(t3, 16)) / 2, 396, t3, th->on_surface_variant, 16); + if (redraw_sb) draw_statusbar(); + return; + } + np_cover_load(s); + /* 封面:解码缓存 + 圆角裁方;无封面回退主题色占位 + 首字 */ + if (g_np_cover) { + meow_gfx_fill_round(NP_COVER_X - 6, NP_COVER_Y - 6, NP_COVER + 12, NP_COVER + 12, 18, th->surface_container); + meow_ui_img_cover(NP_COVER_X, NP_COVER_Y, NP_COVER, g_np_cover); + } else { + meow_gfx_fill_round(NP_COVER_X - 6, NP_COVER_Y - 6, NP_COVER + 12, NP_COVER + 12, 18, th->surface_container); + meow_gfx_fill_round(NP_COVER_X, NP_COVER_Y, NP_COVER, NP_COVER, 14, th->primary); + const char *t = s->title[0] ? s->title : s->app_id; + int cw = ui_width(t, 22); + ui_draw(NP_COVER_X + (NP_COVER - cw) / 2, NP_COVER_Y + (NP_COVER - meow_font_line_height(22)) / 2, + t, 0xFFFFFF, 22); + } + /* 元数据 */ + np_center_text(NP_TITLE_Y, s->title, 26, th->on_surface, W - 40); + np_center_text(NP_ARTIST_Y, s->artist, 18, th->on_surface_variant, W - 60); + if (s->album[0]) + np_center_text(NP_ALBUM_Y, s->album, 16, th->on_surface_variant, W - 80); + /* 进度 */ + uint32_t pos = meow_media_display_pos(s); + np_draw_progress(s, pos, th); + /* 控制按钮 */ + np_btn(NP_PREV_CX, NP_BTN_Y, NP_PREV_R, 0, th); + int pk = (s->state == MEOW_MEDIA_PLAYING) ? 3 : 1; + np_btn(NP_PLAY_CX, NP_BTN_Y, NP_PLAY_R, pk, th); + np_btn(NP_NEXT_CX, NP_BTN_Y, NP_PREV_R, 2, th); + /* 歌词占位 */ + const char *ly = "歌词(占位)"; + ui_draw((W - ui_width(ly, 16)) / 2, NP_LYRIC_Y, ly, th->on_surface_variant, 16); + if (redraw_sb) draw_statusbar(); +} + +/* 仅重绘进度带 + 按钮(元数据/源变化时整页;纯进度变化时局部)。 */ +static void np_repaint_progress(void) +{ + const meow_ui_theme_t *th = s_ui_theme(); + const meow_media_session_t *s = meow_media_current(); + if (!s || s->state == MEOW_MEDIA_STOPPED) return; + uint32_t pos = meow_media_display_pos(s); + /* 清进度带 + 控制带,再重绘(只脏这两带,不整屏)。 */ + fill_rect(0, NP_TIME_Y, fb_xres, NP_BTN_Y + NP_PLAY_R - NP_TIME_Y, th->surface); + np_draw_progress(s, pos, th); + np_btn(NP_PREV_CX, NP_BTN_Y, NP_PREV_R, 0, th); + np_btn(NP_PLAY_CX, NP_BTN_Y, NP_PLAY_R, (s->state == MEOW_MEDIA_PLAYING) ? 3 : 1, th); + np_btn(NP_NEXT_CX, NP_BTN_Y, NP_PREV_R, 2, th); + meow_dirty_add(0, NP_TIME_Y, fb_xres, NP_BTN_Y + NP_PLAY_R - NP_TIME_Y); + meow_ui_flush(); +} + +/* 控制按钮命中:返回 cmd(1-4),0=未命中。 */ +static int np_btn_tap(int tx, int ty) +{ + if (tx >= NP_PREV_CX - NP_PREV_R && tx <= NP_PREV_CX + NP_PREV_R && + ty >= NP_BTN_Y - NP_PREV_R && ty <= NP_BTN_Y + NP_PREV_R) return 3; + if (tx >= NP_PLAY_CX - NP_PLAY_R && tx <= NP_PLAY_CX + NP_PLAY_R && + ty >= NP_BTN_Y - NP_PLAY_R && ty <= NP_BTN_Y + NP_PLAY_R) { + const meow_media_session_t *s = meow_media_current(); + return (s && s->state == MEOW_MEDIA_PLAYING) ? 2 : 1; + } + if (tx >= NP_NEXT_CX - NP_PREV_R && tx <= NP_NEXT_CX + NP_PREV_R && + ty >= NP_BTN_Y - NP_PREV_R && ty <= NP_BTN_Y + NP_PREV_R) return 4; + return 0; +} + +/* 进度 seek 命中(拖动/点按进度带):返回 seek_ms(>0),0=未中(或 dur=0)。 */ +static int64_t np_progress_seek(int tx, int ty) +{ + const meow_media_session_t *s = meow_media_current(); + if (!s || !s->dur_ms) return 0; + if (tx >= NP_PROG_X && tx <= NP_PROG_X + NP_PROG_W && + ty >= NP_PROG_Y - 14 && ty <= NP_PROG_Y + 20) { + int frac = (tx - NP_PROG_X) * 1000 / NP_PROG_W; + return (int64_t)s->dur_ms * frac / 1000; + } + return 0; +} + +void run_now_playing(void) +{ + int tfd = open(DEV_TOUCH, O_RDONLY | O_NONBLOCK); + if (tfd >= 0) { unsigned char ev[16]; while (read(tfd, ev, sizeof ev) == 16) {} } + unsigned long long touch_cooldown_until = now_ms() + 300; + struct keypoll kp_keys; + kp_open(&kp_keys, DEV_KEYS); + struct kd_state kd_play; + memset(&kd_play, 0, sizeof kd_play); + /* 读播放键按住态(用于边沿) */ + int m_prev_play = 0; + for (int w = 0; w < KEYBUF_WORDS; w++) + if (kp_keys.cur[w] & (1UL << (KEY_PLAYPAUSE % 32))) m_prev_play = 1; + + int td = 0, td_ok = 0, tdx = -1, tdy = -1, tlx = -1, tly = -1; + unsigned long long last_prog = now_ms(); + int need_redraw = 1; + char last_title[128] = ""; + uint32_t last_state = 0xFFFFFFFFu; + char last_app[MEOW_APP_ID_MAX] = ""; + + np_draw_page(1); + meow_dirty_full(); + meow_ui_flush(); + + while (!sigterm_flag) { + meow_ipc_process(); + meow_media_tick(); + unsigned long long now = now_ms(); + + /* 触摸 */ + if (tfd >= 0 && meow_screen_on) { + struct pollfd pfd = { tfd, POLLIN, 0 }; + if (poll(&pfd, 1, 0) > 0) { + unsigned char ev[16]; + while (read(tfd, ev, sizeof ev) == 16) { + uint16_t type = *(uint16_t *)(ev + 8); + uint16_t code = *(uint16_t *)(ev + 10); + int32_t val = *(int32_t *)(ev + 12); + if (type == EV_ABS) { + if (code == ABS_X || code == ABS_MT_POSITION_X) tlx = val; + else if (code == ABS_Y || code == ABS_MT_POSITION_Y) tly = val; + if (td && !td_ok && tlx >= 0 && tly >= 0) { tdx = tlx; tdy = tly; td_ok = 1; } + } else if (type == EV_KEY && code == BTN_TOUCH) { + if (val && !td) { + if (now_ms() >= touch_cooldown_until) { td = 1; td_ok = 0; tlx = tly = -1; } + } else if (!val && td) { + td = 0; + if (td_ok) { + int dx = tlx - tdx, dy = tly - tdy; + int adx = dx < 0 ? -dx : dx, ady = dy < 0 ? -dy : dy; + /* 左缘右滑返回(全局手势语义):回到主界面(不清理媒体会话) */ + if (meow_edge_back(tdx, dx, dy)) break; + if (adx < 60 && ady < 60) { + int cmd = np_btn_tap(tlx, tly); + if (cmd) { meow_media_playctl((uint32_t)cmd, 0); need_redraw = 1; } + else { + int64_t seek = np_progress_seek(tlx, tly); + if (seek > 0) meow_media_playctl(5, seek); + } + } + tdx = tdy = -1; + } else { tdx = tdy = -1; } + } + } + } + } + } + + /* 播放键边沿 → 播放/暂停切换 */ + kp_poll(&kp_keys, NULL, NULL); + int play = 0; + for (int w = 0; w < KEYBUF_WORDS; w++) + if (kp_keys.cur[w] & (1UL << (KEY_PLAYPAUSE % 32))) play = 1; + if (play && !m_prev_play) { + const meow_media_session_t *s = meow_media_current(); + if (s) meow_media_playctl((s->state == MEOW_MEDIA_PLAYING) ? 2u : 1u, 0); + } + m_prev_play = play; + + /* 媒体变化检测(元数据/源/状态):立即整页重画 */ + const meow_media_session_t *s = meow_media_current(); + int meta_changed = !s || strcmp(last_app, s->app_id) || + strcmp(last_title, s->title) || last_state != s->state; + if (meta_changed) { + if (s) { + snprintf(last_app, sizeof last_app, "%s", s->app_id); + snprintf(last_title, sizeof last_title, "%s", s->title); + last_state = s->state; + } else { last_app[0] = 0; last_title[0] = 0; last_state = 0xFFFFFFFFu; } + need_redraw = 1; + } + /* 空态/无源:立即重画(清占位/回空态) */ + if (!s || s->state == MEOW_MEDIA_STOPPED) need_redraw = 1; + + if (need_redraw) { + np_draw_page(0); + meow_dirty_add(0, SB_BAR_H, fb_xres, fb_yres - SB_BAR_H); + meow_ui_flush(); + need_redraw = 0; + last_prog = now; + } else if (s && (now - last_prog >= 1000)) { + /* 进度推进:仅重绘进度带 + 按钮 */ + last_prog = now; + np_repaint_progress(); + } + usleep(10000); + } + if (tfd >= 0) close(tfd); + kp_close(&kp_keys); + if (g_np_cover) { meow_img_free(g_np_cover); g_np_cover = NULL; } + g_np_cover_path[0] = 0; +} diff --git a/patch_v2/meow_launcherd/test_ipc_harness.c b/patch_v2/meow_launcherd/test_ipc_harness.c new file mode 100644 index 0000000..51ac896 --- /dev/null +++ b/patch_v2/meow_launcherd/test_ipc_harness.c @@ -0,0 +1,154 @@ +/* test_ipc_harness.c — 宿主 IPC 服务端模拟(等价 launcher ipc_dispatch 的媒体子集). + * + * 用 meow_media.c + meow_ipc.h 复刻 launcher 的 IPC 服务器对媒体消息的处理, + * 供「qemu-mipsel meow_ipc listen/meta/playctl」端到端验证: + * listen → HELLO(MF_PLAYBACK)+META 注册源并等待下发; + * meta → 上报 META(作为新源/更新); + * playctl → 上传控制,服务端转发给「最近活跃会话」fd。 + * 运行:gcc test_ipc_harness.c meow_media.c -o /tmp/meow_srv ; /tmp/meow_srv /tmp/e2e.sock + */ +#include <stdio.h> +#include <string.h> +#include <stdint.h> +#include <unistd.h> +#include <fcntl.h> +#include <errno.h> +#include <stdlib.h> +#include <sys/socket.h> +#include <sys/un.h> +#include <sys/stat.h> +#include <poll.h> +#include "meow_ipc.h" +#include "meow_media.h" + +#define MAXCLI 8 +typedef struct { + int fd; + uint8_t hdr[MEOW_IPC_HDR_LEN]; int hdr_n; + uint8_t pay[MEOW_IPC_MAX]; uint32_t pay_tot, pay_n; + char app_id[MEOW_APP_ID_MAX]; +} conn; + +static conn g_c[MAXCLI]; + +static size_t srv_send(int fd, uint16_t type, uint32_t req, const void *payload, uint32_t len) +{ + if (fd < 0) return 0; + uint8_t h[MEOW_IPC_HDR_LEN]; + uint32_t magic = MEOW_IPC_MAGIC; uint16_t ver = MEOW_IPC_VERSION; + memcpy(h+0,&magic,4); memcpy(h+4,&ver,2); memcpy(h+6,&type,2); memcpy(h+8,&req,4); memcpy(h+12,&len,4); + size_t off=0; + while (off<sizeof h){ ssize_t w=write(fd,h+off,sizeof h-off); if(w<=0)return off; off+=(size_t)w; } + if(len&&payload){ size_t p=0; while(p<len){ ssize_t w=write(fd,(const uint8_t*)payload+p,len-p); if(w<=0)break; p+=(size_t)w; } off+=p; } + return off; +} + +static conn *find_slot(int fd) { for (int i=0;i<MAXCLI;i++) if (g_c[i].fd==fd) return &g_c[i]; return NULL; } +static conn *alloc_slot(int fd){ for (int i=0;i<MAXCLI;i++) if (g_c[i].fd==-1){ g_c[i].fd=fd; g_c[i].hdr_n=0; g_c[i].pay_tot=g_c[i].pay_n=0; g_c[i].app_id[0]=0; return &g_c[i]; } return NULL; } + +static void handle(conn *c) +{ + uint16_t type; uint32_t req; + memcpy(&type, c->hdr+6, 2); memcpy(&req, c->hdr+8, 4); + switch (type) { + case MSG_HELLO: { + m_hello_t h; memset(&h,0,sizeof h); memcpy(&h,c->pay,c->pay_n<sizeof h?c->pay_n:sizeof h); + snprintf(c->app_id, sizeof c->app_id, "%s", h.app_id); + m_ack_t a; a.code=MEOW_OK; a.status=1; srv_send(c->fd,MSG_ACK,req,&a,sizeof a); + printf("SRV: HELLO app=%s flags=%u -> ACK\n", c->app_id, h.flags); break; + } + case MSG_META: { + m_meta_t m; memset(&m,0,sizeof m); memcpy(&m,c->pay,c->pay_n<sizeof m?c->pay_n:sizeof m); + m.app_id[MEOW_APP_ID_MAX-1]=0; m.title[127]=0; m.artist[127]=0; m.album[127]=0; m.artwork[191]=0; m.lyric[191]=0; + int rc = meow_media_meta(&m, c->fd); + m_ack_t a; a.code=MEOW_OK; a.status=(uint32_t)rc; srv_send(c->fd,MSG_ACK,req,&a,sizeof a); + const meow_media_session_t *cur = meow_media_current(); + printf("SRV: META app=%s state=%u rc=%d | current=%s\n", m.app_id, m.state, rc, + cur?cur->app_id:"(none)"); + break; + } + case MSG_PLAYCTL: { + m_playctl_t p; memset(&p,0,sizeof p); memcpy(&p,c->pay,c->pay_n<sizeof p?c->pay_n:sizeof p); + int rc = meow_media_playctl(p.cmd, p.seek_ms); + m_ack_t a; a.code=MEOW_OK; a.status=(uint32_t)rc; srv_send(c->fd,MSG_ACK,req,&a,sizeof a); + printf("SRV: PLAYCTL cmd=%u seek=%lld rc=%d (target current)\n", p.cmd, (long long)p.seek_ms, rc); + break; + } + default: { + m_err_t e; memset(&e,0,sizeof e); e.code=MEOW_ERR_INVAL; e.msg_len=5; memcpy(e.msg,"nope",5); + srv_send(c->fd,MSG_ERR,req,&e,sizeof e); + printf("SRV: unsupported type 0x%04x\n", type); break; + } + } +} + +/* 读一个连接可用字节并组装帧(>=1 完整帧即 dispatch)。返回 0=ok,-1=连接关闭。 */ +static int conn_read(conn *c) +{ + for (;;) { + if ((unsigned)c->hdr_n < MEOW_IPC_HDR_LEN) { + ssize_t r = read(c->fd, c->hdr + c->hdr_n, MEOW_IPC_HDR_LEN - c->hdr_n); + if (r < 0) { if (errno==EAGAIN) return 0; return -1; } + if (r == 0) return -1; + c->hdr_n += (int)r; + if ((unsigned)c->hdr_n < MEOW_IPC_HDR_LEN) return 0; + uint32_t magic, len; uint16_t ver; + memcpy(&magic,c->hdr,4); memcpy(&ver,c->hdr+4,2); memcpy(&len,c->hdr+12,4); + if (magic!=MEOW_IPC_MAGIC||ver!=MEOW_IPC_VERSION||len>MEOW_IPC_MAX) return -1; + c->pay_tot=len; c->pay_n=0; + if (len==0){ handle(c); c->hdr_n=0; continue; } + } + if (c->pay_n < c->pay_tot) { + ssize_t r = read(c->fd, c->pay + c->pay_n, c->pay_tot - c->pay_n); + if (r < 0){ if (errno==EAGAIN) return 0; return -1; } + if (r==0) return -1; + c->pay_n += (uint32_t)r; + if (c->pay_n < c->pay_tot) return 0; + } + handle(c); + c->hdr_n=0; c->pay_n=0; + } +} + +int main(int argc, char **argv) +{ + const char *path = (argc>1)?argv[1]:"/tmp/meow_ipc_e2e.sock"; + for (int i=0;i<MAXCLI;i++) g_c[i].fd=-1; + meow_media_ops ops; + ops.send=srv_send; ops.log=NULL; meow_media_init(&ops); + + int lfd=socket(AF_UNIX,SOCK_STREAM,0); + unlink(path); + struct sockaddr_un a; memset(&a,0,sizeof a); a.sun_family=AF_UNIX; strncpy(a.sun_path,path,sizeof a.sun_path-1); + if (bind(lfd,(struct sockaddr*)&a,sizeof a)<0){ perror("bind"); return 1; } + chmod(path,0666); + if (listen(lfd,8)<0){ perror("listen"); return 1; } + fcntl(lfd,F_SETFL,O_NONBLOCK); + printf("SRV: listening %s\n", path); fflush(stdout); + + struct pollfd fds[MAXCLI+1]; int nfds=1; + fds[0].fd=lfd; fds[0].events=POLLIN; fds[0].revents=0; + while (1) { + fds[0].fd=lfd; fds[0].events=POLLIN; + int n=1; + for (int i=0;i<MAXCLI;i++) if (g_c[i].fd>=0){ fds[n].fd=g_c[i].fd; fds[n].events=POLLIN; fds[n].revents=0; n++; } + nfds=n; + int r=poll(fds,nfds,400); + if (r<0){ if(errno==EINTR)continue; break; } + if (fds[0].revents&POLLIN){ + for(;;){ int c=accept(lfd,NULL,NULL); if(c<0)break; fcntl(c,F_SETFL,O_NONBLOCK); + if(!alloc_slot(c)){ close(c); printf("SRV: reject conn (full)\n"); } else printf("SRV: accept fd=%d\n", c); } + } + for (int i=1;i<nfds;i++){ + int ev=fds[i].revents; + if (ev&(POLLIN|POLLHUP|POLLERR|POLLNVAL)){ + conn *c=find_slot(fds[i].fd); + if (!c) continue; + if (conn_read(c)<0){ printf("SRV: conn %d closed\n", c->fd); close(c->fd); c->fd=-1; } + } + } + fflush(stdout); + } + close(lfd); unlink(path); + return 0; +} diff --git a/patch_v2/meow_launcherd/test_media.c b/patch_v2/meow_launcherd/test_media.c new file mode 100644 index 0000000..0e5a44a --- /dev/null +++ b/patch_v2/meow_launcherd/test_media.c @@ -0,0 +1,169 @@ +/* test_media.c — 宿主单测:meow_media 媒体会话(阶段D附录B)。 + * + * 验证: + * 1) META 上报 → 注册会话,current()=最近上报者; + * 2) 最近活跃切换(两个源,后上报者胜); + * 3) has_source()(state=0 停止 → 0); + * 4) PLAYCTL 下发字节格式(socketpair 对端可读回 MSG_PLAYCTL 帧,cmd/seek 正确); + * 5) meow_media_playctl 无源 → -1; + * 6) clear(app) 清会话 → current()=NULL。 + * 只依赖 meow_media.c + meow_ipc.h(纯 C),宿主 gcc 直编。 + */ +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <stdint.h> +#include <unistd.h> +#include <sys/socket.h> +#include "meow_media.h" +#include "meow_ipc.h" + +static int g_fails = 0; +#define CHECK(cond, msg) do { \ + if (cond) printf("PASS: %s\n", msg); \ + else { printf("FAIL: %s\n", msg); g_fails++; } } while (0) + +/* ops.send:把帧写到 fd(socketpair 一端)。 */ +static size_t test_send(int fd, uint16_t type, uint32_t req_id, + const void *payload, uint32_t len) +{ + uint8_t hdr[MEOW_IPC_HDR_LEN]; + uint32_t magic = MEOW_IPC_MAGIC; + uint16_t ver = MEOW_IPC_VERSION; + memcpy(hdr + 0, &magic, 4); + memcpy(hdr + 4, &ver, 2); + memcpy(hdr + 6, &type, 2); + memcpy(hdr + 8, &req_id, 4); + memcpy(hdr + 12, &len, 4); + size_t off = 0; + while (off < sizeof hdr) { + ssize_t w = write(fd, hdr + off, sizeof hdr - off); + if (w <= 0) return off; + off += (size_t)w; + } + if (len && payload) { + size_t p = 0; + while (p < len) { + ssize_t w = write(fd, (const uint8_t *)payload + p, len - p); + if (w <= 0) break; + p += (size_t)w; + } + off += p; + } + return off; +} + +static void fill_meta(m_meta_t *m, const char *app, uint32_t state, uint32_t pos, uint32_t dur, + const char *title, const char *artist) +{ + memset(m, 0, sizeof *m); + snprintf(m->app_id, sizeof m->app_id, "%s", app); + m->state = state; m->pos_ms = pos; m->dur_ms = dur; + snprintf(m->title, sizeof m->title, "%s", title); + snprintf(m->artist, sizeof m->artist, "%s", artist); +} + +/* 从 fd 读一帧(头+负载),校验 magic/ver,返回负载类型;不足返回 -1。 */ +static int read_frame(int fd, uint16_t *type, uint32_t *req_id, uint8_t *rbuf, uint32_t rcap) +{ + uint8_t rhdr[MEOW_IPC_HDR_LEN]; + size_t off = 0; + while (off < sizeof rhdr) { + ssize_t r = read(fd, rhdr + off, sizeof rhdr - off); + if (r <= 0) return -1; + off += (size_t)r; + } + uint32_t magic, len; uint16_t ver; + memcpy(&magic, rhdr, 4); memcpy(&ver, rhdr + 4, 2); memcpy(type, rhdr + 6, 2); + memcpy(req_id, rhdr + 8, 4); memcpy(&len, rhdr + 12, 4); + if (magic != MEOW_IPC_MAGIC || ver != MEOW_IPC_VERSION) return -1; + if (len > rcap) len = rcap; + off = 0; + while (off < len) { + ssize_t r = read(fd, rbuf + off, len - off); + if (r <= 0) return -1; + off += (size_t)r; + } + return (int)len; +} + +int main(void) +{ + meow_media_ops ops; + ops.send = test_send; + ops.log = NULL; /* 静默 */ + meow_media_init(&ops); + + int sv[2]; + if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv) != 0) { perror("socketpair"); return 1; } + /* sv[0]=会话 fd(launcher 下发端);sv[1]=测试读回端(模拟 App)。 */ + + /* 1) 单源注册 */ + m_meta_t m; + fill_meta(&m, "com.ncm", MEOW_MEDIA_PLAYING, 120000, 240000, "Song A", "Artist A"); + CHECK(meow_media_meta(&m, sv[0]) == 0, "meta registers source"); + const meow_media_session_t *cur = meow_media_current(); + CHECK(cur && !strcmp(cur->app_id, "com.ncm"), "current() == com.ncm"); + CHECK(cur && cur->state == MEOW_MEDIA_PLAYING, "state == PLAYING"); + CHECK(meow_media_has_source() == 1, "has_source == 1 (playing)"); + + /* 2) 多源最近活跃切换 */ + fill_meta(&m, "com.player2", MEOW_MEDIA_PLAYING, 0, 180000, "Song B", "Artist B"); + CHECK(meow_media_meta(&m, sv[0]) == 0, "meta registers second source"); + cur = meow_media_current(); + CHECK(cur && !strcmp(cur->app_id, "com.player2"), "current() == com.player2 (newest)"); + fill_meta(&m, "com.ncm", MEOW_MEDIA_PLAYING, 30000, 240000, "Song A", "Artist A"); + meow_media_meta(&m, sv[0]); + cur = meow_media_current(); + CHECK(cur && !strcmp(cur->app_id, "com.ncm"), "current() == com.ncm after re-report (newest)"); + + /* 3) state=0 停止 → has_source=0(但会话仍在,current() 仍指向它) */ + fill_meta(&m, "com.ncm", MEOW_MEDIA_STOPPED, 0, 0, "Song A", "Artist A"); + meow_media_meta(&m, sv[0]); + cur = meow_media_current(); + CHECK(cur && !strcmp(cur->app_id, "com.ncm"), "current() still == com.ncm (stopped)"); + CHECK(meow_media_has_source() == 0, "has_source == 0 (stopped)"); + + /* 恢复播放,准备 PLAYCTL 下发验证 */ + fill_meta(&m, "com.ncm", MEOW_MEDIA_PLAYING, 1000, 240000, "Song A", "Artist A"); + meow_media_meta(&m, sv[0]); + + /* 4) PLAYCTL 下发:cmd=1(播放),读回端应收到 MSG_PLAYCTL/第11号 req */ + CHECK(meow_media_playctl(1, 0) == 0, "playctl sends (cmd=play)"); + uint8_t rbuf[512]; + uint16_t type; uint32_t req; + int n = read_frame(sv[1], &type, &req, rbuf, sizeof rbuf); + CHECK(n == (int)sizeof(m_playctl_t), "downlink frame payload == m_playctl_t size"); + CHECK(type == MSG_PLAYCTL, "downlink type == MSG_PLAYCTL"); + m_playctl_t c; + memcpy(&c, rbuf, sizeof c); + CHECK(c.cmd == 1 && c.seek_ms == 0, "downlink cmd=1 seek=0"); + + /* 5) seek:cmd=5 seek=12345 */ + CHECK(meow_media_playctl(5, 12345) == 0, "playctl sends (cmd=seek)"); + n = read_frame(sv[1], &type, &req, rbuf, sizeof rbuf); + memcpy(&c, rbuf, sizeof c); + CHECK(type == MSG_PLAYCTL && c.cmd == 5 && c.seek_ms == 12345, "downlink seek cmd=5 seek=12345"); + + /* playctl_to 目标 app(另一会话) */ + CHECK(meow_media_playctl_to("com.player2", 3, 0) == 0, "playctl_to player2 sends"); + n = read_frame(sv[1], &type, &req, rbuf, sizeof rbuf); + memcpy(&c, rbuf, sizeof c); + CHECK(type == MSG_PLAYCTL && c.cmd == 3, "downlink to player2 cmd=3"); + CHECK(meow_media_playctl_to("no.such.app", 1, 0) == -1, "playctl_to unknown app == -1"); + + /* 6) 无源:清全部 → playctl -1 / has_source 0 */ + meow_media_clear(NULL); + CHECK(meow_media_current() == NULL, "current() == NULL after clear all"); + CHECK(meow_media_playctl(1, 0) == -1, "playctl no source == -1"); + CHECK(meow_media_has_source() == 0, "has_source == 0 after clear"); + + close(sv[0]); close(sv[1]); + + /* 7) 空 app_id 拒绝 */ + fill_meta(&m, "", MEOW_MEDIA_PLAYING, 0, 0, "x", "y"); + CHECK(meow_media_meta(&m, sv[0]) == -1, "meta empty app_id == -1"); + + printf("\n%s (%d fails)\n", g_fails ? "FAILED" : "ALL PASS", g_fails); + return g_fails ? 1 : 0; +} diff --git a/patch_v2/meow_launcherd/util.c b/patch_v2/meow_launcherd/util.c index 0100474..933e472 100644 --- a/patch_v2/meow_launcherd/util.c +++ b/patch_v2/meow_launcherd/util.c @@ -862,6 +862,14 @@ static size_t ipc_send(int fd, uint16_t type, uint32_t req_id, } +/* 公开的 ipc_send 包装(media 模块经 ops 注入用;签名与 meow_media_ops.send 一致)。 */ +size_t meow_ipc_send_pub(int fd, uint16_t type, uint32_t req_id, + const void *payload, uint32_t len) +{ + return ipc_send(fd, type, req_id, payload, len); +} + + /* 组装完的帧入队(SPSC 无锁,先写槽再推进 tail,__sync 发布)。 */ static void ipc_enqueue_frame(struct meow_ipc_conn *c) { @@ -1014,6 +1022,12 @@ static void *ipc_thread(void *arg) * (bind/listen 失败记 ipc_thread_ok=0,随后 meow_ipc_process 仍安全轮询空队列。) */ int meow_ipc_init(void) { + /* 注入媒体会话 ops:send=ipc_send 包装、log=logmsg(阶段D附录B)。 */ + static meow_media_ops g_media_ops; + g_media_ops.send = meow_ipc_send_pub; + g_media_ops.log = logmsg; + meow_media_init(&g_media_ops); + ipc_event_fd = eventfd(0, EFD_NONBLOCK); if (ipc_event_fd < 0) logmsg("ipc: eventfd fail %s (10ms poll drains anyway)", strerror(errno)); @@ -1246,6 +1260,39 @@ static void ipc_dispatch(struct meow_ipc_msg *m) * 需用时由守护主动经 meow_notif_serialize_list() + ipc_send 下发(M5 通知中心接入)。 */ logmsg("ipc: NOTIFY_LIST (downlink) not dispatched here"); break; + /* 阶段D附录B:媒体会话(FRAMEWORK_DESIGN 附录 B)。META 声明 MF_PLAYBACK 的 App 上报 + * 元数据/进度/状态 → 归并到 meow_media 会话(最近活跃=当前源);回 ACK。 */ + case MSG_META: { + m_meta_t mm; + memset(&mm, 0, sizeof mm); + memcpy(&mm, m->payload, m->plen < (uint16_t)sizeof mm ? m->plen : (uint16_t)sizeof mm); + mm.app_id[MEOW_APP_ID_MAX - 1] = 0; + mm.title[127] = 0; mm.artist[127] = 0; mm.album[127] = 0; + mm.artwork[191] = 0; mm.lyric[191] = 0; + int rc = meow_media_meta(&mm, m->fd); + m_ack_t a; + a.code = MEOW_OK; /* 会话策略:槽满降级最旧,不视为错误 */ + a.status = (uint32_t)rc; + ipc_send(m->fd, MSG_ACK, m->req_id, &a, sizeof a); + logmsg("ipc: META app=%s state=%u pos=%u/%u rc=%d -> ACK", + mm.app_id, mm.state, mm.pos_ms, mm.dur_ms, rc); + break; + } + /* MSG_PLAYCTL(↑ 控制器→launcher 转发):把 cmd/seek 下发到「最近活跃媒体会话」fd。 + * 物理媒体键 / 宿主验证经此外发;通知中心卡片/播放页按钮走 meow_media_playctl 直发。 */ + case MSG_PLAYCTL: { + m_playctl_t c; + memset(&c, 0, sizeof c); + memcpy(&c, m->payload, m->plen < (uint16_t)sizeof c ? m->plen : (uint16_t)sizeof c); + int rc = meow_media_playctl(c.cmd, c.seek_ms); + m_ack_t a; + a.code = MEOW_OK; + a.status = (uint32_t)rc; /* 0=已下发;-1=无源/发送失败(status=0xFFFFFFFF) */ + ipc_send(m->fd, MSG_ACK, m->req_id, &a, sizeof a); + logmsg("ipc: PLAYCTL cmd=%u seek=%lld rc=%d -> ACK", c.cmd, + (long long)c.seek_ms, rc); + break; + } default: logmsg("ipc: unsupported frame type 0x%04x (req %u)", m->type, m->req_id); {