From 1a3c4640ecd781c4f5b8cc1c6e613ce32889a18d Mon Sep 17 00:00:00 2001 From: weifashi <605403358@qq.com> Date: Wed, 30 Aug 2023 21:58:46 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=20=E4=BC=9A=E8=AE=AE=E9=82=80?= =?UTF-8?q?=E8=AF=B7=E6=94=B9=E4=B8=BA=E7=94=B1=E6=9C=BA=E5=99=A8=E4=BA=BA?= =?UTF-8?q?=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/UsersController.php | 6 ++++-- app/Models/User.php | 7 ++++++- app/Models/UserBot.php | 1 + public/images/avatar/default_meeting.png | Bin 0 -> 10614 bytes .../public/images/avatar/default_meeting.png | Bin 0 -> 10614 bytes 5 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 public/images/avatar/default_meeting.png create mode 100644 resources/assets/statics/public/images/avatar/default_meeting.png diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index 420f423de..f2ebb0682 100755 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -1198,7 +1198,8 @@ class UsersController extends AbstractController if (!User::whereUserid($userid)->exists()) { continue; } - $dialog = WebSocketDialog::checkUserDialog($user, $userid); + $botUser = User::botGetOrCreate('meeting-alert'); + $dialog = WebSocketDialog::checkUserDialog($botUser, $userid); if ($dialog) { $res = WebSocketDialogMsg::sendMsg(null, $dialog->id, 'meeting', $data, $user->userid); if (Base::isSuccess($res)) { @@ -1277,7 +1278,8 @@ class UsersController extends AbstractController if (!User::whereUserid($userid)->exists()) { continue; } - $dialog = WebSocketDialog::checkUserDialog($user, $userid); + $botUser = User::botGetOrCreate('meeting-alert'); + $dialog = WebSocketDialog::checkUserDialog($botUser, $userid); if ($dialog) { $res = WebSocketDialogMsg::sendMsg(null, $dialog->id, 'meeting', $data, $user->userid); if (Base::isSuccess($res)) { diff --git a/app/Models/User.php b/app/Models/User.php index 0ecd87e81..d3bfcc580 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -541,7 +541,9 @@ class User extends AbstractModel return url("images/avatar/default_claude.png"); case 'bot-manager@bot.system': return url("images/avatar/default_bot.png"); - } + case 'meeting-alert@bot.system': + return url("images/avatar/default_meeting.png"); + } // 生成文字头像 if (self::$defaultAvatarMode === 'auto') { return url("avatar/" . urlencode($nickname) . ".png"); @@ -631,6 +633,9 @@ class User extends AbstractModel case 'bot-manager': $update['nickname'] = '机器人管理'; break; + case 'meeting-alert': + $update['nickname'] = '会议通知'; + break; } $update['nickname'] = UserBot::systemBotName($email); } diff --git a/app/Models/UserBot.php b/app/Models/UserBot.php index 5c4deaf1b..8795a85b8 100644 --- a/app/Models/UserBot.php +++ b/app/Models/UserBot.php @@ -58,6 +58,7 @@ class UserBot extends AbstractModel 'ai-wenxin' => '文心一言', 'ai-qianwen' => '通义千问', 'bot-manager' => '机器人管理', + 'meeting-alert' => '会议通知', default => '', // 不是系统机器人时返回空(也可以拿来判断是否是系统机器人) }; } diff --git a/public/images/avatar/default_meeting.png b/public/images/avatar/default_meeting.png new file mode 100644 index 0000000000000000000000000000000000000000..1777f815fd9b960d368b5d8db2724a5496dd846b GIT binary patch literal 10614 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

@*TY>E;cFoD)BP4@4DBzQeQ3Onv_Y-iF%Zw0 zU&xnI@z4F}<(#vP0(HI9cs`bjGziGr6#K_O-Wh&<*3c6;Twu6D3UHZRjz%R9C*G&q zmIudtK2etb!vd>MF@tRopp!CL9PP!DnSUx3GJ`_@50jb+hM3e)OA5f2 z4l}QWYbXtU`T?P$Co=dEp7?qDQqckg#*zs|(5`<+q^-Km_4ZGIgtJjXPgdd=YqFLD zzidYvKqk}ct5wRU%^0jeHdR;|)=XwuyIGXCs6v?)>l)hM$VC5#x~VQ$XBUl}F|Qpo za@yZEkkTnr?5;Yq51|G1FU9|Ma`Mb}G#$x`4rOe(Xms-g3;7)AePXuUEB0yt8Z zzbh9IYvpswycfY{Ic6gr(`A5+mzVQHAA^jE>twtjw72i(@>$NNzEBVOS?H7HtCd5u zD-ontK%o;#fG6*1xr%aLxGg)D0ddH}?5X`U9X0tc7$H~76Smks4Y-6}Lr`+fEA*VM zqs?SF$7jR?bkL9wdagwyS9``^!>}l$7IkF*Sh3|p;-mLjcw}9Px1v#mcZtq$qM9Xf zvN`DCY(J4r$plJkp`swQN7alb77EMeMo(mA?o$F)>>~{qebCwp8|87~aEr-;J&gWV zG4Auco)oTE629KAO51cVKQg_?k5Jl>DB#svTN82UrrQrmVaOxY>Sg-gNt;FB>RVU) zapx*?{qfO`X0A0e!fUXQ29?hh4Stf*U)v7PRCwH{x~On6b-)Uy!*2 zcn7^uV-s4@z4PzhaKpLSw)R5pQi&g=uK?J3EDt$5KfE8LC{GUvZRw}RxLG-=KnAUC zkB%(clHgevxAVWhA%b~9|Azl&CK}QzGorfi6-x7i$U*8!D3PLvNAKJ0tXoI~y$4gi zAwk;lrgf*PnZ1e;!*IR{QOTYe|_m z4pO-bNb<9hYYJ(zE#+n~UWt1-PnLW^z}HSpmUS~?RRuQtfpP!Xhhk+RUXFXSoscTu z{}+Jml+ChJW`HC9LLg?m1c!RQS12&m!$ZgpEdH{zkYCgJz~(_S15WGRugx~W4sVrp zK{}ARe>*8??4=Q`9E83zH>l)8 z;`di)>`+Ww<$V&fv*E{~Ez*~dJVBk#9Q4&+)){L`%!w7959A*H{_sEX(@2h3I^+%r zm(NO;S0duh<;gS2|G}AHx1aYQVCf9;b_YFlO8>Hj5#F5V`@x1SVb%y?kwp#o-;p#` zJ$X_(w>Prf%YObgz^w@migT9SwzDUix>bhD&1H)IgCo8F7hB~If0~)%j@;*Hu*jJ< zG36cm@q1jFqK?Un$aTGlexE0Ri(WiW=|tG)!-eT&kQ*P zyp{F30fsHi+7f>3jBvjQW_*X^@Gh0xYBm=|-3h+R@4>vZpJwr#l*T^F$Pl`)95)U9 zIsCiQ>k$1s9h-hu>woiNl=IzV4o#5tZGUeLYFc#;93ud6X>^=^Dzvq+=lP?4Ja=TNp)>;1t_ssnGAnMqd_@Z5DWNfv2 z&Lxx3xS>*w@J5duRzcArl%QJg0EKmM@RSR6G>lPl1A-2<5?72mEYa4Id zYkRzJ8RPFalAj|z!`-vUbsWp%{%u;LJalV)-QgU5TUFnG>vfPnX)+Khn^2+M4|1BB zi`qXMI;-URDV6X50(VjSs*#pTHp131Er!!$yxOKC-Ap*0kJ-G1sIZ;NBJF$enBmc< y_*8;rw<+;oH3@4_K!okfuPs{P=MJcz}!(+$dxmH@jn0;a;W71 literal 0 HcmV?d00001 diff --git a/resources/assets/statics/public/images/avatar/default_meeting.png b/resources/assets/statics/public/images/avatar/default_meeting.png new file mode 100644 index 0000000000000000000000000000000000000000..1777f815fd9b960d368b5d8db2724a5496dd846b GIT binary patch literal 10614 zcmeHtcRbZ!9QU~-WmbMh$*6FXQJEoIacx=IDiK1s$i7-=ATn?ECL?>(FUj7r$#%_b zuJxR6zvub?c|Fg6&+EDW-0wNxbI$j3KKp#$Cs0#ek(%NH1pt5=qoi;T0225}0#2QT zf1A&HiSQ5Qd{0phKXFcC3bbKV~4O3 zO;F{MJ@pZHH6Xu{Ghd}FFQ9SZo9^w3mfmv@%%i6&9zmvmxo*N;Ml-j+L%m*{e3w)e{Sg zp4UJ$gd#M>1LjV@pc?yN_0RxeoQMK|Xe=5Ecpoj5g7cNMtI=GkwY=bP!yq~9YHOnZe@56}3rXEKR1gZElZ7PYQ>+UuK% zpO^Fx_a>*zYX2?qr+G7;3{I3RMbupJrx3s5=vk{`)nb>c+9Nkdg3EGR{ z&bg7I7-=?2RGz0rt9lijzwhPGW+yMts7!e5B;AqvUCxRG=kc(cAzG4`)6FCCPgr>5@SD!) zG;s=<54x8rVLt%x}ak)X08;PW9cmBa$yHLZCcPu|^ z_&ax_zLOl+v>@8^-QLiyJc7-U@L)?5aAg+G1*R>hy2UwkryIKlPW!)VKLNDE?1c9u z`A2Uj?~cgFE~9DRsP{Hr1$0GAG|~mPHDeqic%SWYCvE^4Rn?L)Nt0Ly{;`?^rzx8k zrxU>Yo+M%K4PG@V9>ODmHmX>1kTg5QMc9u^8J}NyV!|x0ekBpS|Ca8sE@$+0^)h#9 ztH~;TX(t)ZL;GeA>AlD94w+ju4rY(!6G{6dDC$tW3u{T?%8|+?I^9*B?f^V0&|Bxf z&ak>*UwUu;#@1VseA;&&RZ&z_KE|2Xo%cqNF;i9rF3L~chekFf-`0&?1(owlYiY}e zslm-#?oH~HkS0y)qbOC;)+gLY35BC&PUa`b%^q*`dsH7 z4NMHHI4xk;mS|nF?CI365FZkGLqjKrCHvhY>Yi9!eoPVV+hyT^ka8xd#VmAq%bS$1 z^oJ|KT!+lOE6Yzi>~kJ==bgM23iQ$nR*L2fOs>3c3-)gh4ZliJS70Pk9KO+$Cp>sA z(s@S;)S0T5w9W9W&#;K{*AoAXb-LTwH8bMw*b-->=W00j&LqasJ1QIc93!Qc^koXKVk7Z0t5&=4ZHKyG%Xlr)9~q;d~e$X&bGghR{FxpgTde zW%wGOD3-tIsMDP*=@MmK=x}LAx8?*hf3bf%2?&V9NM57zcKva19xrcoKJN_==+C{z z62?)X4OI(@JfuiO&1LWd<-6;zXarcPbs>`m-CY-4(^HZWL6|c#pWA4u5KoglC*F8p zxD|tYSKH%jy+BMv_D^)iE)XXsS2xWrAa4~=_p2&a!;}w2nk-+#kJr@<@}~L>Pxg7o zQ^i{FF4O>C(;nZP+k0tc@zNmSsJJQ2fgkqR&9jqh_mi2g#dOcjjB#o^&+`KCJ}}c@ z#pGT8Cn+}ZX20GU3~t3u z5z#dxE{|Kbw)9Ax5=ob=e>(ObR#(=X5hn*g*XdhrF3)gBjqi62Ir2eWlN>uMCx`x>S}z!JKgJ2Q*j+AZ<2hOoAeVQp^5IN4pWADyvqgYveArBS zn#LF4%64b#Hzz_mXin*YyKxIU31y|yfL)!rTZi$L$6NCd2^4?1_x_iUibR0}6!V_%Vkz=)Ly!|0G_fx(dv#^0(~ z16oHT*UtKWMV^i4<#(}i?B_zkgQboM%kowJg*ExY0Rt|wIwE<^X-_*erm(!=)ClB7~QGbr%IMR;n_%iE?0s+xYC8?R! z>7EZZruv2~`}Ba6cNk;n=R6B&rkW=F@zK*>Gl*|5E-@%3=^PsIeO+m0oU@DqxN+y5 zcSiXAyo_JlS&)N-n6W|n4oRDWQr$R|)tH;}P9GnVlDe9d#@zohb@N1upFsm51;vA;N+)HNAsVYILJ@ zuPE!bkGd5(V+Fg$p^bz&wKwv{g`D>GFzcPV!xQeqHE2yYdJ{62*SGcE59i9^9HFuC z&z%%90ylOY-$(QE8@O>h2q+tlvVsl#eVdfbHnnSt)Ll@kE;hVrqjzI@T33x?i$Gh$*yb5)^H{+j*J zI)9US?h@|e&m$DbP?^GaJ*uI4))iCZKHJp6InxjeEwtD02cKkmWwOiieV^y8JRpKA zp8h)<)beoV=)Ok+Y4o_qZo406{EpC%W5m{s;ks$Y!|QE)XujGJQ?Y^IAZxM&80b6x zkVAutwu~TG-uStmOwI>lB{hViIVri~VVc?-V^EL)^M{vG9PS=-DagATfuz*V`Fi_z{zqM%D2a9~x9jWZw-cNOo(D715L|0cLb9hgC!5 zaDT#cKBiW|8si(op7c1D!$Yfb?0pf06uxroK+w@q;r79iDH*%V_$ntUWbWFMZON)G zXkDrvtVaQ0Fwp;WJO}VrrmiZv;qfLMPzh{TMBE1XycJi7)uR-3nzB|(W1sDy`_?oX zyM24g*P)aoq^w$cSO(_#l%DOoqZByj9mtWi6iKTCJlSs~tDW419ok{TBefN6R_}fG zEKyImBh|yL4Wo1r0ju^HHm7PU)_N5Jo#}Lc3{SeY4A$%+=enRFGk56_bsvY+@(O z_uR-nAoFetY|vo@Qqy0lA*~zYu;rumayr!6R#r`;!N5bTI&G=5Rlzx}35jSbw^TEkJ&LgKA)<3I-yM8!th(Dl74`=seE=j3y zGci~cO-W1!)Gz6QYV(@&xkCcmjLYT&DxX)*n-2mRYVt7GYd7#6r(UtyTGcM$7fHQfb_wl$@a2X2t;=1~QnypO&F2+l zyeI1T8d8b}v2F1}HxIg=sk?is`+8#vhsx$o6JoLqeS933hj*A@FX$o{;w}X;p-u)<0lL-`SMdN*+^|NSpS)B#EHC>M;2X z+8x-wa+9#|Znx-F<{Xqq?LpX!7_nHgkIBG1Uh27_=}(q#Eu`8#XZ<;d1B0(SZ{iZ3 z`~NfziVvGl(%yakD${N=nqKD1RWP7-30)j-r1>uo>Dk=@1NUMP=O{|YNjuic^4;Dl zn%H*c%afW<1-va-vrPi%$bdskpC#|%6>%%p$SGFFfOB~sRfNfM_lTpjsgxSC#-QH6 z)Klp~jTG_yBX>H5&+200=~rlHIvFSBP&f|4zhO>ZM8#hI+kxNB0w^8!G#^enT~%;c zk#HKhcuFe~$e>#>Wy05z^cykh&P-Hi69G3 z&zv6HyW%#FoobM-3z&UDVDaB53Apt~Irw7yk>9AJHhcXGeUItqBiHjKj=0WHQpij{ zFC=vp^*rfI7eGqJ?o>GR{4}Uc`sWHm)xKhGAagvZ+TtxF1pLvI`ggexBIG|=clkK{#2b!QhTVZZELlb-*(yI z+J&oDk>@|WgYL-x05q{ZmZ*1>(`YIy-x*Kaij^* zQOOiq#T-pm$@Rs_LRlT|iIK&6d#RU7-l|VTEis}|Br@z)Z1FwCY&Kawq6LsSS5_hr0n__%>&%%OYS&o*sS^Uw&DLOGW@crM~ z%P4aSn|77uIR@+u+3O0A*@ipm)4Beih`0y9&S!+1H;pCj{3aY0RrRn=FOrBsnN#S}&~X zQUaIX0rGDm4}!&ujv^0sQnj3uJ&+mdb8#U(iXFT{n=@E7s9(X6@X)7aTbOw`QU%=t zsm9S+e^uMh8}ypYa63#dr{<{Q=S6i-T4flWOZL$O;5RrI#=rNyivKqEi1&e?A(V5S zPpgffiKDEnB3r}s&t7?$?0DariWNH?9CR0EOlt_0&PT&6ZYl9_q@gUC?Z)}4e^KVN zRKE2%eHhNpCc!9n<`Pnk{Qr;t*L}Z0(tGld*$cEssGA&AecNpYuZqOMmC zuJ)2COKE)nM~Hp7gQhp>my_l;i0GLRmy$OooMBemy^B6&KaBYp$O3&!Lt^PPal86u z#eP>o_sJEM{Kc*SR@l$=8?EuF?=V@`Zsb=~e2UrdP~9?_t}I;t^aV-TKUN(=V?POu zqQaJrvao6h%+H-{?v_6EQp#Rov&o=4VK!1vA+rScqDi(Ws#7$%A`2rrk?qT{tB3rw zf}IvjKb1?CvEGYjClPNnjy@$tG@fE9kl8|By}cK?Vr2H~xXMZs@42`dB2zBl;cV?fgfpMcVSOL|;ZD~Q)P zPWdAlouk;h+KG-KtlDv=gC39Z3m>4#co#ma@oX{RdB z{_w4rW&#IaOTFfyu_XHyVE1cj37L`i4hO~D>G5B(hObjsc=+i3s$di&(C*)b{KOq? zynY)u9JNpzAKgFVHl0<_W>&4)b$rMfxsMd6!I^=Q*xWu^Dng@t3-PzLdn{H*z3CQh zXBy$pa)9r;#q0fpN3dQDG|{H+--{QHE)|PJ3h%H4s^7lW)#c9_BW5@5PY#)FHxRne z6nRhb&?(DKVy`~g3Uj=3A&a}O_b@hbQ@)kZTgI%}%_UKVK$|BGkIXV&}iH?W$H)WcRbwbAZ>Lx=M@ zXWm?+V%%PCe+mZ%FK#Kz)3P-SnH>88^ zpAXq=8UN$|H`+rh>dE`lMDFP6sNMYdYXAiq2u&f6pH!8px7%#;l;OP!LO2e$i*>Hs zKcokaLnDhGn_?6IrW$ql6{C)8U=q7pQE*T1`0RNKFjnLvpJiqC7!Gu|SqbOHzkdlwrbUIVI9xE7hI|>L;u^bT$v}UbsG~fT}ZHG0~q@JF7ir zYh>b<$3nqEdg=`ct~!O^d+yt%E$V#!x0%)nys#k~_tGyz3*>7IyH@CpO4l=Uq?aI2wx8irQqsDgJYOpkV6{plxmUOxO4D3Qr=_Q z;EgmpX0H>adCcnhHOa3ad#YN^W|sct$xmtB%g0hF$6kIDwC~|j>CyUTOXkr|F!@#k zO%Oim>n3%XeYtPQ1nrU^3GOD8Mqe`<&6C5ELF5THZ`a=Jds|7qwb@c-=_mO$;hiHl zwK6pO-oc-9n;!+&uZbAUD?x2&{=QSV+e9}q#Wui30l20=TJabjSL*l@72RXqjnz-v zVlwDzJra{De?=7Ap~Kj2oiVDas5d*!^;i#&q=d1Kym!EZl+4ZP7W%{8uLY*=FH42Y zq0BO3qI*=WYIxEGgW9aORcWXbwvTN67rW+oJf;UJ&>19C3Md)1i{AH>U{E|>jV+{` zaZaRraP6vo3ZrN$ad|N_&RuvWn!b+X84a*`_&q`gIT$!pe~Lm9YCXL5ulEW$ZTE~m z(vw^?Hml8ckb#;pRL0jAVcLI2e**=*piEn;)WLM|glFDHAT?M(r9VaeKM)#~IdtXx zVR(9}SDgqShopP?Dd1i+#qfKd9ARKB@ zw@G}vS0Z-)==i7-0eobZKeQhxgc>(d%Jv{jzHdM1qQ|Ab_+O=kWFD~iy#bPH0P74* zfAnX@PyDS-{H;_dKOGVbRhA`%-r11nL+il=Nhib$x%OQKkb+x;>h@wT&0^SHT9lHL z`iT?3TzS~#7rOS?o~Rij1S1A>Wh+sXQbv6{`vy|hU~rAya$vw6d968?yS@p86#<*( z;zDUNFR#rOQOdghy!>SWGe$0?mcqT^fpS*j2@qW5WNs9JMYIe)W~R8c+EOFbeIJ)ao(8ykpvrAoW53szlea{yw&-AU z+95A^hkV%1tk64;BqVAyOzrPl-fi2}6m^>s5oS?EoOq?byBiXyPMu-&^zqFj=^V6| zu-JYkg4E>Hq9sRQbNgW1l+1j3*zFgDvtR)aR>Gtxaf}qwAA8MOZovg+iHep)(`^Hw zXKK$}Z-RnlH*E0x*3Igrxih$FWlx((a#$%G^0VCYp_FM4^{jsY>Aj$P+{inge#n4B zuu98G8>BBJnssI2s#I;Q@3;dhghMnZ*M|csjFICfU;!|~cJHHwQ8x2wxLSlAOWef1 zTOCP0EE$T3m7auUf4``MIEWE%`1#D@$Yer|E6P1S!foVyc$qA2U~o7dM)LWvtNjlXBrN6qsUkD;wwmtl{^!{x^Jtc9=| zjNqW5ZXd40(`5$V>V>$jN22ZWAe8Z)TlCY>=e|%RI`K`v+`m5Wf9~rrLY7cDT6kFS z5`feHAa?PqVL)C1fYtC6DChHIyJ{oida0zOIt57w}oisF0Kzzlh=1r}xlMfpFe}g`WE- z4ehgswzG;aVGN6Ge)n>$#aDP)3YSs>nO4;jKDA}ZQA#{p-Y=2tlE3uh+1&Qt+St

@*TY>E;cFoD)BP4@4DBzQeQ3Onv_Y-iF%Zw0 zU&xnI@z4F}<(#vP0(HI9cs`bjGziGr6#K_O-Wh&<*3c6;Twu6D3UHZRjz%R9C*G&q zmIudtK2etb!vd>MF@tRopp!CL9PP!DnSUx3GJ`_@50jb+hM3e)OA5f2 z4l}QWYbXtU`T?P$Co=dEp7?qDQqckg#*zs|(5`<+q^-Km_4ZGIgtJjXPgdd=YqFLD zzidYvKqk}ct5wRU%^0jeHdR;|)=XwuyIGXCs6v?)>l)hM$VC5#x~VQ$XBUl}F|Qpo za@yZEkkTnr?5;Yq51|G1FU9|Ma`Mb}G#$x`4rOe(Xms-g3;7)AePXuUEB0yt8Z zzbh9IYvpswycfY{Ic6gr(`A5+mzVQHAA^jE>twtjw72i(@>$NNzEBVOS?H7HtCd5u zD-ontK%o;#fG6*1xr%aLxGg)D0ddH}?5X`U9X0tc7$H~76Smks4Y-6}Lr`+fEA*VM zqs?SF$7jR?bkL9wdagwyS9``^!>}l$7IkF*Sh3|p;-mLjcw}9Px1v#mcZtq$qM9Xf zvN`DCY(J4r$plJkp`swQN7alb77EMeMo(mA?o$F)>>~{qebCwp8|87~aEr-;J&gWV zG4Auco)oTE629KAO51cVKQg_?k5Jl>DB#svTN82UrrQrmVaOxY>Sg-gNt;FB>RVU) zapx*?{qfO`X0A0e!fUXQ29?hh4Stf*U)v7PRCwH{x~On6b-)Uy!*2 zcn7^uV-s4@z4PzhaKpLSw)R5pQi&g=uK?J3EDt$5KfE8LC{GUvZRw}RxLG-=KnAUC zkB%(clHgevxAVWhA%b~9|Azl&CK}QzGorfi6-x7i$U*8!D3PLvNAKJ0tXoI~y$4gi zAwk;lrgf*PnZ1e;!*IR{QOTYe|_m z4pO-bNb<9hYYJ(zE#+n~UWt1-PnLW^z}HSpmUS~?RRuQtfpP!Xhhk+RUXFXSoscTu z{}+Jml+ChJW`HC9LLg?m1c!RQS12&m!$ZgpEdH{zkYCgJz~(_S15WGRugx~W4sVrp zK{}ARe>*8??4=Q`9E83zH>l)8 z;`di)>`+Ww<$V&fv*E{~Ez*~dJVBk#9Q4&+)){L`%!w7959A*H{_sEX(@2h3I^+%r zm(NO;S0duh<;gS2|G}AHx1aYQVCf9;b_YFlO8>Hj5#F5V`@x1SVb%y?kwp#o-;p#` zJ$X_(w>Prf%YObgz^w@migT9SwzDUix>bhD&1H)IgCo8F7hB~If0~)%j@;*Hu*jJ< zG36cm@q1jFqK?Un$aTGlexE0Ri(WiW=|tG)!-eT&kQ*P zyp{F30fsHi+7f>3jBvjQW_*X^@Gh0xYBm=|-3h+R@4>vZpJwr#l*T^F$Pl`)95)U9 zIsCiQ>k$1s9h-hu>woiNl=IzV4o#5tZGUeLYFc#;93ud6X>^=^Dzvq+=lP?4Ja=TNp)>;1t_ssnGAnMqd_@Z5DWNfv2 z&Lxx3xS>*w@J5duRzcArl%QJg0EKmM@RSR6G>lPl1A-2<5?72mEYa4Id zYkRzJ8RPFalAj|z!`-vUbsWp%{%u;LJalV)-QgU5TUFnG>vfPnX)+Khn^2+M4|1BB zi`qXMI;-URDV6X50(VjSs*#pTHp131Er!!$yxOKC-Ap*0kJ-G1sIZ;NBJF$enBmc< y_*8;rw<+;oH3@4_K!okfuPs{P=MJcz}!(+$dxmH@jn0;a;W71 literal 0 HcmV?d00001