From cc71c7760e263f808c4240a725425671eeeb7e4d Mon Sep 17 00:00:00 2001 From: Bharata B Rao Date: Wed, 8 Aug 2018 21:29:19 +0530 Subject: [PATCH 01/26] spapr_cpu_core: vmstate_[un]register per-CPU data from (un)realizefn VMStateDescription vmstate_spapr_cpu_state was added by commit b94020268e0b6 (spapr_cpu_core: migrate per-CPU data) to migrate per-CPU data with the required vmstate registration and unregistration calls. However the unregistration is being done only from vcpu creation error path and not from CPU delete path. This causes migration to fail with the following error if migration is attempted after a CPU unplug like this: Unknown savevm section or instance 'spapr_cpu' 16 Additionally this leaves the source VM unresponsive after migration failure. Fix this by ensuring the vmstate_unregister happens during CPU removal. Fixing this becomes easier when vmstate (un)registration calls are moved to vcpu (un)realize functions which is what this patch does. Fixes: https://bugs.launchpad.net/qemu/+bug/1785972 Reported-by: Satheesh Rajendran Signed-off-by: Bharata B Rao Signed-off-by: David Gibson --- hw/ppc/spapr_cpu_core.c | 62 +++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index 993759db47..bb88a3ce4e 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -113,26 +113,6 @@ const char *spapr_get_cpu_core_type(const char *cpu_type) return object_class_get_name(oc); } -static void spapr_unrealize_vcpu(PowerPCCPU *cpu) -{ - qemu_unregister_reset(spapr_cpu_reset, cpu); - object_unparent(cpu->intc); - cpu_remove_sync(CPU(cpu)); - object_unparent(OBJECT(cpu)); -} - -static void spapr_cpu_core_unrealize(DeviceState *dev, Error **errp) -{ - sPAPRCPUCore *sc = SPAPR_CPU_CORE(OBJECT(dev)); - CPUCore *cc = CPU_CORE(dev); - int i; - - for (i = 0; i < cc->nr_threads; i++) { - spapr_unrealize_vcpu(sc->threads[i]); - } - g_free(sc->threads); -} - static bool slb_shadow_needed(void *opaque) { sPAPRCPUState *spapr_cpu = opaque; @@ -207,10 +187,34 @@ static const VMStateDescription vmstate_spapr_cpu_state = { } }; +static void spapr_unrealize_vcpu(PowerPCCPU *cpu, sPAPRCPUCore *sc) +{ + if (!sc->pre_3_0_migration) { + vmstate_unregister(NULL, &vmstate_spapr_cpu_state, cpu->machine_data); + } + qemu_unregister_reset(spapr_cpu_reset, cpu); + object_unparent(cpu->intc); + cpu_remove_sync(CPU(cpu)); + object_unparent(OBJECT(cpu)); +} + +static void spapr_cpu_core_unrealize(DeviceState *dev, Error **errp) +{ + sPAPRCPUCore *sc = SPAPR_CPU_CORE(OBJECT(dev)); + CPUCore *cc = CPU_CORE(dev); + int i; + + for (i = 0; i < cc->nr_threads; i++) { + spapr_unrealize_vcpu(sc->threads[i], sc); + } + g_free(sc->threads); +} + static void spapr_realize_vcpu(PowerPCCPU *cpu, sPAPRMachineState *spapr, - Error **errp) + sPAPRCPUCore *sc, Error **errp) { CPUPPCState *env = &cpu->env; + CPUState *cs = CPU(cpu); Error *local_err = NULL; object_property_set_bool(OBJECT(cpu), true, "realized", &local_err); @@ -233,6 +237,11 @@ static void spapr_realize_vcpu(PowerPCCPU *cpu, sPAPRMachineState *spapr, goto error_unregister; } + if (!sc->pre_3_0_migration) { + vmstate_register(NULL, cs->cpu_index, &vmstate_spapr_cpu_state, + cpu->machine_data); + } + return; error_unregister: @@ -272,10 +281,6 @@ static PowerPCCPU *spapr_create_vcpu(sPAPRCPUCore *sc, int i, Error **errp) } cpu->machine_data = g_new0(sPAPRCPUState, 1); - if (!sc->pre_3_0_migration) { - vmstate_register(NULL, cs->cpu_index, &vmstate_spapr_cpu_state, - cpu->machine_data); - } object_unref(obj); return cpu; @@ -290,9 +295,6 @@ static void spapr_delete_vcpu(PowerPCCPU *cpu, sPAPRCPUCore *sc) { sPAPRCPUState *spapr_cpu = spapr_cpu_state(cpu); - if (!sc->pre_3_0_migration) { - vmstate_unregister(NULL, &vmstate_spapr_cpu_state, cpu->machine_data); - } cpu->machine_data = NULL; g_free(spapr_cpu); object_unparent(OBJECT(cpu)); @@ -325,7 +327,7 @@ static void spapr_cpu_core_realize(DeviceState *dev, Error **errp) } for (j = 0; j < cc->nr_threads; j++) { - spapr_realize_vcpu(sc->threads[j], spapr, &local_err); + spapr_realize_vcpu(sc->threads[j], spapr, sc, &local_err); if (local_err) { goto err_unrealize; } @@ -334,7 +336,7 @@ static void spapr_cpu_core_realize(DeviceState *dev, Error **errp) err_unrealize: while (--j >= 0) { - spapr_unrealize_vcpu(sc->threads[j]); + spapr_unrealize_vcpu(sc->threads[j], sc); } err: while (--i >= 0) { From 1368898d4b7e36f8a69e4dfd017853e15de6ef81 Mon Sep 17 00:00:00 2001 From: Alexey Kardashevskiy Date: Mon, 2 Jul 2018 16:20:12 +1000 Subject: [PATCH 02/26] pseries: Update SLOF firmware image This includes gcc8.1 fixes and the image is compiled using gcc 8.1 as well. The full list of changes is: > Fix bad assembler statements for compiling with gcc 8.1 / as 2.30 > libelf: Add REL32 to the list of ignored relocations Signed-off-by: Alexey Kardashevskiy Signed-off-by: David Gibson --- pc-bios/README | 2 +- pc-bios/slof.bin | Bin 924840 -> 974544 bytes roms/SLOF | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pc-bios/README b/pc-bios/README index 99e15a737b..90f0fa7aa7 100644 --- a/pc-bios/README +++ b/pc-bios/README @@ -17,7 +17,7 @@ - SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware implementation for certain IBM POWER hardware. The sources are at https://github.com/aik/SLOF, and the image currently in qemu is - built from git tag qemu-slof-20180621. + built from git tag qemu-slof-20180702. - sgabios (the Serial Graphics Adapter option ROM) provides a means for legacy x86 software to communicate with an attached serial console as diff --git a/pc-bios/slof.bin b/pc-bios/slof.bin index 4e0e33f8297888ca8e143be784c30ce404f072cd..6274a6739187a9cd12a50b1bda2313c9f0d481a5 100644 GIT binary patch delta 328838 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 delta 289278 zcmcbx*LuZHiwR~-GAkxpn6R)ZN^(pr5aB5(xHSDg6iilR^y572zyJn^H$I5TYA;3sK`8d$o|p)|JMKO zJ1RBhRemrs2>ej|-}s}RfuUB*Lu+z^mkNi4B16LqMh1b&Jzi>QdNVv2#P%jIFfi2Y zVp?XC^#6aw5(XuUWW5a@3}Q>c;=57APk1nh^@7DWIU%cm;K3kP3KrjtBL2gJK`eH% zgtrEdt)f8{1H1Tiqwq)1mfG%?J`9XHH4H3kKzy46sR8xJ zKUe&4WYBn-$k33$f6Ot!VgUmK*bj$4S4_6>wX4^c@L&-B39`fc|5sNK4GLF>dH+nn zb|vd8crb`qg2cW5|5E_bFbtLN@L&+$2@-?(#j)`}IIMp(GHkF&)_(yr|3xFi2Jip> zo`BSXFi5|>KPYUI^*cae>%kyg2$BGWImq*1cf!N^M=VGV6xNRO{waVo*DrZpVUeuA z!-GK>=D?WEE`AFbd2+StUG=+s+#KdHOqo0(SR|xVnSoWmlYz-`9)m)sG6Rc#Cj+D7 zJcbC6n8Q2<9uEdSaC9xSXArQ|{Qoahlf_OOq-HKd$U=JtAxq8wZ;-?SI_eo%rpxSR zl;H7TU_A(OnD_txTPDv5kQO`w;(@S5!v8-Y(di017)_n)q$_?u{Qsk7k9Gw#K_`0u z|MyY9nSrsUUb@0@9>WyKm57EgMm#EWZ92e28K>Mm?!_Qs0YjOU7h?PP{hUh0Ryx5|Nku@h4mN)FfoF} z(F};Ne!#%${r`V}^#cYL@BjZjrZ3pZXewVTUGe+i{|{iF+%~SLnXioGo4+R~&k2%d z)SWJ{i&0t<>@08;{+AK~XPG~se8*ln`Av{D5?Bwi{Neu}zZw4@sF|f)0ScPmjsG8j95k_!fkRJ~ zfkAf}0|PX81Dg*s$kZSHB;vuqpaSyYLR$tM%XkLHg|ZAN^7%>hC#;IL=|X z(P+oO07?@M^Zwsy*vG)rFpq(wzE#1YewLOfAhj|QNgqr0TSR5xY=zuenH3LJ# zyvg@MWPPVJ>|+q9nR^JV(1U>|6=WGmtkI4^1Qbs-sgFczmU;wKEM-veVBkIqmY>G} zR)6$dB_SR@-5Og<4Bnas=} zv*0m^BEuykfnfwEOBof$Mh=4^Ck(6Dr7(1NnHES(v2Y8}GrL6(6m)`LpuSvoTq zK-mVC&J0FSwh`RVo(v3@>`73(vv|3q+#-fa0wPrs7(wMnfxG`WwJ?#EUAh1 z^A1$f%>JWiB{yb90Lb(qJ1%s zL1XfR5NXdTFZMAgAd)S|R8Tm*v|~_sv5!FmoNQ~nL~2%Q1b8s8gX;&7PEcNeCfN|j zzW)L6B#XnD4s-sSfRgMBP?ELdfhO4k4+f6R$!j7*lbIP57CdIKz>;jusF7@6WH3lf zM0`LF-Qz|w3A606$Fx6^!i4ZWm z-og9-e-n^{K^UZofCd5Y|NmJ)YC(7+UdQ}-;{E^M4Ujq*uGC~uLN&i0J#_wn8g@$% z8d?-kHDIW3@c#d=1g5?|`F4c|1G6oNk2^&F_;~;S2kB}}50z);pA^qgZ?Tv`!Qub| z3#dM^KES|I^GrvlRzXJxBxbRgL8Ja(h)yj-h>rDPP|>ZUQ}LYrSoMGQW3`&r6=1a- zzbmXCGZ1;U6U{>?M zPG`eo1`BY-2{8y}hE4r}Z#tU~GuVNG!TKcwhb1S2fW-m^7E1>PmfD0rIyDV0IyFcC z=+vKb(XoCBs&?ub6lxay(WyAbeysW)`?1<=U0?T-#91Zob1=z#c^ zo(viw-&b<5AFDa`y8)_H_#xlPAONaOD;U_1)hzJUsr6#6`02@DP;-Vujyo7 z<~xr;p_h|^aW2>Ncg@UVlXDVfWm*6K2MH^>GBAQnsr7Oasc8ukscG>DsOg+;*TSsC z39`YW<^O-j$rlsl!4>i3FNtbQdJ&UllH?gVr$5-hs4zJuNzO?x0@_9_e0`sR$%BC* z6BOp4?nF(hbOosC?EU`@xIP5+xhxhiFj=%1GSt*bSG=faVDkR|rgHM0BomuXWpJaB z!Eqjg38=OL8G?*^of#Oxg}NsD7X2^Y1!|@|2IIbT}!q9e}6Ch{{qzN1@%ZkO>yl` z23|`A1_Mwl80xdYnTiYrmI@4pGZh&MEfpAyW-2liSt>9X&s1b6wp3s+nW@N7VyVDj zI#ZFM)KY=LY^EYZnWX}Q`AkKIa!UmUi`OU`U>+$WUXcz>qRik)hU7fgyFKB14^}0z=wNMTUCExeRagmohNa+%>MKsRs3K z7DpKVV?={{LSEJPO3Xz&tr1NObz!3CtplwUe__<)!~vSJX;6SJc{h z!#YcWuWLbVa*oF7HWQg;>;FHVWa-7gSnI{UMSnje1S-846l&vwMCzLZ7#!v@1ibhQ z8mEy6sMTcOVyXH6e{Hly0H}3czbn825_-(b9Or^MvJ5H?a~Kq6t1~cw^jJJ+V63&a z2&i9q!QsbW1_mdF|4)#8@>=o#iOCLW>v(=|1%*-lehCN1Ig@{-nc096-Oq>rD}EmQ zUr>`TUHOagf5R`u{~f;^|4;ap_R={7%Y}D zFv9e_bYyI>e8s@{^C4q{jKjSDM?m=!r07K=V?#}?L_ke4`xXmD#(>Fd{3WI@_`&2c zSs=r%o@I)5CxgG^JO&-@PKJEPc?>GG?9LT6yR|FksxdHv%DY}wP$!9fi*_eNio?AB zQ!E`B3M`&8Fx7H7iPSu2-%|6+N@S)6g96w-bq0k_Muv%&8vid9YBBtEY+`A#YG6>X zJjgIne+9^6j2-p&9t1izF*dvoW?-Hvd6Z4|?W zpNHK@uH zc+tq%P^a2mQ8Qm5pr!?)&int5v%P!_j4vNDHb8=&L7+~)BA|X>gM;JTe;cfd88|F< zgA4V)3`mx95NUZL)N&5c@QQW^LuswzDUtfX%N4U;G88z@V~`2wl(4XL0M!Hk|JQnY znALlESUNN@d4L=Xa;U`v2Clk#wQg|H2(lF9TZHR>F+wfi0u?Z|j;BOGAz{hDpa9Zn zae#plq<+>bM96?f7{NYPWNeu2$-sb|BfS6rM=5?mjs^Af>Ma&9a9JcW6o6dq!N3F_ zX{#w@-vVm;djJ0h9Bbf<-a|V@)RWG7km@5xANK4xsETGwUP+!%IcR`UX%D_EV9u!HMDj z1CSx0ps9DgT!9o4nqXf&WCS%GZ9q8!gh3$!N-Onlmq8)O1P+;n3Cf1bF}ddje!Q2zT-^Fk0#{Flu)&FDSXY&64cM8nWQ1vaA8vieZYO;X_7daj0{>=eJfpxtl zB!yO6GAPXCWGDb>^8Wuf0^|ToeFjF0-3&~i(6LltPz4oc2~G?QAd9^J{|c~FV94obi^LLOSRfeaQPpINjpF#c!+h1lOYAhSTYMvuF~s)50vmycnR_y6BDy?hKz zDj>tG89=qzpC=#zD4)ao|DP+MV%z)wFOSI*c|Hk_O^gNFtqdwZQWzK<=Q8@(JOD+m zbVbGU<|hfy)lgDbrzZo0b{B&}&5IDTLN*3Qhq(+7K#c;2c??gqyBG`{<}osKdNMGA z5}$q-LxsaUMvdtQI+!JR9Op4I=&u45lnghfKWJyRVR4+tux7eK2eU%GCD;G`p&V>> zS{)3MmR$c=I?VmQ!qV&iN#Cgq3bh{WCZLp5-=V=!>neH4anAn*pvD%+-wsU-3Lx7Z z=P_vLw=xJg&in5IvcqBC{|FBT1_hA5pDGLt-v9r-0I3Jbfn4S=@4p2o2%zTF!@UR+ zuxR}M!TbNe2_SEPyx=&GfydH;!2s0VvgBl7`pLoo@*-0$r*nn(|9=mlEd($Hs$W44 z0yXMj4LVRGuV$ZiMGbVQvt|xteARItlS`v21B0!Dng>Io7XwGFW>7_~CWA?+=FK{r z1uhJ=*6dp>5+LI?2}>E2Cg&9BcsNdD&;YeoUMK#)@w)N zIY89~gM#Bc#yfhu85k@X{{MHF#+YLBfWan|gF&u--wTHNWv?qHKPZT-KlZtz{_f|B z`aK4q+<&BglbwMj{7;64WeE;mran9YDcuy_bQdelOU(ghpEihWbv3c{~&T zGBAKFtvO{}F*(D>Vp0*C)B^^`IsaE+@gn2&3)2}z>Mb7FFjR7|D0u(>w*X|g<1_{Z zn+F+8whT%P3C|g75;+)Ly#N1q0Lg(cx&uLFE=U}PL1nM^|G!r-&G`2P6i}c*^#1?v z3OIfl7&sXjSRu^m3oC!jOkQ6l$HZ`8^ZBalO!Y1hNjT{VNgs?baW4a~6rAr3 z>HQ-31*r0V0ciXMsC<7^_4N$?Xch(>K-Cb4CLb(-Dj$qyLFfcj`7ku~VJIG|XJ80N zbrC}(D5Mz};698*b3h!L`UJEPNkG$|fabsiWb;6+u0%8g6EC3pAPLRDqz$O@$qK0a zR5Tx_p*b+^146wnh?$FKU@o!?85kJyVL>`QkcIL6^aK{h2cyIg34_T7jP6|Uw0vMY zKMSM1J(to6P`op6DNUFj;mqhKBnOINMg|843kD_z2L=HK-swA>8C9j(cAJ0|ZgPYq zVg><*l#-``3=9lxlNA~D83iUQG6rbdKj52@{6ByJG>;EqCo=q)&%j{+fKMX%zahhq z`!F`c^u;cW+I%SwKvTdT3{9#Y42(>Z6&V*yuW@DMVsx0^?#lRItDmFBgK60dB?g8X zMIjLj2GDfc|BpWu|1;V+@Cm(ON_D7_VqW&bDb-{81~*1A#<=ar-58meERYsBSXh~u zTNxT)Ti}4cID(gJ`ocL(64N<78Dp6;Ji#M0(>pvFrI<1VK^zqm?Pdmf$GHqTvdRn+ zwoD8xmK;YIYCSykK;tQn^B6=x6Z@b#t=7X+4_qTB{Qr+U;_uB;Z>z+>(x`cy0W?x# z|A>L*x8wf{pbEF9O1h$EuQqr>6V$n_nWtP~{r?DP9*_aOqYLWXB6oIS9bHg`4XVI@ zDE|BCFpnVxWS6Dp6$YC{46PPRLj)`m80r~qlNeZR9x=39JP+ZpW%~cul7lAzRIXUu zXJ(j?eVoCfY1IVFcn%Ir&Hq0@;y;cvFo5*@1l9OT3@ksIR(1UJJ|ppy^9+Zr6T?zV zuQCBkMTQFS5cV7f5s;;gnr9UBJ3&n*#)M*T1}4WQ1{qr=hE_|>`VfJapqVc&29DpW z7&v}%GB6Z-Ffbw%AjzMC%6l`gI5aV26gx9;I5aUl06EH9X(fYYB*ThY&tOnbz2fyt zP=EFRf4fKj|AYIk3E(~}n{~tg|F7>eFj#%hWJucjfjK-_f<+;@`U9iYOvVfKCqXR^ z7WlLx$lzj622e0DfF0z-&}!)wA^;jUx8(f)<0lsb!;4JNkPM>$sG5Jp_`l(m;{T56 z4TelAEHxa=%cgILVv?9HaD$Pf9%Ps;!~hNu+xkC;0NB-*3<@u~7#Kk7BP?DpaQuG3 z!13c1sHOLx$0mt^#UgqC29SD-riKO&CLi!@zNG>KqpcGI%S5d+pw>f!EfYhlB}a(B zOGSnXNK}S0y!2pTcnun-)nwrKsmM@YVR4Fq1LXA|uNXLfoM2#p`4*%JW`NBj23Cvb zU%(nc23SHgSAg_^^b^+WfeV1YZ+!()9E0*Y+{Z7TGcb@C&#e~EQ%Tfc&w%UzR*UDR zBpQIOpM@m-wgS+s_mYvJ!s0&z$B*fTJ&eL?um3|b1uQc_a!&}yi-idLEbdP?>tmF! zw`bt^0V;wN8NkI0C{Mt&p&NtFhlTx%`wSc}9T_TKYA`TZfb!u(hKe62892b4?-*ljmQ1OW1%%nAHt#j6~AG{327Q}=$k&P zhf%5?l!SjeGJs1MSZLZWVraGA8zS)HAw$K>SOx}5b#M_@0V*az!(q7E+`l#}cgg1*L&sjSLkpwHWFdesV&CUyFg^^-snN$QnQ) z4v&IU3>?sC6ZnA{Z35)!t7kyfsE9~*AfKQY3@=_mqY+w~fy!g_f(5(2|3ARdkEYMI z9-2--K7GjvNr0AK3>=^+0r?i@E6}1$Ma};|YBfBxKcgU7bBLkU;#dd=NHg3ZH%Jxt z;sv4vvseYmK|hu;FjyRinDtVffdN$G{nTRM0683L7O1*}7mFM($utb^7R7SFGM%aa!;5N5nogM>0jA1F#K>p^jT*ri~HYKi<*gQN$TPeG1?v?N0~UUEPZ z@Qas7J_eOl_YvmQYFY%m)MQ|Qde~3_>SIu102eTzR0&U%FaG}k1s^ErLB6R~Hxilt zpp8*V3)0pC6-X%RPyGJ@N{k5g1_5~0W0-Gvi4^rUFAdB{Q*Q!MuZhF`Xzr2KX?_wx7uprGj#ucQgHv+2{nSQ5%k*hvL02KBwy%3on6z-rn0mT)l@Bl4r0jEGm zq+<0Iq#OsOUQj6q(gR8`FHZjdVX68511MpD^n+3{STCqZhBO{f?W+g11MV|0z%1<4 zU|=A{!j6-mW#tG9XB>y5Y;XyO%|bN$>KBq|;ewO@{~`Nu1Bn(kqS^;9It4%l0w}oA zgS6q~|3AnUP9V`jkeRqcv>uVk3B@5w9`}M&8n8SLiawBjP@IFJaHb+dL8k@-BWPs; zXeMJJXzjWdBx+!#7^u*BS+5Q$ZD76zB_L203i2_?z@MN+0VkQ4g&aL(x8Wc|!Hg9Q z3?KtL6&VU=YA`T@5*M`O5&#>Br}_m=R?Ku{C;*M*&vaxc?DS+{s-Nk|P}Hf(zzkY5 z0W!D|BSQta@P5U>0gKa@>i>U$eFv>UYBh~23_UP_Tfr78@d^TdagMZ!9_)1b!@MV6a&6 z{{txHzV!J2<3~FK!%t5JaO-2bOcNsyJG7FVp5Dl)<+RL#!Ev6+6sQbeTFvDNW-YmR|oq{Dii~uv!5bteRe4 z&nPFS$-n^`>j90PAUgx<%jx3vj2iVaP#y=U*8^&sfo(t?A3^DWz!RVr0|RWJ2V@Ht z8zAilG_x#D{r>@Ks)N*9tg8S20o3TTIQ9R$l!JeSM z0<^z^>4)|T1}2BOMxX@&EDrOS9ze#?j6L+1gOUNbME&D9?+ti8V=ET}i^=o#%T1u`6jbu<|mf3h-gT093=-~Sz& z{(k`Jwbc6mr;>$1L4PHKDg($T7R&zsah${8WAXC;AN}S3|5U1fXtH?DzzAB7WbuH3 zar%R0OcM1v>I{riS{Ya@HUIyyc>W)397wmR*8hKw4gYm4z5f5H)coP3zv}a|bGEWEFo709IW&PH{< zp7z(DsCM{oBLjoQ$N&Fdas2<`I8WEXD&YTrs{{sy zx_SXCk)9$3#;RieC3VGJ6&_3qU%{4anBY)TJgdTC-v1|%36U=hpdp;9OqmSOjsTF) zU`;w?pFw8XxP26m7~z@F;-{}06WU`Tfb52u3+1NjI!c+rFQMJ)px$TuDg>8fA{ zo@8EzEn4vClSS8O>%>qGnFvq>$H^a1Ish2}tF0_$Awl@!E&~H-lE6~-|A!ZQ|AQwC z8s`50;=zyx-rouGz>nJhAHbeK>Z5?RXrhNmLni|Z$Rm*EMm;E@rGfVqf(!u}085>q z(7@@Sxey06)c*hD!H_l+;j{lg(9N(&U{JtmPCZVarGhu#f*b|&89c#(@^UO{UIt}b zOD#xf{j_CZ0F@JnF|VmdXQp}i{XZYQZvYK*cc^fOeqV} z2K8W)0I%K$X$Bbx+D`Q&lYs-2!a-($LJTt1@`a(E^)Pt%B64(sg585jsuSc0kQsgr zEcFT?O|TRU8Ezqd+5{d|pb!C#J0i8tLD~7mN{GWjH3euc$l~Sy7a>d8>|S*K|MBA# zXwnJPrg#NP1BszXu2O)9255}g7PVClYRJ6Ggc|(v{|8V_1FD8zdH(+aT6_D_6Czf> zIl#ejo^}h!r=a=EpPv6;fI!AKKcI#s22?iDvOo>KY(0maq|BQu!~nQFuZ_@ z)vQ#m0BvtT6v-?ykRn;*1f)o2VIfo`gX)HQOVAJoXut^+R7fp$c-H&Nz+kcW{|Ae? z|6hP66)k1|KX`HX{||5-vG@OnADs*gFQ9TSYX3j*U`P>!h2)Rg{|`Vu2KCBdQ4DT~ zgGxup;AnjXXyOm#TTp5QwW2&2lE7>7LBR&nj1pYvq4g4y;z30=avZBdoN8`2^%Eiv$K1^a2Ky@WA@9 z)FY6+p-DGkX8P4Put0JE*fn6sfZE|4*d3FERN6uMr)Z7=kF0}&7}oK^=NJ!$q(GGN zAI&gEQhWx=RvrvV;7!J`r~~;@eJbly&)S_T#mhE#Yt z0kagIKtbb5t5DkkFXl3^!EzGF;up35e|RvYg3l8GJG{OYv%&zyJ;?R2#0WFs#a>9I z1Fi+|Dz`3{C5QJ@loH3~qk0A&f7Vi1kjM|)9y1a-_msP8^_ zFcd%F+pH#`{X;GL5n zwf}E`LJ;1F!PBIx_h4w|1qC~(bD^Wm!0;oBfx)rqHn`OSYvX}VL4mjNkeb(^iUw3i zz$zPPoFauryCKMIP-uc2ge5fUAyf9CU1+ejel1cdxA#A!V3`Xl<=VkVDu4`w#VHm8 zNieT#X#zt%WbhMaASj+-hJxY>6lbvbLZp$NwJ=|imqz+^Vfw-KKcplI5ddWuP;i2R z6&9r6(yat+wn}gd=LM+Y+K&>%#Cc!>cpEe*B3OSTK7|z1`37~ifISNzF1JIVpdX(i;7>XE`P2oWWD(^{3d`lqvJ)w)yK%ol@ zX;27*LfX;`l>b5F)zJ1lqA*$l4h45B|dn) zfU~8v6e+|&jgxv71?2i1y*7L)%fM#w7t+bFxcmQu#oqrfK((O7-2V?OYX9GO@fR{m z_TujU56~Xb3uuq%*^f+6(GDt_m%=+Vu%a235MS1VI+&oTb)>ErdNEp)%x>brU<En2W1aXHbE|kV1~j9 zq7|92fh1da1C&I^)q~r0pnf@~>ulk{1~wFFdI^`~Iyw=fTu6?C_Y=V8ptLLMQQPaV z1k^E?fgM!UuBiS0&x65M6P5^JtsL0Q+fQ3a^BtTRkw#2FA?3kfi!!c+TpfcB`m$J> zv!ky5+3pI9Muq}V^^2U6U%-Z37;NvtEC*G`FC7^QeuDP$~cY{tn!!X~H>;I1zT?`EMAeVwhFkWPVdM0-8d`ieNkdI-B5ae)BR)l3kkeT4# z5~CV;OE#VYsve_n2i1twDu(oQiL+3h#FDh0fdOKn20R7BN+{&uM30`1uK)iVvLFMA z9*nAUk)sGS(?ZOs+JdhC{~GGyhN!`Z#Xvz%tRW3u|NkHyq7FVK4iwzPno$p$@B@wY zBMi|mKq@sfcJG!6)|7&J_0(fR)c$N`p|{~x?K`TyUKz0je$xeN?1 zI{&`|$$2p9uLOlG$YC!YGBkiZu3ry63PEH7$W@@>ROF^MNHGY5Qa&h)A!jcSMpKj~ z7CfXt^$D6|K@Nr0DWLWv$T6S+OVF5NJ!r)8#mfKRK!P5OhTv=mcG+UkBpYOG*I}OU z29N_mjzflp#V$NCf0-WXo`wUk_Tk_2MK_YVQ310aP7>3Z-aP}Q4-ZD|dX!Xbm&DL&RSfM38KVxn zV|Ao3cwNB*@HE|Ia8~>9<1=Vn|No1h!VC-^jHckaza~q%(y>Y4!t2cp3_oKTI4o@$ z1b!NW+<%5Gx@h99-y1K>EoK^F|EcyI+BDCEFd3un|o3nG*d60kuDA<+0QEQsKZ zLQsN4UkL$S&<<*P)!P4B1~LS;3>RMmme6oc{R`-LPE8B@7Vwx3V<^%fGh`eGR?mYA zB4S2388g5~$$=dC13JJ7){Buve`>?)Yfv7=-baH?y-)uY#;8^gG8EQL1L+|;)C^EV z4ZmHG6$Q0{zn6h9=)6^^z4bpplN2ObY)HDrpu=5jLw+wqvKVSFsKWwl2@^^uCZt~j@*T)$peO{jl06um!1`ge zrDGG<4RCtkWDo##Zhm(%2!QG$P>utIT0JbtL7h`jKM>YI1sM!76l6Fki+V7+!3U>7 znqm4t1rccN8gh#YC8`X(@I_TUc!~{XDab<5(xciyZ?Gnq9PumlYXVpvF_hcMW)(-Zv}#W4zDP@uw+5h!5MdxM}MZtwpG zkd`z+>Q)a125|ESrWa%msAmDv4>AYV9p3qO~^A862$SWp<}!;P@vx!-3L35Cs+*VR#V#h6AtfyYN~)nBEX%*SV%>N-KW?cT#pe%&;}hSh(N_MENDTY17EVjr~-Bn$N@iUAv+b} z#V@{+^CSa<1*lJ-`TqrI(BI1Tw8o;L^Zyr+??Ao=DF7Yj=D{d{n4)Z8 zLD|~}av;c|Fh^ot;=e6OcfIIh)=mD>_ z3u$4oTafwxod=^Mc)kr}7W5v44p8X)%4C2H?s+l@{5r`1>dOltkGa^^LxUR>XTB`0+JT^5oCVEuTooCA0ilL3^?L3~hC7Ul?W`Tx=wG<3nh0UCV-4OM^? zVle=`G6}-~(ApZLb(h%WEjbw^etI$p`~da2L5_h8t4e^^Tw>GkyA$FIkQ|H+cTnq z`U5&=5j1-E(-Z&te9&MrR&}5`H&E6B`4klFpluM||IZh^bY%dYxF+KL|8xs%XN&j$ z(-%OYP^+mV;{E?j0Cd~@63BXd1{=^iThJC;P+P!p-YyN0S`dE8#lUIu{Qr-ioD7_h zb@{t^YFVAZJ7YDx|DS$Q%N`_BztX|MVb1>pAVX?3twbE>?R-(ouoBsF^8Y{3d3_G^K*#azSfRg}f#H?r{};bI|G#jYw_}Et;s5_uLI3}Q zP7g*hfWfTz|9{7(9Th!=42&L(AHkiFngZzx(7JmM#*dI$#^weF$9ey6fYJo0KmjEl z&^()8!}Or3j6(IGL#IJE#W>7mkN_P-1UiHW*$&V#f1pGPK7nZA{}@ELUDTE zDki1r52iD6BtY(5`CkBXwRKa&3J(Sb7Z4kUz5j1%teO7-e07jT0t2h{KhQyuTXI2n zL3l8}ge>Z7eOytKB3)sTz`*VOe@mc60|OWM`WD6)twkZL0$Ia$UkRA`l7au|T z>QQa+1*rv{k!q2^AmaUhv+eW)(;2-PKTPMD!KhFVI{wLe?-7QYTgDZjW1v8h3A$_t zWY9vTMsNY~(y0-An&?ZW#sknucHF4Q&|s;+APXKTj%DxwZRq;R$WVZs%4_A>w>UX4 z)--~)$jLJ>T6!@^fD($sy#L?>Dy}JU9tWFDQC+@CwWbC% z*3Ae$c3-}pLBgV`0d#n!Z~fg{BA{yWM;!x)<2=S3kmEsdYthsQI{Qc$DklKCqXKMZ zBSQfwe!%@T@BbUmf=-ULKGYcC!T229*8(X*1oy_ZAbx$zV^HE?_5QzcF4WPgV2e;3 zy|EFb77^SV3qh7U%wyPrCLRgqTQx9%Pi2S1%|_SyBkWr&7BH|`wEX{7)2t){I=g$2)BSfbYKmJw`2Wu$sWHKWi2_fL9d5P$>x+2|93Xk?M~yc?;@zT)PX9HZkq=ZtuuS)u&8Sh2!R0Z8ygXT&>h%28!cF#aEBrnLj z(%%2qeFZsl`iJ?95^%>UfE^c-%>D}$j-ZSPDrZ1vyn(_K8ia)oO$f;AAXFW&mwvJTraIW+sX02Dcdn*%cWkfGULP3bz?$rf*oq#Nz=D!iSJU-mD)r z{s4Is>bgb`#>cK87a>IoxA*_G3qfL_;6Y@HwY}2=<}%JU1;;HYUSURf|6c=fAm{=- z#z&CZdPwMj0*~AK|C+ti73ML9F_ke)H~7Y=F!@0M>-4$v7&#fsrZ1nzSmFt~Zvu4b z4J*RP)sQ8PU?U$wRurNbxf-0iP+hpX5@e0a^p5$A%8m+1Ww&kJA=2YD_m+%E&TZVgaMDrvccm1O_BGu7XU}LCgS``lz9}3OsQI*4MxQ@}G$J z|5cetZgfDnaTR0~9L0^RAe$G!=HG7x#R#hTD<2}yrtX&r z=qzmS|Nqun+W-Gw8_#f|CR0kJ)=R=-ddxybndu+cnRup4h%xaffY1J&uMDmNVI?TS zX)8IWZ&<`A=C=Y|QCUA~3IN#w_7=DzTLGyCz|On}KEoT;nJd88^numGgJH!|nA1h4 zPhG?)$+W^3Y>Cwh@cK&YM@c>3$PjKXHiA^lIV{dYEE#>H~*+&Kn zr4Y3!W-WyzK!{n8o2~wL@kP0OCXImuvxdTG_sal1)CMHj8V#~ z=>lfJEdggNP%-AgcngwAP~5TvoC?AE;E}P!6A~F6^BH;NL1$g#Oz(?-LXzU*hoES- ze$?~=H7PEJtjq$t{w8Ef2VuLk_y5H!ryn@MXfoYmIwKEwIV0$X73)JyKfn$`Ndb!? zt4YDFsT+`m{wNKT#gIq^-4wb2T!OHA|6dG`RFLyL7;k_}FY8Cm;DQ;JeZBuLdYiz& zAPc#cl<@}mhD+2ev*_%!#f-YsWiK&t)Pv3=efS^jLXc}gCWDH2>qE^F&}32Q{eKa} z5YY9PaMvsX2Q{Q=bsZdFsO`Z;;C2Xd1?>HQ5yV%Ie}mgH9*oylf+{QqEM9=bEjXmF zL((52q`AHSFMK#%XC0-gjfkT{u=l;Sy13xKWg?s1kgfo zK!U`<@e3}?7D8+UN60m>jUai1o&^vuf?aeCJWq%krV9=x2s1D+fHWa$&IN0yC#+(W zl3D;BwSmb^r~${Qi1+^mmD8uJVhrH{*VB&wFVs{?S57ZrVwUDibZBC*0NukmJzy8; zl=>r#9Q7}5F-W}F#lZ1m7Nk9Ak<^^v!T26rK7!*dsd<72<9l#<^fHQp2Of;?zy&hQGK>EVj1~VG6bha(*z4^F-5=vT z$)ACNVfusBjI#F67}y&Uu*)M z>{4INIK_H418emhc@>aF-v2+_PXDlmQB-};{~Hz!4F7-EGYI_N&mdt@&!F-9K7)b> z<5f@&0$qc;0aVmXZ`i@40dD(EHb^s={2+&1G{YxDN zj_Rij3bmfEC)J;Nd8t8it69 ziWYelP@)2-CpJYb$2tE`yzZ%IPymHhP4df2FLf9g>i<6o`2B`K0d(b|_y2zv9OwO? zV9CM22)cczex8E^XvDaZgF(Sz-oHPf@b>=yZw<7^!@$4-jh{^EO5Y|11<=IKi%bTN z`XvFN(3n&6L`$TWOG>1Eg$0P;^Wr6gM9p;84U7)P4GfI6p6pvJRxvPwoEYj3O8@dI z6{{E&>Q@;!)U;ce)iQf%fsS~oW%dL){mS$e8yMAunqSnq1jFuIn&`p!$`*8>v}QDT z3tbt9EhmElXtDw{Yy`UZr&dc!1mtYc$eZt628Ev*3=Fl-!Qi{PV3`s`gN`Zz%OR}FIX^+wl$xrUhW1h`Vfc?~h+aqynG z21>6Xw&So!YBBI&yjMB-OlaunHN*^q;~HYf5%?MVNl&f=bpbKs5peVQCAJHQ84rV3 zjZ%C8u@fk<7I-k;S~(z>4@*pcaF9`nt>uDsQ_FC>f%u=r^Tq?CHxNT^AtvVrV#e#> z<~HayVbC48m^TXl8@+)T6fmFws`sqNxKWt$8;BXNf=4qDmSEU1dIRxLyn#4BgaJBq z(&+ua89dJe9%q0Loiu}c&7iKO2jfo25H-r^Ml*OG6*gP|nQUsFzW)THQ*h(|2e6JM zXf6;uev9+&w$ZEGhRoG%OpFYZ1A~O?wU;n4fFc$g$)LzS`2R!ATxIa3#-P!KnkCxM zKIY#u*Lu@cab z2WYj9g(A}e(A_*pw+v3tw`Z1|ZgQ4USb)Le0TX=nkN5xo)5Xs)%G!JX|M#GN>1)uP zh~U8`sQ1|%<}vtSv5&ESIUllp)8p-#Rh6+QWT;>Mx&p~zAcdOxP}4zo5w5|aiMf8c z9E$1oYRtOR3(hh6d+bQmoFvfD$skgb;;{~No92X01`$wKA2Ja6|G%vQA4JVc27!i? z3?enG1`a+=3fKE3%klIRn1_dN_9wD6v0_;GSNP-lC6oGDRt!QRHR+Id@0(7w?D1^W> z;0X*i)&Ch3K!$(}gc;&E@BabNU<=5Mie&a9HOarHcVA?bg$&YzE<0cN{{`qyX^RAg zg5Qk)4}iuN!Pj;{FF^j%dIm<&l(P5#%k|)G`A`jWKx66k_u032|Gx~L zQv}@^uHVeS=`ipA1&ewHX7B%(!BZ+BHEebk^$aZD|1W{NDIwKhK8N@Ji{PCH+H)9~ zDpJ7LY;rivW%!~!hk@B~9>X2&ISefIcBernc{a?hW8kPiZ1=gs`~Tn2+4C5<5U#oe zUg`sKltU9_kxr*AgA#NdfIz1$gAs`BFpnW-`kzaTQe1x-Efg6pfF`V`_Z(p~sqeI9 za001tocDi0r!7MelsyHsxNV{>Xr;h^@JYv@umItDxx=6oWB_7=u=X4V#`?I+6^`@% z%Xt6)H^rikLEuLtLqXlY-4)*dFMx*;Ce$)yyl7-7@c#b~e1n-qQmcdq<8hGp`5Cdj1ndw^FT=r*~Jd?7#hHK z;BxVcD~u}jpi?$&68Qgv%uN7ahTQxlA^8IX$dw_@2f(flXm*kdXm+!!NKWMdiGyqd zVSM3X{ggq$Vkv_dC^ywGu&n_#TtIes|NpH6&Grloj11GeuQKw2XZZIDF-g}qIx{fn zcY#(3GI)6Z|MwNt1Oi<%3)1cV|L;=^MTQBWV!R?*?FlGff=sNbl@bA68VkB;4cT=> zxKIPxg%*kotP?;MO;St=0d!%#!#oC=AB!0nCLCtq*zlNvXCpHMA1oNA z3tVRu5wUb;;IT+%;Hx>{t5fqJT&I>nUI#q%QV&Wpphg2I*?>wbq{Kc0?!bA+?CS49 z5_|YP7EoEsWWAI@4s_QpiX#&kY(SX-RAYi79aLUhI{g1%=>^RWUB~P|Spu9LyjbiS z?HL3!UhHSkut;D4=OU1S(?48iR8YZ}YAu#B2!M>A?y#RxCI&nQ23n_>`2Pmj6QI`5 z!v8Noo`Dv-i7-z&%wuSIsm#C;(gDkJ&J`j17K17iu>BS*8Tdds8Du&r#ZLcoib;aU zVkrYh#W6_LGCjtgSqD=5@6!g|>R$VLK7&N~u>*G1w;7azk2%SK>X6`LZg!wFYq1Ah z!#copho^xnE{EVWsJb*aJBvLGDlqx#rD{(==7GYa{^%zWkXa~Z?_tmgKIWEa2h)JV zKpmKT^-}&NuR&8(pa5Pfzzj05X6Yx9ilr=1LY5t{tJue&6tK)mE?}9PoyA@T1DL*P zr}QYwWf)L-@BRO8EQ0+j5ybvc&!7O2`>i;g z=Qg7`tAz*S{;ShHZZjr{9R=TYXt99705nGm%Ag*MD|n|LxXq~JQq!hf0jeq-<}rX% zjYR_kBPjerjVF83rm`Ko~S}2g*Sea~PCt4lshR?*t{jiusTR#p}c11-A~?`xrQ2IU~I7fSvU{ z2A<$HCpnN~gWDi27*IHMh|9 zKDltG5B)8EXHq$cLhizD3n1M)b4{> z0&dF9XFuls|9=R`zY^0uPB02g_qflrYBl zIy5mPSTr&eK*auvg6>NJu@f~JIBHecw@g$7H4*;Qg2X`Ty#N3C*pSFj5R%MpQIpJI z5|Vtgt|pn`0;t5Fydha61af9H=(jR(ILu?50}Jb#eXqbN91_QjTdWiQ|F5oQP^hoDU16~o(!2)6Yt23_xVnli zP#cgz0914%_lfLhIjX0?t* z!~g#kEi4M4DQB2zj`RL632BDZ3X>fIMeCEjD?*Z4?2uy}Y90%!c?@eH<}sj~=K^lB zAl)PnN`j!~3#g$0X~G~HV4%3rZ)IR~n8#oPvd08eIv`tQk-+fZVcx$FNS($PAOl01 z*}&~0kVB`ZtY=h+sAy(TsAyqO@c#cl24rl_9Oa6N*&zPE5D>qjnMDD#@yGlBzdIm) zsPh54@RS2~fzD2H!6{C1fzEDr!6|NbATvN6q?%-9P`5K?`hoR~5(cnBrsj@u1*mWV zRoh7Ep#+o`^yh$A&{~wamk342n4Q^m?07-iP{{il?fQPo=`Su&QmkK%=#i8kc3&=4q85zLM zw^~iaQLdGm2M<+hIxtvjGBRw`U|^UY^M+9>?0YN7F%YwVf<0rYz{F6H#o*xB^gqU8 z0RxLg1A_=e{x?{@CKJ@d`tJbJ2f`MO5QlsJ{|;WR=>7kH!1O&&7!&Ic{@(!V2ZBmA z*pN)kPVI`CY0BVU?Jvjwprw5rpsMUw;{O@H8vie-xocbjYP|ef_4!Ep}L5skfk|bv2vK$d+=Ivuvi65>;rg( z4JgzXM=&te)In+(hj~o(2{kn*FQsQTFf5+Oz+}tBu*}wpVcA5DX&RuO9Ee|$yhCZC z)-;_T8Pg2HBROmu<}-jUqFz>Oc}WDcCZt|-^)!nE3<4HQr)kt%uDn)n=@DRQ$-r1` z#Gp{uxq4cav)YrIaw(CpAQrp2DJ!qlP4Nh*n!=zE*1=-u{lESLcr?p0l7Xq_?#yc- z!|SzHPpeL6e^B$B;X=i8_9a!#YELYlGcbdy+Pb5gD?o-pED8vywq#HU*8myx0d%}4 z14w_hvf2~SXpO}K1}2LG4B+7<@4*WbYpqsKYmA5VTWaeyS6-{tybu7Y20=G} zhj|^d3-fT%tMziO2n}MftJLIQQfuKQvdNQy1$2M`Cz{&x*xva|8nuD0)Cq;QjwScukr2|80@rgqSScQBlvJ;K9HEUKU;tGSvJ3Ht;k} zee(|o$GHpw3+)(~>N`Pe#Q#6(RAeZqU(603iUZx+)3K1D0Avto@XR8qO~He4Gx&5( z&=8ad1A_{3MOEMWxWb~T^@j)JCh+P*kQxg`h7X`V&nw6O6J90$pDz8G(RR86=%#Cn zq}Br-jGMvX2vX_&|Nk72O&|1tVX+IJ%VAT`dbpz2_7No6t=v4Vs*ORRe(%O>^?N-6 zENvMWtM@V})N^j0R=rs5NlmGgNcdhByLyR@*Xkua0;(k#6v8<`DdjELhYhzG7#e0W zFjO-mQcJz-?2G_)gg}7` zt195tgw`|*Xh+Bpl)gZ@aH1l^0*85w4xlopW{-Bogj3TjK*Pn}|384&J|ar|55C|M zpXr0)^gpi|rRqO|=N(WB;&@ z|M%eK(l$x||JS!Yt^l=}!OKCD^D;cR8Dzk_4?sgl(+_NB5}B^R!z42O#2ZF_7kGW+ zFpoh4Q9Qo~`^fwMe+}yc;Egg1KtYL&Et=XQAa&BZ>C$f*6*$2?7Enb#U12(-$n=P} zjMBV2K{`Nr(EI;;-suf*8Ksz}S%7vY$V}hymQg0f(y1*2ls+3drdfc3)M5bx6Q~ae z3HpBve=0Hx{8VJrus#T)89w|}WK{U+$SCnsk>LkuL+DRMMh4K{pC65k;1YTwBcs4X zM@Ef_iVPoqA7te4{{KmIy3IRAZCh}z2MzlDe#ofc!5{-(Oa9Ag`P4Hk`11|Ovy5;|Z zbt}A7WHjj1gtP}8=P{I69ApG-c3^^-s*pPU#5+bgv9=W+jH|&RiDW_}$OIi1i$sPG z9t^7B6N;fO2X9A$+I_%-aW#19YeOT$2Z*Wi;Gs<L<=iTD5iJ&w~DB0zHWd!hzk+#ucD?9aNv!ia1x)Y}Ky#b@2ZNaNYjRx&k&vTvIJw0qQ$~@+v6*fksb22?o@> z1K0hE|4)GO^AE-Uir)VpLFV@w7?^5`q$@y+VZHx92FDRdUro7m2vqP1czhTvSOrt~ z1YG_!%w}L%{0mxNFJWK+RZ!tCkJ*L4fR>B)EOy~PIcz|gZt*?_rdrEi)9-&|l&!Dt zoIDLwuz{+*`Z*J?)z9$=0QCXF!FBFa@P0b|ZD0d=^tXV9?-+GJmQ^<+3PXzn3^{d6 zSA(lt@BdH1sjt?4^0dZi28M767CX?eU#;fEYqgp`;I(Hs*Dp}Z+tt}atKpv>IoIDNW3D9OXkmFz;uz0}0T(5Zo-d+HC&insk zaApMQLvAyGY86;J!~6eZaI4Gv|Gyca%nHIFb3p+MYW!5SG3YCR6eAn%{r@pI?qLRd z|NrNJsO+YzePPsKdZ9Z#;0vQv{R{9$B~U30D(xNTF*qQ%&AtD>2Frum0MJyT_ z!7Ki~|Gxm2E3nxHkh4G-l)oUQ-V5+9258BD0V4Jc9HtPn7*1F$U|_VUhqsHLf`-)@ zppt7q<)H<5dHxue*&1V z$S^?yQl~I7AnFuG2JipR{!Wki%BTariqN8|odZ(dFa0=u&sRoy#)TkB1@HzZ4NyG_ z%6}FO3=N?A5tJW)DE@Es{{IXdLLf(a|9`d?v^zw%{^0))AjP2eFDP?^GOa}d!vjzU z0G7!?85oqwp#~Xx|6c_T8BkH>*u)~BzmEY_@-tZdXAqcZ&%on2kGaHR0Yd?3^rG(Z z?g|gaUT~@cvAzF4gA6Kw76r^_Xo!FaJ_dJ>AVJMM0~`Lp= zlt4ggCTdNy@&5l5T;SU(F)VA;oMvOG$@;2N*+Rqn|4MM;0XYI(C)P7eaGb|vVz0!o z%-Vs0!TJCLqjdrUgSF)}8_%6QiE z{{OeW$G{XmhsDlPjrCPc@-2~C&5PGSZSMNLULv64%lrR*un%9_Gt6k%$pC7|3s_V$ z2p}5rtgk==l{HIWiFp6N4=yr69<+>NV667wU!vDl&(Hw!?Mr)x1>kbB{g_>Nn~Pq} zbK{DTKP+~jTkLA1*tb|$Gbn(D#W!~{usBTn9{_5dfed;X&#(ZNnqkLnS8B2;fR@LD zQY%Oex_qc6OM#^(Ljy?fMr$nwCXgbqBjOoWEYt$sT*z1f3U*7cX%4jt;W{tl87^2V zFfxD)1a0{TMTPbK|Np0d_`xXU^%&BSZ(v{miF^OQ2VOw}ZUNde@YJ&$2JPTuw3c9C zgvdV!Zz|KD!N688!M4lXOKA26_jwpLsKrOW`3Eg-LNRGa1i@{afae-kVk7@9$*dH;V1-iHCos8AEY zCW4v*uzk`NN$nCIj0?bZqWAwlCDQ}snI%kMSs#=$K~*v|$2K}PF(@?JGw^^S!eJhR z4#-rH>E8dBfp&e$)LY+Y5CD}Iptg$l|A*ivDwGZ083#J?$EJy4SwqV-n-}#A6F}MA zqJ{NUMGGi%ECbJqgVb2eXJ`QF1C_Er?HML`|9=1;e1PR>kev7b2jFz={r`Uov<{da zZpSQE|M340u)|?PhG>%@j!jH&K(j@T^O&AA#xn@K_|LGSX0~#L^?U{aP|ds0oq@?= z9%BS3^Dfk!=1|||;ZUgs8VY1eX_RN^uwTTmtat)}C(TFrofN= zT6Hgx`sR}iEDf0q9F}$rjP-jZ0_smXPphA+;Q;PK-E+KFf6pTTbV`KdT&A3t@eDJn zPpUns>GIG5WmZrX?ZMaqZW4f!yv-tpWiRC!7Bu{4=ve4F%>fkh3pE&+K>JQMx=wR& zoX5B&RLw;%R0}k_YFuG)?|=P&&=hOPy<>K@p4QVsj=Jd8-_x!DWz1SH%WJh>9s!`S z%t|l*CAA(wBAZV^+Y#{$0-y{DvJ5n#3JM8OW(OGzvY^(>7(8{mQGI&pfMJ+oXrEc8M>j@gB}x#-n$7*~XHvDhI(laZm}K0`;vUIx%9 zq01UMrrFeL8BeR#G(-tai01Jy+@?HMkB3|tJpPnJO>eC08_ z@D-rer*lQ9EsI@aJj0IgeH@_tegZTM04lN?j!m57` ztr2vqXD7Ic(E_STK>9#6iTD3|V0ln2;y8~X0^~FhwrFbC-2rK*%>*|qK-C3E6KZvF z3)}|-4KGb^_|GI$52}1Xs=WW-0vGT0pb81p6TCMq0wfM>a~T+_U#UH*ekz_) zvr^nR4pELllj13=E)x{iWu#22k>_I5sT;6pITvK@Bp77vLD=a?t}7 z7Ymk7>!^7iToLku#SXN4(s3RWM4e)9U{_UaS9K?-2k>KA^>Em6~c#K=mx>VvU-kJ~}lGK02WB z{)%Jl$7))PD?Au$!DA*MM}Qn`^N3;Di|5lS7OGC`06Uf)bQw7V<3`nK9U#v%YEDaV zn8$FS*28<6_5c6>K|SeOFVAbB)2}K$!Q;s{68xaY+k&DBWZ;75(>m%qEI{?I3D{T1 z7$iWB0Q<}x<}-@`n6DZ&!POYdN7LW4F-g{YFxFfJ8@PyJ8L=*PocG@&l+{HqlnYeh zYgd3=9O}Vh7yj&+9mogaPhIqCj%inf+-I>v_62yfUEND$^Gj%bZ^vNE0NM`QgUZ%W&SQ3=?4Tmtx*}AA#cm@PB-4N@eMr;meD3rM>`V&NA53TDVq*jy z(ZMiXU@4;pH)t}>7Ll)HryFoEu`y1YZqC7^UO(*sD8PSoPCEgnS5CVCrcX}00h)P( zRcjy`RHNA>F)VwLJne$T0tE(;&CpipL=VO)@U;w3`5Q2K55_8RZ4WZjQghk^s53yb z)8LzSUQ93aWE7vak&y*_{0yi#2Nx+E5NCn3*gs-e25O(aXqk4w`v0^8phMyy*8bZF zy4)SKD63Y*BVeK9bP^-$m1>8F6 z0?kP=OsG{*)%oGbpkeWlk=5cwJp;$|8crq+35yd9thEYeIu@rGSZf}b>C|^xI5^B> z2$;TylS!J@#X^xWVETjrP6D<<{|MmX=UuSy5JVsg2ni!7hSGkykd<`IB z_P@~k|KFLQFtz?a?E$D)21-0H?HL#*f-XL?2j5G=@-v=+!P0>tWu_+sOM(*v14!P| zlYtQ;{{R1U6K*DjfY7f@7j+B*9*ia6(UnF!28Nns&`C55 z!u8D_4vupf8@&JjK8qZh)(!vvgF*{SXl5XVrX~X-I2jo>dNME~1v3*knBy2EY8^s! zrt|PJ$<%{_@mJUc`xG`Kt1CHpcV@#o@=?hM1IOMFw}Q>>Vd)uRJDLCoV=hwhR6H=uOpyNi$%i! zKhrmW)^z3aF^RhV{0S>QKy8^9i3|mxSO#r?pU4F{kJplmfdzb*Dg#5sOfG1e^<-eM z&$;rU-Q-T4svOjMoC)Cjv;DbvUA>xb-8#$pV10v1@60dvUssm0f5HYYB^#?G; zHo`J5NS!7F(@zUX&jjSCPJ0GX2GD*7$9aqe+MNvg_5XfXfQApI3kWeu)YsqtTw!&9 zfx&74I9C~f_(+3a;Gy|mdj>|WP6mCDDGt;Af2iB{BcN{E>I(4q@R83IkUmKPcrXRj zW_6tRzvjgccw^;4VG? zaRn&s!1Bu86(Fy8FcyKkCm?bC=?nsOCpU@wx&a#9|IY%eW-Jv17=Hg@U;s^MZq#Dn z2Q7#I9XRaR#4rOias=ufPd{MEq%iqID9`kqKTJIJ-T(go&;HM#U;m%MB>ex)y88bg z0`zx-jD;)+_h8HipYZ|mlEXZP8=#>Pn007Yse-HmEjR}y-i* zAe>^U0XmHC|NmMI_AQ{^MW-zTKLaQ>Knt`%(bQ`@T}p^aG4(*NEoxvR>vWj+f5Y!R z3=AE$pyCO#0xTmL+>E^wo_WkJJOk8fa0ai*_Wu9h=Jg)%g7qsF3ID%&|NpncBH{mc z@BjZcOkW_xHHqMiQ0ZX1O!DE~#Tm6AAI+IULPZMGC;GA~D(uIM&{y@m|?IKLm>mj-9 zXFP+z%y`h^|IZaT99#pk0aRijl?V(QxfmFsVoab?qUOOLoe8fPn829}RC;(Zuz-#! z_5T0a6%v&U2C%5Kc)-A7A#{>KtCrnFr`Ewlr;>yHSgn`y^yi{XhM<$yMA$){JL`MX zrfZ8aB?ooMg5nd@b8&29aIj=xP^f?Ty8<+k4yuDa7#KuA@*wOukAdT-=Klszz5>|} z8gg}F`2XhjKXA0=K}1 zJIwq4<@YOwfax;38D*G$znm_$n^8)@BB^7A2V*06Bp5XO2`ZRHz^es7;SDnvYS%|Np^s z9%-g_&Im{Z)F)1#BhBPe|KcUM0mT41g4b~#LjtJn3>r9vdZn?ElR;vkCWFk2bOr^B zMuviojtoT`9U01MIlV!9ub5^sG89-cFfh(!WGJ*`WGJasaM$tv{|~gopaE29!Pe@- z;>NFmK>;4!3=GrxC78JU!S`}8fLEc{tkkZkX;p@elQh1_Vo7sd!{2pfu#cj z+e}A>LXdeI9T`e2L2gk9*8z>OY*b_@^8WuXb-ITllOdH1Wr7&`_bJ%W>6tQ2yn26^ zKz#tFK*3v+30^pG2GXQwXnB#zpaCj(9p^FZn7%}YNm&y;^;$sFh7YJ!U+WrNQJWTB zQOoXJF+D+oNkjQXCWC?Z|Njjj!;!H?Q%43Q0&AwvmS(ck=3rXZslvbv>W_e0ft8x< z3$!~Km|)T8IFG?VyA!+xsbczud?tzM3j&yU5;|2Fm_jvA{)6_}RJ{NHSZJZh(D0)k zypMnp6my_8jj-7B{{N#9DsKQ9c)%i`2$ct&i_ADZpqfbmJQDy48Ia@P4r*eEY1Cv$ zv2|czwtm3CnCQjGSl<}{s%2C_CQSbj!X(4v!Qcs=69J1H2w)Q70I@&=NYfX@GwT?T zYpOSR0R+gb=@_Q!PVX&bV%GpoG9o#+(6NbONv9n{s(vTvz+46mP>T)}1fbn5kV8r9 z8|4@h^gBQW*8eNk{}?Pf?HQOs%O*lK+4t#pf=4&NJBwfu30f0n{hxuozQedn~i245-9L z4&+XIxSJIqF>kP&kpTA@e9fb(4bJ9(9BRW`7lF{MI*!HjfxD@XCGvkI{P5QH1GdkEG-r=aDbc% z-Zt_0H>go83JD8_887V_6gnLl>dQBJGRQUBGi2yPa!~{*@@5}oXxe;`p$%l|=7S6! zukSMmyr>5kkWCZq8A>b_7+7a2GBjJ-G3eDQ_~~p^WN7jJ|2-2_SAc5Omv#&q;BHkM zgT_RAh8)mPnneObiueC2@WH|s3mAkz4y%7G26EMpMv$u<<}p}+V!}d^;Q``Qw0esL z44f8?3{8+Bz8_mbN*(9@-(ji9&{E&vr=vZGfzxr`{}rI2Z14Zosh~&&9d+l}#ApIq zh*1B)YMCfcreC+gQn4*A;J6qfACsPkn2G6Y8Fi$4Hiiq2Vh-zP%L==|K|cS z8)S#~|0?j10jOB;{{K%0TrDs#Ocz&WvJ?PKfjTxZo&fbBYvw6eOrN34q@Vy=*9_X= z2t!gEpSw+xsZMDu`BDJj6mq2Zl z4JW7ls5z`8QmbKksa8`Xpi)(xqvo-eNd58v=qx3}i-qG+xYSsCTH<3cV&iIj|X8ULv&$t~#Jx_cETrqUNPVK+W^%$Ml$t z!285PIu6(cbU4Wcbhz2Uf~%5~K>-$I4)gwXz}De|Vh7a90J#N*k@Z)yf%g-1Kx2u4 zfeF0Mbs4D82Nj~ogDt-g{!je?ElLs{n;0TMu?VZVK`pM=Cm9q#QxH(GnBOlMIG}T2 zpl!b~pq%vkAA^F$0`NX2@G7C7_6!`LkpvIMXmDE_G>|ZPL4kt7?|%#u-v9r@?{ol- zl{DHiq~vNbFza_QGCIy<5U_P%-~`o|4)gx^Ojl52GK;DNkFGcDXYhG3pF!b8J%dHX zQne@E|0}`coDK6Cd_YO1q6H*Y2AKkiWk|{OWMJ0s1e+;itH8in-{k??GS6WR+NYfG z6x4?MGyR4dlU)73JJ66qoiPO6Zcr;-i9RTSJ|F=qk3j(l$_Ahi1`kLyv4E~-5diJO zsM)Pu0m>GyH5n9M|74KR-w&!snI62fXW#$@>Q8k`1_{S`j3^=K!59f%$psEw(AZub z1IzRlbtVOeT7@{BjrI(3pvBFdatutB9PA1knb#xmqI+A?G;xX&QB;6H;*EeC^1s25vZqNW2wD96pZ zT2JqaS`LN_A*UMSYBhr^DmhqHLSESxSaJw3fcTd2|3B1fI#+h(7|W0m%3)#f+LD1G(JO!{|~hczB;ev84N&62CU{WFxE|F-%_HRYhjD-%QAlGUJ< zEDYZN%fNFWbxZ44gI13))RakAfYyX~FouJtop0XAr13ruM|5zCq+e&2=M@iVOw?%gp~@YQsGOYF=oG)H1~C)Ou|a0o@lgq4WQT zn&e9&wGOU2mY)CrSZXo|)GzaJsCf{o<1p|43D5$Gy6;{hprWVN%uB?w{{Ih4`Tt)g zhBI)~9f;Kd6+08-|Nm)3$rOw(;7kF^6^`>5Wk5?kU~6wc@nn%8z~KGA2s~o|s`F~9 zq$_?@GHh_1$M6EY%%lM%UkV<70jaN#zg%H;i$B5Y0Rux#1z7D4t3{olV+p`_#nf;6 z;ZSS!BcN9EkceeGL%~mb2GE-IdYhl|44_Lu5{h3i@c;VHAmP~b{{|@TJQ#DqafD5y z!@U1zURuKY$_g(n85As|AUB+YvY2%gf5GoaP@?;jVEv0h;P+2(vGWGxP!P6g>bPN% z)EVHxSf2|%e;eZaKN~=jFbryod;kBl#M+X9rJmuePNV(*4sgpxn^8p*TldwJw~5Nf}>vY zaD}x41LO1>eI^+lP$YtiG|)O_tEA2epsj$QqHSU$1Bca=Jq1>aI#)o}8t1;8eng+i z)VS+_T|k$UTtJtb9cUY1WjupIK_>$f$Wjn?Xkzg3{+|mO18@ESnnpM<-N2AZLMEi^ zfE_4(VbeW5!GK9t$&!J=VIqS{U6?{Zou^t!{SFV%{LvARv31F_D?Avprt=#zSsFM_ z{LcW|hXRs-VQ?QKsWSt#deDP06I?fdT9=@9&GZeHOg{B>LAOL5oBlgkTmJtKYST3u zF))PMAFvCwcajUVce4xsuWncUib2t#i6J9VlZnAHh=BvtD4A%)z%c0(0|!Wt-Vz1| znDg{385lrj)~`Ik;5hBy7spBeJ~+(z_rS5~-yJM=c%xY2*z|t^=mgw4*U1&2JWw+w zK+A(M13WRUJ)eOYO^c{;#P21>R^@08LWN4Sdu09b^=np2Nf}U+>tc3|@lC zuvPtD7;f?7?+DcYTk432Y|Z9r)WR3SOeWB$_I%pd{kOn{co{5Z%^V6i{|GMV_0 zp#sz?^I!}BSH3SEGE^AP`TyV6;e*JFgA4_=nw|pSbyAwlDxiTC(A2c!Jmw>z$_MPM z8>X)_Vv-brp9BPo4eQMRUus@iOh0eLBw8QJdcbZ%=Kl|YtWI))tZsG{OBfU;to;82 zG=inIT!5kC2m@&OqX1~m&|=B||Fv=+0X46zD;%aWa9BDBFw`s!5~-DS5^C;xw$nEC$?$V`ygHOGQPKxSLdVPJ%r@6hyrN%-Oe^>)FFo#cWSyV-#nJD}Qc z!F~q01@{?b8vg(P(dfyL(WuFg1F8W-mNv$P9J4I|)qsg!4vZo-vb_2x$Lwpc`a= zcA%S^9cYiybQu#SHLXnWR2+CELN$1TU82$c|BuG_|6f8inYci0Bgc85-ItlX(+f

o+RCsy+e*-SaKrZn9|DOe<8-zisEt0wfJQ!2JGh-0>e^0^}gAy1611ttX zC((HS|MO>hf*F%Y0H}ZijqiarSAf=8*KF3VfVI~wmN2lPueAp4z6BL(pu!E54J;BE zz>~AT82>l?QvBaB{eT&hM1A)W28Ox?dOF_!Gr)~9Nd3oP0Gg@u{+|tAw+cUX;2wKP z)oum_&@>cinB9ZX2V5{i^>BbXsnzD7swoS+xS`sLK>^ensHp%qQ65xtF(_EvWni)7 zVqmxU%fM6XU|O%EXU)K18Oy*?%V4VmYG7F^Fnj`?b>lFJ>4N?|@XW7(RRaT)l>-BV z;~ZumO9p|@pw_@dP6mc>w*z*;pk%iH|A&d53@j5p8F+%--0UWLGH`%;LXGnOe}t+x z#)Wb)_JLL*g0qAsL(W9`|35&jhKcclpmYam3D#;_SJW!#PQPxYOK6c>jl%0}B`o>X*C*w@H1W*$QQhGrS(PHBPji3MC59y>@EMPeB)1E=YgV7z_CIFSw zzyC4_SR^oI{Iq3|_-V_a0PYF@v;{?HGB}-pnkk@z(tgx}I&cg;1@+*QxWMVnBB|?v z2V)#Koq_HEhqTF3z^g<+?J-bS3rk~fYKO9kM#itIZ&8^4l4lVGmtz;&eHDx ze~>pS?HCkb$7Ja3V_*QCdIlQX0Uei7&{Ypw&(FZ&*uM5h%?~S5Re=PB(7Bp0aW20nWS6cwPT1DOGe22d10MnU7j1BMp+7)(HF zY!2Ml1F1_mR-tauz%V`Dj)^OLAA0zqd`nvt7Fj_}3u++DlZ~z_3;W+Pi3w9^{mjHEKkUK3UoeYeQP5%uFxjz%7!xc6cyGf>%C+%P#?oq;3Nb z#t3ll!2AE-jOjZZnY8%!z{V0MdjG%nclrlMCW{czoPaOrnhekZc`F$heCIJJfEsC_ z9_A0l|Dd^KftQ-#Ycvc%bJn1}h(EGGEqw-tADIlGJ;R_Q7a4v!GjRNL2CZLncsRYm ziAiGm1#u=81yGIhBa=Y`htj2>domQjv%a9&6;N#eAOD0cA%fH%iH=Q-A)pulb&g(l zGAO+M!=M2ftz%dMAFZ=t09}U$S`G+y6sW`P!RVkm-Nl*71vG~TKBi=Pf<3cJ{ZAWE z4gJ3c6tEx+8B>V{uM`8tBxqajj~a#u$9W75km>+5rVm?=f(~}{=iQ&KPlb1FO8lWLY&|vmU z8wLZ*Xa)z+JOW zku?uSJ8&riu9feD&p!igpI`*l%D?|H2)x+O!0=-q1HEh0lPpg zC%Hf^H#lXd@Ui!5y@E$OcQMxL~0%0>exCkG)%OGIv|#TWuh&E#EX5?_1u}% zP4_WK{H|kg`2CMT;kO)v$L}}>i{Ew(0kGIeZ&PFd1qdjlVMXwZebc+#nWUxnfiJNF zB?%VLscNuDaG1x$F#Ui#lX!iLy~6MR_74C5C0qXgpBx3f|8fC?3n(#zPG_l(VomVuXmgSa zXoIv4V0zILCgeo!P{`OHD1oCn3}jDzz1wBbB0-*zHWnFB*by)cJPqUh|Eww~wS%^& zfJVk9J!Z%NHN+q_%uR3&0}=;Y(EPXpbZ7%8v^*Gi!Fd%FVxW)%g&K?FoPQUl=WJuL z@Ca#PJQdQy$duB_!~n{0-v58YD)n(%KLvP zY=cMu$fFiXy&WEm0pR8|$YY>78I-QQ|3`qUM+^ADQK8_qk>3CRi-Hf2wMgn!@L&u8 zPgQ&W|I0Fcfftj)^a+JbEH~Od2|`|1l^)sue~SP{INw{}=li;Ah=I=0rgS7o)^<8E+q=dpH zK>_jtbWd^vsHh3ioPNfeN!k#yO1PfE0%CM9xIPD!Iu;F}!aD@a2Q{ogs~LXUF(^zw zaGy~^0zA8`a!RM74K$ST@4-tu28H?u3>?z~?3iVz|GmT{G=04f6DPO>{9+&Ej(bqD za+t^PVfq;#CS^nLf>CgPzaC^n0J!J`1qG-K1_g`590u^c?jY@;B4E0M0h2VVg5x{} zo9RBjOcp8*P5)1L{|^9Hm&h6&=lt&gxfV2J1a|H814kHHcwoT_K87P;Hlql5NfOx4K%X{igIw&EB-fx4z4md%wtM;sm#Ct9XUz>ZIi9pp}ViTEr%J{|^TBWv09PF=;r0XILyj6Bw}!JfNkFH7}W$)hfINpKb)2b+Ke-;FxI3 zz+$V=z?Z1W!7$O5fuklNRL4?TfB|%h=JXAIOp;;J3~b%E85rswxarh`hM>NJhOC)v zEMviiAOmOxas9~;KWrHo8A3IE-&uMwaHMKBFihn7|6?N8|38VEJPn|cB~V#pDgXb1 z#s2>X>J?n4%lk7K@>~4>e*`qTS*sabQLA7(J>H*5n#oUbdW}DmGUMOr3;dbHMMW&- z88~VcTyzSx7#bX!{$KI_?|X6j8Gj~eRtFD8uaDE;_%q4ZgO_#>-4&p{=Abge`+pE5w=a2JQLPM~T~6@+9|S(}$D)BD0aPP-|Mv$U_z5c5 zL5UlLL506XQXhv0qZgzW1DzfH_;&?p=JVCU>233vjldfnr{4%*Qdb1eOo6mnH1#a7 zNb1Y*VDtn#1!Ro(|Nk7*6#|*0f&#&fcuPqJ2aCT93gIVx-&w{o=zs>}KtTu!Qc&=L z_BYk6WL`E=mO-Ufb9IHKEQ1E9{SF!nhQ(K{xReMy&g5f38SyXp*guek7D;^?9*myg zwfx@y|DBn(i3yrU8~-mLCY^%QD6CD3NT;AlfF4@~2F99y))k=n-1>IV6bjRX=41v5 zQ2MoMWl*Rom9D6nuUr8>g6^7e1?Zr(`f7$u6HsEdUc%5&GhMmD-hq)Jy!vKcb~OVd zsDT__?Vy)l-N2As&C^g_0gfe5u>(Fuz=P3{6BM+T;)rBzX(qr>cfeJr`V@l#C>TI9 zob{_b7#!v@o|*n3h)JAt3wTk-cLt8>0>MmT^@l5J9c*N|si z)f5JW`t2_q>aKkf0lBl*&Kq>L>7uN$Sn+IkO|dHPz&W~ zkPG#4(0lQR!QsVK28M*^3`{i-bafh@G305!Qk;RK{`T#P`UF>SQ8Uq;fn}mOXkGI^@S04paY=m*9*l0_ z)~ok_NJj=LzQBXg4ce&qp8_%yDt^L)(G5Jx z0vzTsc!26D@BgR3O(ali0xda*3`e!T|{8nV0niFfi6n>Hw{G({N(=|HUfs z|GBULHaqPJ42q6(8CKXa{r_hrAmLLLB)Xz5VA86(pe7NJKEDPQ1qKGj4Gatn9rYjr z6N4lfPcVR|*qMGXFfdPGU|`W;U|@N`z`#0(fq^Z8fq`9wfr0%30|Q3~0|O`MASe+1 z2VxeN2m=Gx3I+yl2?hr4H4F?q4h#%D8yFaPT^Ja6w=gj9sW33`O<`bQte;`$#IVdN zXof;p5CcO|0I0vqm(vA0et#1vI`|5T{27!Sn)v1v`7;PQHt~T^Ft&1-!Bri=ic~3>g^fye5gv(qfRCCBy(O*g*G{I?VgGrdHh} zz|xCByjD|+c^NFYL3FP=1LIsR$lANf8~jD4FZjVEG5tX`v&{4l>litp2TC?g0iPsm znKXF;$n~I=fj=fqXZV>podYzYWv9fj%*t?vLRTOILsk$2$JK=!UWjt>iF5W%n)QyusqMeIE#y+Uar0mr0Cxd zD%=8EMf2Ie}hCXvwhY<9ID*|*HTz@T7x zk%4jMD+ZW38?1sDSU{G|@?wy)a$pFU6$olw{+og6uzxL9LiIRZ1~V{$2#47a;V=o9 z!>kw>0zr20JLD*q`mk@GTz2m&U4KSC1TxI3J5CjRb zzZqB@7D9x>42Ws%TEj}$Og?Wz%WP0 zDu{s<E8vIuKyi_;re;MJ&16;3LeM9^8arJ!omLQ4tlU7Io<-{_+MKv9sg?q zrsIG0Sbl=$e^`)#OD2>=^D6_7>!DfkmkSY&SHSA{`d18cmJb*#5w8FF1Jm_CpJ2NF z=LNz+|8or?$JaZ~``Llv`ibZ%{$~nS*Fzj{faG`^ERNT};&>6LS zL*eTRY@q;-e?$}OYYR9#Av+4AX8W3e846#0usF(s2uIb6U~?5Hs1T0&0?Gxb?LLfL z@CB3$;O#z0b^8TNF8G3$3+k~o6uw~O0?dZyml%|&0k!4+fAPQ!g)b&}LjjZ(9Or!z zARG#x-=Ig$tPki3^z#YKsQJ7F(@~!nzzVT?VHBOR-pKBBG|$dEEa;=gaq>ZCmoCst;Yz`PaG%~7J@AN2pU5F zK*tDq|9>}kdO%EEO2IU(_)ufX3CV7chW#pw3ieD73U= zr~r)?ZGOm5G1p# z3?v7#!2ACO@Z1Jyq{(3(c;v0Y`@bpJf%Z)d%dF?j0PoZNQN!R08V}ge7{`zR+FT6U zSPVLe476&Y)1HADx@j1++sp>EH`N-nvA7GevDk6${|BHUJbcNfDGW9R^Fff4T z`YaAW&PetCzZo16Ak#tTJy|3&fG$+H3p%$SG@t;QfdDN?0Ev4rN`OyI^8Sywzy+iR zge{u-e^?|<5b$8s2hTcyW|zGG|1W{21I7l(MOxF-^O=;D)_~WBf~L)W+A~Oih94|7 zXJ~+qetnS%8fq|EIDJh%lZ%LjB13^q62r2Nrm;rIj%5bs7nuwSmMRR4pfm#7xeQutvXPOY%#x9zsMf(<$I=mW)=d*UJQx_@Gew13pygc*dq9dU;~5xh z;=^GsV}`{-h5}I118tn}{{L?$DCIlO`+vjIk)fbgAxx)Gi;=;h>Hh(cf-oc^bXNvi(uRV1?nKy!GYg#w`SIrLY8&sUh@ z{eKxaVOKw4Q22eAfdjMv9;61cfM7Fto&e-&hj|PUU^g^BuJB;g2G7u<2bkmBe+w)W z88(1&FKBk|^<>U;>FEk3%slm=W79!i^#1?P2Q^Ipih`VIbAUks5}r&94owU)p=zvI zHOClCLXO?6t2xGSq2|~P3!7sM4j`vhKV?t=?S=-WLk|WC@YDpviGM%9vbjal1Pc#F zEpYf-C^E2u+{6Gm^vd@ZBS(FWH2g9x&<1>H5-$YJe`n@j&iuVe4)GvM|0y^9nIT?ZUBIyIi3OGjRGFmj+nAC*-Xa83}AG~4p zh73rtr5tE4fQwG0=e9-KoeYYVDxe_^Mw{slrA%TT6FNK?H4{N$1}bwbEInlzGpL&#B_t(j69(AauY!39w6>$(Xsdknh&$l3DtB1-E#!q z9}4o+L>rSQpjpvSFE_i1F<|xq(D`v9@RRsK>#1N<_0aQh5u<-t`-wF!RhWQK@FX};y;&i4?pHa?aLe{#0iH!^# zpcU$%`Buo1JSK^ko(uvI$1(A|?qrB~oyDL4T6+lEjAhZlzyVq>04htGWf(YKM>9yg z{=*R9{a>%15#%gOIR-XM1rCQ=2R9wi$})&S3<{lgpd(({OKLSee$;CIE34FGeqyW1 zz-+0>;b18bNklK@7#M230)AAoGbl}zXJ85SV*dx);A`u^!7$-J1H;641`f-31|Il| z067LW(8_|UuM7%$rhW_z4wD$(SpR1b04*!9WDrn*C=Ss9t;L)e4>o`WeB7b;e;sh#TE;WTSjsa9fObmNB)IBSfNqPDXAl9;+k>{-#xqD*$}`A-`~vbv z-GWe^R80oPL`@!sTBu)a89=w@F(@Q*2q<{}|91csIUo$Gmc0M}=Z9Su&D_8ZYAH_l zt76h&(sZ0&Q^lku#tSZxK*wEz+G>zBINA%R@2O%+Q_}`dJ%Tn#LBut|^XV1~Kx=gv z!29ey7qRmH!$f-q@Fi;#<}(=l z-p{}RYW_^LXVCdk&mi!lo^n5tGibb&X8@f>!UCF}u66sP13I7! zbkr>9m|0MH0y@jK*27Csq~?XEmaPJ##N<^B922z|c%~;TV$_(Pu!50edPo(M8k2h9 z^q3kZIiY_a!9D|>y8+(os(EmFPYsiYO-&vA2%z@_`p~EI{v=^Z%)8gNHBu;j3hcX zvCcqU^=o1PS)Rpw0kP`W#K3VL6X-%d@B#P$M*Gn|^CI2an`7?!;F$1r2UN(K&# zWehB}9M+&qFIXyB7?ePp;%nM{b!r`SnRO<+P3LQ5lJWa{_jf&m!b>@Zju-bBDjNPV zET~m;2(VcG|9_>{Lnez31_99N@%3FA436_yRDR53=m0sfR#UCS;sgVaMF;4Vc@v!% z_ZbXoH7&1AZ)ju^sjpOHPy%HHOAQ7VOAZDe$j#BJI-tGkpt_w7;2w5wzY1QfxANc>n*s z)KcLC!$y0Cdbv&;utw0le+4|GZ5S174sbBQLieQ%g9PZX-|&+X7O9#a7!oxZ*g$Jy zL2YMHlCoIEz+&kIs&;gB8f_VLUi@WHm~e`L!{PuaiCI@vs)IZks#EhURA(Xw155n_ z29BRLCKlfR>;D!klxL6u`Jgd|QQ^fO1_@9h7Rte413I4oWMR#Tz-ur|L7St%7P|+D zAX^IRGJ&GBR>Q#{k%NH|?1;Mz3KLc_a9At{Il{OC~K?zb5yc(_^=?n%?75fAh zF`$(W7EKc>ERrTNcreO>dw`%_@819afVW)3)LHLgcwv2jfeCcQ5J(KN09py$)C0Az zK+A@I)R=s5oX0o=RD6L-U+@1a;0BUK14F$7XmNW@C-X8;1pKHm`2jKn8UN&D;IQ;$ zaBy;f@AK#Q>Gl6at!HorXnp!i8xsRaiePkjX=7sXJClLq^&b-h$hvk=v}34%7{su_`~Oc}(5A>rO(%_7W$%iK_MmovBDl{A zY6pM{Y0wE`-v5=sdtZOlGZ=K*!BXJw8w>5Bc|DF%AykvY22}4YlxL6woig(>jzI#n z0tuY2>$SW@61f=cEKV}8fI`3$bfvI^sSYUFHpW3S_DKegS}$m(c41Jeb@0^zWolRw z^#1=d5ERr7^Zr9uyH1$l!6*%F>HjnF{{PbuBL8OxC?qVBCS34flm>Uo>%IT~248yS z{r}gG`uf`yziUhky#N0@VHw9T1GJd3;-%V?nk6ARH4j2`KxO=odkh`5ZeAjj;~17y zECt>Dpj}b(3|iECL5g}%h6fcbpkl@Q|L-~Qt}z>^;$r~awYUt_K(ju~;K>3inn4RH zK`m-fWd*VnwCodfFEXsM0xiRa_<-RDY-KfQRW)b_P(ddLsPTVfy2C^!5f|`!R88!c zOoL954b@_>ahS(&1eCl%&cwD^b^4QLCKVS;d*~K9d!#LL`{7&UQs8#a1MiR%f$Wfz z1@|C9JLEw98Bm=k18&@cy6n>xVwokmS9(`eYJtYR{#$_0t_QawL3L71wR9!u3>k2M zVAM^FKVI);Px^`ND)Ukfej|4;D#|26Z){QtojFY5mnfSLy0{}sW9JH4p?p8?9M z-v8ymUGW$5|2Mp-|K9;s177s>qW*saR1J82rS*SCjrx5*K&#bSUjLoGtCh*Tey+&@ z(8?arimMm3CMO`;6~OuBMXkvJh;~`w2pM^K3is?~p5Gbn&I z_h{5tvwrhgF>S`1FuA*Cj-ZeJq!|{GH3df zb|&lkx1hWNsy#tL@zRb#;>A4%hK7F(8ntX50iYAKD!Cqlug0nGvH-0~Is-aM=BFLl z2)SAgwUU?d3>sjcFJRyR-P;2ys_IvHiGa2rdocV5R|cTL3s4dSsq|@ZVRSO8Pc>4c;rN%=h&~8l7Df;yt7N7&51svuvY_ODLPyns91D)Yi)9Ip9 z^T0*NV(I@6pknaHJqCeVH7${eatt~ZEud0HxuWKorq)DG1`b;WMu~}>3_KvufjkDX z$Af_ZyzC8Bw!Wwb`F0da017%f9^@mCqd;qrExi~7e#S9K zyo>``8V~?-FtTGE=lzfPDaRlHZv~xV;IZfe?ZQX2f@(P&euQ$c{{xw8kjTNJP^)Pq z0%;V5>R4)l+ZBjL5d&oTDExp$(10bPm=NG$(vbOa50o4J!OxBZ@oUw+K~AX~CP=F>T@b)@TFu+!_CvtpXfF;8Eb_WJfDGVxn zp@}ikaW13JYflD&7o7|YjhPG@FS!^ZUN2=(sCBszV8Q+WeLnnp zL&>ky+;ahgG?=D<~*+Jvtv(7yq`Q9G}I~v&fB1K0vzWu zp+@f+QCRsKU(t|KUd`gFvlIlt={wXt0I30yJSTfs;X}{z;^k zO#`FE1TF@S30)9-LBa0*{~!2XRgn49FYIEJnCz3vF}+5dnKS#kaRn^$YGx@{fUb=N zMILDBB)H~WfH*nb;(!WxA2n#p9%wrQD1t$UNrEaGP^3dn?fJmkyx-&rs8Vs5#}EOs z5p*aHXcP{zoX+7jqX-M=5CPDE0TT7va~X6T=Q8bSzHjnE?k*!}9Gj{B9)n4({U#Bs zZ44IS_ionJ*RK+(zsGQ4@=68+P!qWN9@`S@dkhYfPcnLd?k|QEP5)DB?N_XWo){_v zDpV(GLfX@y1_}(nmS*6vRbXbQKlQm{q6I@e3s|8A0|QL+i{IeIz2M`J^>;BafX;ZS zc^)KEJ(EG9x|3bOaUN4hz1QUmn1PL43?(nU7&t&%IONwPEF9z@K0w30ZRu4=84V>8J%_v{F9p*N`5;taQuGE5HV4i zA?HU4XjE-FxH1O$)L|Y&&x@%H94|^41R$*janRW>^$agcL4y>a&9NfjjcB0g@c#eW z@WpHfju+K%#o(pKFRI~c!AG=#Qn&a2KVLv;!D0b}4yZ1(NSYYn!N><5X!rjA=L$$J z`~-(hB?qX1_Rj&t2i0%h|4+?L08Q|L8g<_P|7@t&I9=iW|L>LQ1)BYbW&iI zbOme=5vWNEYR&FZXubZK}?)NjWfEp{HFt9$r@E^2c5WTruG0#m2 z+CpNn*v}x~!oV>7{sbm=4Q3e(rJXIxj!n!Wprc4ZK7rurY!jIjB}0%EhpMpK>9>Hc z^JB09H=|W76>!+z>84aa7j(-w;}eidF($?}(-kH$iPis4(ccNKi(=|4KZ#i1{Quv& z`u~4x2GEV;HyrF9Ffdi$V^FBBW>84_&cFz|3ticgfzfdegO3LTBlseE?YRuh$gTo4 zbhPJ!T_sWX#KWS#Wd~?_5ZuK9dByr317rQX8xA0I9nI%4+_3(~-~bAm>i=p_K*3)B z=a&emkq8S?$9ex3fGh!>0{}7j{{fIEL~QEW4udyQrnCt#fHqNr5;Ulm0h{vlH+bY4 zvKx~hT-$(a59iAj-v1vNf=!t2F_}q1r)K9T&_*`~kjp?P{DC$$dH?^}3v;Ezy#EHE z4UV8xG`;5tqY0?}^WXdbU-;!Tg(^(U`YlY%4)gw<0Pj0;n8+kn|BnYbTtFRTR%N@u#3;@Dzli9vtU?7a-dOJ{v&!|KA=^fP*lkf5oEU z{r?ZRrw;WF1IRlDlOH5;PLGsl=7($-2h}^Eqz}>u&K`;XZ&)NvY=G5apgQS?;{QMo zMlNvO3~B{iB$zT(YO2kZhmoxn#cfLepE=P_{9*V=oDfUau+B~MVI0yVa+_b{-4&fJAL!eJhR z0cfu=XrD3i9%F|l1_^M2Ykpke{r~M=Y1?L9oq`j`NtlprrcN$KZry{eTf%3WDMg-9k`Efy@9MR}1PbgO04Nv}aJL zWpS?1+t0uN>Y0OP9UbP?BX^Ox!COheUF1EGi6mH7vpJx{016G{;I>!_F5{Fy7CFpg z!WKd-6)oQ%O_*o$!l8*t!Xg3Gk>fcDaxh5Gk2(_vN8@>n8$dliP%wHhd;s@fUeuXD zcHuN|Fj(&aoqxa&p0}(?ldkwtXW}vaK`E1o0W5H><4ig%8W@-$S^CLYkkO9w7~X(7 zt{$ieqj>C&O6Aw@bc>m{vY#Ijn zz5x_e+~5)o6kHZb6F+z`vQ4+nV79dZWv+>KCNH282Rs;Aq17a0GgC?%6S%1K{{I)e z#R95sh6f|-$>}y3%qAYN{yOOF5y+?@7r0^u`RzxY$pOcCOrRNX2FN%74|tm=$krG8 zOb)!bXHxK^&g8^IJCh5b5Y!O@b>?f;yupbQq@vModejUib@qKG2P~E{@PJOUnLcL* z69;G#g9Ci}-I^KTm?)??#`Xjj6FNR1b3oECv#g~VG@ua(J~R&&`k*Wws>vV+y7mP* zM}fo|<4i7qrpdqu$H;(8163Lzoz~S1pj!h#*^C2Jw!)Ib3AE$@Ev7-y18NFFhHsuj z`|aQhgPB1Se%}ATbb?YHXmdW4Us;pXc;sk@Cx_JApfO`` z#saB-G0#Nzz>7NAcnlY~D1A`}8;@ZJPc}i)=e@Pw|9?LKpQtAennkfmVqmdI-n#)> za8LC9-!Q#?4wG#FXvs>W<_rtav>#LweC;Rbrtk@g3^kyOLM<8@3PO@u)P6cLbWBtP zpB&FLQIVm-QjuZ8L`4SBIw!`7ilEcuO`cBYnagAVz8kkubA}CQK&+ycK>^fn0rhu4 z?O9NN2UL$(YX1LUzt_V7YHOjxT!t0a{~4I9_c92878ikzC;-j5ThEzc;laQFK8O&M zR6)lX)Zdd5sh|790d(suNF8WLd7};J0>c0Q>-T%;f*KPHj&uLt05yU^8odAidkfM4 zQXG=ZVh1t+q#1M!?erUSnRF)01anAu|Nl1^8Xz_ybu4xuCxULOh4k7%;Rurjd*%TH z#?@A!#U~)ofjkcKG}Lp7j`J8=tP}qK2VJcUYR+2konc|kz`$Uwz`$(Xz`$hf$S@(i znnexdK^XS_|Bum9o`De*XtiAIo?AfK5A0K0s83gUfR85zdD8p;zfeng2Bun0_AT|z zA3!&_h&0B61~2~qt6v!aQWpa1A%fI`4}pxRWCpdA|K@^b>p-{Uf$sYR#Wbkv_nVQS zW3nPc$>c_ciiwO2HIp3~8bFu9PHqInvQaL`i3=SWCV+Zlp`Hq6wVJ;~DwRRY8UE)? zFPP6H&Ku$|^*`vUvIk%bH?T5UOwTc65MPSvY{w=tf6|DGqZPI;{VL!{AT#E0CNA_-gQpiVPDR=Q6<3 zv;!#Zg7i#&$WR0FSx7RADJ&5efD$;4#LNOo%!aU`gALOab~8%UgVu93dd&b?#boh- zfdLdSAS<9otAVlvNasYzx+&%#4;eZpLT-PV0@~~9{oeq5UL-6Hf$kLq1tbh3n-3cK z0XsY4|9`0YmKYZNWQ1EV4Qc^+6$;D(iX7|8cc{ z#IUUS{|p;YY3Kd_k7>9kgIP`Tj{xw!esdT@Y?T=5mw^g|>Uj(bvl$ttSbF~dU%wBO zEE#85%7Csb{r?Xf%~5Iv^{YG_Hajv*aG1;Z#MCrkd!~^AvEPPf>ORdc-@Bg|Nm1U z<^C^QXr$R#$}lj3ESr(YFbQNn$ZUtX3^~?w7zBQUh8TqBuy6T28+3giqW~z2p$^s5 zgNABeAN>CTv}qT#)B!YJ^3$4u;iom|xTODUpm7S$1E53)PJF24GPWc=3AKFI1Gmb( z|Nr*^`5BZqKxR!o$WRZ6?+y6qJTGE&9+vj3|Nn=b zTvq7)|0j4AC}^6}V$qa>`o}*4K+AROpMg$X{&VxCA_Mr=Lr^4uLfl}w=wc>y;|ZBF zEIu`LbH?=d^O>aUzk|{nSQtbgR}`Qsq<%4? zmYdPYaKdpeLkKKbKsPypGCL?9EE*X=!Cqsj$Z!H&-$L>?=sGE8c(8*C6bA-S{o4ZC zT<`r~M>2t(0hF#7CQL8zWRzfsxorIcCdo*!TbLM@HFC_b0Ndrj04}^h_JQmGyA|Zw1=9uRGHJt$b8w6!d2<8An*pG8 zt&JQr9N<=i$}>>esmK8KrUl5$5Gx8S85o$sP6CyiiVO`P>n1XS4xQ8jPl$rX+(8ir z$|}&Em}g;yDafOi z4h&47p*m0igOa27e=YDpR0GJ<%HU}~Xdv5IYX1L&9KRDF9w#?`S-=$rO8jbq7fc~} zetNklqafVF=a*2=!=NJ>K*u$-c>mV~mlQ9sdiV#jhksD!VUU$2pzsETGbp^h|7(D! zF3~+K4-0Wnou&D2paB!T%paT-`)SNM0d>NBB(~N-W4xWr6(=%2u^00s!Y112) zF&U|S0s98j_67}VI?QFTu|E9&zojBW0cZ%y`XNI;Xf$>Dhh#s%yXZKN;RtA78K|bSGMr(dr^3LXtIEKj+w%W^&1~fg&}l^A8t?!EgH-|p zgVjX_1*--IW-HLSXbTx8fNDUCItE5iK~s~(z6G>m3{>_y%w?Pa>3DoxS>OBu)F6y$ zG-P10lw)A3 z=J5RrX7&F+iPX>caH#*sz6Dg}I?nmu0_t*EH!y$>?}wk4;n>C4U}?v|Vm*&Rpwg#$>!aUO#O$P!Td80?Uh6CA99KqHNicD(oh z4~ZZ>F!dn44)gwBuvoyr13PrcgW(3atN=BYL5nIZZU6tTpToW-R1?%lW#969CIiDy zO9l=LenmzDP*(|5pnw+|PWZuO!&5tnQK5DsqXKBb;j|l!65xA%Dw07B<@a+zNyq#D zzl=sh2JopP;O0UiL&u~>hLTASq0NPbkmkaqhoI(y3V66;@j`|Pj*}QnK$A6&^Zre6 z?EAL>^ut7gidIj}oeklGIbezi|0-CJruAUK~KN~b+%IK6!Ri1*J%iN)24-sp1}1Aoh6$jXDL@?@4+hAZb+AYO zGceZA|G-fHpB;2zYYeCv0cy{KB7b%x!vs(=cAWeF4ydgHYT$t?i(dyBIzY{*Ne>xH zCNqLt4Kf!$#uNnVOuiwU`3L0w_=7L<^3rg!RI%n8<|NqA_-C_-s0S_o1Yg$0f zl)opZe-LL9;jw675P*uT1c|6j-?4_tis|Rc>0j0`DT}It1_kSvysoH!_PYYq$npOF zp>Vp+S|%x`&#u!w)-rh}GcfRg4x9uxw`ZmxZQ~%%8!o(OL2Q-69hMH&A6`&g-XDTw(c>n)*60`|Qr5>~kMSCR! zqr+Ur6X2GI5(Bu|4@yFyb2mZBu>SBP5m1q+Q1kx->_{w7(gP(!Q1Yw4$G!!Y1VOF@ z_f25?M-=~kbeO|f0!n6fix`$wlrSh*ZJl8OTEuMifT12+ax(!XH5hI*Wnh_+$S?t% z_x6MO9}GU0aSV+0pv_2e;56I-I@$`91VPEKe$^t-Ee{OU`xz7*=l(wey1CW+|I4-L z<~Yv%zo*d@G@ReaPykAwpmYjLqmvghpruhc@M33>At1|ZPib2rgcF>|^&;dZ83J&bP28Mc2tioax6r14KV}u+w3oB4S1Fw{n{ zZ>h5a-ABo|1y%#s83qJ^N+#>-85Z>uLDd(d2dJ6Q=`|w&G(_PrkI~{)G&JW&Gf3!z zkG)}3u?qVCzdrtQMP20N3eXXBph9M@CFsDMAK*gCVQxKxMWZ!%q~U+{V+I9K!v~au zKtoI3|DUUZG}O<4CG|I*431NrUSqn1dYV{a*p{7%0?cYRw4n zU|;~>{{=cyoWVko(O~)o6=simkiS61k@x@al_3As%sUVOss=%+)q2kVPu~B(CxVP< z^qOH)-N~S^c_G6DOE35cl!*8Lw-Z4L)BFGb98gMxss(orLA{{Kjc6l|pdOGS*!iGd zkSwSh1nTx6bq=M#9X;>=|5r>;P-PYYU;7D47oda+N^GEnZvP-N2~^4^|IgI{B}!0- z$NT@cm9`4b0Tv4x3MM~fC`i-{HLyrzXsFa=KW1@2{zIx}PQFD0Ltvt2I>S%!(f2QJ zPA}QSWaRX6>FbBEjfu~Hf(k?L|IfiA>=sE=8od911h12`IKcnGV$qZp77YvqAalL{ zzs&Xi|0WW&KxOiVWQFM*o0-HIXH1vh%%ocnawupV4m9lys)|5mVEx`lB2dQ`djEd| z?gQ7)d%@r^hoJyelGpEL-vS!?sI_C?;y8^Vrus0bneqmFc&Mcv17lt13x=Bd-xcBi z+3fV^Lyov~nD_q*s9_Ci7=j9i*Ny)lyk7W!`uWXFtkV+;m?fvb-OMBn-qCGRHTck5{dtTGAfJIw zBX?-}e*ttBJNOC?<$|XYy%ZRpb<4tc?k+2 z>*^U9;J^aaUI+hw00orwY(@rHz`z2-dN;#=w7{4$*Oq}1R4-WnX9#ArKne}-|1ZJw zE#Sb2V_*dB-UJ0kZS*IRdezev-~e&HTrpFNk->xEBz!i_aUR0~XrN57NSJPy!E96y zQ$Jgp34Hjj2g6BlGJ^((L#H((gMKH2EoeO|=oS&s-4mdR(fY2(6`)1}C_rj8nU^`v z1z#5qJ_Zx!DNqBVSBrtsBAI~^RFQ$qahUi24VYgeCF1@6e|-p&1w2s4%>k7UH4p_R zph+c=1>XPv?||1(97s!%LA8tH{|lh&>cH&;&=@9YebsH_3Q+O{CCgeF=L%4b1&R?+ zjDe2OtdBY*@`DkyS4Q!Fp!fgZD{HMEiCAhfFoA}m>*Fs3)X(x@aGb;Nq&ka15!APH zY+~@JuMZNj-uwSQXe9(J-NJkeqI>2tFoKd9DE)f>e*sRi^{^AF=ly?D|C4 z!Pfi#3)X}{1_p-eISh){KN%Pun;2ZI_du>vsNZ`^1a##fX!ZkSFbsokv;i3avEVs4 z8Pv~z0XYJD-v1}iXypKn?RfwHe+E4LQx8fYj!ld`$f*_QNSVu81R^Mk(sNeNUqKVAiL=H#D+N4+DjSe+4K8b*8y_%T{0iasW`~N#|_Y1yyqF@`7>2yv} zW`XIk+nKnhU%AXAP!HP12ntS6BM4SdzzPX);Q%cVKtT%`2l(&k*u+!-YE*%eYRxU< zidr$}ikd&x72f}U-K?pWu5@f-O7LJf@)zWR`o$X<9Op5Ccg2E2!~6e_RB*AjX+aWvZfMj7>k}114H#)1_g(S3V?|=k*1ti!(olx)pPihkw>KPb7C53)7xa81*83HQX zK^8(4f)}I1)H%%i|3rTp0|RLNP5ntw>y9A?6z|~HpBV$A^_>6z>sP)KslWfZ0+cPV z=08}pf*MWU|DQlJAR>R%-`gYtGQ84)LBYBcbObyD11N6m=YtaBV{p7WOk{Ae-o?NO zx{;)Q?;-GVD3FEq^B-5B=D)`n`LF)hBN0$8Z~(Qu;3dH99}Et2A-m5(O-N8L6B3M% zTR|aHKO53~1cd;oJOw4J=>cDuJYqn%PJv7FpZ0EvSz zNN3%N%@y_Sk1IfD%Y!O-(9i}r(?0%P0qci?GVt_-FH9ON-v58znJ(~(Np||(y-X7I z^C9&-XmKhiWrABt{~m(7(~yNcOcna`LCZFoY%CTquz~xWhd)<<#uGdkj(|7sH^wk9 zfZLIvvkn>r7%UPL7$({=@L2DiRWLD*fy36JfnlP@tO8KOZ=%+$67PSHzpr+hU&sh!L{~m$5t>A+}e`L+-ut{LxNJwU2@&5M^e5QfT zB8FuzmO|A3$ec9+vZR{fiOnO1WiOu3Y5?7E=s1tz%1cnkAH4LM;RGl!LDeE?FRjgi zhI)pCOa|tLc?=v0#{@uYJ{dt9y+F$|D>+)2YTb-0e%gXo959MlKL9OD<^`YGTazMP z>CnXJW8cugV4uLikvxZkp?VJcF;I+v@JomunOe_ZB9*QT3bmd;wQ80=uCV^k!2q($ z`#&#qz)|c5=yKyLpgIrKNCdUfKtTuEtDsVEku>Fk2g5CJ7=VtOc#%A-0_uJNiv|S- z?|%=#RX0?w10g2>k^>K4L**twXPZ| zWlW0TW4ApzZ5cp~0tSb9e-CupGJsCZ2eG$U?*(lo`@06@X^W&OKRg(2g4c$5|Nn0Q z72Dv!a1)&Ez5oC3n7&{qqpUV`dj&MTH99td?^)*o&7*@>Re_uXDtNsA-46wwRh!Z< zAGBnSQNsH_H+UBm)K6$(aUXmO2UHF%Ebf7u>QFf>VR7%`bf1GvG6LZGQt|%@Phj|PqK-YCOYBI2dafa^ zHyl9gz#Qf>^ms5_-j&~g}1(dEH# z0Gy{_mq3GB#UQ7{bm-KB7KeglG1_EECzgQPTPa-);G+sa$C87NI{@|ZK*a-S`W&?4 zrKTmg0v7cRso?GM4Br2_z!xb&Tiu{#mkppK04mNvb9FTw%+t>YFmdXD%0EzZ9F({~ z7<924h_*{K7mXIwP$NJABj}jFercy1BQ$sGW@AkkkPS7W?%uO1?zjW7SunG(}5O9 zD-hcroQ&l_3kX3si&-oU0WZM*l2*?wlbyj+d85lszCoSXu|3|mOv3}bB4chZTEd_=dpqm3~=Dx7dp9@Nj3_mPw z7#KrZTI{qt8JIyqyJaS5>F~cFpdg1~P(AQcbJl`FEd~LHCWeN^4;e}pIx-Y3RAeX! ze{sle_Adq&P_CFM#lRZse#kCV?U3EfCvUK#oCjNP+kN|1H)F7z98YP`&^ED}hGWbpK;aq7ERJILu=J zUxSRY0JM{V#j)vsK=yw|2G9;OkR=vL({Fe%T!PH#CHx01Al@>y0o2bv&Lm_vYXvA+ zLBRjH{3?G^z^(9JI( zD=ifSq%0myZ2)IIcLoCw2GEut27^W|1_nzn1_`~D3=H)x9uA;wQ_}^GGbtKqFmQmX zXHaA0r`D_mp!^Er|J0hb0+ih>6+q(*{~ti}J_Ez_jXN2I>p`b=gNjK|7Yo!82IsMb z|6f>F&sqTLhJo`_8rX{h(0mo>{qH)spn+Vs#C*kK0R#B9Ko5qU;BGmnf&vXLCbT#x zfCg2)|J?wezy%8e``w@&-v9qwG%zTzfEM!AR7(U{EM>Uyqt-zIl$StZ2~`Y^tm!9C zFp1W;feyfCh_HUZU}%xRkmCLCGPo*v0WuAGQIEw^$Ym}e?a;fe+nwY29Th_7KppQ;eRBG?lT7lAyQlv<#U!R-vD5-y(7=>{3KyFL3>+3q zEx;GnfW)UCIKw1b4+#JVkOENYY_Zfr0u+KE1vUqMflkGDNI1pzyAb&kIq5zXeWab$U;#03c9e-VyOlT zsAvTxS5Q)zXzKvlVW9+aTzDHK>jbw!vrLs7eK;6;K7NqXOFA>M-wb3`hjj z;_?1>8Qe$#sRExh;e5FQq|zYSBB@=%gW)W=-wPTMr8(Yy9stVA2i{w z0OdSTNP%)8Xy6bWwFwLkAU8pCVk5}SQ1#QZ&oIgGfb%6xr2h<)s4|oTDx<*R1U3d5 z3{bi0`*ACTBqf-__n_ovbKw8~gk%5fLD2=uL?LZ#c_21a(F#x%2MR<`^#<~Q#nKS) zCL2)2ACe4eg8!_wNMPXd{&ya{{@W&jg~9v(&rGNoxD9Jl$H4I-*+IbubY1U}&lL$v z9TaNnq(r>`U6urgF(|!&G9M`1C)zXcc>lY^Ic+hc#&mSK~3(;c(o_BvA;w*wHP>g3N^rIhE15RP{yP&{lRob76XueP<;zBBcRhs z4rC6fz6F^NGtXh(|0$rRJIK800U)gjmzg;Iy%;!Z=Kj%nX#*)w>kowKSjIB2)N=jN zvA*~J4`|pKbo^8O(a#k%EzT7+oeBXS44c6xLRf$%x1eVW*3?Rgcra|bI{m>pCJoRD zcnd&X2hfOMs3u$8L>mVIaHoaC`T(ek`*#4`)K3C!v8sh`lt#pR z2rb}22x`)SYIyLn?)eAo0_Ho(1V0&;ec1nABDL&3IxoE(6hJ-)g+NWRb45*-M1TjwM(_x# zr9A^j{Q-X+O9ckznf46apj0!{9c(~|5rH7`~O0ggF&K} z-AM#=SqnH5JpBIy)KRZlsqI?<8prtQF>3*+X#g4xs5xw0QFGt80@O@^=88rSh7I6R z3($dspgi`1kwF03gkR?U|08J8xdM3R=FBoih3Pt%n7Ei`-k5H2iAf>jry}Er9|sw4 zcrfe+?@tG<)v-9pcmXt+q0r3804m68GC|33KltPWi~0Y5fz*J;=;{x%o78kFiFp5e z1n&2OCdEA%)*J-+*GNC|WSU6i&7RX^sI8@ai}J{|{Oq<2djC3b5~zW(9aK z90B*_EEE|I)GvNLJ^m__7n)vhxee0i{r`UiNFNAWFZlo8B59U{2g6}-I{|iY5l9Y% zL5qDXl4fau)Oj!*2JebN)(=u+(KIUo61s=M156$a(csYt(1Mx_(9O~!CKgSzWDVfYQhh#b1gO6CG$s%c%%LxyLL(nA67y(jbk;v5G!LSNELTqu6 zwE)y|28$;!FnIsl4;g1~{{OEgOB%FgGQ)%6{B-NcSTxOgVEy3#9Pj_XNw|jc$GoEuU=Rmu&{Jk$0HtMzNz7ktnHX3s z9T-?&YV0qX=*VKD59$rh<1*3j1eF5ZQ>+zPB0y*SS~@U@Omt-FskQe2UGl`~IF~5_ zBtB7*r2~8psLJUIaKzR#tN_O#$Y7A65Cd7RKn!Gj(WuB`qut5C>NuC}fUVR2|CU~} zN-8zQQ);!mR)NNwKw}+{ONrPPFfcGWFfcHxFfcGaVPIfvVPIg8XjsV70dCSYGBtoo z74QGQL_vitXzJK;4iis3s>K{C5Q~{Wy%ZL3&weh)nNCIK8=xTthj}bA$m%C5GGB3= z$I$@M!*RkQk?DX3!&30f3wUx6v@2>Z%K?kz|NlYJQB%vlrPl71NT()~gMKH2zT-TW z`jVH5%m+Y;A96wldj`xh$9XJk^yC>BKp_A*mw+YXMI!Sh?|=E=ICh-y*8wWW>^PTw z2S|;>95Bu3Fz>GlB2k_NkHmWa|0@6u4HgS{Xw?7Y1O$c*iD|3l@zm2_O%9Ftp?*fG&~p{{OE5O{0eg!*X!;g;>sV0n|d7sK{aiw)_AC z8^Q-aJfW7GfD)JY|Gz6BDI1ZnJs6gOqr_5yffbZMLFT{`W4)yUgUCchmLBi_e+%^I z{|9Yxp90EK76}H77EQA|AbI?oD#-QT|8l|k*!%zQ6KD=j@L*U5u5KU>=4C+&1rHB~ zW#FX(AUVf*3??8si$n)($C{Dlhs6Pg6wu%)sI-L?2qKLj-5?Aa zG_`1&UEsm63_L&&aXr%wB)JL?hGpP}3P{dj9$O4}W8vY?psIlh6bBv*Lg13lw%&<> z1v~}4mq7vKP0-vP#H(zeJLK3vZ3R%oInHD5aGdme4tB>0gA0;QMV23syvhn%#>fRq z6d=cgEcaj#0@s?_a~T*xb~w)C{sZ;kvCy#N3Gf+$!RVn784C=Y@P82!$A(7+_K2q+DBFoc3b!2AF22`~)~ z^SB;>Tnjok3tW^v096R=TR^F={@yE*PCH0(<}mNK&uc}NKG2S54~A9X>d#h*VI4^C zkIY*q9OrQvSRG`U0MZ9?FbLNj+gwo(>Yi9M&3RyvH0Oi&zmwo*2}qN}Jg$gFMV1LK z7BYa!SQUr4Tn4sI4C`Kc-8%8>AVWd@$*xgJFP7mSqnfl%1=ku21^G9fdnT8 zh8GW68$1}Kz*BvC%#gK0juRMEAZBxbM{q#>uX>B5xeB15@L<>puE1@Q7}mW=zIDQb zVJ&zz)BFD~P|tu76#t;H4)6beJwUm_gP|VWuJT~00#B=h@-Dc2mB`fL!LW!E z|4T!^lY!M?-q-pHL}h&xy#3kx|JM|Y1q@u^;AB2r;lZ#JJnjQ)RZK`^>2a9zyTbeb z?;Loc-pF*oB596C$O<;Qisi?YDwee=RV)RS0o%YK>iz#a_((E~1OpC>ra21M5B^W} z{{PYNHoh~UI(!MZgM#Gn4u?6vYP|pd0=48>Kpq6eKX{*p2g5vYbp=XTu($=q z9Vo?v6hey6dEitG6N9u==7G=r^Zx(y1K3f_hbt_aW;b{+%m?QxQ1Cm>`>O$JyJ5Co z8D#1~^(n|Ahj~ADc>n)v0dj!jr2i?{Q#LPTCr=}b10-b&g1hn{OOR4F#Ak^tpoSiU z!#tKJ9t?BA{Tgf8|NlWb1eD7_r_OjVaMwc;$qohvP|9|k_n!ltou2LnrG5sGVh;vh zaJw9ozw2J@uCQca&<8ab9p-_TsJVcA4VuOSiGf-e+MNtB4)gwhn8^jo+W%i5A^4uIu`v0-hBrJG1Pztkgq%#=7QVdAOjrd{Sg7lfkFgSpm;FM0bjxF{r~qLkUkjp zV3>^-0-T@_s0YWp_y6w}9t^X=)o=aI*A?IpKuH7K;1Ix(2Ee^kq%3u>rCg1Q>q;sN;-DTPDI?nIUZP*8)8F!f-V1uof; zECPp+r6qdw{whGWuO6hqgMrHu6igP4EENz-tH8ZasHG;*_=QzPU?<4m9|3Srr zVHS8m0gFt^-v-m701>YVEv4UUY)SPG*3E5L8Hk8Xw4&38dZk>Mo)_ z`F>=2z+EQE`o%W_K%IBc3TKD8j2`t-QlLchA7p_C!whg^0c;qk)9!K^+&}jI|EdwZ zzpq-l!f_5GM@{mJ0GMSpRiJUgnVG(%cQ+|Mr2S z$NT>`_=(IQ!#x;gKpe0Gv}EHq=l~l5i$;3;5ID10W%ng7v;WmIB z?fw57_^3*Yq&Yu47}mc9uipcW9eMx%3O?n<`~TM+kT(4L5JY{?AOWiHLCq!afAQcJ ztoQ#9;N}y^aPR+L9zf@&m>al|7VJU?{y_;0G*|{&7-F%20kla1x-9z7M+@adrV}0v z(;?%E^BEW%=dehCj^P0Zbs{53?&kD@S4`6N;M@l4p@O>26BU`RI5sig(4No0XmNnS z0kpCoR2f<%GM;dp$GpIUfel>ASu`@801f|oFmQn@QBcNloX7kCU5^I?8#H&r)q~SA zRDFR(Lp=i{$Z!t^R&Ztjjr|}S0$S+k!N3Nt)-4t?-LPn6Is>to9jPtK3_6Svd^)-Z z0}I%J+VdHhKmp`1k9iL)wk;OG2Kg8YJQ${d8{6P90gI&h9v%#9!L4zNgG>)VF$eZF zc+_t-xNQj2hIOlLqvio-m{hI-KKw8a7jIg3Vy0?>K^@Bh!i zjn|rFb`y}Lj`NsTG$evtEDJ8+8X6f2Ko(gf&3k~^16vDDj~)zi;3@^QUjfsgHQ+1_QUscH@L*5_8|eLSBe>6L>yVa~ z=#`dUs~j+`Ci!1Mt)^H(O|nNoqaxFlnq<#wpca_-zYX9hLLSugU=Rf7U=Id$aGj;U zI103Wg;B@*-v)370F^%=3qhN4K)!_Jwyp*bhBe?E`67{Vg9pO`a4q{Hk#UCy!ve5_ zUL-Oe^8ObCu4OG0nFT;*OkZ$;QDT}G6K_4p>+pm#1)M1w5}7W5QlY~^rJkF(iT zA3LU0eY8!f`iPs7Mbdl$4~Es?){*!Bf8drCNF4}+iUo_L`4%1wtHCv~_y2$3#xh9G zgMk_BYjC`R(*`>@-a(#lnD-aj(*n%^%zfd(u!n*yGF{<4lSsV> z0~5I2Y|+Sc0g{8+z&RdjiUz1cfSAGn%fZZ`9PBvn4-c}-JQ$e3MHal_4<2rw0ZvX6 z5}B@e|Nngl6ha4~CWC zAo2eH7kuI(XkgAFXYkmEcyX_y4~xpmWV7z}-4p_$~hJfiRADDbV8|x*fcYa{fH*uWDU;t`BX>~H_fSRHX)Bb-j^l zV8+6%^qmGe^Y8x)kkOMJl0~KmcrtQ;jh|fL&Ef!Z{cl)Zvriko$k4Hg!3X3kkgH%A z$vHAm=WLj6^MOgF9umC_El4V+KvndB91Ke4pe+xM^B816js&gi22Dr99O*Fa{|nG4 zN6k^=3Q!X9VCVxE1W=TomgtY<#188vwYz_+K9qX3=|EJ&i#3WmvG}i+(`3MRFYli>-LH8DQ)H5(Z zY-W6-J(q#SaUP?L2g5{g;{qzq16lzGDtDTmxeOOTbCBQxszio@deA8W9t=I;$(mZlPa?BD89*Hea6cWAgQkFUy>>Ih zf5*8DQ|8n#FoH%btoJf7f`(2y?HL#{H5v43H5p7oHE-5|4y1LQ_ul~z}I6;;{ z%;^Dlv0yoBwj)EOMIwV^fd|86a0daD4Iv72NghpV6DKwIO`-sf%pG^;K_MVl!0*eVg{C)WCoLvv`CtN!GmG3Cunk9 zWxB;TCO)?L9Ucse!L#K$JWwSYJQx<;1SwIN{(&8Oye{lm3{V%~m*W49UylDL)D%dA zD;e01VUTtZ2F;y<=G8%L5QZ%%1hH#=SXY4N*g@&NX1g|Mqe}&7jvdsD1my$dIoA5a zN}xsh_24$;&x8L9>Nk9F0A&u)cI6+6|2|qiU|_ITTEGFic?D#+)u9CfmP+$qSSc-# zuxeVMVdb>Iz-rL~g`bKH1rBo<;dckt&j)S5WCWe+$yLYPT;ajc25y9d7Are8F~(RP zhV%qLW+pK3Fff3IfoDEuV65LTebIL&^Lhht(Wju*$-wD2kAcHs8iRn900X1<|Nr3g z8lk02jdmx4GH3-SXk{bBo>uVWEYzNknU5J5tdf!Kg0!(ajTsoUIvEtSLFP|m;Bc77 zAYfIDFyEw(rMUvqDenf?I-raXTKrpAH5(iwwHJyjK!N2r=idv^HgZsMpS;Fj0(7dl zO?^%EBN0&I1(^crdv<{{2-Fk@&`I9aFZGtxm3wMA&SOvjjT=Iaz4(2<9wvx{W=TMMA-v9sQfW;x|z!pLr z`Tq*Uk^j%2Ir4}1|9=+n(jIy@EolACFV)8X3qTv}YeR!8U|FTs%)0`V9bj3dR$}_3 zUrbsSpp;%;4cVCsUa6+|U-3mUqsOa8#sH859Op4Pcrdhpqffh;;SOkXs^eUy4bwmT zViK!w0f#2YQx-`J9(XX!1E=yAwTuoBy`bTu7Vt1}O|dkzZfgNGRTyfDr9`wBGcq{N zWwLoOm(c-~fIJwQ!DFW2PJ8NY$R5?jpnmW#Nl+o>Fqgrheue~S)4v7yq)O-H{To1* zgRsQ`hHn;&<`-BrEiCY0m5Z{BL2{MfGAG8zqFSs_cNLo>_#Pkc| zOe_MRSt)QII2kNeI{m>0Mg667M=W4{2O5X~MV9wJ$dDSS1Oe@o&~Iko1??bqn9JY+ zifqujIE$u*CqQO-Ff@bv=%D=LFpohu!d8i4-9pV80W@3AY|*kGn&q0okqG!cALo(DrS zxD0~ImDH$kS6C_-8(S=3U;;U3s|u)B-V9#m3sU1S?|%vCTtJYsVc25-|4$Zk8N|Q` zqBlRTukc`i9-^+uumF@up~nZj03~uzn+3ME57a0J8G>d&g$DyS*g}w(NY}6QxWa=W z3S5uiGGO|Fd}fKM516HxW+qN=n8Tzqxxkxsy6sX%4(pZL6*c#aD?sfUaI_>dutB4@ zaYHi$8)y}#2SWq6gAa;ckQz|h1x?4nmjh4E@aCC5hml!I^T7$w%G!xq4^DulS*`yv z2w3m65tyj;;0%ZlHMnr1)`RKy8JR^btpBrtR?RbbFw}!v#P$1MI846(|I6h2|9?2l z`+vh$iDA8^rp5)(tTyO;21~Ds6F)r}7!aq9)my4E@M*7PedjorEdX2@Ed0L$RtLb! zepvGe)+_?0Z;)F+X&iKdQ=dCYSftr%Duelc)>uKjVG$68V^>&eDobKuOGgkxvU)=CA5G;%QT z)OUdPO)~j_5*!Fy-C_VYN9(@@iC8UKc){8poNL%DrZR9qT0ZsgT;nj0sl(hX@N4o)pG_eYjp;Rx^KHg>cvihFAwoxsH+E;ncn|@fon6+{I;b72S^iJ zt=Vb4jS&n?mJSSTpdQ~w3kEiOC5Cm)mNHi?Di}CsMu3-tvCNEMVD(_A0~eW-Eg1Of zmaGOXC1SIvU=Z?Ps0H`MCRc#&5BdcjCIVFr77ZM1peB3W~1N#rI#e^I)h2haf0jOg^D> z!~5S1uzv4K%)lJ z8|E=vfL6zIOrOEb%*XWi$n+J=%qrlqD^UO0?hwN|t7{LgfYO8a|G(f1UP0w=qo&N2 zi7E^{-v9s1fhAJ=M-1zl|3A2383jp4)=CR6$p2?!sDJefbcPSO1!rB)zy+$QV4emo zoAv(x3*2Rfd%B)MRl|@{q^`UE)vTuR-<`-n97<4ij$ngm<=OE_+$9ex< z8m(*u>N`Psgy8^0%>!7ZUa(JMSl3)F^8k`R7$4xu9**<=q<{iMfyHqigUj?DW@ag- zKPn&*TtW0l0hGv)gTh{kfyLT#e*+>Y{#8Kp@D+%=WNu7!Vc?ml!XV)N{}*_w0#vSm zNB0vM3O1@RNP!ZS2SX*e2wZ5xAki7a5X{*q!@$#A!yr(p&Y(Eck)aZFvMp$cW^y7! z1L$sd$0i2QRksWv2i3}eQzTP;yN3g4&HO?R29a7XClSZF;F()4OGSpfnw8V-*qOEJ zLp@pSYPCFm6ngys@6f~`veAY?3Ot#f06G=N*l>Y=ZkyPN0yU)oi&m{9;x&s%p9Eg6v$t=evbI1GtcL}gBz-_69 zWSKkDAJj9;c+`5bmw>b6Tm}(PaE2r^@WEVTsrA1BBnH}&9Foi+r`^e5?=zP{!6J*n zAtag2&La8$gPP=jWg*E7dY~~v5zwvxSCG3mG&3;GSj@mV;V=WwgvSg5Go8UBk^&o* z8CW(dGq7z`X5gCX%)n^r@c;izX9kYx7lfImS%n?uvM@|{;AR%B2Q9pwr(6MBoDUi} z0M(438WD7P2`FwFHDzwp*mGAj9AOZE)QpS@^_>O|pcP#DZJ=6=K?bVs3PhfP2PE$> zkC6vfb1wMDzy+>7>$I7(^D=F)-I-uVLI(LEb3aIvU zn8&bZp&f$+q``Ql%wZlw$U-{?DX4xAP?~DAW8i7@cyOZLz6*2%J%b6<@j9S@1(lc+ zH6EPsU|<0E`E42a|J%ALFeGyP|6kwb;NUp--xUjch7F)-18qAqQ2_%lS?PfXLkYNw0lC)u z|9_DM^B9;c>KH^UTK>POsc!)trNs^&FZBNZ?}x>T|8HJAWMHVV;;sOd*r3htmaYuS zpdr^vFSaKji)+0YF4Q~>%(8gE;A-8-P|z61z%%0^LxIHu1_6sihL(+>Q_UIv|DW-P zfpMk{1LwpT27%2o3@n>v7}#dYFmOz^Vc^+p!@%XiP@KsH^3iM=29eD+)6elSn}a5< zD?MA7Ky_!WmlxQRpzHTG+AxTD|Nm_HQjr0)8I$3s6$3-PBj_@te|K*zd30tgZae;{bNePaNQy7@^XLEo~o_)~h!XN=k8lVan)bq05 z3rau%Ah{!pk1()-=7B*yF#UO;Rw=^={du63mJBPr|Gxt#4N!C3Vm_#iR0QtBLb@yr z7aHXm_#jtqGSq;M4{i7hYc19@tN#of@=aH$)=>-+^%kc@ z>VI4kfwWr-!0lG=|8KyZ(Yj}#RZoznAxPf)|9fyN(EI-z@G2?LLd5zTm-RN+GcbXI zuX(Qx&rEypeQ+!_Dbn>7pdEcP?HO1t6&RQ{+B2|uFcg6M{*(8E9m57{URuXDmDiSAjJU9W{8Vl+W zfiiAQr!r`T7Egmow z%v5A(u~fKHHqnuxW}_oR)rN-*MHUbK|KF&{px6QGBg|xEXx-?@&^F^CLxsfy2F8tw z3|%uGf(G*QGN%U!GmA{m5N1{Y1#JPSqyzc3R@39hMn#4;@Bi<5r!Np@)?<7y{k$-< zLcI>CQm^S!u7J95;zAV$CjCw(CC7OT541a(lpN+VMCf<2Uj*HrnXB>tzkWvpqr*Ig z7HFO|b(qIcVX^f84~r}Yj+!N)Vh?hSjD;dY0Vw^}B(s-*#;rib0xW%lX#GwG7l(Or z3^q`MoWZBFfDCG3-~g489t?_#h#?pbka?hdG5vrzlY|FEfgZR^1Cl|v3Drd*;JH<7 z>cBBOdk&M}bPZ8vHAa)^{-Vr#!M#0@8$ozFj~KHxXNBWbhAkcp*%PM+h%pBkEU0H- zu$~V(-Hl~I{clh+{y%sI6r=%khR4h}1_q0I2GA|)9H5jvJ;t6{2b`9{)l1V<1rLUF z@QR@62CmE+(-YK~MZm`^gXStg%?i-bWxt_^dVvq{YF4fQ4b*~4M$ld`ln#31{|BJh z1EoRGU7j8c>EP*F(3Bi#;?(*u11soGR%-?Z1FHiJ8rBaOG^`ddXjmjONZL0sthb({ zaijk6uX>T{rwj_9!UN=D(9DttLngQbV(B1cQfqTa#M+YqJfBw^b6C&PfstXeCIbs- zhq?7V29b@P3{0T=Z#)>%z(d-QY?ub#m;rK#r7{C!ZIqXY<2;5xmJAG_wfhVf2N+Bf zmNqcfN_p#T)(T}{0@bZGHJe1d|NjLS5a6|wb69^srrR=0LBZ?6;0W1}2C5ntFbIP6 zq)AtR9PPp21Rihs;mDu?9RZnsSb|xH@d2biH(@6uXEp;wFS zagh1-Rv^cKOE~bpM38$xjs!W@`~M$sO0s#xu)g8B-iey2pF|)-cnpFeEi85*H+cX5 z2rV`LD@@zOBx0lA3fiCrZuPC7kg0b9RHz_l22cjHNn%(J_H44=1yEG}Q2am9gCRq5 z`Wta3mFXN(%)IqT2k3#E3EC(MOCa`(7}i@onyLUw0HB0ny;tJ~Y!j*VUv>^qxeGPb z5mXp}j*y(G%D_-_$GF0SAqCt41(^vN#WhR9t>&VHW5^#1V|4=JQX|;VGW(k0*PBI&G`V811}YU=wW66 ziGk!j7*fF%Gsq5WrG@n$>g6N?V3OeyEOs6Yso(+}qLJwbOwNNL6}%{;rcNRNd^6Jw z3D9Ll9H1ixLHaB${{IivWC0xx^UrZE!vW9^6i^}pg-pHdArTLT6!0o7P{Y>RmJJ+w z^~&|9D`r}-b9gW$gKG$oVh@I7aGOSZF?h!LhV@-`&U*FJ74@%vgImEMmv`Fz|8M>8 z|9@+C2FChVKLTo9f-Aybu-Sn&@o052=z&(Dfm+hq91Ql3km)sznd}SRK+B56^E2Sd%(={<7H4hoqM0*}Ig&JBme1_O9s6sQdF{{KtY`(Fci$(r}SdT@E- z0cmX3Gc?+ANI*Tr;W&%2rPG!JT3<78I8I}@;{C54oS&h?HZBkYAAs|JM=ghp)*J>l zZ5alZntJw9$EN>VKmp;p`1Ai@*T)94~9grytUFoaH0*VV6g+qc`zh_+xQ?~JIwnl01-<7 zI}nuiy#N0Nm--+xK-gj~2WVnl09#IOTY;($hSLFI+@VFn&pe-_kW0aZSrJ}szhftDG83zZqb17wc#80J7K z48tFgrR-x&ZpnXm$sn>0X)0hCL;|9_LTjAdY~jb+~gn%1yB3_3yV z{}oVOZlTDqVfuxM%$oHI42+6Y`3n~xM4k;Q^7i# zjl7mFZE9OwPd0i6m3(hNF9*J2(67bN(;w1VUv z=Kas`{tsD6*J#JUW$VPS9u!&=wG2RW&?(SCBE|;x>1;~O>h+2LZ&)o_bfT)7K>-$> zptGPs#>1i>w2%eF2Sqbz9fd{Gq6MI8|Ci(c37~ZpRtFf^tR5};0jg3!69J&(FF=F- z6IB=(KtmiJ3}s;FgKFCP6!tBkDed1UjedAAlwE{0ly`$BQ5mOzdY7P{uf+n!Fi`vA zr{ceb)}T#f;Kge3;Bm`_zYO5&0#=<`G=T01e*rExEDkU@TP$F30ri3{8W>Hy|9=9v zD`wj<$jr85kOh@?7Ksc$X59moOEI7Yg7pmE|8IkfaZsBdG=OfA$gskLAs(EKU(_-N zf%@~HB;o!4K6o_@$dMKc*e`$`2<--g#C|INFa$Z)%8>zl{fRXr!z>SmIB>T2{#ON_ z?zU=V*yjDO61-9m6rwL`O&Eh9K4HHAw&Y(KI0J)X60}Hd!9NCx&GQ%}EbSP0Ktq#D zIT@JhH%))X$1GM4>ZgPH=(Sz}KSI4&?CRSCK*J&%y#G~#M}9$tq2t{D6F`mw-Kz`= zcF-Y^362*~kk_?jKuhRq<|_n%YTKG-B@sw_G6vjy=(J&AY^Y^m z0LfW2G8EJ#dx_N4O9X(<^zmSbDV+XCm05}@CUm-l8gs(rgdo=GwmTRF>Osd$&QS)> z{(7cv>n&54C!oUDMAvC2EG|Z^Lz@Xg)zDQfggMksg76Ig&T2AK*(D<{% zTn3BUc#m};b&m5Gdq7=%OHKwx&<*6Eqof_@{l8Hg@30Qkr!xT!9e^}}E(g%x&A|&IuhpZgK?7B77z}EaR6o8i0)pvky0B6{u-O2FZaUMeqXtlTp z(&d_+o1{Uy@lnIdK4c4+uV%E0IV)eCl zKi1X8{Sv9K^;`#H>vuAkI?iJRPmO^50>avz45kiq8G7_P8DbshF<;RJ(Q_FM<1M4z+>7M9p?SFvHH(Y&j>nEx~6W&I?x(k z4~BSf8EnhMupShMKQfF##id5gz8&iHr%DT#P6go77-*V^q^2dX$tFs70r}a3fdM}23vF(IJizEM@86M`whW9Qhg-@|-=xJX1+L&g;SIu|uyUCD zZw)9;(BsEp-ai-1cm}3QPX>irIgfRg8vp-;rY^KQ8Q2}?GFi-&WfB1`vH{s&|L@1T z`d1LQc>n(oA5R1Y63A|lTS4(OF_uY_0Xf9H|NjSXL4s7N; zCGcP+NUsM&C^)J?dO$%6x{iIeCv&}6{l6XS>i-A9oXLV=0Q2Drr~%-L2Gsy2H2r^% zSlTl%S;j+-^#mQ+47wW@6x_9O0qa2V6sqZ<2Ri<9qb-Y=_kXUxpp(%KfLddq@GzMC zAc=E&q&zeK^b`M>c!L))tOpeYpw^c4USkI20>Gk{Q36^(6nZd(fVakU+A)cMjMDC8 z-~cTp22I|9__bUfW`*vIvmBZjRHi2^Vw3^RPP5c^#xaRnJYX=LDa$Bp{g+XGrY)n~ zjK7RBpvuD$)WT3;FqtXKs4z2@QPKJ@qtZ-UM)^)V1|w+lRd7Ou}rl8|EJTA!3?C%VIIQ+O9n;;i+>FNLGw~IudG2QNq{C$>lu2v7#M3c zyhK1Mk&x05N23>%mDJS_y7MKmI@5c*87;n zK&AOidr;%U|L*h!`pj}#LEs}uIzb-OWMBdnl%TtuEfpA?toJb?tDg#1FBSxDSfZ-` z_hGt>0kZ^Xwb=UK(ES9UWMQ#@(Zl*KWHUWz-U3uNSU+H3gd~sOfgTKj;PFCGo&pth zphkD2rX|DdSH?QCUl{9x)`@_`XL=axfz(XYGB)u3e-2!?fZAi=CU7l-hX+F-Xnd}o z0aST`+PaXoP#`#8fY`GiGPTTp$XGc0A!FI>hm6IuA2M#5{g83|c z0&kFm8{<#F?OvNh4C@&|0!;o2y$&z8Z!8b;Q z$qxcpr=K-smXd(q2yTCfVLj;f2vA4X`kwLh|Ax%!^*-Qp0zl0NP^@||_<(mcfl>=7 z%s}A<8d~_NVGLSfwBFi*f$67~F~e^SYYy-Ke@}wO+(Bw)YFP_-|H}rKLEitez(W%t zecu1ifcr3=b{qnFoea$26`#`>9318`=777o)0Y}C`_=F0v}b_sNe3TaR^h?m10K=@ zm5~nf7%o8K)LH~IAmliYF#>dBF38?SFH4q*_6!oBW{O2UgTuslP^$C>Ps)JY|B}O) z0i^DwmoX^yLT2*h86AGcGlJ%B*MsDKYH%4d{M0fAjiVococs(r`w?^q)B1@T)*>*s zInMjPKSq-EHl-)qdX{Ltp4DbIZ z!C4iW?dmHm>OlFJoIkQ&12e{J;v6I21c^-#| z{u~C-#IlCP0tN?Ay0oYRjRbpw%e2|^*uhJ4LHa@1`aeSsDBwL9+`)ZTs5vSY3m6)} zVP6MY?&bk5GePbFh0#ncOVGp~GdNLjConL~)UXz?P~`Xk$*2t<7oPt>v&@nCQRHv}PuGi~EofS#A=#3}`~P|HNE3+vBH5Y)qz^PPQLjInZHMDrhBKh` z4WPjFVDNw>L`9ZPP(pE>#~{$D$kGjBJIrIc)2YbP2Vy(U`!CRt$Tk5y(AognpY;Gz z0fP28|NjR+C>}K0**wP@ngIU0pe6vfdhiGWCVI0$st+5rXz5 z1Lh5oObg0*E{K}niD5k`<9Yx83m&os1wROPFJw6d3g*Um1`++a3=HtljpGmjg)nIH z8-i3fQnoX250c1 z3s9nP0G-jSzyQwnpd9c0|1XP0Bl|oHa1r5j666~1|NkFYG_uWu6gf`dIT!E$|0gsg zvQ6>+fA(ntgBJrsLn7M@@Bin(<&pRQzXG6SYB8Td2cpRt+)$alj~&$QivX8HEsrZ8 zmNC%?1?^*$J2 zBMB3=tW_)(7!;X6OAtXT1}19lp8%Q&s973T0&Y2ilVyPGbPhXaYg+*ihG=j#3pz0b zcD$W7B^bNGSgYEjk9xFR*|+&szH@OjlUSC_6pZj#<7QG+<-@ zh+#b_;amT=RsdZ(Xnmi71L~DTh!>o}>q$UPf2m~y8t?=yd<8AE1MRfXsbBWG!eRmY zMT-W=oqpc`uY=1sQ2D-5lYyiD0Rsofc^(Wh;JW3-e@0Lo30gETOn+|2EY2h=InAC~ zOzS$hr3>nYZ3e9ecD)RqN&zLCjrI&2NVD1(reBa?mSec?D4_>A3)0qK$SDd)8M5CjQ!5%zQ4rJMdvMmMfBXwPX=ahMI3WB#Xrk91JRJ?%Bw$g; zDB;0i4<1Uhn9smxae%?Krsb6gDD-Puq(m%0<1(PBc<=vLQ$azF90eB13=YN6SE!+cHq1RatNflvI9pynD2bK!h^vM+!hA$Js2dx zvwbiAF$#bjRBvt1U}muZvL2u&4YDr5;yHsty(MUEj1;(fg4AO+2G-XZxIm8bV6X$H z7bFLO3tx~0PzQiR02CTEWzrR(;?9G?4m>*yvJ?^un?Rv3J>HR7pdK8qpl%B&WxxJ! zW3bU2e3dJ7^PDZXL;w|>7K<6cN9%boIDkuBn9CrpvITqF8noLKd=i>1#M}RViGYUf z!FnHq>M94YeUPBDZ3WM)g4TP0oDS+Gdob97n*rcb7-S(t6L@zYNR0=BEjZ%AdYms; zK=pvzI-ouq!XkTclL|Q_fac0T{UT6T;iV=6!%I&FhL_WCN-+D^!~6n@a&S~HS{wk1 zZmWL`phE>5JQ!@iRV5g_;L?*0Ebcy+q>|G#_SITCt)4XCtwskwiK{z}lgV3s4G913a% zfpaNz@ee51f!1<>690=18z)eX1l4Xe`ytJ8@N8(cwE{F(CVKz>DeL_&$}$0TVTSj= zNU#rA+A(k}*vA0wBx-juu+=PMH`#E?#>H_Sqk}ehdm_`0P%Sn){Vvc-AqF4NAg<#) zhAA(jr{8j6mYyEEi&43Lp&bJkNRf6IXyB4r1+=xu(u>umQd4vV=9$3EEDQ`xPZ$`O zjxaEQ*-IE0m|CFh6i{?5v}V*d$kX6Xw5MikAbZ~H- z$Fjt6F0&zMQvj%#i?DR~f6XG{|FsD(88|>)o{8=@9t-0bxF&is@PH;VKBAXvS7cq<;Sg2ZuR~;PTnJX))-cV$f|A;D(h4g9W&g z4Vt%hY+?Xy^ksmIIa`1iGC;%`L%=x%VvYwW1$Z!6f+xc2TOQX}AX2X_cwGv#PFes} z2rg-0hYf%X2TgEzFgSqASCIEYl3DC5l|h5XEOr~xZQQgwStmQrW&UEbh++MLr8X|0 ziVKvBy#N2;1$iHoIzaX7Ysdc=UMEhE+QldbSsw}tlNBdyTtG!4sBGS-W#eW&8?-@@ z5xkcS#||9c=r1LV9AP$pV&(#FO6|9|iyK9&mqe}Wuok?{ZLL=77c&>i-m z=z?KOh5x@mj^%e>Le@wJy z)bRfQ2fV=u&m{R zCfP~EgTWG9$H9{A0?+~n@Lsd8pr+aSgsN8^+5f1bI>}j-SGyt_d9p?SnV5#u`yG6qP?~qXY-2+N~-v7TW1f_(R z95xXk-!*#Kgn%pog=C`!_|7WEiS9NbmLQL6fIRxE1st07nl=WINqo=<3WFjje^}pU zkg;}PPz06n-v1AR*I9y2_yv_YAOj~_GrD;H|K$R*XvHZ|(*BbHFZQ7gF_7U3$^XBB z)J({<@c`+asAZD^idLvvFg4v^GZXLh+G-|_`Xq++pyOdcIc&mdn+(tZk1a@So^pjv z6T|wSZZ@FPdDnx)Cu-Y(4{G_L_`eaP2Gj!h@ysRyBsXD+O#-NmJ5k#v1tbTGuZe0l zAs{)61*}snnwC{GGBbvN4zaMPXOx(z&cHHJ&03*;B9{&52v6`x;zkV{pNU#F4xlgv z?UVsIf1`(u3yeQe!zN&&H>fSo1g>yE#f%4o6S$)Rvd|)Fae@bfAEcuQIwm#&bf?S5 zqqa#5EWc0hpW*#42wdob)LI`}T;csM$PnD#1BDx?&V7-|807u`i>n6%g9Atr48OEz z6oANWuAI)|!>nB2(rC}<0!bT;65juUKr2HSAS03gcf5>ev}n{~U;$Nt4s#h+EZEPe zQnP~HM85-6_b@D3FrQIJyM=)fbkaY_=#Zr>b`aw~>B97a(~K7A!pk6V-_!eFAh;<6 zQvV{84dl*E7pJfBVV0=3RQP|xBH{myiS~>dpzBLOQxl+`4!Ed>9?|ntYyS-7x@x67 zqYB754)gwZER<)|0Zri zhYw!VGire>wmHPW@>6a93`kwXVDe%W@L;P&(v$@r3_h)(pnWl)(G0ZY z-C-Vs2`G+VWY{=O|1h6XLeEm+|82ol++6kk|Nj6uB{ML9 z4jEGOV>XHb^(tz1!_H6o=jg#;0}e6Bc>_$4`*V(h?o2R(x6v&YFtA%REq(#&`g<@K zfyXaEcZoPOF>bMFV2Fl@8)Q!3;KwXp|G}bxK@Tbfo?w71^kM?lae5YYpfz^};HD?Y z^N#bFz>D@Q8W{9F7!1G(1frgCg~faZc2E&otMVZL)IX`!WZzQj;J)vRR>NX-v9rBCNfkRpb9x43O$fQz!n+;|5&Cr zFv-;GxBmYRYO;d{NNVmI!**3PI?iLbqTl-epW{5n2l}m`lam-1=(qm=<2aAuj(+R^ z-;VPbzUa69|K&K3kw?Gv|4+wxj4JxA|9?2nW3n}S;V_rM zMZfj`4baXF$9YT)`mO)3JI-SiJfh$F|C-}GCKXT-Q?ppRV)}vmj1r*sA4|O@g8|sF zm74M@mQITWCbBbtN9I8xTeHeT%le*8fko5O3!ud1!C(WP1NnWQfx%+I|LNZU|ASY_ zTRIppTPiKtVX@%<%!%#{3_sOC73TjIkQpFs>0lsWskBtWV!{8(Nb;Zte?7PavUD&I zv{YJZV6ou;BqRm!!~QHC41_F|mU>t$_&*UzUIk=02wOTB2wN&G&9GSTe*%&`JpEZZ z7>HXcEp4z^@V^Hk4@!UakYNx@2LlO9rKKw@7X0rENG}q@&5m>2UIH|>w9t1CdpF4fW>0bk_#3M3;|$s9y2&VkJ=3Z zmv&GCW`K^{vQ#h-MK%Dep=lX-HDtpo1{MznEAT=_sGdIW|NkT`6%0f$^(=h=a%96Q z(CnZUxM>2_)9?NN?-L741p_fmP0Ku>nm8IxG4OaWSb;~Vpc;F<|NmVxo#zsheV{z4Q9N%>l^S1)x)k8A4wFXRrYAK}#<| z`5Ux47c`>i!Jr53xqymD&@nKeOaodf0Le5BUl}>s6&V^p?Yij#OBr>+doT|E{{Xrr z7i2BCF59nN0qUQF`|OSXL8qk(ShO%m{9gF~1=LxFpvuF8K?gkaV`Af5&-DQ$XqPrKZgR$eb91%}Yjx0?=Sc{VE60+!bhfG|DlS&n3tLi z79f2N^ZvhqI6xkp`#~2JIyNzJface%_u3?$sNem90W|C6{eK0-g?ku4hs`q7r`@hd zXlc6(I>z9Z~dveFRb@~daIC&;yoC2z~wq9fE?yAg3fb>oK>^fT!(ss&cqG|_K@(h^g0h_j=wRPU&^g|k;OZOPKUO|nG1HPk64aBJ zX~`hv!5{;kmWC#~6W;&--T`Go@Be>G7(mw+F@PGB?2z)jhJ$GtEc00>Fff2J9=P_c zldhBjHHh3ro6l9=U*`k5L3RE(BFsOjX z&>#&|hA;K?|9%A2|7SPRo)5Vo+Ho$!22dIYr4mr0t-tq6#DhT%TxQoQ{t}s;2|lP2 zvS|Z6g`o=`JkkbTaF@xx#c?h}L9M1+!HgOPM$nb_pu;L>+AuJ5)G;tt7_>OkW?v>>`&5vJ`agp7wkOb%(hO5}*VM zS`rRg>Z?CpFqYYj@#*xKMT`p5Gh&(fn08DBadf69tYBn`0L6^0LIMLQHbAjZ^UoT* zUfLoVKD*L5QThK5P%_%k{QpnQ5#x#(i~s)vC6k%Tpr)o8IEO?1AYf4sx^Y2Gc3K>> zw8mh+Rx`t#COCah0<(h&XmsJF7Q8+H9S5`irKZ!3-!B;~Ky?MIuKWGc34EK&PkRQ7 z=>@(_7RxB}!5@Wq3S;A1}uJs32>Wh2B< zj4GfjE)Zd+2zD^Y>fa}A9ym^7tN}$dxYPpg15pA`8bJr`A6Oq?s0UrGmEUli=>CV7VtL$CzV;KWOs25w^On1mw_fIaH3!rfL z$z^lH*5N->r5F1#&?#7!4h)PxJsCK>|Nmq4U=RbRB}gQ4fjb-?4BU4U7?L0bg~L3C z2=9Nk;1bOHpG_;MqVQmV-2Mk*d;hZm=VwT1&!7M@$ov0XaF5S}fg8L;02Ga&<@=U) z|NmFofmT2LU*I^2L1Vf>GP4SJ#uZU@|G!|%@UH=MXDsaKVp#R;IPd?KPEYV&J<$D` zZ$MRer5BS6sET)-_x}#qt6DY>y#N32@%}$o7UVimgYWe{n+LWE{~9Va*^m9S12x!x zE&Ndj_I?Ee1H<&`$;`@3iiXqoBr{t~FR^15s0YOiD3-w$V)E?@Pyq_sVE|2@h8_&^ z;G6+2B*8nGq`^fAD5p3yfwCz>1jx^|cI;a~(<_ei7#u+Rp+V|B7^K1HCR*AtFxLN< z2+-fp!00gV{}qsW>wEwITkmC%WCR_k3%acVq}gHK{}Z5y#HrFS7Ct~q>l6cg9l1MBXt%{%LP0bWWkd!AZIx?F@kG8sGNicgEY9M z3$hk;;0dVmu~1~VVEuqWV5T(#KPVc(Whi)pQ-2-3GH#6{oV$E7|_yM{X z6C5-i44U9pL;d~-4xmC8)G`4r-33k9dN4>p)==)h0XoYj15_Y&+-G0}H5>JoF)(O= zhKK5*_h*1KI)E;(2W@m)3~Gx>fM*iHO?RGjW+gQZ@KgwF%(#Bv>k8|p<>1jg(C`JM z-j!ZCJtUnum{q`oK|*l)nsjDqMvv(y(wSv!KyhOMI(P60XrM?Esows72h>#u+3&$1 z4n9l*9DIvkS6DPH5Aa}+@SU!Z!7L6o^Wt=y3}!brP#B1tPVdNI*3q$806D7>G~Ea4 zNLc@O)&Pax55=DoK~d|$APpYv_x}I+?eqs3%+mGXvcuv4ld?r3!!nBnOrR^|wY>kY z1N+xffq~m%K7#|aj#@uckzt(&gEY8JYv}+!*oSeWBf}O;2L|SiiVT}JDl+WY=*Y0m z`~P%s;|SEO125c7WZ31wAO)^GK&Nn6IxuipG&0m#EU;q;+Nj8IY@;H>2}=bAaZtc* zbYwVS>A=9WQIX-4r2>P*Mn{H2mJW;)HYzflu~cBN-ss41WTPU(Iq&~(OQ)~NWY(FU zFq@HOdW0tZJU22Vzb z=@+D#Siol(*ed*I0w=|T|383=98j?YDokEKVGOcA#K2;`0JOZ;S;H2(=`&H2fe8}G z{|iAeYkhD3f}dK>pp$>r|LAlE9d6AF@-=9*bfVV&1>XNm!Gm7j|4hJzD@c#`|7oDn z8+L|9I|c^5&guKIm~GTdzzsK0x$HRi{|f89|NmF-Wl(f%`o9OXO%u8<9DF3AZZfob z12s88ZUwa{t@k=>fD!_D!Nh!JP>X`uVlIONXp#=%-hYW643gj=gEq`9EEE|RfZEld zpn0A6{|4+pOVBwC(=SYClmKn2W6%ff{g}t-Vg3LAAM1MzET9XQLAxu#SEJ5lXz^fR zfMRU;!I^FGvJrI7km@7aGLt3=ESO6ez@iHr2kU zW$>`B1D};B04~5@{s^#0W-zeSgc$&GwK&+-pp*_$18TW~4E6rM4xF>R|NjSX$OcW7 zPsrTA08}V~+o{uc%wiU)w@6@p2Z@URi5?7c;FcGpcxAW(N`}_=8Tdd+5OnG`XkFM( zMTQFR|L-AILJp9yvS?rs0MF}J|C*w2h- zF!%mH2|Up@uvY0n;8qmGkBl;~^2&ojR1j3q zfwEMm90Olx90PyHKL%c#1OJ&4HUBeI9AiILsoDI*dOri-kAn;apm3PU$WS-ak)eLZ zLxx)K|8K!gu|R}Lh5|THz%z93z>OYDh5zlKY5~+Zu&4(Ih#9DUn`zHr?!h1ejxTVa z*)#afv}f@5{y!1iXadD8xD=~r2=HJK0naTXhm(CivjHbq6f}Je-U=Xt7FHb|3|inB zb+`)9W&w%m9=8~I>uaRJyYfKU*7_&|2Y6)!^t236YZc^Nkh39S_*2j#5p=YIFt~C6 zIn81&0~;u_crXZqN2NRM89-Cr?T+)9eDpgRIvnRQZqe^#Xai+y$9W7E7K&^iz}Xu- zzyANm^q5_YGSe>CgC1!1#FE2V!M@>N zgY|s|i|RS-$3RLN(d;HO4a-OpIlaX^dwunHbBU&>7F58|uzx5bDKNRI6!S z0ormjQ-gtFVLStirPu!tpglgd@sJ**2Lr|tKzrpx8toW38soql_#GVPGW`H$|4>Z{i(1bg0ianA(0nh* zBG5ic(8zNqXp#ebxZM9a7NB#_7BH~YFMbU=&sPXsG~+YCaqj;kpfCg_6;RcH9G0Ns z5;OpZJQg@n%eewH4hS0m19=RFE$taJtoQ%_^!p*(3`iVDeXg)bWZUplk!`{6g&^Mw zLLxblZG#5`8@N#g$v8|EFB-v%f7vWrK*v-Gf`@S$?I9yXpn_tiJ%gmfJWyHAzzA|I zXf25fxVZ6PkN|i7pe9*(|9`m`DV*8SFqi3P8EXVgZ8{s7VJpbl>~` zD{yTE?VEyUovh;1O z?s*A-SMz%R?*TV3&@2Y8%z|WBLCBfH;BtBa18Ako^z#zTvf%55JQ$?GD#3x3u#ri0 zdTa)>{Pc(tW?{yI({oCgrRw{@Wg)1<07dacdp6Lp6nND%DEvV9MIzgT7mc8`tgpdE zG-Uko&kyhaufXjgP+Q$`-k%rV|6hUIS2Zc1rt=@r?SdK>)eHh24E*3WJt)k*|Gx%@ zxA*@);BlUWYz77fi$=Bykj5c1sJXxZG4SsK4+bW15&${O`~Tl5XvNPC4+d380hIu{ z`QUd3s5}8BH4g>`ST3*dU|@i@4S&y>Zm^z7Cc?3aAq14?UwSw1`XsC{!_!b0i+fr4pI+N3z7$wLf}&^r&p9Rt254>zMzy@ zTock61LeXcuPZ?9ArA&#@Q@@ZqQQ=>2MxLLo}K=nl-UA2G6O0uK~3D(|D78^BM+dK z4rq)VQcV7Dgx+rn-rMl{KZ6EH4qW`zGjM=R^#1<_+{J|i;r|Dq@r3CP@0cV(L*}4^ zSf(pfFl(@by6-QZJ5S$V##|5z3yld_LSx2H4d)p@wHOqjp`ifsEhtfd@J|ir3DD3` zfQH5lkUSzZR+KZFGtQmr1!uxJ7Ko_p)K+f2AwUgTgl96wH!Rx z4T}m726phU1Zad2lxr;#7`VOvUIO>kK-<_srGP~OgNXOvi*KhFR5F`cE&l*Y1W5Y9 zg&(T^i{REVn*Q494=R~;>Ot#*LF<7*t$f%HcThZlFlYrLsCf)xgJ(iOJH!0T)u9yv`tuo-_4Y9^ zRR33dQh)4oMZN3g`U=p=J&to31?oY^9zFhD;W&*k#)ClwoJn8rVPFFF^1x0{U|{wB zdjXsYL0$$WJP!so@bEiG9vWOAHQ*j6sATY9U;_soXwwK(p4KzhLYDj?x` z!4o7{Qz~6)QOW?ijmp7;K>(b~Aqv44TUUbAIyNz^@&0=OJcd=bbae&DV33167&yRv zsJj0v*S)l1V5;7$_5?IkTfgU(h#qJO)IIhszyC4_RBEX`0j(yfjR_K|m9}T!^3sa| zeApvsk1XiS0*7h;K&Mk*fShCo+7hGyxiCc@T;qEG|DOX|E9=3)0-e(Mw`96R4YQJ* zBCJ&mDxn0t|Nr?2O0=M+f%iW}*Xa>8%*L#W-v1PNr%$M1maPYMgc|=p0Qnn~F+jzH zMbZibP{+u6uk(T*(6K)6|9`=YD=d;$Sa|>c3ofoLl2$l)|NpBCN;Qp|&I>>*Z$M`P zfXuQ;T9M(wAO{}MMV5D%%K$!t6?9VqDDvv9n^w#KX#ipU`3xKu^BD|5cUV~3GekJd zW#Fh)Vc+uN9s>t>#HIOhh4np9xi1Tz?rgMWV6cp5U<9{SIs+IS=l(z7{r~q~h=&;s zy#N2+2x2?V`~SoH{~uB9W`?MmEKmcAkwd$g!O>w3V|{>jGlPNSJVp)2IgFt3cT2~) z3_mQr{-3Y)V&4L42szIAzXxOycr)AF{~Id3)Sg&_P6_=V1e%0`tQ7z!%d_CFAtV(r zf!pn%R0B#G77%%Gg$OFwKt6w|;k-z{GmHVW;O&2{7W53K+93kHFSwhW+9I5T~LFSBNS^8fkT%?y&D zfqd`(e@ngp|7wH;$G;Qa|NmXE^!mR7=1S`3U} zb2~v>2mgNnxd&Xzb4)i-Wdai{HlS#v@IPx2nRD1M1vdwE)+B&Ne^_dG-#X~ z&(8TCUg3^MrKpdf|`}g%k-BrFw|s9 zS2)aL-~l;vxJR1QTu)J60D{|{UY)zq+W0q^Xb%ivMJ|CI>n4h_dSpp$$dMbh*SP0XV5kAGKyPYpW) z8XfotF6Tgb2D)5e!t{Xmj4Gf_)e}H@7{pTmrEm!;P(WBL{r}%m`Tzf##abdYD>VW_ zTG;GrR!-(hl$(B_nOQ*2Qsw{uniegQnoflPOXvUpYdV>iffF?+1LIt->F=7Ejb&N? z{|5;vx-u|=jH&f<5~*nk5~*qN2&n0tZr8%B#0j#(qUHa8$H^BH6*zv}0g|io=(OfYeVfSk5Q`nrP&hZZe%wU^+`1voPb; z=@Mv2V}W)ngUXK-P-)2MWAlK45tO_to;N>9c&>($ z??4kQ+Fc9^H7`QU3faKRKOcaC&|x0K6YVYr1BZEx44s|~jG!g^`dtha4)Yi_rXT2F zmf&%m$H)N6G>-EaZcKmB&TIqPBerI`LI<-#y(QQG{h=Iec3K?_l9pWmS31o7zrxb% z|4HAe3<|X#>?WXGUf-d?Q0ppr$#KsA1)xX-C3c4<1_hAqpc60jTR}6`|6M?KIL!MW z0g3^TzMm?fDV=|i>)uv@)@w0vIn4VHK1UsD4rJ{W$Uu;QMdSYu-v9qi0C@xC1yB>i z(gCzL^goLwCj-+@76yY^&1-fO616Pnj zg3|{jJU?i6G3bJd6o+{XZ$KwpfqV#V)^md`W&~O6FpuE|D7-=8>^P560px4Yeie&` z>95+EWuz1@Im}@w_^HjnP}3140Q({JL1>+x4E2nlkOl1s1&1iaW6%)&58iA7 zGY}kw+TbW$VVMYynF`F9`F974ITJv&v-ki10pO^C5};x7mtIQySJ*0e9!u2p%dOQ6 zyaW=o)dZcA)y`b0+>-QDYyXPr4>*~nSy_H$?q4z8pqtsP-t`4&MN{>EmM8Ub>|5&p zvTuPF0)a28A&V^_fy2b|(wc#z*7=f1{VEU8fRW0}Xa<2=&)|wqP6mehl@bnx>aq!H~nijvse9_ z`cs@3tX=vcP3?*rcI%2z4hFMY zO)JoC;h+P=SSr;m-IXd;+mt|#s#HIwG*gX%dB!pZ#+hsk3^SfFFmAwZK4v?47bVlO@}mUIA(Yk2=t2Cu-; zU;O|7k7`hH!Kg8PLNBwJ-rpzHo$gB2?QKf4n;DoBH5mk|JB}&Mc+9|Pk<7p{Q~CcN zP^)|<^Z$Q8JzZZ+ui3$*Gp&!ACBR`WLq)BWLx4pl1Iz4A2IlH^ccohAMlYwc*O9qCT=7;M*%TZ>mVqlzcih*e+7XveR zg_l6WF$U26b{jyZ&NvCWmTCu+78@uJ{Fec3LY{u2kJ(^yfj0{eD8)fj;lyeE%+i7y zpl|{$NwHYSu)%|Y>n7-;5fKj1NPzeM|8J%T^fT*#r=dW7RM6CorP}|$ps{pNZw7Qo z5vWI_-N^u&QZhhVy%0E4k)gm+fx&R5B15620)x>^MTR0v1qS1piVVe;3JfMQ6&Xq_ z6&OrsDl(K>DlnLVRy8w11eEKcaDNK=YrM&*R0Y8 z8HiFlfigm^*Xv23LIXT9y9(00thM*9s9*BK0aP+M&Z%c8&{Jn%sQ&|6L(L$ezmI|8 zr8NTssLNE7`EVU*HopGo>q*vg{{OGFdwB`eG^tsrCDM_~P~bS}{}u25-@s#e$ofDx ztAO-^CgVY7fr{%|&0iuvtr$)%AZ(|wbfxgn99z`y{Lo?H+q z36fzKuzmmue>;I$gt2yVR;s-8AM1)*N#}}MJ8#$`>cH2vpcL}8 zak|Y!X4(4xk0)7rF))HUAfT}+P}>-ER#$CYkVt(q_#oPV7k?QTYPBQ+Kp|zR`Tu`y zv_$}@T~NO(zyT71%*!0-f>ymUs5s1FP?)XGzyQ)?0lK-z+9IHSCRRs->{5tr5189H+l(b<3EYowCm?i5K|84w{$k^c6#O4A@=^!gX(|@3d z2VqO66(4FY8&`nto~`{`UGdYAVS|;^iWQxz3=GibnM?iMih$bx)fM%7K7dZXHqq{6 zP_;P7&~Nbo+&lO%Q=fqW)B=R*dFja5VEKxH@#jOv1{sHW|H0>^fE2w*WNfIZg>-r> z6d40x_qKXW7Ra!xX91nB;tv|s)b3=+2VHPe%kEqO+T1Z$je*gUoq@4em4UIAgB^4@ zWQxPQ|5Gd-844_(GceV1If>LfXWvru%1UIW1_SsQfSKwH3Z0A$6D>9VUng_PRiLsT)EDtGi-s$*TWdNX~ruI42&gc@+oLyE(m#$13;T*VUA!@fyg17!LS1&#$4Y5N)J{G z7#OQLce)7Q5>in7sf0Wk9l=gGkF0p_YRVC2Y~|U?{CsJS9>ec)4QMONIi+c?>e)oD!f* zn;5})*3-kR-pj+%p^3=@py^Y5|w`|Nknrj;BDE z%`sRqFerdDS{z_t1gW3(3K25i|9?V!tjO3f8?=KQDMxt!|Bq4xgB%NLn}8Ncae*cd zL9X`x{~kPkSX0Qp1vF#h{r?4cmI&#{+~@$h-5Io20JO%SCX;!Y2Lpo$T+IRpPi5smR#i z#PI(C$PiG_fcBaqg@h(79=-qn120?xr5R9&fYJ)+=u^;S7dT`VG8CYO$dA1s$G=#} zu)zXU49r&u0GaFk|L0YZc-``PNCE;|IA0;a`~P3~AW$bC1EZxL1EY2aLk{THQBXpv z)$^{fW&kx`{%%2%&v2Z_umwpTl%}S@91T_9VyW@}0`$yGPRF@_b3jpGU2h3Vq1BcQ z3Ntww3P75?|NjLq*Rs@SV6@oHzyt~%O9cj1P+^wf#J~Wu$ov1V080f1-ItCGJ3!)~ z1Y9HJp;a5mU;*-(MGFJtk4DA@@Be@2fICEX*W-%)WYviheT#FDOHR&gBK2$cx??0oB6rktG&z z2mb9YM!x#OM#PcrEialG1VB{@Xc^Z_Wd<&2H6f$l$>8remqDbK#baHqix>FFV261O zTV8xO=d4U(v%wed|Z)Wg!n9ES|GM+&IG=V$Oo`Ity3)}>l0InH9 z12Y`cwRSV|$wJLxv}j}~@c#QBJh`a97_``rA);e?V;r;i^aTM-JkveqFe^xa(lV%; z_Wu7Ld|EZMJy$TjVIFAF3=0Dzq$J{;0;*y`RVS$0w0g|I0qV2-cKm;#W`}l#wF(0x zxZSt#{|nG!aL}mcD6zND$vQoh>8MqkO8Q|z=s*9FfibgN0tLsDl9Ho)I-JUkrjj3=ni0pDg?>F zFyj_AQR{n7&wQ{{IfT0@h(J(+lta zf1W}NVY&mlL<=&;$#kLaG5EgGnZ1&b=yaI(uLHF85S)y`7g>Ec%g70F>YufsW35AK z*z6qVu|3e9!=O+}(bltNZ`|TPiXX)ScWU0xB=jdoS3-b!_!^ zj`LUov_ZGsAN~yTaSdujF)gv45Akt*=Oc)ZQ6iG5#rywnLy&_U<}sgu_?G#Ar5(Hs zWp|v*ykY(w21Znm{XAzXhq=E`SaSTo5X#90x-o{+aqj;cwH&uZYNgq?c>n(o z-oFYm01^T}At3-xw9E>yG=rIF8Moj`wDpV*a~Y?AeB}NAXD%cZ7@yS7zro-zhw%mU^)H&FJR;aq<5DgA=0dj|IZ~ zKROWezwh<_54npLyZ(P$y#Iec3DN&=1w#M7IZ*wzppnxA28MbDQ1l`j0@|7H{r@-o z7!oYD*6gkfOn*l0?L5Un>ARSV)}#?%uY;t!R$U+ zjZv|lPk?m+$Ob;4KOl;MPk{9Uh=Jgbcb8uUJx6E`2=!6o4P<2fVgnXCs2fzR_cq< z5?cwHf>N}gEJJe`*dDk=d;%3{>MPK4S0!px)(cc4X9os8ff_UiG@xn_XhKWfO=$X? z(Hzi*=D{u$`FcKqZnV_fgQlSm%|U%A2Ji{=qwy!8CEkf>=1l@e2Q(@{`F|3chRJ9a zPDSHSLv!#nwA4QxP5pE<^)rwh0M7q2&^UrqZ=i+H4Rm?55W5NXKs_`cGVlr9LJNW0Xa?R!GvE%`0EGU#Xb!%M76SLs z%zFq*5F{17b>K1MU}30erfM04;fG(LDs0h0M2(X#os0#FYINx@$<3;&{}+P`Q) z`WGz({-LS=k7}VHTFXk1{Q~$T2Y3()a-s&2ATJtU0M&tl0;m=W3ZObrP!P=l!l-FT zP(=Zp{}2vPK{G%NwIC5xLo-kvHB}3$BT6<$cHA)0E(Ddto?MFm`pdKhuAo2Cl zTx^KuAR{#OMyOFDXpH6n6EyScP0%!0p(Zjx8?+#|Lo?73P2L&JJa;q)d!zE}1%uIo zJQytq!CU{3LL?N;0cfpd!3Z=DM5AUy!5EZWR?jC0KJpUDf*3Rh#i9jqESiCFXo)Zm zEso<+eJq%OY+gMBpI`!N!6KN5mg*BxT+An!h-N_wnvYY_LMR5%s^| zG30#7z$bVNO~Y}p21H$P98LXkboFQF(g4t|H0DBq!l;Ku}T{zJs+Co~`Y1jP}Og}=~3=nra;3NfHsD8z

U^%7_bBvFH0ND{SR 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

0$t>g7^gNps}Fu0TGAPp?m^% zkgK1B^%KD2hH&-JOsQW15r?aXW*+?sU~v|I z+VpQg#Nq0p#g+aC1{U97*oEeN0uInzVZZ?vhZw`aC*S}ry$lo>Sc6^agA8E?IY3jV zfdxn+2<|fnXz^tbz`zm^hGYTMX9gLd3)~Unw$P9>XkcIoae_4t_yjzm5oa(1BpwQ} z7S!SJgr*3C4GgR%G;J^@c?`D5?^6cYY$^^iku`GgIAK*V9{ zJ)lu;C;&PNEXdseY&D;N+XYC6L)cIQDgoBPC*TRq5rz&BaYzvH3AjTv3L8d1#i8om zq4l0&0YuygqE5gaTAdqqK*eF|A!B30h6@<<*@6Rt+>N0cJfJ0~A^6a;Aa`S!2539L z@WS*5_gKWZoR)w}BR*ln7t`*uh;ey9le`hfbOjLK8JZ=GG^RV;XA!G+f|g509t

    VkHG!_GDXd%_Kx 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
    =Vf4EPy~el$l`?Q2`fNBvJO;c z!Bl`w`vL_8NC7BDkWGYX1i1uBy*$WkAoXbVjS)1LtOLa)l6oa*>AVgUG|bb#tN`Vb zb)aGiSrN$DAVWcxA~|9Q%v+%3hoqhh>ge_0RF5ctji4p{dbD_fs|S@@%%I!=E%sou z0P8{FkIe#y=^Ivpf^9u0X<<_UvJuI}Mj&r8@CmI4C46k^K?wm_J;=u(^`L~0O+7f6 zkva^_e9<4lqsox07EX>nG z)_^j@Mo^Bz;_rVl77|;PTX#&V3 zZ=p?~Y=C5?DJXnECV^rCn@OOe1zA1Fiy-woUBRJc4d7q{c>YLK(UTwhZ!ii82E%XgK`EIlQx42A0+jrAU}cBOF#|YtN=3DSZFgS z5g;iv0|ggIA;=Th40f3QU=7HLn>}DA1%OQQ7TOHTH^?S|f(v94C}Oag1S;~8)SG~8 z1gWop8QcIem|19Z$Mk?rpkUh!@&q=M7C@8y<`pol;ITeqq0OK~fMka`D7Zj&fO01` zlP*A${N@`llOBK^VJx&6ln9Vbg1HtHF<4C6!T`+yTR5O5Z4m&O7E%%L&91)7nzfZT&*pEccK4BZE(BC=%Iw!Do#`J{kV5tSu4Vb`ED`09iKxad??f?a| zvCvkKHOSroNF=v-Ss+v5jH+gkX@h+h93qn*el{Vw=MBgjXP^ zZPS3daT~arF&5ee%AQCLfi3UY28wqq@x3hoW?KY!zJpn4TLw%7T*Dg+Z36`zvXRhy zxD6Ea*o>S2nRnSXWBP<+U`K*$bY`J#E2ixN<%(?}1F&g40Ml>+#sJsg-a^|z!HDDp zD^O}<;1k*g3TA93p{05wP@@*4{>StWU?*$`C4VFXVG6c$z!ad>BX9*0Ud_p@xc>#;fJ2}8MGYRdS z9>1MSOj>9sTG?*{3TBW23Sbv73+>bZGo*#UQwOyB5Fjl&+A7C#30rARi2B^SpNTOsG+6``y7z^!23nx2JMaRG= zv>Q||W3g+u0n|UcEno~-xb60U*uEPUZo4C(wnIzY-DoAQ9kj8s8{|K1cEK7KyE|ZZ zO_;vm3MhTh1K_=nI+It{rQ(6doG7ypz^q|Gl9%zxg2UJEN$=gG75_sf!Zphi*;TimmkW4gjAP#o+9=Lu$^y%N&{PH~AE3+=^` z3HE}*7Re+BPy%M)6WR-oL}sDA4%0WB0?oPYMUOR*lR*kW=>ypSP|$$HL6L;)beQ^v z=>n%gX?HIuIUp;54xH=-moCymdqIPINCtx(3YsI|3#~r)qE(-cpfCYh3~~TAb5B4r z(cTNwFPsL4(G5t7--}jTI)ZKD6WR+(71#{=G5td%sI{?=VY-1Sm;uc@`_S@^BPeVb z_=NW1$UFOBON{mzz)S)MySLCjPy#^mydx;EKqjHb0yNO}f!dl#>cL(BsZW3z49z?H zK+%Gv&=C|`AcZ)ZGy6KgZ7gY_eIOSgYXlht(l`SYip)a$7EFI|78I}GbGfht+rAwz zlR#D?n*@qzkV)Y7qp{FFP$oi>cLIeTNFEeV*bIIFHkesx-v?O4KpT|%K}iDHBv9xv z@Coe)#S<2j_QM*K`xT~dxByBc`@s!LZ=wC507W(l6kH&aK=FjlBv9Rhq}~yv4x~N+ z8Xx;3K*44#v>%j2kQ6$BQZ+~+D0s0MTmenJ`x{^;bwEu*iy$XZaDhw$1ur&}pta2Y z4d50Pv(Ww>kZNcD0hs4cKx_W}H>Mj*1ts+T52gzQff+BR3tR*T5G>61|9~n!zyVcr zKme-dfW-6y6OgV0;GUAP&;d|kgyd;wP<$}(2^|215*DW(@PO7a2Liw&Nzy_G(9*jz zG>sep*U#QU2hi$gXHdxwvH?`QVY2}gpGYpU2L(S!eFwDvd0@iy15ZF6J}?8?);R#F zuBC+zfXv3GcLTJlKLD;ZjD-%MC46USk$3=<;ITRC2DJV^@L+nwWw7NhppAwDAE5pJ zgOK`LTIe9C8HwZyJy618;1fD10CmMd38*0lp|NlfEf!!4_z&XfuO4)OI_IDV%%lLQ za}GwpoRa~rYNdq^f&vhmb1J~jkrq0L9^#-t0J#^MoDZTUXBSW?gXD1}=Yz17p$9iW z%K3w^0kwnRR+F*NLA180D>T&|1Xa#hg8$$HXvR4B0vh)RKY-J?v=Hb*Q{V5X z0#^jgLWcyVH(Uc1hKE2BSj;}8F?|C>0b0QV;(}_qLl$7Gn1v2OoA8GMpxx|4(30a2 zD1wnf*cB9D417X|Kp~IK$_lWR%tD76phd``4wxO_DwkR4&;pnp;5wFB=+K5~H^ANi zrCe-go`9Ko0b2APf~~nd1nuP?g7xwbK?`Njl~%}M=LYsNpU`1YbYQXLump7eYB5u$$b{JH8U~@_V%%lovA#fNx zK<_Pd7&HQg6d7)yGzD@KsHKU`Bv2|wQV$zcIt&}WKMWqe_ZB(~8WcfN=nl%}AcH}P z8JoeNY=op9ZZNE0dKlc~WEML7V%lv`)E>ss#5}?<&7E6RTIdMKLSzF$$%}zc=!gJx z;PHqAsQzIVI-)Rr0@%bOpa{j{v?CVKvh;`pxD;m=Is#4GN5JtREOZ1dKHL{f-w?nh z#sypJexv}JBac)-bL0_d_#Z(Fe|Kp39|46kHn)Ic8p&6%X73S5mrGjc2wJ$qa`=%0 zFejV<*S}0cN2dGl1NHom+<=rjM;<`a#u4af%MnmJ63H$PP>3?{34xDNz~Z)}98fEc z3P62%R05h&k7`UWcmS#hjv9ah-B{=-D9t0A4UL_np!Nqgv!TOXMW5cqggWQT#m6Xa1hgAGU> zs{q%Q(n7~T1s0M$FfSg1jSU3OZ3SpyC z$6$LRj$Ht&WEMJhV|qg)C|@4~H4l-rctRVV$6ieT5D#js9s2>T432}Ryp4s9gVHUM z4lih@_c(~glGctZKr4si8qi+pao9lBaY#r?3mpeV0g{=npb~(APw2P@IP|22j)R)) z*c3!ezwj886OO~e`FI92E{+#~a|@Hu@#*;wKsoa`v`KLsR6`<}maTQYXOi4YCYU3>?1!E#;0s07o~o(D4`3Klp-z{5V=dg*DNR!VOIHkx(90aQi^3!MO!1xRLi3rwF7 zfs~3)BtRQ)Ckmj61R!Zn3 zC`Ds45jxLs65KI25;_SgxslZQfND_&KB1GKD8Q1tPEL=X33doaM)(rNBM)E0exC#rMLJL>l9n&AgAf^6O9nkc4YQl7fH=q*b)C_R)kQO=x zDi@HV#1}N20CF2Rje857LQCVmFt_7KpWf;f#MUQR%@^X8iP^}1E0_t4yfH{ zpgHD@#Pkocprmj{0c!Ud@CcN!&>6HC@sF5Zkbsnq&p@W{rG?I*6*$HqM}zE2fZ3G+ z$(?5krhoVV^5>Zfm|f7;^chgah~!*k7CM8LHQ)-sAulX+2IL7O7X@%kKaj{JrUdI5oI%S0{vh)h_=L_vW{aeS&Z0G5 zU`{*>86J@qIty|Vk_~VL;9jS<&{?!zX8EjI*GzEMx;fu>djv6nofQGy$5f&(4?*n)8tsItz+V zBokn*i?iSY&RFOyDBh9e13;k+vH?c{clHD{^`5-|vjHvM;5LAJp~6CEK|^3jHUt_> zzmSX+ub_KJkp~L`LD9&-Cv*T9gKXLKq|uib*U!IFFt) zLFz#24M63bw9t99CI)P=!g&X%JX#C~f?@`wA3Q4IEp#4aKeBs4F#wVW#Vj`WfJ#3k z^?}e7cfJDL(vTK9j~2yn1(5!qw9t8w4M--yLkJwl-a_Zm;y4HtBOn*yh~x8U#cu$} zg&_3@pdo-3|-6dJS8g$vUS{&0y-Uz*7!zzsht;=&7XnaC`3;RCeO zcmbRxnT0Mws!3*{i{LzHEOZeq0zyE|IR-wVi=c4F;`)n_{t>g#McAT>i;$Kgv(QBc zsAU(SqkR`4H6XLlMQE5_OaNyLW}%DFmdV8em;kiVcM&begn$AO@>k~=n2A4~%ug>mr(bQS2u56~F8 z2o1+e4A9k}m!RQz2`wB$LFtTvPv{a_ILbhGYhKcre&9dI4VOTL78W;La)8dRU4n+@ zCD;KSm!R_k;EQjN5?&~@S#SxI>9Ltu0iB(@)Bwuu%tDtsV4eUELoo|onlbeOx9D`! zT;#-bX~T2@Mo>%j66^quOR&MFOBbLMh?iiK0heAthZrvXfR0jJ1`jGR3ti@zet{7* zIC2?OuVQiDWd(5iomuFz26TPwWdmsNU$%fa__707fJx{wxbwj*bU9%91SYVdIC>kG zVJllNLsA+@Yy5vuSLrfrtn)H#74YQ=(BQZXEqyPemA70FC}XuAk>tuu0a z3AUr)3di&UXOILRUZu5XpdW5TAih=n9T>2fptJNj=OHS3IDexDo+%+7(ck zBdOGfnT%Fo27UH8 z5eGhB7RhqBGhtzU1rpZMLRZlG*l=gQ02lDgLRTPR%`9}~2h?3x8KCaE3JcAv(9i@Q zTZ?2Z?Bd+3I70I(s7ZjN9_Gxeu+Y2;3(c$Op$RRBucC!!Ff@f+g@mTG&{eehM<1kt zfluga19X4KRaoF&1qZIT&{ed+jR5gMI&h@xs~{_}c>)&JS0Q0-EOZq;tYMx&OXk6# zS{q~|BUR) zDNx9P%m&2)l7c9O=>?@+qKLZv+68b4D=l;lqyt$cG)%97XG@rcu6>w(feTbNUIz_c zU@5Myb3jeH4l0qcm~*gQ6MP0BB8g9TZ?l zHpA7Uge`qwW^SC|GWm99f3prnPaqlYla2#_T&U|K#v+ZxwlQz$nW zpre*I!0iHWp&MxJf+$czXW$dM0ZP6|K?57#xPcbdu*JDIAZJra3*A6V)-a#n@Br71 z%tAK;pa*8%fUI3P?qJ1Gbds00J{P1emV=?0JYAL6vlvp24pa( zFhMdHma1-mf)-hQ#Pko9;A9F4YX&}{n`r4g29yjz;vj>u7|cP!+wGwG>8Ye;RKzS8p z3aFQi%@nk-i!+$Mp%z>=gEW9N{+R9{3@U7HgIa0GCO{S3mY7~33_7;rHd>N{MbB-t zkb<=rZd*WGU$;G=ji}oJ(;-{MZbwWL0Y%a61n5-VZE(lbTj(|@c_Vudl(ZQ5gl^*) zHoOhWxX9|Esr>c~s09nAC4ntk0p&wiuG~gTf^ndH2(ky{Y2-kFE@8b5iYz31VnGE0 zNc|0{x!}PDW1-ui$VO5Z56X@pbs+Pxn0p6S_TJ%u2G$*k=?W7-PQIf64VydQ*(heA zI~LOg#6U512h>l)W*B6YomuEk#Pk3sZc!$oJJ5N&I~mY`zXJ|uW1%}};T#VN4+cJ= zJ2=Am4s5sK9Y}4)EOci9XbBFp(47^K;`a`08v4!-XqWoVf$0L^X8oNL(?86HI0rIs zcLzL`WGr+CoPiPBWa2@g1abvvkPe#%AyXF2LU$R!%>ZVhyO6Dh(n5DZ5swt`&d>eN-Tx7&4|UfA+R3{M9zin}x{Ee~20IJ(E~u2j;)uJjbv}11V2J9sM=St4f?4S92CzzIp}Pm5o%6fkK@n%6yJ!h40hDhU_=N6)f(Y3apacpM2L%z5 zRfz%9A2f4`)-!NH72E?A49E&V#Sa6Y&^=HrQc9w_}GYXAicNCPNj zkz4^Qd+sd&7uz6%^i4sHsC$r2QN}{|KnVcJB-p)e_dwx;Bn~^e_a1B!%Do%YH-HZe zz4riGTikmA9fY{|0Xk)T?+4ggX`%a|b}Eu-u!g~X4(R!u_aT$_%tH4SpkpKVHK2yv zH-ILF`wrk%1e4Hx@DM@0(0#P9O#&6o417ZO(W(|$T-*o6Es`r>m$=;rg(j9zyAO(6 zB=yG7e0Lud%FNThD1$20`wO7nzYm^pVHUc-Vfq1CQ2BEo6tvikh0UqCL2t@&oNu zlEvbV2Nu&6zm*l-2C7K%tF}t1P{O-Hx_z;?r~7QX5bTg01A36_CI8R+W!zT?943m zP+=L1ce@wWvSEmcXNp$I-C!GKo^%h zVt|&sk02EVv(O`j=@Y$7(PNP_+UlOBM)f8d=vm}Up|VMuAl-6 zokt0fO$v`Prau5j)uRHKW#CZq5_*IdN~z#dlTYXoC`V!m_($LziKrn{L0ON1Pw3I~ z_18dqT_1s(*hm2Zn+|&fDF&H^9vy&gdVB=#p%@E20#z(XI?_NT7|29W0>$Qn56~g$ zM?atu_!yQnA9Fwh;IRNC;vP#t>(iSfr)bTA3{aqgoQT#O zfR#{Bp)*xa3m~3<3f*k}v;n*bPg>|Hs9k{MWRQzMYrURMfTp6S3!v*npTagzKix20 zKo1mvPj^5Q*wYixbo2BA%;DhF%`Eiv!E^;(P?CEJ3R`Sp2%eFW7J3E>VMS{L7st^noA2kLrd4m(3ab?70^`kYy(W|4rm4X z3_QbUEc6VNgpnNq3OtY_Kt&=pM?8R;1e@`D_5su$kQRD|R$3&3ay|o}&~pZ;Bc8+B zR?lH=tLNahmABAyP{D%ah%8V;0i+ca;#eH<9F$v-)WZfnpTicRKZh+se;xo$Th9}q z(eOM2+7NyYTiW})0^A9f7J81BK;gztfQ}?Qhi!Cw4x5mEz5;sg$ny;_U+#c*pr3>L zSjIxnL7fRC$7X>d3**rvr72cYrx0=5wJ#SLh8=mqQ)i5IYKR4;x& zJ2@{IAPXX2g3>>d&=p|(5B(u;< z*aG{Puq^v>2h4O(t%PK{8_aa*F7B7G{?E%BU>(dtFCRd61iXYE9q|%2JOAqQc(^lhcWO8y#m#sSR&#TY?R|w1$ZkFv(PKpQ5&yd!|JbK>+4@FfToC7E1+@o z3O1MV3N``%3brZX)d^^HBih#uVGt^UeB05!5UO8zFq)c3Jfw2G7#|^)&hSGJA&vn zICX$j*zW|j-Cu)>9i&tQTQKwb1vC@Ah7C8ohD_Bk3B7@?nSR3oj$US=Hv(X9Fbll_ z7vRQ1Z$KFf$l8ypsY`n!08*gE;@%8{Tg5RD1 zmq^S)Z!b)ToB{V1w%+C~>_~*SAEp~*fD*ymAJ8V+JMau7v(P(%=^q?HG4>7=o>*e+ z9b}6#v(P&O=+MAB3upoH4!m-bS?Ha|bORT#8E8cxY<}Wh1h}=qEc6aGsPV1s3ZbIu>gupxs9ui6x z`T(*TNnZ&lX@T^Cnz`7V0xCw4)E9&JAoXbdjuKE3WZ)C}2yG001euGZuLKl^AbC&# zW3lI>2H4BeLLbp$Djwt^kVf!C-MoD-H;TPg2I@APv{dUj*)!^ z9bf+>0k!;-0=Q{vEc6LfARw6li_K4HfnEYFU_Mz)pKurC{7()rqhQN8J_SI-;8O(D zXP>|u4UC08ftr~}mXw03B#<*fG?Fuw-hlkWC-kXfdVn`50zRQf05s}9t(e{bQ2+{M zBokoy<ScX9H-<_%m!Q{xf7@D6`OK$N+`3&}UF2BN=NA ziW!ix3D5@NXYhChv(V>)=?UOXyPrXY2o}$Oo-loaFDQ;a!}@)nA>A5jq0gW~0m+hL zm?ay)8-baHKJS3Gy+6aw&-i=+I-~m;)}8tM09u-ThIEmQg+7B4HX!^?p8Eox689GR0xAoTj4T8Bh=EV&3#b~w62@OZDHBOO_&R!!ddU0+v(T3n z;DD4C`U0x@kW|8w*B8if4bnniK#3Yj0j%Ks0^Z`lEcE3Dw50#?0NULD0v^3&7W(pG zx@eN;Lq5ahW8WCSDUv4_*b+HUID5HLB^wHaMGV(Wc>|x%EdPUaL5}AeFLRu zWW%A(`39=Hki=mVFyAylV{yzv-(c<2Z_v8xo5OU45N=T^p>Lqvj>TEuplde1!4l}V z0%$w+TLZLJ_^kulJpDESx{To446r+yg}%W?ZofgA3DQE}&;k;+bmiL)Xs`PlWQ0dr z=o?x9Izr>{+YM;*{M!qd7FhrMI|JAy(n8vz@z1~~^d00@ETQ=wvag9*=z9Znec1O7==}b7 z*x>E=8PHJtz5u!`;X8C{^7{suT1chNEcE>VbbR?cq;zBw`VKx~MOx@PS}O{C13JiM z55UC$v(Wbs(CqXbwv6Qm1GF#k1GYK+hX6FFe?Uexn1p^zUmp${=J;VS4ScTO4`@32 z;V|7G5|s0QptX5m72uBusE2|w0;U)?Kv2&zthf=j!4p`U1_T@9!Z0~vr;+QHhNKS6Z}lEF2gA_=4()TYAbK#+Mz>a{@i zJV-q_FC%r5YN5r@Pgwf=3ESuL^8)l_s-KXh2+~47LH#5oL*aTMbvU!o&kxWz`1u2x zA%4N;7k@$4T{8>)l7JQgzhF}@zYL(U@yh~Sqe=_?0tGu3i+*`PTZO;CORv0zeu0WW zWQEWY`xhv9u>{L6P$oxK4=Q{a_=JAJGWo9ta6~Z){em7q@e6j4?XMZ&j=Z$cFHn#p znE@LO_yya8^$W6)O-kq&TD1+^c=&7jc@|KP{B;4`Jz*C51=&i#EcELEI2$kv{et!1 ze|-R3%PjQk2e^!zeswaJ;B>z|TwXzYl;j`1GkD=jZ(g+j{}B zO7r&(nEel6_Ji9w(L%pLjWMKHtB0l(@QtBJ_QNvVACNq1y z0QsM91~yrePbeq_fOLV&Ty3F0XbHO>6e=KjP-vr?sxTEEs(&)3%>Wf1e_%^y z{(vXXjfMVzN(*F1LW`|GAY)OCg9PfI8Bl{@7d`xev@oZ)PURAuE_V?Wlz(9P|IY>R zqB3ToKj2YNZ=pYE*&k#%Xwvr&sD+Njw!a`tkz5DszWxP|(HRT3$t?62ye5oU=Nze?d`!WOO|!cQNn@{eupm{6lMG zHG;n(7);Z!Jv}z-vqE$W}$yGz@;Fw(7zSX2>AyM)qiNA z+6b-j{^1DKe-|Km;UBC^`VZF3`uAaaLnbJ^|NVe^@joa5A~_f~eDt3K;>G{4vta+j zu2=uB0S%`A2H;TyW}*MEL&5%o(khZ+wV>qAz$f${wqof&WW^G*(0}L-;{OTY<f7tHq z|Byr2n1%jB&yV>Jn=bheTfXrhJPK$m^dD61Aeq?=3N?_KptcG&H++D^z<+S>NsNgB z+@lwhVn8bwnjmfyW{?0yhZqxs0%-Mx7!!lWv(-94}_XfR^E#A*ocD0aUJII!>4Yyf#~miJ=2(+ytm`pa~8!BL+~$LiQ^p4+}GZ zQXw|uz(>J|F)^F~br8jv7%qU4g%}e9IQ5A!F+70yqyMo|7jvReyO^nmQ10Gj<1 zV`7{EDk#N_7|}wi1(Gs_89^;nBtJoW9m0&D{4B=AxMTW)0&X!QM(o*Fm=V-|K(ZdX zZd#b}2E>aGAbxoP;eCL57=kiU}>H!Q93KKG{o*iAe$CXC@7ZekKEm z-50kdQ30C@x{dS0n`W=V`BONPLa%@nnTQp8I%H%g1ZgW&|%;c zW(K7|ES51VKrCa{fLO*1o>3QLVzz*o>Hx8f*#lx3GpMc*V`7HnRc5rj+6GE$Aj@!s zA9Dq$mJ*XE@lM22pdVd9Tc7n ze8McCl!+x=StKCg%Ax=XI2O<%O)(=DP;?+00}2U{F`%Lon=t_pFR?^Gyu<=tQYFU3 zk^zbyDHc#bBN+!Ba}{O*FMbhYV(9=i#l@IdKsR8CF|o{;u28`(#>BD!H1;6I#IgYr z-YlS5Ofe%CP=Z74uVQh}O0d?GiY3?9Xp=Bb=2dG@6;wMT zDeC}*2uK-@l*qaPlGIptKxz?I@K_Sq)u5Ef3aW_3j95Vh0g|bmptJ-s6?;7_%=!V6 zrdYv?7{r*^AX%ObEz5U8YfLs!62%e*Y~Z${7!w;Lgc;dDD~ZIJ*dPJS<}kgWhFgq@ z%>$A)*uX`j5gW)*WVb@IIvc2oh|Q7$NIr8ADptj6_+5+0H zE5^jOV)}$yZZRn~9JMps0kEl3Y@o^p$u+P*g)k4lBzCfY7Zgl>x3prb`D7PVFz{R#gf=T;ftiK3zX&<_=MR()*u-VYXq=^DpX|k zFk?Y!7)d>>f@P1GE>O=c#>5U@n=K~A4hm`{{jki=4nAmBjENn*kwuJ&9lUE-jENnR z>DeLmI}yG6 zj(!zm;sEsv#h5t2$8Cx+aX^EFBLU(H4$w52m=*_GG1v_)RXIR3iYulIOyd%p?$^Z4 z!Nf5E?1brV)3^kt+cAMe7J$?0^fHjhJr#`LRwfScw5}Kv z2ed}vfP@tXXedL>hy#?&km9Qw#Ao0W<^&}#6jy-+_=Gt*z{!t^QvmD?CQb=Z7fOtY zQvu`%DNazbLNcxkS_W|%K(Y`gXy`)Bh!a!-A}Q+ug$>A79I1>m0%~gl)YgpY1M}ThR(gxUCIPTOkD`Ct3m71FA|uwt^a!*!;QzY%3$@bp2FraVbtvvO#jR0jLB7 zX+HpR1QRDTyg4sGns=NxAo0NY01^+J;3E&jm^eQ`lta=c7bsYf4DAJ_Nd`V)E)b2y zO534WfNoK0v{VC z#>901v_Dadi3@yixfm1I1<(|L7!wz?zrqEc3m0SJdI1`X6Jz3nwy?Q=Ksqqo;3K!h zn7Bb>Jz_@Ops+!9E;P+@gAyMW=W>J3*%D*o22ayOUtl39yul5vcey(t-sJ|LdL+ig4L;XFjEQ>zRQ(D_@Nk1y zpNcVYgIh55+@NHKB=0>Y&`$3rmBo68eA*t^N)p87c!aQh=l73Jw0EvT| zX~^n9$r~gNDw-J?>KPcIOPZj|ON4nq8j&@CDlU))ki(F|6S~Gqmlf-kAtK^_F}P*7rb;? zjER>6VmvR%I4s8Vf>ue2dGUgbLzaeCk-VU)5S#I!ctKVVGM<4?nAZc+)#U}>7a+#O z3qGn%Oo|s2?nvshpe@?Z&bz7EhPBrzsF@Wy|!>DNHDpPeZ; z2NNH7`>U7`A1G9j{54_6bc5+!;?wO@x!IZc4ou%Lfm>{P+H@{~>F0E~Ii^novGQhe zaR~9Dr7oj_=?A8R>fcb1>EM}VF(!Tna41e!o53X@)ekBz8Tf?xK@pE+W&DZh0W-M7 zrq^k6b1?BMK)Nsd;2}Hl>Dy;;g)>FHm@Y7rOAK6-3-N=DLDlX6l7wgnUpp(t#NPon zMvEWR4ntBr5meTJ+yF`)NaArF(-(jY;akVW!Nk8|`iDu}VnY0&42=@1(`IprP2YEo zi$jVZt<-@o#1Q5O4`7N-H=D&Jz*Pye4Lal@zyX>&7Gn|sPp6A92}nSOCoI{D5NZKvo<@vG05YZ_fR-dCgZi}$e8K`4!2wG1e8K`3 zppL^4Bm$5iVG;oEFA-xB_yGw8K?W$z0SN^`XciHafS4zUR=~hKD+oReLX1feywy&O zNzehDm6!wrAf6S379@fR5N`=W>mxzX5+N}r!HVe))49c_FPp<90K4`@Sa1fUD=)YJ zQpX9dfYfDz8$i~Xg5XsaVoZXdfom})L1;}Z2=StnAX+Ig85Ca(e8Pg@ zrO{$iLZJMLl?zz$?zgn1sM13PM7lkVjIk(J=kMT*QIg!a^R?9Tszo zF$sbDaY90%8V*VM)D6=W<{>Kwov|dwBn0WMNeO}KDJ11l(8MG(1LAj~1(0wR+5ibx zA@Fs~VoXAyt!`pQLZIY;q(ij+sW6VFt}vS4p#%ED!jRg8NjL*+tCTQW=`jsd z5HRow3xjW>5n~c=0L{UQF$s5o$329>GtXj7!jREF;RT>c05K-v6`-|rVobu&N*|*$;?mA`GBuW-%ra4u~xx;7u}O zOd{Y4*GL2{KTHGVQwBa^5l~QJ32+e$aN3m;L92KxK$QhZp9g5CjTn;%r0|du0af5g z5jqXjya1`o04?NV=v&15^Z5@?vw<0!U61SphmM zOiW4yXi$y?iG#PaiAjlq0vpM> zlR$|ZBoD2?MZs(9#F#|Eqo_`zXkj`7W*n&Ph#Weg%mgw9Ei`95m>#f%OROH&<`hK> zt(h?MK>D$n2g-~{&YcNzKFA(WL4~XyvancK6x23EQa=O4XW(NN7GnSx%1mP5gDk`t z#X#3|i%W^21tWA8QCLg?wAxLKNetSD5VL?JaWT-g4lyP%@ZIQQOk&{M{lu8WB0%f0 z#F)eqpvpjdpT(HO3ZRx&OiSVxlM(|ZTqMUq*JcTefiIa8V-lMIsZhkgYd6K1#K3$1 z#F)f3K#EDR9gq%-7$ld9oq+U)#lWZTi7|WI0;p6K1JC~$iGhLu$<~>m zl7@j#SR9mMumqvF1SH#uqot&oppplq4_vkziGyMS$=F$-6akV3RSDRP4FJuzi!q5q zMvJAyK`9Ga9ZWxX^q5J!09@WNiC0WlSjsKNBo5wxA;u&Q8KV=Q0Gg~8V-knVq=|zv zEwW=k$qeKe5RGgJG?|F+fcgTumq?8 z#A2O<2RMwRBtYtroe64XgY-p!n@19mwzmXG6j>E0Y(T0&sS=y%9pErxl9&LAIEfih z+dyHBtR55?AahngY=aC-N$h|`kOa80Ws*2Cyf4^ zG63RJNl;Efwj9*p0GR_BMUezAjTK{(1dm2BNmf7|0jXCc(MrNOpkM=O2GK}{!g|Y+ zE1-_p0CfapqDWE_lthu#b3>D;BxK@961>e&j7jna)OOIS4lyH1P^2IQ!CYuLD~T4K zFx#aVAht_!Kx~(SR5Maipz;yPc33$s1s?Zfl7bA=OG%-n+!#W?WLs9Q!XfRfy{xF5mFPT8?5CPW0HdO z5~LP@9l<08=_N>kl0R|?f$};?Gg^4VL+Avg-j{;Rk4S;+Lef4D6apaaI4UM7@a9=D zCTUPJQG9y%S}uO2d7$*gz$Yw?9>`FCODll=%_u#6|0-^ACTRn3vJ{jC1ujyYa8JL# zmP>p(Uj{b^le7nTUTeD8IxYb&=vpaZ=?G9eO`I_S901eZ)^Q0;=Ud0cX$UIOk^KNl zvLN?>Xe0|@K_CrYtt7@IJpC3?C)^Tw- z$$)Y+lEdbMqJ@D^SO%2DP`nOmtMLiTpp9JAt(dlnOKdvdW{@Mmb^dg-O3!ufG zEJhGQ%#js<f%_N=%2jIGAKRz=KNDw}C|JOt?9i zWWn7TAz4saieyBk#`FgudqFWYU2F@N02g#OyRhs5$Uubb3D8P@vFUDGxCB6J6*-t> zZ-Bivy?hH7ztjRy=4ap&mIb9(R1YoK0!mPzbSlRHS`RY)8psIn+>9J}!<8759CUDA zP6IpuIo)h4$OoYOAqOr8r>B7g2 zVL4Dxqq^wBRxYvW^R{twFv)d*=N_i3ZQ~M{4l;#t#`J*g++tdCI0g^p&AtVn{j-qVZ4p0PnadR-qLnbAso9zH4=$#-Da1}j04J2@GI~S(`$fHQk zS_CSuK$e4Qcob71-jknRzm8jc`Z19Hf6Ck(jPjtZ8RFBwfdullb8$+73_vmvdg6|- z`~h&&eY)CCE`jNB`?xrmH#CbF|Y8JK}jSYf*TVs3FJ1!(U^!2)!0iP&_vU0edw z^Zs*jFe-p+>gi>>xCEpYgEA^e6DTR71kUsYyST)rgNtH?0*DdUKt_Obg#!2_Y_aKV zySW6ol0nHAWX1$Yc$n>mg@?idutp{Y=!lg9c$?y@~?UC!F9Gt5*co!N~fd4ps!!>qz<)VERDj zBdZ4u7clS%E25=Kg*BjPr(O`as1il6}iSeg~-s*^8uJJp?4dC#-}PDa)Ya z>q?-wMpCZ^axVj4y|5CfxJ9-A8cWI`^N=*CfC7qvPgof()R#dF5>^ITgrr_=4#)sL zVP#P2Mm8TB0m`6&WQ;+q3seKS5M%);+L1MYDiV-5S_rCx1{Xl$Xa(&um^llkPdLOa zHvQQlE`j>xAjg0dgVF+$D>Xo_1Bruz8_Ck;Am4z*L1_|MJ5))ZH$Ttjp!YXKK zPXiPkpkP)(D<+qNd;`(|3T|Wzz#BdIgjGQ457`1x`T(g1m6S;8H9;W=5(g!IWc47A zg2cgjTL%%$TF~HBLCf6BK|Td(*fHJVAh+1`ZAZBTyjFm`0}=!!5+qx-RY2j%C#(WW zy-2pM0QrW2PgoTsjig?4&-8+0Tw?VrK&}VLgMt@HUJGiTDkwUT&4UKFDkwCN)k71V zDk#{I)k8g}3JMJ*_1cion?Ch8mmt>)P+Wr?F=Kkb0dBGB-;Q$$)UNyMOF`SOueugD5#M&fV=?G z0Lphr8gxPV4YGn1G_ymcAf(BVVw5O*A3VLMqAdiC7gMye5DS_yMQVd7}L?dee z`4l9+Vfuvq++y`=pb`j4eig`PAbC*!Lvnx~C@p}*L1_qCJ;-AWe8TD=d1Up_w4e_1 zD6)Ex$3W^KX~!B~o#{b?Rvi>o$QnRC18D%sBU_L&{lRH2F{V`;rVE_m5)0A;6|o?7 zpb$sa4~ZIKb&xs8`k#PY%qOgl7C@^&Q4TU^#qe@|$r4#TD8V!E32T4?8(IAkh?_LfQqgK?F(V8v=#Vx1 znXYh-ORRo1G}&l?3`UYSFo7C~RvNDc#X86VAcK+B=Rnni(m%3;L8$?x9+U%-)$akT zpYD2|OV9}1fB`82rAZ`3hS1Q_K+AkOnCNQV+5ZNxcyd*pb4Tprned9u)JSQe6`iI>;KJX%xMSwFVk$nxN1@ zRu3)hH9<)X*#b~r0XYbiG?CSV_#kmmImZmjD9{BrYe7B*Nq|BMNrSP%bb(7;Vp3~C zJ_E^vLJC>FVR`{r9u)lye8O6wkU^GzGyMWs9u(amd5}3s@+N1d8(iiR^I8i{Mp__q zkmW&c1nC0>6p{zmLIXq#6!J*wO$DYOxD0YHG}&l@LK;clBxbt86)rKRwLhi@T;UQ+ zGKJ2gNW*JzDsf&X_K6l}k)&9mxF*e8Sow zbCJw5513v6mWPIqHpm<#d5ePS7p`)N)vp63e~^BVIY{zWpzsEXgAxw1dq6n>B#xF~ zOrdRMZL|cl4w_)JK?wuNd@~=gf1`!9(E?~aG{IhBG>d413`BC!dXUE$_=I&p z`jFI{mrUPqolDGXJ;(zfd9(y#3F3pqLHd!+14S%I96dlzOfR^>C04&4Ojj`~gyrmOv~a?y48o0R;@Q2AD@cB{Gr)7SI%> z3kqmt^&pQi@CoaJ8VX42J;8+?pRg{d8bekO@+e3>s9t9T6+F1bN_qoKpHh~<^z$dJa z7I-$Gv<4CfnUCyVXyECC5;Br`HU`rb9&m}(Z-NGvJ}9=38bb*IlV)dJ$ z0j!Uf{HmP&Pm-S2u$~3#1+to5<=R<$AQR0jP#X zwg41bAPs1F#17g5H2@_mWc8rX1E~i^FR}%HrhjbHQ(43Io1GLYn5 zLFRzOL8%JaJW#lR#L)^eSCIce;-FN8tR9q62Oz0;iOlbkG6xi3Na~$I0m{HP-Sh>Qpww1~Z-tFONeEd{#q@+1 zTw?XxKz;)m0(EM!#aul+9Xx1_UB_U+>Aa$To z)R$a>Ogk=24|vHXR__GL7YuyD#vn%_8v+UukT_aM!{+vlL6#t?-wDzWQV)tzBuk-( zs0kZ`idH5>g%93(4_b3&oG?8A)Os;SOX#rqWaEzM4L3l|m)D?q8qh8$;~CQfUUP|0 zH-F8=@3jq-)Ij!v0u9MtCuj;XMoZG$LH+@$2PIu(^#Rilyyg<~+73;^#-RL!B<~FK zA6mJy9pojpml)Ibis>8PaEaBsK+QD)rA(x7+YT-5O+e-#>369C zS;!}B0*VJ@^`JxmvJX^VAgOl(rEHKmC}kq6hlEd*un8z@AZdVY>N5cq7|0qx9t0VL zmO5eaVFC(hB=tL{|9{IR4qmm+WCA|1L2SC&JJ7_omI+B}% z$pkcsFE)J|NVVQ=ZjR~4-hoytLz1bmslxPt+uUM8rl3myGCbupFfdG4c+VxKWCRLH z20md^5RL3HXbhWrOy6*uTWosUdoBT^ZP4H`MGH1q@-zhn8|WAbXp^0RVfusjTw>GZ z?r?KRnS$a7$p*Nl71JH=aEob~q6Z1c5|GP4K0(&!GJU}Z(EKB4C4lJ-$b9v+51@42 z!_C2D`U14Lb2{5ckU%OohoC7aDv$!NY`XqOP*C@9b4Zz?m5k6sEQQS=YjPOPrt44T z7N4F5HVkCCnFi=AR52zq@U0DEOlB6-58UMzn|=(WBJL3v2a}n{^ba7BZy=F*$3P;` z6^mxjt#xJ@kcm09Ph0|0utlS0prAu?<&Fu{13rPGcpVpez1R*=SRl!AL-K*x4m4fd zpjc$!6WakQ29VW5B2H`vDET6bgYpYVJ*bdH76;h}5(g)1P_Yk~ zpydy4P_YBj49d1hn!zo6kT|Gr!6yD;y1@gmuRv)Ashs5iX<*IY1Erk^p62WDTHT0f~bu5M*&s z1cSsu2?SXj8gDxTrYk%I`EVyF=8+U|LQ}|2P)Ug_4pIj)5ae=XahStEDFs;^;RO)`C&;BB36RT?HGudaaZu7k76*j{NF0=)km67f78RfbhNPYw z<^fOwgNcLe=LW?Y$RJSI!z36O7`R{-gAxz2I4li-Xe4oNn1eux4oRE~=3`J=KoaMc zU|^7AVBizm1=5J@1CYx>;vUm4JmMB*7Tc8pX4H%A0yzm;B`EQORD%4BEDmxSNF0

    Ag3|#iR}gj1(LWBhz}A6>0<^>oIsPK5HxmogHj8!22e5tX#k}X zWO0x>kobe?2OfjGw1;8(jmO-6(@mdn%kkyqm!#^s`-SQjmn0@~xKV@i53-Qg*>DL2~(Q0y@xTR&C7#J8p)d)xnRC^65F)}bP)ig{D6rXOW?;~n z-te4TnlXC1Lpp~fGuxg7m~%|C84#vH94!V33ApanP2dt2>@+YTz%V`F1-BZP9H=Y- zi4;sf@B|bl&$*>QW>5d|oZFV0?Jn3c3=Bf*?F}!u+Z$f+Y;SnM8~2HcMPvGdTYQew z6L0hBOh0>@PqMzWxJW-IGbyzqHCaDBIa$A;Alb}BwTRX0B=D>WIU6KY;gW?pt`k#16HW=@K3W{QGty)G!0KoJcR&qyrJ&@C>h%t^IP z&nrckSddeio(T#{s4Kf{$B^#Mc*S*KrEASr*K)LbV^gWXS_$|)P diff --git a/roms/SLOF b/roms/SLOF index 7d37babcfa..9b7ab2fa02 160000 --- a/roms/SLOF +++ b/roms/SLOF @@ -1 +1 @@ -Subproject commit 7d37babcfa48a6eb08e726a8d13b745cb2eebe1c +Subproject commit 9b7ab2fa020341dee8bf9df6c9cf40003e0136df From e82c42b7c5c1acbcfd5e5fe2b1b850c56e619c0d Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 3 Jul 2018 08:17:26 -0700 Subject: [PATCH 03/26] target/ppc: Enable fp exceptions for user-only While just setting the MSR bits is sufficient, we can tidy the helper code by extracting the MSR test to a helper and then forcing it true for user-only. Signed-off-by: Richard Henderson Signed-off-by: David Gibson --- target/ppc/fpu_helper.c | 15 ++++++++++++--- target/ppc/translate_init.inc.c | 2 ++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index 8675d931b6..9b39c4b3e5 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -36,6 +36,15 @@ static inline float128 float128_snan_to_qnan(float128 x) #define float32_snan_to_qnan(x) ((x) | 0x00400000) #define float16_snan_to_qnan(x) ((x) | 0x0200) +static inline bool fp_exceptions_enabled(CPUPPCState *env) +{ +#ifdef CONFIG_USER_ONLY + return true; +#else + return (env->msr & ((1U << MSR_FE0) | (1U << MSR_FE1))) != 0; +#endif +} + /*****************************************************************************/ /* Floating point operations helpers */ uint64_t helper_float32_to_float64(CPUPPCState *env, uint32_t arg) @@ -207,7 +216,7 @@ uint64_t float_invalid_op_excp(CPUPPCState *env, int op, int set_fpcc) if (ve != 0) { /* Update the floating-point enabled exception summary */ env->fpscr |= 1 << FPSCR_FEX; - if (msr_fe0 != 0 || msr_fe1 != 0) { + if (fp_exceptions_enabled(env)) { /* GETPC() works here because this is inline */ raise_exception_err_ra(env, POWERPC_EXCP_PROGRAM, POWERPC_EXCP_FP | op, GETPC()); @@ -225,7 +234,7 @@ static inline void float_zero_divide_excp(CPUPPCState *env, uintptr_t raddr) if (fpscr_ze != 0) { /* Update the floating-point enabled exception summary */ env->fpscr |= 1 << FPSCR_FEX; - if (msr_fe0 != 0 || msr_fe1 != 0) { + if (fp_exceptions_enabled(env)) { raise_exception_err_ra(env, POWERPC_EXCP_PROGRAM, POWERPC_EXCP_FP | POWERPC_EXCP_FP_ZX, raddr); @@ -555,7 +564,7 @@ static void do_float_check_status(CPUPPCState *env, uintptr_t raddr) if (cs->exception_index == POWERPC_EXCP_PROGRAM && (env->error_code & POWERPC_EXCP_FP)) { /* Differred floating-point exception after target FPR update */ - if (msr_fe0 != 0 || msr_fe1 != 0) { + if (fp_exceptions_enabled(env)) { raise_exception_err_ra(env, cs->exception_index, env->error_code, raddr); } diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c index 7813b1b004..fe0cb98e6d 100644 --- a/target/ppc/translate_init.inc.c +++ b/target/ppc/translate_init.inc.c @@ -10278,6 +10278,8 @@ static void ppc_cpu_reset(CPUState *s) #endif #if defined(CONFIG_USER_ONLY) msr |= (target_ulong)1 << MSR_FP; /* Allow floating point usage */ + msr |= (target_ulong)1 << MSR_FE0; /* Allow floating point exceptions */ + msr |= (target_ulong)1 << MSR_FE1; msr |= (target_ulong)1 << MSR_VR; /* Allow altivec usage */ msr |= (target_ulong)1 << MSR_VSX; /* Allow VSX usage */ msr |= (target_ulong)1 << MSR_SPE; /* Allow SPE usage */ From ae13018d79fb4db7c6a648617bfa0d5976f6e47d Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 3 Jul 2018 08:17:27 -0700 Subject: [PATCH 04/26] target/ppc: Honor fpscr_ze semantics and tidy fdiv Divide by zero, exception taken, leaves the destination register unmodified. Therefore we must raise the exception before returning from helper_fdiv. Move the check from do_float_check_status into helper_fdiv. At the same time, tidy the invalid exception checking so that we rely on softfloat for initial argument validation, and select the kind of invalid operand exception only when we know we must. At the same time, pass and return float64 values directly rather than bounce through the CPU_DoubleU union. Signed-off-by: Richard Henderson Signed-off-by: David Gibson --- target/ppc/fpu_helper.c | 50 +++++++++++++++++++++++------------------ target/ppc/helper.h | 2 +- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index 9b39c4b3e5..c20b9ae672 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -545,9 +545,7 @@ static void do_float_check_status(CPUPPCState *env, uintptr_t raddr) int status = get_float_exception_flags(&env->fp_status); bool inexact_happened = false; - if (status & float_flag_divbyzero) { - float_zero_divide_excp(env, raddr); - } else if (status & float_flag_overflow) { + if (status & float_flag_overflow) { float_overflow_excp(env); } else if (status & float_flag_underflow) { float_underflow_excp(env); @@ -661,30 +659,32 @@ uint64_t helper_fmul(CPUPPCState *env, uint64_t arg1, uint64_t arg2) } /* fdiv - fdiv. */ -uint64_t helper_fdiv(CPUPPCState *env, uint64_t arg1, uint64_t arg2) +float64 helper_fdiv(CPUPPCState *env, float64 arg1, float64 arg2) { - CPU_DoubleU farg1, farg2; + float64 ret = float64_div(arg1, arg2, &env->fp_status); + int status = get_float_exception_flags(&env->fp_status); - farg1.ll = arg1; - farg2.ll = arg2; - - if (unlikely(float64_is_infinity(farg1.d) && - float64_is_infinity(farg2.d))) { - /* Division of infinity by infinity */ - farg1.ll = float_invalid_op_excp(env, POWERPC_EXCP_FP_VXIDI, 1); - } else if (unlikely(float64_is_zero(farg1.d) && float64_is_zero(farg2.d))) { - /* Division of zero by zero */ - farg1.ll = float_invalid_op_excp(env, POWERPC_EXCP_FP_VXZDZ, 1); - } else { - if (unlikely(float64_is_signaling_nan(farg1.d, &env->fp_status) || - float64_is_signaling_nan(farg2.d, &env->fp_status))) { - /* sNaN division */ - float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 1); + if (unlikely(status)) { + if (status & float_flag_invalid) { + /* Determine what kind of invalid operation was seen. */ + if (float64_is_infinity(arg1) && float64_is_infinity(arg2)) { + /* Division of infinity by infinity */ + float_invalid_op_excp(env, POWERPC_EXCP_FP_VXIDI, 1); + } else if (float64_is_zero(arg1) && float64_is_zero(arg2)) { + /* Division of zero by zero */ + float_invalid_op_excp(env, POWERPC_EXCP_FP_VXZDZ, 1); + } else if (float64_is_signaling_nan(arg1, &env->fp_status) || + float64_is_signaling_nan(arg2, &env->fp_status)) { + /* sNaN division */ + float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 1); + } + } + if (status & float_flag_divbyzero) { + float_zero_divide_excp(env, GETPC()); } - farg1.d = float64_div(farg1.d, farg2.d, &env->fp_status); } - return farg1.ll; + return ret; } @@ -1928,6 +1928,9 @@ void helper_##op(CPUPPCState *env, uint32_t opcode) \ tp##_is_signaling_nan(xb.fld, &tstat)) { \ float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, sfprf); \ } \ + } \ + if (unlikely(tstat.float_exception_flags & float_flag_divbyzero)) { \ + float_zero_divide_excp(env, GETPC()); \ } \ \ if (r2sp) { \ @@ -1978,6 +1981,9 @@ void helper_xsdivqp(CPUPPCState *env, uint32_t opcode) float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 1); } } + if (unlikely(tstat.float_exception_flags & float_flag_divbyzero)) { + float_zero_divide_excp(env, GETPC()); + } helper_compute_fprf_float128(env, xt.f128); putVSR(rD(opcode) + 32, &xt, env); diff --git a/target/ppc/helper.h b/target/ppc/helper.h index 5706c2497f..1c453fa0f7 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -88,7 +88,7 @@ DEF_HELPER_2(frim, i64, env, i64) DEF_HELPER_3(fadd, i64, env, i64, i64) DEF_HELPER_3(fsub, i64, env, i64, i64) DEF_HELPER_3(fmul, i64, env, i64, i64) -DEF_HELPER_3(fdiv, i64, env, i64, i64) +DEF_HELPER_3(fdiv, f64, env, f64, f64) DEF_HELPER_4(fmadd, i64, env, i64, i64, i64) DEF_HELPER_4(fmsub, i64, env, i64, i64, i64) DEF_HELPER_4(fnmadd, i64, env, i64, i64, i64) From 79f916331da907b44e5da2c97f57823bcf8db3fb Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 3 Jul 2018 08:17:28 -0700 Subject: [PATCH 05/26] target/ppc: Tidy helper_fmul Tidy the invalid exception checking so that we rely on softfloat for initial argument validation, and select the kind of invalid operand exception only when we know we must. Pass and return float64 values directly rather than bounce through the CPU_DoubleU union. Signed-off-by: Richard Henderson Signed-off-by: David Gibson --- target/ppc/fpu_helper.c | 25 +++++++++++-------------- target/ppc/helper.h | 2 +- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index c20b9ae672..b9ee46eb5f 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -635,27 +635,24 @@ uint64_t helper_fsub(CPUPPCState *env, uint64_t arg1, uint64_t arg2) } /* fmul - fmul. */ -uint64_t helper_fmul(CPUPPCState *env, uint64_t arg1, uint64_t arg2) +float64 helper_fmul(CPUPPCState *env, float64 arg1, float64 arg2) { - CPU_DoubleU farg1, farg2; + float64 ret = float64_mul(arg1, arg2, &env->fp_status); + int status = get_float_exception_flags(&env->fp_status); - farg1.ll = arg1; - farg2.ll = arg2; - - if (unlikely((float64_is_infinity(farg1.d) && float64_is_zero(farg2.d)) || - (float64_is_zero(farg1.d) && float64_is_infinity(farg2.d)))) { - /* Multiplication of zero by infinity */ - farg1.ll = float_invalid_op_excp(env, POWERPC_EXCP_FP_VXIMZ, 1); - } else { - if (unlikely(float64_is_signaling_nan(farg1.d, &env->fp_status) || - float64_is_signaling_nan(farg2.d, &env->fp_status))) { + if (unlikely(status & float_flag_invalid)) { + if ((float64_is_infinity(arg1) && float64_is_zero(arg2)) || + (float64_is_zero(arg1) && float64_is_infinity(arg2))) { + /* Multiplication of zero by infinity */ + float_invalid_op_excp(env, POWERPC_EXCP_FP_VXIMZ, 1); + } else if (float64_is_signaling_nan(arg1, &env->fp_status) || + float64_is_signaling_nan(arg2, &env->fp_status)) { /* sNaN multiplication */ float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 1); } - farg1.d = float64_mul(farg1.d, farg2.d, &env->fp_status); } - return farg1.ll; + return ret; } /* fdiv - fdiv. */ diff --git a/target/ppc/helper.h b/target/ppc/helper.h index 1c453fa0f7..e4f7c55db9 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -87,7 +87,7 @@ DEF_HELPER_2(frim, i64, env, i64) DEF_HELPER_3(fadd, i64, env, i64, i64) DEF_HELPER_3(fsub, i64, env, i64, i64) -DEF_HELPER_3(fmul, i64, env, i64, i64) +DEF_HELPER_3(fmul, f64, env, f64, f64) DEF_HELPER_3(fdiv, f64, env, f64, f64) DEF_HELPER_4(fmadd, i64, env, i64, i64, i64) DEF_HELPER_4(fmsub, i64, env, i64, i64, i64) From ac43cec37e9b1661935e946774ec34f0d50c641e Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 3 Jul 2018 08:17:29 -0700 Subject: [PATCH 06/26] target/ppc: Tidy helper_fadd, helper_fsub Tidy the invalid exception checking so that we rely on softfloat for initial argument validation, and select the kind of invalid operand exception only when we know we must. Pass and return float64 values directly rather than bounce through the CPU_DoubleU union. Note that because we know float_flag_invalid was set, we do not have to re-check the signs of the infinities. Signed-off-by: Richard Henderson Signed-off-by: David Gibson --- target/ppc/fpu_helper.c | 50 +++++++++++++++++------------------------ target/ppc/helper.h | 4 ++-- 2 files changed, 23 insertions(+), 31 deletions(-) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index b9ee46eb5f..7758372ecd 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -587,51 +587,43 @@ void helper_reset_fpstatus(CPUPPCState *env) } /* fadd - fadd. */ -uint64_t helper_fadd(CPUPPCState *env, uint64_t arg1, uint64_t arg2) +float64 helper_fadd(CPUPPCState *env, float64 arg1, float64 arg2) { - CPU_DoubleU farg1, farg2; + float64 ret = float64_add(arg1, arg2, &env->fp_status); + int status = get_float_exception_flags(&env->fp_status); - farg1.ll = arg1; - farg2.ll = arg2; - - if (unlikely(float64_is_infinity(farg1.d) && float64_is_infinity(farg2.d) && - float64_is_neg(farg1.d) != float64_is_neg(farg2.d))) { - /* Magnitude subtraction of infinities */ - farg1.ll = float_invalid_op_excp(env, POWERPC_EXCP_FP_VXISI, 1); - } else { - if (unlikely(float64_is_signaling_nan(farg1.d, &env->fp_status) || - float64_is_signaling_nan(farg2.d, &env->fp_status))) { + if (unlikely(status & float_flag_invalid)) { + if (float64_is_infinity(arg1) && float64_is_infinity(arg2)) { + /* Magnitude subtraction of infinities */ + float_invalid_op_excp(env, POWERPC_EXCP_FP_VXISI, 1); + } else if (float64_is_signaling_nan(arg1, &env->fp_status) || + float64_is_signaling_nan(arg2, &env->fp_status)) { /* sNaN addition */ float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 1); } - farg1.d = float64_add(farg1.d, farg2.d, &env->fp_status); } - return farg1.ll; + return ret; } /* fsub - fsub. */ -uint64_t helper_fsub(CPUPPCState *env, uint64_t arg1, uint64_t arg2) +float64 helper_fsub(CPUPPCState *env, float64 arg1, float64 arg2) { - CPU_DoubleU farg1, farg2; + float64 ret = float64_sub(arg1, arg2, &env->fp_status); + int status = get_float_exception_flags(&env->fp_status); - farg1.ll = arg1; - farg2.ll = arg2; - - if (unlikely(float64_is_infinity(farg1.d) && float64_is_infinity(farg2.d) && - float64_is_neg(farg1.d) == float64_is_neg(farg2.d))) { - /* Magnitude subtraction of infinities */ - farg1.ll = float_invalid_op_excp(env, POWERPC_EXCP_FP_VXISI, 1); - } else { - if (unlikely(float64_is_signaling_nan(farg1.d, &env->fp_status) || - float64_is_signaling_nan(farg2.d, &env->fp_status))) { - /* sNaN subtraction */ + if (unlikely(status & float_flag_invalid)) { + if (float64_is_infinity(arg1) && float64_is_infinity(arg2)) { + /* Magnitude subtraction of infinities */ + float_invalid_op_excp(env, POWERPC_EXCP_FP_VXISI, 1); + } else if (float64_is_signaling_nan(arg1, &env->fp_status) || + float64_is_signaling_nan(arg2, &env->fp_status)) { + /* sNaN addition */ float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 1); } - farg1.d = float64_sub(farg1.d, farg2.d, &env->fp_status); } - return farg1.ll; + return ret; } /* fmul - fmul. */ diff --git a/target/ppc/helper.h b/target/ppc/helper.h index e4f7c55db9..d81806dd2c 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -85,8 +85,8 @@ DEF_HELPER_2(friz, i64, env, i64) DEF_HELPER_2(frip, i64, env, i64) DEF_HELPER_2(frim, i64, env, i64) -DEF_HELPER_3(fadd, i64, env, i64, i64) -DEF_HELPER_3(fsub, i64, env, i64, i64) +DEF_HELPER_3(fadd, f64, env, f64, f64) +DEF_HELPER_3(fsub, f64, env, f64, f64) DEF_HELPER_3(fmul, f64, env, f64, f64) DEF_HELPER_3(fdiv, f64, env, f64, f64) DEF_HELPER_4(fmadd, i64, env, i64, i64, i64) From 49ab52ef69c804264fd2c61a9a61678a23d4fb33 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 3 Jul 2018 08:17:30 -0700 Subject: [PATCH 07/26] target/ppc: Tidy helper_fsqrt Tidy the invalid exception checking so that we rely on softfloat for initial argument validation, and select the kind of invalid operand exception only when we know we must. Pass and return float64 values directly rather than bounce through the CPU_DoubleU union. Signed-off-by: Richard Henderson Signed-off-by: David Gibson --- target/ppc/fpu_helper.c | 29 ++++++++++++++--------------- target/ppc/helper.h | 2 +- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index 7758372ecd..44f3fed17d 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -858,25 +858,24 @@ uint64_t helper_frsp(CPUPPCState *env, uint64_t arg) } /* fsqrt - fsqrt. */ -uint64_t helper_fsqrt(CPUPPCState *env, uint64_t arg) +float64 helper_fsqrt(CPUPPCState *env, float64 arg) { - CPU_DoubleU farg; + float64 ret = float64_sqrt(arg, &env->fp_status); + int status = get_float_exception_flags(&env->fp_status); - farg.ll = arg; - - if (unlikely(float64_is_any_nan(farg.d))) { - if (unlikely(float64_is_signaling_nan(farg.d, &env->fp_status))) { - /* sNaN reciprocal square root */ - float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 1); - farg.ll = float64_snan_to_qnan(farg.ll); + if (unlikely(status & float_flag_invalid)) { + if (unlikely(float64_is_any_nan(arg))) { + if (unlikely(float64_is_signaling_nan(arg, &env->fp_status))) { + /* sNaN square root */ + float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 1); + } + } else { + /* Square root of a negative nonzero number */ + float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSQRT, 1); } - } else if (unlikely(float64_is_neg(farg.d) && !float64_is_zero(farg.d))) { - /* Square root of a negative nonzero number */ - farg.ll = float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSQRT, 1); - } else { - farg.d = float64_sqrt(farg.d, &env->fp_status); } - return farg.ll; + + return ret; } /* fre - fre. */ diff --git a/target/ppc/helper.h b/target/ppc/helper.h index d81806dd2c..7ed72c2337 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -93,7 +93,7 @@ DEF_HELPER_4(fmadd, i64, env, i64, i64, i64) DEF_HELPER_4(fmsub, i64, env, i64, i64, i64) DEF_HELPER_4(fnmadd, i64, env, i64, i64, i64) DEF_HELPER_4(fnmsub, i64, env, i64, i64, i64) -DEF_HELPER_2(fsqrt, i64, env, i64) +DEF_HELPER_2(fsqrt, f64, env, f64) DEF_HELPER_2(fre, i64, env, i64) DEF_HELPER_2(fres, i64, env, i64) DEF_HELPER_2(frsqrte, i64, env, i64) From 384347175588912a75e3b9d14d868fd3d646c9db Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 3 Jul 2018 08:17:31 -0700 Subject: [PATCH 08/26] target/ppc: Honor fpscr_ze semantics and tidy fre, fresqrt Divide by zero, exception taken, leaves the destination register unmodified. Therefore we must raise the exception before returning from the respective helpers. >From helper_fre, divide by zero exception not taken, return the documented +/- 0.5. At the same time, tidy the invalid exception checking so that we rely on softfloat for initial argument validation, and select the kind of invalid operand exception only when we know we must. At the same time, pass and return float64 values directly rather than bounce through the CPU_DoubleU union. Signed-off-by: Richard Henderson Signed-off-by: David Gibson --- target/ppc/fpu_helper.c | 62 ++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 25 deletions(-) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index 44f3fed17d..5af5241ab0 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -879,18 +879,27 @@ float64 helper_fsqrt(CPUPPCState *env, float64 arg) } /* fre - fre. */ -uint64_t helper_fre(CPUPPCState *env, uint64_t arg) +float64 helper_fre(CPUPPCState *env, float64 arg) { - CPU_DoubleU farg; + /* "Estimate" the reciprocal with actual division. */ + float64 ret = float64_div(float64_one, arg, &env->fp_status); + int status = get_float_exception_flags(&env->fp_status); - farg.ll = arg; - - if (unlikely(float64_is_signaling_nan(farg.d, &env->fp_status))) { - /* sNaN reciprocal */ - float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 1); + if (unlikely(status)) { + if (status & float_flag_invalid) { + if (float64_is_signaling_nan(arg, &env->fp_status)) { + /* sNaN reciprocal */ + float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 1); + } + } + if (status & float_flag_divbyzero) { + float_zero_divide_excp(env, GETPC()); + /* For FPSCR.ZE == 0, the result is 1/2. */ + ret = float64_set_sign(float64_half, float64_is_neg(arg)); + } } - farg.d = float64_div(float64_one, farg.d, &env->fp_status); - return farg.d; + + return ret; } /* fres - fres. */ @@ -913,27 +922,30 @@ uint64_t helper_fres(CPUPPCState *env, uint64_t arg) } /* frsqrte - frsqrte. */ -uint64_t helper_frsqrte(CPUPPCState *env, uint64_t arg) +float64 helper_frsqrte(CPUPPCState *env, float64 arg) { - CPU_DoubleU farg; + /* "Estimate" the reciprocal with actual division. */ + float64 rets = float64_sqrt(arg, &env->fp_status); + float64 retd = float64_div(float64_one, rets, &env->fp_status); + int status = get_float_exception_flags(&env->fp_status); - farg.ll = arg; - - if (unlikely(float64_is_any_nan(farg.d))) { - if (unlikely(float64_is_signaling_nan(farg.d, &env->fp_status))) { - /* sNaN reciprocal square root */ - float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 1); - farg.ll = float64_snan_to_qnan(farg.ll); + if (unlikely(status)) { + if (status & float_flag_invalid) { + if (float64_is_signaling_nan(arg, &env->fp_status)) { + /* sNaN reciprocal */ + float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSNAN, 1); + } else { + /* Square root of a negative nonzero number */ + float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSQRT, 1); + } + } + if (status & float_flag_divbyzero) { + /* Reciprocal of (square root of) zero. */ + float_zero_divide_excp(env, GETPC()); } - } else if (unlikely(float64_is_neg(farg.d) && !float64_is_zero(farg.d))) { - /* Reciprocal square root of a negative nonzero number */ - farg.ll = float_invalid_op_excp(env, POWERPC_EXCP_FP_VXSQRT, 1); - } else { - farg.d = float64_sqrt(farg.d, &env->fp_status); - farg.d = float64_div(float64_one, farg.d, &env->fp_status); } - return farg.ll; + return retd; } /* fsel - fsel. */ From 86c0cab11aabb0c2a5cc76825bc05dfe2b367412 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 3 Jul 2018 08:17:32 -0700 Subject: [PATCH 09/26] target/ppc: Use non-arithmetic conversions for fp load/store Memory operations have no side effects on fp state. The use of a "real" conversions between float64 and float32 would raise exceptions for SNaN and out-of-range inputs. Signed-off-by: Richard Henderson Signed-off-by: David Gibson --- target/ppc/fpu_helper.c | 63 ++++++++++++++++++++++++------ target/ppc/helper.h | 4 +- target/ppc/translate/fp-impl.inc.c | 26 +++++------- 3 files changed, 62 insertions(+), 31 deletions(-) diff --git a/target/ppc/fpu_helper.c b/target/ppc/fpu_helper.c index 5af5241ab0..b9bb1b856e 100644 --- a/target/ppc/fpu_helper.c +++ b/target/ppc/fpu_helper.c @@ -47,24 +47,61 @@ static inline bool fp_exceptions_enabled(CPUPPCState *env) /*****************************************************************************/ /* Floating point operations helpers */ -uint64_t helper_float32_to_float64(CPUPPCState *env, uint32_t arg) -{ - CPU_FloatU f; - CPU_DoubleU d; - f.l = arg; - d.d = float32_to_float64(f.f, &env->fp_status); - return d.ll; +/* + * This is the non-arithmatic conversion that happens e.g. on loads. + * In the Power ISA pseudocode, this is called DOUBLE. + */ +uint64_t helper_todouble(uint32_t arg) +{ + uint32_t abs_arg = arg & 0x7fffffff; + uint64_t ret; + + if (likely(abs_arg >= 0x00800000)) { + /* Normalized operand, or Inf, or NaN. */ + ret = (uint64_t)extract32(arg, 30, 2) << 62; + ret |= ((extract32(arg, 30, 1) ^ 1) * (uint64_t)7) << 59; + ret |= (uint64_t)extract32(arg, 0, 30) << 29; + } else { + /* Zero or Denormalized operand. */ + ret = (uint64_t)extract32(arg, 31, 1) << 63; + if (unlikely(abs_arg != 0)) { + /* Denormalized operand. */ + int shift = clz32(abs_arg) - 9; + int exp = -126 - shift + 1023; + ret |= (uint64_t)exp << 52; + ret |= abs_arg << (shift + 29); + } + } + return ret; } -uint32_t helper_float64_to_float32(CPUPPCState *env, uint64_t arg) +/* + * This is the non-arithmatic conversion that happens e.g. on stores. + * In the Power ISA pseudocode, this is called SINGLE. + */ +uint32_t helper_tosingle(uint64_t arg) { - CPU_FloatU f; - CPU_DoubleU d; + int exp = extract64(arg, 52, 11); + uint32_t ret; - d.ll = arg; - f.f = float64_to_float32(d.d, &env->fp_status); - return f.l; + if (likely(exp > 896)) { + /* No denormalization required (includes Inf, NaN). */ + ret = extract64(arg, 62, 2) << 30; + ret |= extract64(arg, 29, 30); + } else { + /* Zero or Denormal result. If the exponent is in bounds for + * a single-precision denormal result, extract the proper bits. + * If the input is not zero, and the exponent is out of bounds, + * then the result is undefined; this underflows to zero. + */ + ret = extract64(arg, 63, 1) << 31; + if (unlikely(exp >= 874)) { + /* Denormal result. */ + ret |= ((1ULL << 52) | extract64(arg, 0, 52)) >> (896 + 30 - exp); + } + } + return ret; } static inline int ppc_float32_get_unbiased_exp(float32 f) diff --git a/target/ppc/helper.h b/target/ppc/helper.h index 7ed72c2337..ef64248bc4 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -61,8 +61,8 @@ DEF_HELPER_2(compute_fprf_float64, void, env, i64) DEF_HELPER_3(store_fpscr, void, env, i64, i32) DEF_HELPER_2(fpscr_clrbit, void, env, i32) DEF_HELPER_2(fpscr_setbit, void, env, i32) -DEF_HELPER_2(float64_to_float32, i32, env, i64) -DEF_HELPER_2(float32_to_float64, i64, env, i32) +DEF_HELPER_FLAGS_1(todouble, TCG_CALL_NO_RWG_SE, i64, i32) +DEF_HELPER_FLAGS_1(tosingle, TCG_CALL_NO_RWG_SE, i32, i64) DEF_HELPER_4(fcmpo, void, env, i64, i64, i32) DEF_HELPER_4(fcmpu, void, env, i64, i64, i32) diff --git a/target/ppc/translate/fp-impl.inc.c b/target/ppc/translate/fp-impl.inc.c index 2fbd4d4f38..a6f522b85c 100644 --- a/target/ppc/translate/fp-impl.inc.c +++ b/target/ppc/translate/fp-impl.inc.c @@ -660,15 +660,12 @@ GEN_LDUF(name, ldop, op | 0x21, type); \ GEN_LDUXF(name, ldop, op | 0x01, type); \ GEN_LDXF(name, ldop, 0x17, op | 0x00, type) -static inline void gen_qemu_ld32fs(DisasContext *ctx, TCGv_i64 arg1, TCGv arg2) +static void gen_qemu_ld32fs(DisasContext *ctx, TCGv_i64 dest, TCGv addr) { - TCGv t0 = tcg_temp_new(); - TCGv_i32 t1 = tcg_temp_new_i32(); - gen_qemu_ld32u(ctx, t0, arg2); - tcg_gen_trunc_tl_i32(t1, t0); - tcg_temp_free(t0); - gen_helper_float32_to_float64(arg1, cpu_env, t1); - tcg_temp_free_i32(t1); + TCGv_i32 tmp = tcg_temp_new_i32(); + tcg_gen_qemu_ld_i32(tmp, addr, ctx->mem_idx, DEF_MEMOP(MO_UL)); + gen_helper_todouble(dest, tmp); + tcg_temp_free_i32(tmp); } /* lfd lfdu lfdux lfdx */ @@ -836,15 +833,12 @@ GEN_STUF(name, stop, op | 0x21, type); \ GEN_STUXF(name, stop, op | 0x01, type); \ GEN_STXF(name, stop, 0x17, op | 0x00, type) -static inline void gen_qemu_st32fs(DisasContext *ctx, TCGv_i64 arg1, TCGv arg2) +static void gen_qemu_st32fs(DisasContext *ctx, TCGv_i64 src, TCGv addr) { - TCGv_i32 t0 = tcg_temp_new_i32(); - TCGv t1 = tcg_temp_new(); - gen_helper_float64_to_float32(t0, cpu_env, arg1); - tcg_gen_extu_i32_tl(t1, t0); - tcg_temp_free_i32(t0); - gen_qemu_st32(ctx, t1, arg2); - tcg_temp_free(t1); + TCGv_i32 tmp = tcg_temp_new_i32(); + gen_helper_tosingle(tmp, src); + tcg_gen_qemu_st_i32(tmp, addr, ctx->mem_idx, DEF_MEMOP(MO_UL)); + tcg_temp_free_i32(tmp); } /* stfd stfdu stfdux stfdx */ From 56e0e961ec14f7f89f9d5f20e12b61b9510ed1ad Mon Sep 17 00:00:00 2001 From: Yasmin Beatriz Date: Mon, 16 Jul 2018 19:03:12 +0000 Subject: [PATCH 10/26] target/ppc: bcdsub fix sign when result is zero When the result of bcdsub is equal to zero, the result sign may be set to negative in some cases, and this does not follow the Power ISA specifications as to decimal integer arithmetic instructions. Signed-off-by: Yasmin Beatriz Signed-off-by: David Gibson --- target/ppc/int_helper.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/ppc/int_helper.c b/target/ppc/int_helper.c index d52338ed71..ac7f92d7ae 100644 --- a/target/ppc/int_helper.c +++ b/target/ppc/int_helper.c @@ -2747,6 +2747,9 @@ uint32_t helper_bcdadd(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, uint32_t ps) result.u8[BCD_DIG_BYTE(0)] = bcd_preferred_sgn(sgna, ps); zero = bcd_sub_mag(&result, a, b, &invalid, &overflow); cr = (sgna > 0) ? CRF_GT : CRF_LT; + } else if (bcd_cmp_mag(a, b) == 0) { + result.u8[BCD_DIG_BYTE(0)] = bcd_preferred_sgn(0, ps); + zero = bcd_sub_mag(&result, b, a, &invalid, &overflow); } else { result.u8[BCD_DIG_BYTE(0)] = bcd_preferred_sgn(sgnb, ps); zero = bcd_sub_mag(&result, b, a, &invalid, &overflow); From c26bc185b76369aab1a86bd726d5ea9e94c297a0 Mon Sep 17 00:00:00 2001 From: Alexey Kardashevskiy Date: Wed, 20 Jun 2018 19:10:12 +1000 Subject: [PATCH 11/26] vfio/spapr: Allow backing bigger guest IOMMU pages with smaller physical pages At the moment the PPC64/pseries guest only supports 4K/64K/16M IOMMU pages and POWER8 CPU supports the exact same set of page size so so far things worked fine. However POWER9 supports different set of sizes - 4K/64K/2M/1G and the last two - 2M and 1G - are not even allowed in the paravirt interface (RTAS DDW) so we always end up using 64K IOMMU pages, although we could back guest's 16MB IOMMU pages with 2MB pages on the host. This stores the supported host IOMMU page sizes in VFIOContainer and uses this later when creating a new DMA window. This uses the system page size (64k normally, 2M/16M/1G if hugepages used) as the upper limit of the IOMMU pagesize. This changes the type of @pagesize to uint64_t as this is what memory_region_iommu_get_min_page_size() returns and clz64() takes. There should be no behavioral changes on platforms other than pseries. The guest will keep using the IOMMU page size selected by the PHB pagesize property as this only changes the underlying hardware TCE table granularity. Signed-off-by: Alexey Kardashevskiy Signed-off-by: David Gibson --- hw/vfio/common.c | 3 +++ hw/vfio/spapr.c | 21 ++++++++++++++++++++- include/hw/vfio/vfio-common.h | 1 + 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/hw/vfio/common.c b/hw/vfio/common.c index cd1f4af18a..3f31f80b12 100644 --- a/hw/vfio/common.c +++ b/hw/vfio/common.c @@ -1136,6 +1136,7 @@ static int vfio_connect_container(VFIOGroup *group, AddressSpace *as, info.iova_pgsizes = 4096; } vfio_host_win_add(container, 0, (hwaddr)-1, info.iova_pgsizes); + container->pgsizes = info.iova_pgsizes; } else if (ioctl(fd, VFIO_CHECK_EXTENSION, VFIO_SPAPR_TCE_IOMMU) || ioctl(fd, VFIO_CHECK_EXTENSION, VFIO_SPAPR_TCE_v2_IOMMU)) { struct vfio_iommu_spapr_tce_info info; @@ -1200,6 +1201,7 @@ static int vfio_connect_container(VFIOGroup *group, AddressSpace *as, } if (v2) { + container->pgsizes = info.ddw.pgsizes; /* * There is a default window in just created container. * To make region_add/del simpler, we better remove this @@ -1214,6 +1216,7 @@ static int vfio_connect_container(VFIOGroup *group, AddressSpace *as, } } else { /* The default table uses 4K pages */ + container->pgsizes = 0x1000; vfio_host_win_add(container, info.dma32_window_start, info.dma32_window_start + info.dma32_window_size - 1, diff --git a/hw/vfio/spapr.c b/hw/vfio/spapr.c index 259397c002..becf71a3fc 100644 --- a/hw/vfio/spapr.c +++ b/hw/vfio/spapr.c @@ -15,6 +15,7 @@ #include "hw/vfio/vfio-common.h" #include "hw/hw.h" +#include "exec/ram_addr.h" #include "qemu/error-report.h" #include "trace.h" @@ -144,9 +145,27 @@ int vfio_spapr_create_window(VFIOContainer *container, { int ret; IOMMUMemoryRegion *iommu_mr = IOMMU_MEMORY_REGION(section->mr); - unsigned pagesize = memory_region_iommu_get_min_page_size(iommu_mr); + uint64_t pagesize = memory_region_iommu_get_min_page_size(iommu_mr); unsigned entries, pages; struct vfio_iommu_spapr_tce_create create = { .argsz = sizeof(create) }; + long systempagesize = qemu_getrampagesize(); + + /* + * The host might not support the guest supported IOMMU page size, + * so we will use smaller physical IOMMU pages to back them. + */ + if (pagesize > systempagesize) { + pagesize = systempagesize; + } + pagesize = 1ULL << (63 - clz64(container->pgsizes & + (pagesize | (pagesize - 1)))); + if (!pagesize) { + error_report("Host doesn't support page size 0x%"PRIx64 + ", the supported mask is 0x%lx", + memory_region_iommu_get_min_page_size(iommu_mr), + container->pgsizes); + return -EINVAL; + } /* * FIXME: For VFIO iommu types which have KVM acceleration to diff --git a/include/hw/vfio/vfio-common.h b/include/hw/vfio/vfio-common.h index 15ea6c26fd..821def0565 100644 --- a/include/hw/vfio/vfio-common.h +++ b/include/hw/vfio/vfio-common.h @@ -73,6 +73,7 @@ typedef struct VFIOContainer { unsigned iommu_type; int error; bool initialized; + unsigned long pgsizes; /* * This assumes the host IOMMU can support only a single * contiguous IOVA window. We may need to generalize that in From 71c55a1eefef66cfc8afd686184d6371e35352cb Mon Sep 17 00:00:00 2001 From: Greg Kurz Date: Tue, 31 Jul 2018 12:56:49 +0200 Subject: [PATCH 12/26] xics: don't include "target/ppc/cpu-qom.h" in "hw/ppc/xics.h" The last user of the PowerPCCPU typedef in "hw/ppc/xics.h" vanished with commit b1fd36c363d73969841468146ebfb9fd84a5ee52. It isn't necessary to include "target/ppc/cpu-qom.h" there anymore. Signed-off-by: Greg Kurz Signed-off-by: David Gibson --- include/hw/ppc/xics.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/hw/ppc/xics.h b/include/hw/ppc/xics.h index 6ac8a9392d..9c2916c9b2 100644 --- a/include/hw/ppc/xics.h +++ b/include/hw/ppc/xics.h @@ -29,7 +29,6 @@ #define XICS_H #include "hw/qdev.h" -#include "target/ppc/cpu-qom.h" #define XICS_IPI 0x2 #define XICS_BUID 0x1 From d03b174a839d32f8beef8082753afdcf732be7b6 Mon Sep 17 00:00:00 2001 From: Yasmin Beatriz Date: Mon, 30 Jul 2018 17:09:17 +0000 Subject: [PATCH 13/26] target/ppc: simplify bcdadd/sub functions After solving a corner case in bcdsub, this patch simplifies the logic of both bcdadd/sub instructions by removing some unnecessary local flags. This commit also rearranges some if-else conditions in bcdadd to make it easier to read. Signed-off-by: Yasmin Beatriz Signed-off-by: David Gibson --- target/ppc/int_helper.c | 49 +++++++++++++++-------------------------- 1 file changed, 18 insertions(+), 31 deletions(-) diff --git a/target/ppc/int_helper.c b/target/ppc/int_helper.c index ac7f92d7ae..fcac90a4a9 100644 --- a/target/ppc/int_helper.c +++ b/target/ppc/int_helper.c @@ -2671,16 +2671,14 @@ static int bcd_cmp_mag(ppc_avr_t *a, ppc_avr_t *b) return 0; } -static int bcd_add_mag(ppc_avr_t *t, ppc_avr_t *a, ppc_avr_t *b, int *invalid, +static void bcd_add_mag(ppc_avr_t *t, ppc_avr_t *a, ppc_avr_t *b, int *invalid, int *overflow) { int carry = 0; int i; - int is_zero = 1; for (i = 1; i <= 31; i++) { uint8_t digit = bcd_get_digit(a, i, invalid) + bcd_get_digit(b, i, invalid) + carry; - is_zero &= (digit == 0); if (digit > 9) { carry = 1; digit -= 10; @@ -2689,26 +2687,20 @@ static int bcd_add_mag(ppc_avr_t *t, ppc_avr_t *a, ppc_avr_t *b, int *invalid, } bcd_put_digit(t, digit, i); - - if (unlikely(*invalid)) { - return -1; - } } *overflow = carry; - return is_zero; } -static int bcd_sub_mag(ppc_avr_t *t, ppc_avr_t *a, ppc_avr_t *b, int *invalid, +static void bcd_sub_mag(ppc_avr_t *t, ppc_avr_t *a, ppc_avr_t *b, int *invalid, int *overflow) { int carry = 0; int i; - int is_zero = 1; + for (i = 1; i <= 31; i++) { uint8_t digit = bcd_get_digit(a, i, invalid) - bcd_get_digit(b, i, invalid) + carry; - is_zero &= (digit == 0); if (digit & 0x80) { carry = -1; digit += 10; @@ -2717,14 +2709,9 @@ static int bcd_sub_mag(ppc_avr_t *t, ppc_avr_t *a, ppc_avr_t *b, int *invalid, } bcd_put_digit(t, digit, i); - - if (unlikely(*invalid)) { - return -1; - } } *overflow = carry; - return is_zero; } uint32_t helper_bcdadd(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, uint32_t ps) @@ -2734,26 +2721,28 @@ uint32_t helper_bcdadd(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, uint32_t ps) int sgnb = bcd_get_sgn(b); int invalid = (sgna == 0) || (sgnb == 0); int overflow = 0; - int zero = 0; uint32_t cr = 0; ppc_avr_t result = { .u64 = { 0, 0 } }; if (!invalid) { if (sgna == sgnb) { result.u8[BCD_DIG_BYTE(0)] = bcd_preferred_sgn(sgna, ps); - zero = bcd_add_mag(&result, a, b, &invalid, &overflow); - cr = (sgna > 0) ? CRF_GT : CRF_LT; - } else if (bcd_cmp_mag(a, b) > 0) { - result.u8[BCD_DIG_BYTE(0)] = bcd_preferred_sgn(sgna, ps); - zero = bcd_sub_mag(&result, a, b, &invalid, &overflow); - cr = (sgna > 0) ? CRF_GT : CRF_LT; - } else if (bcd_cmp_mag(a, b) == 0) { - result.u8[BCD_DIG_BYTE(0)] = bcd_preferred_sgn(0, ps); - zero = bcd_sub_mag(&result, b, a, &invalid, &overflow); + bcd_add_mag(&result, a, b, &invalid, &overflow); + cr = bcd_cmp_zero(&result); } else { - result.u8[BCD_DIG_BYTE(0)] = bcd_preferred_sgn(sgnb, ps); - zero = bcd_sub_mag(&result, b, a, &invalid, &overflow); - cr = (sgnb > 0) ? CRF_GT : CRF_LT; + int magnitude = bcd_cmp_mag(a, b); + if (magnitude > 0) { + result.u8[BCD_DIG_BYTE(0)] = bcd_preferred_sgn(sgna, ps); + bcd_sub_mag(&result, a, b, &invalid, &overflow); + cr = (sgna > 0) ? CRF_GT : CRF_LT; + } else if (magnitude < 0) { + result.u8[BCD_DIG_BYTE(0)] = bcd_preferred_sgn(sgnb, ps); + bcd_sub_mag(&result, b, a, &invalid, &overflow); + cr = (sgnb > 0) ? CRF_GT : CRF_LT; + } else { + result.u8[BCD_DIG_BYTE(0)] = bcd_preferred_sgn(0, ps); + cr = CRF_EQ; + } } } @@ -2762,8 +2751,6 @@ uint32_t helper_bcdadd(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, uint32_t ps) cr = CRF_SO; } else if (overflow) { cr |= CRF_SO; - } else if (zero) { - cr = CRF_EQ; } *r = result; From d45360d93d71578919ae8065a142beb941a900fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Date: Mon, 30 Jul 2018 16:11:31 +0200 Subject: [PATCH 14/26] spapr: Add a pseries-3.1 machine type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Cédric Le Goater Reviewed-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index e5d825374e..a732f59205 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4059,19 +4059,38 @@ static const TypeInfo spapr_machine_info = { } \ type_init(spapr_machine_register_##suffix) -/* - * pseries-3.0 + /* + * pseries-3.1 */ -static void spapr_machine_3_0_instance_options(MachineState *machine) +static void spapr_machine_3_1_instance_options(MachineState *machine) { } -static void spapr_machine_3_0_class_options(MachineClass *mc) +static void spapr_machine_3_1_class_options(MachineClass *mc) { /* Defaults for the latest behaviour inherited from the base class */ } -DEFINE_SPAPR_MACHINE(3_0, "3.0", true); +DEFINE_SPAPR_MACHINE(3_1, "3.1", true); + +/* + * pseries-3.0 + */ +#define SPAPR_COMPAT_3_0 \ + HW_COMPAT_3_0 + +static void spapr_machine_3_0_instance_options(MachineState *machine) +{ + spapr_machine_3_1_instance_options(machine); +} + +static void spapr_machine_3_0_class_options(MachineClass *mc) +{ + spapr_machine_3_1_class_options(mc); + SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_3_0); +} + +DEFINE_SPAPR_MACHINE(3_0, "3.0", false); /* * pseries-2.12 From 82cffa2eb255731b8402e206d0434cc884d99e54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Date: Mon, 30 Jul 2018 16:11:32 +0200 Subject: [PATCH 15/26] spapr: introduce a fixed IRQ number space MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This proposal introduces a new IRQ number space layout using static numbers for all devices, depending on a device index, and a bitmap allocator for the MSI IRQ numbers which are negotiated by the guest at runtime. As the VIO device model does not have a device index but a "reg" property, we introduce a formula to compute an IRQ number from a "reg" value. It should minimize most of the collisions. The previous layout is kept in pre-3.1 machines raising the 'legacy_irq_allocation' machine class flag. Signed-off-by: Cédric Le Goater Reviewed-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/Makefile.objs | 2 +- hw/ppc/spapr.c | 32 ++++++++++++++++++ hw/ppc/spapr_events.c | 12 ++++--- hw/ppc/spapr_irq.c | 56 ++++++++++++++++++++++++++++++++ hw/ppc/spapr_pci.c | 29 +++++++++++++---- hw/ppc/spapr_vio.c | 66 ++++++++++++++++++++++++++++++++++---- include/hw/ppc/spapr.h | 5 +++ include/hw/ppc/spapr_irq.h | 32 ++++++++++++++++++ 8 files changed, 216 insertions(+), 18 deletions(-) create mode 100644 hw/ppc/spapr_irq.c create mode 100644 include/hw/ppc/spapr_irq.h diff --git a/hw/ppc/Makefile.objs b/hw/ppc/Makefile.objs index bcab6323b7..4ab5564672 100644 --- a/hw/ppc/Makefile.objs +++ b/hw/ppc/Makefile.objs @@ -4,7 +4,7 @@ obj-y += ppc.o ppc_booke.o fdt.o obj-$(CONFIG_PSERIES) += spapr.o spapr_caps.o spapr_vio.o spapr_events.o obj-$(CONFIG_PSERIES) += spapr_hcall.o spapr_iommu.o spapr_rtas.o obj-$(CONFIG_PSERIES) += spapr_pci.o spapr_rtc.o spapr_drc.o spapr_rng.o -obj-$(CONFIG_PSERIES) += spapr_cpu_core.o spapr_ovec.o +obj-$(CONFIG_PSERIES) += spapr_cpu_core.o spapr_ovec.o spapr_irq.o # IBM PowerNV obj-$(CONFIG_POWERNV) += pnv.o pnv_xscom.o pnv_core.o pnv_lpc.o pnv_psi.o pnv_occ.o pnv_bmc.o ifeq ($(CONFIG_PCI)$(CONFIG_PSERIES)$(CONFIG_LINUX), yyy) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index a732f59205..6a78ceb708 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -189,6 +189,11 @@ static void xics_system_init(MachineState *machine, int nr_irqs, Error **errp) sPAPRMachineState *spapr = SPAPR_MACHINE(machine); Error *local_err = NULL; + /* Initialize the MSI IRQ allocator. */ + if (!SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { + spapr_irq_msi_init(spapr, XICS_IRQ_BASE + nr_irqs - SPAPR_IRQ_MSI); + } + if (kvm_enabled()) { if (machine_kernel_irqchip_allowed(machine) && !xics_kvm_init(spapr, &local_err)) { @@ -1636,6 +1641,10 @@ static void spapr_machine_reset(void) ppc_set_compat(first_ppc_cpu, spapr->max_compat_pvr, &error_fatal); } + if (!SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { + spapr_irq_msi_reset(spapr); + } + qemu_devices_reset(); /* DRC reset may cause a device to be unplugged. This will cause troubles @@ -1910,6 +1919,24 @@ static const VMStateDescription vmstate_spapr_patb_entry = { }, }; +static bool spapr_irq_map_needed(void *opaque) +{ + sPAPRMachineState *spapr = opaque; + + return spapr->irq_map && !bitmap_empty(spapr->irq_map, spapr->irq_map_nr); +} + +static const VMStateDescription vmstate_spapr_irq_map = { + .name = "spapr_irq_map", + .version_id = 1, + .minimum_version_id = 1, + .needed = spapr_irq_map_needed, + .fields = (VMStateField[]) { + VMSTATE_BITMAP(irq_map, sPAPRMachineState, 0, irq_map_nr), + VMSTATE_END_OF_LIST() + }, +}; + static const VMStateDescription vmstate_spapr = { .name = "spapr", .version_id = 3, @@ -1937,6 +1964,7 @@ static const VMStateDescription vmstate_spapr = { &vmstate_spapr_cap_cfpc, &vmstate_spapr_cap_sbbc, &vmstate_spapr_cap_ibs, + &vmstate_spapr_irq_map, NULL } }; @@ -4086,8 +4114,12 @@ static void spapr_machine_3_0_instance_options(MachineState *machine) static void spapr_machine_3_0_class_options(MachineClass *mc) { + sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc); + spapr_machine_3_1_class_options(mc); SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_3_0); + + smc->legacy_irq_allocation = true; } DEFINE_SPAPR_MACHINE(3_0, "3.0", false); diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c index e4f5946a21..32719a1b72 100644 --- a/hw/ppc/spapr_events.c +++ b/hw/ppc/spapr_events.c @@ -707,9 +707,11 @@ void spapr_clear_pending_events(sPAPRMachineState *spapr) void spapr_events_init(sPAPRMachineState *spapr) { - int epow_irq; + int epow_irq = SPAPR_IRQ_EPOW; - epow_irq = spapr_irq_findone(spapr, &error_fatal); + if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { + epow_irq = spapr_irq_findone(spapr, &error_fatal); + } spapr_irq_claim(spapr, epow_irq, false, &error_fatal); @@ -729,9 +731,11 @@ void spapr_events_init(sPAPRMachineState *spapr) * checking that it's enabled. */ if (spapr->use_hotplug_event_source) { - int hp_irq; + int hp_irq = SPAPR_IRQ_HOTPLUG; - hp_irq = spapr_irq_findone(spapr, &error_fatal); + if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { + hp_irq = spapr_irq_findone(spapr, &error_fatal); + } spapr_irq_claim(spapr, hp_irq, false, &error_fatal); diff --git a/hw/ppc/spapr_irq.c b/hw/ppc/spapr_irq.c new file mode 100644 index 0000000000..24e9c1d443 --- /dev/null +++ b/hw/ppc/spapr_irq.c @@ -0,0 +1,56 @@ +/* + * QEMU PowerPC sPAPR IRQ interface + * + * Copyright (c) 2018, IBM Corporation. + * + * This code is licensed under the GPL version 2 or later. See the + * COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "qemu/error-report.h" +#include "qapi/error.h" +#include "hw/ppc/spapr.h" +#include "hw/ppc/xics.h" + +void spapr_irq_msi_init(sPAPRMachineState *spapr, uint32_t nr_msis) +{ + spapr->irq_map_nr = nr_msis; + spapr->irq_map = bitmap_new(spapr->irq_map_nr); +} + +int spapr_irq_msi_alloc(sPAPRMachineState *spapr, uint32_t num, bool align, + Error **errp) +{ + int irq; + + /* + * The 'align_mask' parameter of bitmap_find_next_zero_area() + * should be one less than a power of 2; 0 means no + * alignment. Adapt the 'align' value of the former allocator + * to fit the requirements of bitmap_find_next_zero_area() + */ + align -= 1; + + irq = bitmap_find_next_zero_area(spapr->irq_map, spapr->irq_map_nr, 0, num, + align); + if (irq == spapr->irq_map_nr) { + error_setg(errp, "can't find a free %d-IRQ block", num); + return -1; + } + + bitmap_set(spapr->irq_map, irq, num); + + return irq + SPAPR_IRQ_MSI; +} + +void spapr_irq_msi_free(sPAPRMachineState *spapr, int irq, uint32_t num) +{ + bitmap_clear(spapr->irq_map, irq - SPAPR_IRQ_MSI, num); +} + +void spapr_irq_msi_reset(sPAPRMachineState *spapr) +{ + bitmap_clear(spapr->irq_map, 0, spapr->irq_map_nr); +} diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c index 497b896c7d..3791ced6c5 100644 --- a/hw/ppc/spapr_pci.c +++ b/hw/ppc/spapr_pci.c @@ -334,6 +334,9 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, sPAPRMachineState *spapr, return; } + if (!SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { + spapr_irq_msi_free(spapr, msi->first_irq, msi->num); + } spapr_irq_free(spapr, msi->first_irq, msi->num); if (msi_present(pdev)) { spapr_msi_setmsg(pdev, 0, false, 0, 0); @@ -372,7 +375,13 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, sPAPRMachineState *spapr, } /* Allocate MSIs */ - irq = spapr_irq_find(spapr, req_num, ret_intr_type == RTAS_TYPE_MSI, &err); + if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { + irq = spapr_irq_find(spapr, req_num, ret_intr_type == RTAS_TYPE_MSI, + &err); + } else { + irq = spapr_irq_msi_alloc(spapr, req_num, + ret_intr_type == RTAS_TYPE_MSI, &err); + } if (err) { error_reportf_err(err, "Can't allocate MSIs for device %x: ", config_addr); @@ -392,6 +401,9 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, sPAPRMachineState *spapr, /* Release previous MSIs */ if (msi) { + if (!SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { + spapr_irq_msi_free(spapr, msi->first_irq, msi->num); + } spapr_irq_free(spapr, msi->first_irq, msi->num); g_hash_table_remove(phb->msi, &config_addr); } @@ -1705,14 +1717,16 @@ static void spapr_phb_realize(DeviceState *dev, Error **errp) /* Initialize the LSI table */ for (i = 0; i < PCI_NUM_PINS; i++) { - uint32_t irq; + uint32_t irq = SPAPR_IRQ_PCI_LSI + sphb->index * PCI_NUM_PINS + i; Error *local_err = NULL; - irq = spapr_irq_findone(spapr, &local_err); - if (local_err) { - error_propagate(errp, local_err); - error_prepend(errp, "can't allocate LSIs: "); - return; + if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { + irq = spapr_irq_findone(spapr, &local_err); + if (local_err) { + error_propagate(errp, local_err); + error_prepend(errp, "can't allocate LSIs: "); + return; + } } spapr_irq_claim(spapr, irq, true, &local_err); @@ -2123,6 +2137,7 @@ int spapr_populate_pci_dt(sPAPRPHBState *phb, _FDT(fdt_setprop(fdt, bus_off, "ranges", &ranges, sizeof_ranges)); _FDT(fdt_setprop(fdt, bus_off, "reg", &bus_reg, sizeof(bus_reg))); _FDT(fdt_setprop_cell(fdt, bus_off, "ibm,pci-config-space-type", 0x1)); + /* TODO: fine tune the total count of allocatable MSIs per PHB */ _FDT(fdt_setprop_cell(fdt, bus_off, "ibm,pe-total-#msi", XICS_IRQS_SPAPR)); /* Dynamic DMA window */ diff --git a/hw/ppc/spapr_vio.c b/hw/ppc/spapr_vio.c index be9af71437..840d4a3c45 100644 --- a/hw/ppc/spapr_vio.c +++ b/hw/ppc/spapr_vio.c @@ -37,12 +37,13 @@ #include "hw/ppc/spapr.h" #include "hw/ppc/spapr_vio.h" -#include "hw/ppc/xics.h" #include "hw/ppc/fdt.h" #include "trace.h" #include +#define SPAPR_VIO_REG_BASE 0x71000000 + static void spapr_vio_get_irq(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { @@ -445,6 +446,55 @@ static void spapr_vio_busdev_reset(DeviceState *qdev) } } +/* + * The register property of a VIO device is defined in livirt using + * 0x1000 as a base register number plus a 0x1000 increment. For the + * VIO tty device, the base number is changed to 0x30000000. QEMU uses + * a base register number of 0x71000000 and then a simple increment. + * + * The formula below tries to compute a unique index number from the + * register value that will be used to define the IRQ number of the + * VIO device. + * + * A maximum of 256 VIO devices is covered. Collisions are possible + * but they will be detected when the IRQ is claimed. + */ +static inline uint32_t spapr_vio_reg_to_irq(uint32_t reg) +{ + uint32_t irq; + + if (reg >= SPAPR_VIO_REG_BASE) { + /* + * VIO device register values when allocated by QEMU. For + * these, we simply mask the high bits to fit the overall + * range: [0x00 - 0xff]. + * + * The nvram VIO device (reg=0x71000000) is a static device of + * the pseries machine and so is always allocated by QEMU. Its + * IRQ number is 0x0. + */ + irq = reg & 0xff; + + } else if (reg >= 0x30000000) { + /* + * VIO tty devices register values, when allocated by livirt, + * are mapped in range [0xf0 - 0xff], gives us a maximum of 16 + * vtys. + */ + irq = 0xf0 | ((reg >> 12) & 0xf); + + } else { + /* + * Other VIO devices register values, when allocated by + * livirt, should be mapped in range [0x00 - 0xef]. Conflicts + * will be detected when IRQ is claimed. + */ + irq = (reg >> 12) & 0xff; + } + + return SPAPR_IRQ_VIO | irq; +} + static void spapr_vio_busdev_realize(DeviceState *qdev, Error **errp) { sPAPRMachineState *spapr = SPAPR_MACHINE(qdev_get_machine()); @@ -485,10 +535,14 @@ static void spapr_vio_busdev_realize(DeviceState *qdev, Error **errp) } if (!dev->irq) { - dev->irq = spapr_irq_findone(spapr, &local_err); - if (local_err) { - error_propagate(errp, local_err); - return; + dev->irq = spapr_vio_reg_to_irq(dev->reg); + + if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { + dev->irq = spapr_irq_findone(spapr, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } } } @@ -557,7 +611,7 @@ VIOsPAPRBus *spapr_vio_bus_init(void) /* Create bus on bridge device */ qbus = qbus_create(TYPE_SPAPR_VIO_BUS, dev, "spapr-vio"); bus = SPAPR_VIO_BUS(qbus); - bus->next_reg = 0x71000000; + bus->next_reg = SPAPR_VIO_REG_BASE; /* hcall-vio */ spapr_register_hypercall(H_VIO_SIGNAL, h_vio_signal); diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 7e5de1a6fd..73067f5ee8 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -8,6 +8,7 @@ #include "hw/ppc/spapr_drc.h" #include "hw/mem/pc-dimm.h" #include "hw/ppc/spapr_ovec.h" +#include "hw/ppc/spapr_irq.h" struct VIOsPAPRBus; struct sPAPRPHBState; @@ -101,6 +102,8 @@ struct sPAPRMachineClass { bool dr_lmb_enabled; /* enable dynamic-reconfig/hotplug of LMBs */ bool use_ohci_by_default; /* use USB-OHCI instead of XHCI */ bool pre_2_10_has_unused_icps; + bool legacy_irq_allocation; + void (*phb_placement)(sPAPRMachineState *spapr, uint32_t index, uint64_t *buid, hwaddr *pio, hwaddr *mmio32, hwaddr *mmio64, @@ -167,6 +170,8 @@ struct sPAPRMachineState { char *kvm_type; const char *icp_type; + int32_t irq_map_nr; + unsigned long *irq_map; bool cmd_line_caps[SPAPR_CAP_NUM]; sPAPRCapabilities def, eff, mig; diff --git a/include/hw/ppc/spapr_irq.h b/include/hw/ppc/spapr_irq.h new file mode 100644 index 0000000000..6f7f505488 --- /dev/null +++ b/include/hw/ppc/spapr_irq.h @@ -0,0 +1,32 @@ +/* + * QEMU PowerPC sPAPR IRQ backend definitions + * + * Copyright (c) 2018, IBM Corporation. + * + * This code is licensed under the GPL version 2 or later. See the + * COPYING file in the top-level directory. + */ + +#ifndef HW_SPAPR_IRQ_H +#define HW_SPAPR_IRQ_H + +/* + * IRQ range offsets per device type + */ +#define SPAPR_IRQ_EPOW 0x1000 /* XICS_IRQ_BASE offset */ +#define SPAPR_IRQ_HOTPLUG 0x1001 +#define SPAPR_IRQ_VIO 0x1100 /* 256 VIO devices */ +#define SPAPR_IRQ_PCI_LSI 0x1200 /* 32+ PHBs devices */ + +#define SPAPR_IRQ_MSI 0x1300 /* Offset of the dynamic range covered + * by the bitmap allocator */ + +typedef struct sPAPRMachineState sPAPRMachineState; + +void spapr_irq_msi_init(sPAPRMachineState *spapr, uint32_t nr_msis); +int spapr_irq_msi_alloc(sPAPRMachineState *spapr, uint32_t num, bool align, + Error **errp); +void spapr_irq_msi_free(sPAPRMachineState *spapr, int irq, uint32_t num); +void spapr_irq_msi_reset(sPAPRMachineState *spapr); + +#endif From 7d622ed3ff540f0678a3cca681b8a4a2e72dbc44 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Thu, 2 Aug 2018 15:44:28 +0100 Subject: [PATCH 16/26] hw/ppc/prep: Remove ifdeffed-out stub of XCSR code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The prep machine has some code which is stubs of accessors for XCSR registers. This has been disabled via #if 0 since commit b6b8bd1819ff in 2004, and doesn't have any actual interesting content. It also uses the deprecated old_mmio accessor functions. Remove it entirely. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Hervé Poussineau Signed-off-by: David Gibson --- hw/ppc/prep.c | 97 +++------------------------------------------------ 1 file changed, 4 insertions(+), 93 deletions(-) diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c index 3401570d98..b26138e5c4 100644 --- a/hw/ppc/prep.c +++ b/hw/ppc/prep.c @@ -78,94 +78,6 @@ static int ne2000_irq[NE2000_NB_MAX] = { 9, 10, 11, 3, 4, 5 }; /* ISA IO ports bridge */ #define PPC_IO_BASE 0x80000000 -/* PowerPC control and status registers */ -#if 0 // Not used -static struct { - /* IDs */ - uint32_t veni_devi; - uint32_t revi; - /* Control and status */ - uint32_t gcsr; - uint32_t xcfr; - uint32_t ct32; - uint32_t mcsr; - /* General purpose registers */ - uint32_t gprg[6]; - /* Exceptions */ - uint32_t feen; - uint32_t fest; - uint32_t fema; - uint32_t fecl; - uint32_t eeen; - uint32_t eest; - uint32_t eecl; - uint32_t eeint; - uint32_t eemck0; - uint32_t eemck1; - /* Error diagnostic */ -} XCSR; - -static void PPC_XCSR_writeb (void *opaque, - hwaddr addr, uint32_t value) -{ - printf("%s: 0x" TARGET_FMT_plx " => 0x%08" PRIx32 "\n", __func__, addr, - value); -} - -static void PPC_XCSR_writew (void *opaque, - hwaddr addr, uint32_t value) -{ - printf("%s: 0x" TARGET_FMT_plx " => 0x%08" PRIx32 "\n", __func__, addr, - value); -} - -static void PPC_XCSR_writel (void *opaque, - hwaddr addr, uint32_t value) -{ - printf("%s: 0x" TARGET_FMT_plx " => 0x%08" PRIx32 "\n", __func__, addr, - value); -} - -static uint32_t PPC_XCSR_readb (void *opaque, hwaddr addr) -{ - uint32_t retval = 0; - - printf("%s: 0x" TARGET_FMT_plx " <= %08" PRIx32 "\n", __func__, addr, - retval); - - return retval; -} - -static uint32_t PPC_XCSR_readw (void *opaque, hwaddr addr) -{ - uint32_t retval = 0; - - printf("%s: 0x" TARGET_FMT_plx " <= %08" PRIx32 "\n", __func__, addr, - retval); - - return retval; -} - -static uint32_t PPC_XCSR_readl (void *opaque, hwaddr addr) -{ - uint32_t retval = 0; - - printf("%s: 0x" TARGET_FMT_plx " <= %08" PRIx32 "\n", __func__, addr, - retval); - - return retval; -} - -static const MemoryRegionOps PPC_XCSR_ops = { - .old_mmio = { - .read = { PPC_XCSR_readb, PPC_XCSR_readw, PPC_XCSR_readl, }, - .write = { PPC_XCSR_writeb, PPC_XCSR_writew, PPC_XCSR_writel, }, - }, - .endianness = DEVICE_LITTLE_ENDIAN, -}; - -#endif - /* Fake super-io ports for PREP platform (Intel 82378ZB) */ typedef struct sysctrl_t { qemu_irq reset_irq; @@ -648,11 +560,10 @@ static void ppc_prep_init(MachineState *machine) portio_list_init(&prep_port_list, NULL, prep_portio_list, sysctrl, "prep"); portio_list_add(&prep_port_list, isa_address_space_io(isa), 0x0); - /* PowerPC control and status register group */ -#if 0 - memory_region_init_io(xcsr, NULL, &PPC_XCSR_ops, NULL, "ppc-xcsr", 0x1000); - memory_region_add_subregion(sysmem, 0xFEFF0000, xcsr); -#endif + /* + * PowerPC control and status register group: unimplemented, + * would be at address 0xFEFF0000. + */ if (machine_usb(machine)) { pci_create_simple(pci_bus, -1, "pci-ohci"); From 878a4607049b0c073e9509b228cba5d9b7e5fa4c Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Thu, 2 Aug 2018 15:44:29 +0100 Subject: [PATCH 17/26] hw/ppc/ppc_boards: Don't use old_mmio for ref405ep_fpga MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Switch the ref405ep_fpga device away from using the old_mmio MemoryRegion accessors. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: David Gibson --- hw/ppc/ppc405_boards.c | 60 +++++++----------------------------------- 1 file changed, 10 insertions(+), 50 deletions(-) diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c index 70111075b3..f5a9c24b6c 100644 --- a/hw/ppc/ppc405_boards.c +++ b/hw/ppc/ppc405_boards.c @@ -66,7 +66,7 @@ struct ref405ep_fpga_t { uint8_t reg1; }; -static uint32_t ref405ep_fpga_readb (void *opaque, hwaddr addr) +static uint64_t ref405ep_fpga_readb(void *opaque, hwaddr addr, unsigned size) { ref405ep_fpga_t *fpga; uint32_t ret; @@ -87,8 +87,8 @@ static uint32_t ref405ep_fpga_readb (void *opaque, hwaddr addr) return ret; } -static void ref405ep_fpga_writeb (void *opaque, - hwaddr addr, uint32_t value) +static void ref405ep_fpga_writeb(void *opaque, hwaddr addr, uint64_t value, + unsigned size) { ref405ep_fpga_t *fpga; @@ -105,54 +105,14 @@ static void ref405ep_fpga_writeb (void *opaque, } } -static uint32_t ref405ep_fpga_readw (void *opaque, hwaddr addr) -{ - uint32_t ret; - - ret = ref405ep_fpga_readb(opaque, addr) << 8; - ret |= ref405ep_fpga_readb(opaque, addr + 1); - - return ret; -} - -static void ref405ep_fpga_writew (void *opaque, - hwaddr addr, uint32_t value) -{ - ref405ep_fpga_writeb(opaque, addr, (value >> 8) & 0xFF); - ref405ep_fpga_writeb(opaque, addr + 1, value & 0xFF); -} - -static uint32_t ref405ep_fpga_readl (void *opaque, hwaddr addr) -{ - uint32_t ret; - - ret = ref405ep_fpga_readb(opaque, addr) << 24; - ret |= ref405ep_fpga_readb(opaque, addr + 1) << 16; - ret |= ref405ep_fpga_readb(opaque, addr + 2) << 8; - ret |= ref405ep_fpga_readb(opaque, addr + 3); - - return ret; -} - -static void ref405ep_fpga_writel (void *opaque, - hwaddr addr, uint32_t value) -{ - ref405ep_fpga_writeb(opaque, addr, (value >> 24) & 0xFF); - ref405ep_fpga_writeb(opaque, addr + 1, (value >> 16) & 0xFF); - ref405ep_fpga_writeb(opaque, addr + 2, (value >> 8) & 0xFF); - ref405ep_fpga_writeb(opaque, addr + 3, value & 0xFF); -} - static const MemoryRegionOps ref405ep_fpga_ops = { - .old_mmio = { - .read = { - ref405ep_fpga_readb, ref405ep_fpga_readw, ref405ep_fpga_readl, - }, - .write = { - ref405ep_fpga_writeb, ref405ep_fpga_writew, ref405ep_fpga_writel, - }, - }, - .endianness = DEVICE_NATIVE_ENDIAN, + .read = ref405ep_fpga_readb, + .write = ref405ep_fpga_writeb, + .impl.min_access_size = 1, + .impl.max_access_size = 1, + .valid.min_access_size = 1, + .valid.max_access_size = 4, + .endianness = DEVICE_BIG_ENDIAN, }; static void ref405ep_fpga_reset (void *opaque) From 69bd18f84347b1b342443601f10a55da4c87bc9d Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Thu, 2 Aug 2018 15:44:30 +0100 Subject: [PATCH 18/26] hw/ppc/ppc405_uc: Convert away from old_mmio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Convert the devices in ppc405_uc away from using the old_mmio MemoryRegion accessors: * opba's 32-bit and 16-bit accessors were just calling the 8-bit accessors and assembling a big-endian order number, which we can do by setting the .impl.max_access_size to 1 and the endianness to DEVICE_BIG_ENDIAN, and letting the core memory code do the assembly * ppc405_gpio's accessors were all just stubs * ppc4xx_gpt's 8-bit and 16-bit accessors were treating the access as invalid, which we can do by setting the .valid.min_access_size and .valid.max_access_size fields Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: David Gibson --- hw/ppc/ppc405_uc.c | 173 +++++++-------------------------------------- 1 file changed, 25 insertions(+), 148 deletions(-) diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c index 4bd9fbcc1e..5c58415cf1 100644 --- a/hw/ppc/ppc405_uc.c +++ b/hw/ppc/ppc405_uc.c @@ -283,7 +283,7 @@ struct ppc4xx_opba_t { uint8_t pr; }; -static uint32_t opba_readb (void *opaque, hwaddr addr) +static uint64_t opba_readb(void *opaque, hwaddr addr, unsigned size) { ppc4xx_opba_t *opba; uint32_t ret; @@ -307,8 +307,8 @@ static uint32_t opba_readb (void *opaque, hwaddr addr) return ret; } -static void opba_writeb (void *opaque, - hwaddr addr, uint32_t value) +static void opba_writeb(void *opaque, hwaddr addr, uint64_t value, + unsigned size) { ppc4xx_opba_t *opba; @@ -328,61 +328,14 @@ static void opba_writeb (void *opaque, break; } } - -static uint32_t opba_readw (void *opaque, hwaddr addr) -{ - uint32_t ret; - -#ifdef DEBUG_OPBA - printf("%s: addr " TARGET_FMT_plx "\n", __func__, addr); -#endif - ret = opba_readb(opaque, addr) << 8; - ret |= opba_readb(opaque, addr + 1); - - return ret; -} - -static void opba_writew (void *opaque, - hwaddr addr, uint32_t value) -{ -#ifdef DEBUG_OPBA - printf("%s: addr " TARGET_FMT_plx " val %08" PRIx32 "\n", __func__, addr, - value); -#endif - opba_writeb(opaque, addr, value >> 8); - opba_writeb(opaque, addr + 1, value); -} - -static uint32_t opba_readl (void *opaque, hwaddr addr) -{ - uint32_t ret; - -#ifdef DEBUG_OPBA - printf("%s: addr " TARGET_FMT_plx "\n", __func__, addr); -#endif - ret = opba_readb(opaque, addr) << 24; - ret |= opba_readb(opaque, addr + 1) << 16; - - return ret; -} - -static void opba_writel (void *opaque, - hwaddr addr, uint32_t value) -{ -#ifdef DEBUG_OPBA - printf("%s: addr " TARGET_FMT_plx " val %08" PRIx32 "\n", __func__, addr, - value); -#endif - opba_writeb(opaque, addr, value >> 24); - opba_writeb(opaque, addr + 1, value >> 16); -} - static const MemoryRegionOps opba_ops = { - .old_mmio = { - .read = { opba_readb, opba_readw, opba_readl, }, - .write = { opba_writeb, opba_writew, opba_writel, }, - }, - .endianness = DEVICE_NATIVE_ENDIAN, + .read = opba_readb, + .write = opba_writeb, + .impl.min_access_size = 1, + .impl.max_access_size = 1, + .valid.min_access_size = 1, + .valid.max_access_size = 4, + .endianness = DEVICE_BIG_ENDIAN, }; static void ppc4xx_opba_reset (void *opaque) @@ -750,65 +703,27 @@ struct ppc405_gpio_t { uint32_t isr1l; }; -static uint32_t ppc405_gpio_readb (void *opaque, hwaddr addr) +static uint64_t ppc405_gpio_read(void *opaque, hwaddr addr, unsigned size) { #ifdef DEBUG_GPIO - printf("%s: addr " TARGET_FMT_plx "\n", __func__, addr); + printf("%s: addr " TARGET_FMT_plx " size %d\n", __func__, addr, size); #endif return 0; } -static void ppc405_gpio_writeb (void *opaque, - hwaddr addr, uint32_t value) +static void ppc405_gpio_write(void *opaque, hwaddr addr, uint64_t value, + unsigned size) { #ifdef DEBUG_GPIO - printf("%s: addr " TARGET_FMT_plx " val %08" PRIx32 "\n", __func__, addr, - value); -#endif -} - -static uint32_t ppc405_gpio_readw (void *opaque, hwaddr addr) -{ -#ifdef DEBUG_GPIO - printf("%s: addr " TARGET_FMT_plx "\n", __func__, addr); -#endif - - return 0; -} - -static void ppc405_gpio_writew (void *opaque, - hwaddr addr, uint32_t value) -{ -#ifdef DEBUG_GPIO - printf("%s: addr " TARGET_FMT_plx " val %08" PRIx32 "\n", __func__, addr, - value); -#endif -} - -static uint32_t ppc405_gpio_readl (void *opaque, hwaddr addr) -{ -#ifdef DEBUG_GPIO - printf("%s: addr " TARGET_FMT_plx "\n", __func__, addr); -#endif - - return 0; -} - -static void ppc405_gpio_writel (void *opaque, - hwaddr addr, uint32_t value) -{ -#ifdef DEBUG_GPIO - printf("%s: addr " TARGET_FMT_plx " val %08" PRIx32 "\n", __func__, addr, - value); + printf("%s: addr " TARGET_FMT_plx " size %d val %08" PRIx32 "\n", + __func__, addr, size, value); #endif } static const MemoryRegionOps ppc405_gpio_ops = { - .old_mmio = { - .read = { ppc405_gpio_readb, ppc405_gpio_readw, ppc405_gpio_readl, }, - .write = { ppc405_gpio_writeb, ppc405_gpio_writew, ppc405_gpio_writel, }, - }, + .read = ppc405_gpio_read, + .write = ppc405_gpio_write, .endianness = DEVICE_NATIVE_ENDIAN, }; @@ -1017,44 +932,6 @@ struct ppc4xx_gpt_t { uint32_t mask[5]; }; -static uint32_t ppc4xx_gpt_readb (void *opaque, hwaddr addr) -{ -#ifdef DEBUG_GPT - printf("%s: addr " TARGET_FMT_plx "\n", __func__, addr); -#endif - /* XXX: generate a bus fault */ - return -1; -} - -static void ppc4xx_gpt_writeb (void *opaque, - hwaddr addr, uint32_t value) -{ -#ifdef DEBUG_I2C - printf("%s: addr " TARGET_FMT_plx " val %08" PRIx32 "\n", __func__, addr, - value); -#endif - /* XXX: generate a bus fault */ -} - -static uint32_t ppc4xx_gpt_readw (void *opaque, hwaddr addr) -{ -#ifdef DEBUG_GPT - printf("%s: addr " TARGET_FMT_plx "\n", __func__, addr); -#endif - /* XXX: generate a bus fault */ - return -1; -} - -static void ppc4xx_gpt_writew (void *opaque, - hwaddr addr, uint32_t value) -{ -#ifdef DEBUG_I2C - printf("%s: addr " TARGET_FMT_plx " val %08" PRIx32 "\n", __func__, addr, - value); -#endif - /* XXX: generate a bus fault */ -} - static int ppc4xx_gpt_compare (ppc4xx_gpt_t *gpt, int n) { /* XXX: TODO */ @@ -1107,7 +984,7 @@ static void ppc4xx_gpt_compute_timer (ppc4xx_gpt_t *gpt) /* XXX: TODO */ } -static uint32_t ppc4xx_gpt_readl (void *opaque, hwaddr addr) +static uint64_t ppc4xx_gpt_read(void *opaque, hwaddr addr, unsigned size) { ppc4xx_gpt_t *gpt; uint32_t ret; @@ -1162,8 +1039,8 @@ static uint32_t ppc4xx_gpt_readl (void *opaque, hwaddr addr) return ret; } -static void ppc4xx_gpt_writel (void *opaque, - hwaddr addr, uint32_t value) +static void ppc4xx_gpt_write(void *opaque, hwaddr addr, uint64_t value, + unsigned size) { ppc4xx_gpt_t *gpt; int idx; @@ -1225,10 +1102,10 @@ static void ppc4xx_gpt_writel (void *opaque, } static const MemoryRegionOps gpt_ops = { - .old_mmio = { - .read = { ppc4xx_gpt_readb, ppc4xx_gpt_readw, ppc4xx_gpt_readl, }, - .write = { ppc4xx_gpt_writeb, ppc4xx_gpt_writew, ppc4xx_gpt_writel, }, - }, + .read = ppc4xx_gpt_read, + .write = ppc4xx_gpt_write, + .valid.min_access_size = 4, + .valid.max_access_size = 4, .endianness = DEVICE_NATIVE_ENDIAN, }; From ef01ed9d19ffffbb5d5517ecb424c543cde373a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Date: Mon, 30 Jul 2018 16:11:33 +0200 Subject: [PATCH 19/26] spapr: introduce a IRQ controller backend to the machine MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This proposal moves all the related IRQ routines of the sPAPR machine behind a sPAPR IRQ backend interface 'spapr_irq' to prepare for future changes. First of which will be to increase the size of the IRQ number space, then, will follow a new backend for the POWER9 XIVE IRQ controller. Signed-off-by: Cédric Le Goater Reviewed-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr.c | 180 +---------------------------- hw/ppc/spapr_cpu_core.c | 1 + hw/ppc/spapr_irq.c | 230 +++++++++++++++++++++++++++++++++++++ include/hw/ppc/spapr.h | 11 +- include/hw/ppc/spapr_irq.h | 22 ++++ 5 files changed, 259 insertions(+), 185 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 6a78ceb708..ddd4478a34 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -54,7 +54,6 @@ #include "hw/ppc/spapr.h" #include "hw/ppc/spapr_vio.h" #include "hw/pci-host/spapr.h" -#include "hw/ppc/xics.h" #include "hw/pci/msi.h" #include "hw/pci/pci.h" @@ -117,33 +116,6 @@ static bool spapr_is_thread0_in_vcore(sPAPRMachineState *spapr, return spapr_get_vcpu_id(cpu) % spapr->vsmt == 0; } -static ICSState *spapr_ics_create(sPAPRMachineState *spapr, - const char *type_ics, - int nr_irqs, Error **errp) -{ - Error *local_err = NULL; - Object *obj; - - obj = object_new(type_ics); - object_property_add_child(OBJECT(spapr), "ics", obj, &error_abort); - object_property_add_const_link(obj, ICS_PROP_XICS, OBJECT(spapr), - &error_abort); - object_property_set_int(obj, nr_irqs, "nr-irqs", &local_err); - if (local_err) { - goto error; - } - object_property_set_bool(obj, true, "realized", &local_err); - if (local_err) { - goto error; - } - - return ICS_BASE(obj); - -error: - error_propagate(errp, local_err); - return NULL; -} - static bool pre_2_10_vmstate_dummy_icp_needed(void *opaque) { /* Dummy entries correspond to unused ICPState objects in older QEMUs, @@ -184,43 +156,6 @@ static int xics_max_server_number(sPAPRMachineState *spapr) return DIV_ROUND_UP(max_cpus * spapr->vsmt, smp_threads); } -static void xics_system_init(MachineState *machine, int nr_irqs, Error **errp) -{ - sPAPRMachineState *spapr = SPAPR_MACHINE(machine); - Error *local_err = NULL; - - /* Initialize the MSI IRQ allocator. */ - if (!SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { - spapr_irq_msi_init(spapr, XICS_IRQ_BASE + nr_irqs - SPAPR_IRQ_MSI); - } - - if (kvm_enabled()) { - if (machine_kernel_irqchip_allowed(machine) && - !xics_kvm_init(spapr, &local_err)) { - spapr->icp_type = TYPE_KVM_ICP; - spapr->ics = spapr_ics_create(spapr, TYPE_ICS_KVM, nr_irqs, - &local_err); - } - if (machine_kernel_irqchip_required(machine) && !spapr->ics) { - error_prepend(&local_err, - "kernel_irqchip requested but unavailable: "); - goto error; - } - error_free(local_err); - local_err = NULL; - } - - if (!spapr->ics) { - xics_spapr_init(spapr); - spapr->icp_type = TYPE_ICP; - spapr->ics = spapr_ics_create(spapr, TYPE_ICS_SIMPLE, nr_irqs, - &local_err); - } - -error: - error_propagate(errp, local_err); -} - static int spapr_fixup_cpu_smt_dt(void *fdt, int offset, PowerPCCPU *cpu, int smt_threads) { @@ -2618,7 +2553,7 @@ static void spapr_machine_init(MachineState *machine) load_limit = MIN(spapr->rma_size, RTAS_MAX_ADDR) - FW_OVERHEAD; /* Set up Interrupt Controller before we create the VCPUs */ - xics_system_init(machine, XICS_IRQS_SPAPR, &error_fatal); + smc->irq->init(spapr, &error_fatal); /* Set up containers for ibm,client-architecture-support negotiated options */ @@ -3810,121 +3745,13 @@ static ICPState *spapr_icp_get(XICSFabric *xi, int vcpu_id) return cpu ? ICP(cpu->intc) : NULL; } -#define ICS_IRQ_FREE(ics, srcno) \ - (!((ics)->irqs[(srcno)].flags & (XICS_FLAGS_IRQ_MASK))) - -static int ics_find_free_block(ICSState *ics, int num, int alignnum) -{ - int first, i; - - for (first = 0; first < ics->nr_irqs; first += alignnum) { - if (num > (ics->nr_irqs - first)) { - return -1; - } - for (i = first; i < first + num; ++i) { - if (!ICS_IRQ_FREE(ics, i)) { - break; - } - } - if (i == (first + num)) { - return first; - } - } - - return -1; -} - -int spapr_irq_find(sPAPRMachineState *spapr, int num, bool align, Error **errp) -{ - ICSState *ics = spapr->ics; - int first = -1; - - assert(ics); - - /* - * MSIMesage::data is used for storing VIRQ so - * it has to be aligned to num to support multiple - * MSI vectors. MSI-X is not affected by this. - * The hint is used for the first IRQ, the rest should - * be allocated continuously. - */ - if (align) { - assert((num == 1) || (num == 2) || (num == 4) || - (num == 8) || (num == 16) || (num == 32)); - first = ics_find_free_block(ics, num, num); - } else { - first = ics_find_free_block(ics, num, 1); - } - - if (first < 0) { - error_setg(errp, "can't find a free %d-IRQ block", num); - return -1; - } - - return first + ics->offset; -} - -int spapr_irq_claim(sPAPRMachineState *spapr, int irq, bool lsi, Error **errp) -{ - ICSState *ics = spapr->ics; - - assert(ics); - - if (!ics_valid_irq(ics, irq)) { - error_setg(errp, "IRQ %d is invalid", irq); - return -1; - } - - if (!ICS_IRQ_FREE(ics, irq - ics->offset)) { - error_setg(errp, "IRQ %d is not free", irq); - return -1; - } - - ics_set_irq_type(ics, irq - ics->offset, lsi); - return 0; -} - -void spapr_irq_free(sPAPRMachineState *spapr, int irq, int num) -{ - ICSState *ics = spapr->ics; - int srcno = irq - ics->offset; - int i; - - if (ics_valid_irq(ics, irq)) { - trace_spapr_irq_free(0, irq, num); - for (i = srcno; i < srcno + num; ++i) { - if (ICS_IRQ_FREE(ics, i)) { - trace_spapr_irq_free_warn(0, i + ics->offset); - } - memset(&ics->irqs[i], 0, sizeof(ICSIRQState)); - } - } -} - -qemu_irq spapr_qirq(sPAPRMachineState *spapr, int irq) -{ - ICSState *ics = spapr->ics; - - if (ics_valid_irq(ics, irq)) { - return ics->qirqs[irq - ics->offset]; - } - - return NULL; -} - static void spapr_pic_print_info(InterruptStatsProvider *obj, Monitor *mon) { sPAPRMachineState *spapr = SPAPR_MACHINE(obj); - CPUState *cs; + sPAPRMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); - CPU_FOREACH(cs) { - PowerPCCPU *cpu = POWERPC_CPU(cs); - - icp_pic_print_info(ICP(cpu->intc), mon); - } - - ics_pic_print_info(spapr->ics, mon); + smc->irq->print_info(spapr, mon); } int spapr_get_vcpu_id(PowerPCCPU *cpu) @@ -4037,6 +3864,7 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data) smc->default_caps.caps[SPAPR_CAP_IBS] = SPAPR_CAP_BROKEN; smc->default_caps.caps[SPAPR_CAP_HPT_MAXPAGESIZE] = 16; /* 64kiB */ spapr_caps_add_properties(smc, &error_abort); + smc->irq = &spapr_irq_xics; } static const TypeInfo spapr_machine_info = { diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index bb88a3ce4e..876f0b3d9d 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -11,6 +11,7 @@ #include "hw/ppc/spapr_cpu_core.h" #include "target/ppc/cpu.h" #include "hw/ppc/spapr.h" +#include "hw/ppc/xics.h" /* for icp_create() - to be removed */ #include "hw/boards.h" #include "qapi/error.h" #include "sysemu/cpus.h" diff --git a/hw/ppc/spapr_irq.c b/hw/ppc/spapr_irq.c index 24e9c1d443..0cbb5dd393 100644 --- a/hw/ppc/spapr_irq.c +++ b/hw/ppc/spapr_irq.c @@ -13,6 +13,9 @@ #include "qapi/error.h" #include "hw/ppc/spapr.h" #include "hw/ppc/xics.h" +#include "sysemu/kvm.h" + +#include "trace.h" void spapr_irq_msi_init(sPAPRMachineState *spapr, uint32_t nr_msis) { @@ -54,3 +57,230 @@ void spapr_irq_msi_reset(sPAPRMachineState *spapr) { bitmap_clear(spapr->irq_map, 0, spapr->irq_map_nr); } + + +/* + * XICS IRQ backend. + */ + +static ICSState *spapr_ics_create(sPAPRMachineState *spapr, + const char *type_ics, + int nr_irqs, Error **errp) +{ + Error *local_err = NULL; + Object *obj; + + obj = object_new(type_ics); + object_property_add_child(OBJECT(spapr), "ics", obj, &error_abort); + object_property_add_const_link(obj, ICS_PROP_XICS, OBJECT(spapr), + &error_abort); + object_property_set_int(obj, nr_irqs, "nr-irqs", &local_err); + if (local_err) { + goto error; + } + object_property_set_bool(obj, true, "realized", &local_err); + if (local_err) { + goto error; + } + + return ICS_BASE(obj); + +error: + error_propagate(errp, local_err); + return NULL; +} + +static void spapr_irq_init_xics(sPAPRMachineState *spapr, Error **errp) +{ + MachineState *machine = MACHINE(spapr); + sPAPRMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); + int nr_irqs = smc->irq->nr_irqs; + Error *local_err = NULL; + + /* Initialize the MSI IRQ allocator. */ + if (!SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { + spapr_irq_msi_init(spapr, XICS_IRQ_BASE + nr_irqs - SPAPR_IRQ_MSI); + } + + if (kvm_enabled()) { + if (machine_kernel_irqchip_allowed(machine) && + !xics_kvm_init(spapr, &local_err)) { + spapr->icp_type = TYPE_KVM_ICP; + spapr->ics = spapr_ics_create(spapr, TYPE_ICS_KVM, nr_irqs, + &local_err); + } + if (machine_kernel_irqchip_required(machine) && !spapr->ics) { + error_prepend(&local_err, + "kernel_irqchip requested but unavailable: "); + goto error; + } + error_free(local_err); + local_err = NULL; + } + + if (!spapr->ics) { + xics_spapr_init(spapr); + spapr->icp_type = TYPE_ICP; + spapr->ics = spapr_ics_create(spapr, TYPE_ICS_SIMPLE, nr_irqs, + &local_err); + } + +error: + error_propagate(errp, local_err); +} + +#define ICS_IRQ_FREE(ics, srcno) \ + (!((ics)->irqs[(srcno)].flags & (XICS_FLAGS_IRQ_MASK))) + +static int spapr_irq_claim_xics(sPAPRMachineState *spapr, int irq, bool lsi, + Error **errp) +{ + ICSState *ics = spapr->ics; + + assert(ics); + + if (!ics_valid_irq(ics, irq)) { + error_setg(errp, "IRQ %d is invalid", irq); + return -1; + } + + if (!ICS_IRQ_FREE(ics, irq - ics->offset)) { + error_setg(errp, "IRQ %d is not free", irq); + return -1; + } + + ics_set_irq_type(ics, irq - ics->offset, lsi); + return 0; +} + +static void spapr_irq_free_xics(sPAPRMachineState *spapr, int irq, int num) +{ + ICSState *ics = spapr->ics; + uint32_t srcno = irq - ics->offset; + int i; + + if (ics_valid_irq(ics, irq)) { + trace_spapr_irq_free(0, irq, num); + for (i = srcno; i < srcno + num; ++i) { + if (ICS_IRQ_FREE(ics, i)) { + trace_spapr_irq_free_warn(0, i); + } + memset(&ics->irqs[i], 0, sizeof(ICSIRQState)); + } + } +} + +static qemu_irq spapr_qirq_xics(sPAPRMachineState *spapr, int irq) +{ + ICSState *ics = spapr->ics; + uint32_t srcno = irq - ics->offset; + + if (ics_valid_irq(ics, irq)) { + return ics->qirqs[srcno]; + } + + return NULL; +} + +static void spapr_irq_print_info_xics(sPAPRMachineState *spapr, Monitor *mon) +{ + CPUState *cs; + + CPU_FOREACH(cs) { + PowerPCCPU *cpu = POWERPC_CPU(cs); + + icp_pic_print_info(ICP(cpu->intc), mon); + } + + ics_pic_print_info(spapr->ics, mon); +} + +sPAPRIrq spapr_irq_xics = { + .nr_irqs = XICS_IRQS_SPAPR, + + .init = spapr_irq_init_xics, + .claim = spapr_irq_claim_xics, + .free = spapr_irq_free_xics, + .qirq = spapr_qirq_xics, + .print_info = spapr_irq_print_info_xics, +}; + +/* + * sPAPR IRQ frontend routines for devices + */ + +int spapr_irq_claim(sPAPRMachineState *spapr, int irq, bool lsi, Error **errp) +{ + sPAPRMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); + + return smc->irq->claim(spapr, irq, lsi, errp); +} + +void spapr_irq_free(sPAPRMachineState *spapr, int irq, int num) +{ + sPAPRMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); + + smc->irq->free(spapr, irq, num); +} + +qemu_irq spapr_qirq(sPAPRMachineState *spapr, int irq) +{ + sPAPRMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); + + return smc->irq->qirq(spapr, irq); +} + +/* + * XICS legacy routines - to deprecate one day + */ + +static int ics_find_free_block(ICSState *ics, int num, int alignnum) +{ + int first, i; + + for (first = 0; first < ics->nr_irqs; first += alignnum) { + if (num > (ics->nr_irqs - first)) { + return -1; + } + for (i = first; i < first + num; ++i) { + if (!ICS_IRQ_FREE(ics, i)) { + break; + } + } + if (i == (first + num)) { + return first; + } + } + + return -1; +} + +int spapr_irq_find(sPAPRMachineState *spapr, int num, bool align, Error **errp) +{ + ICSState *ics = spapr->ics; + int first = -1; + + assert(ics); + + /* + * MSIMesage::data is used for storing VIRQ so + * it has to be aligned to num to support multiple + * MSI vectors. MSI-X is not affected by this. + * The hint is used for the first IRQ, the rest should + * be allocated continuously. + */ + if (align) { + assert((num == 1) || (num == 2) || (num == 4) || + (num == 8) || (num == 16) || (num == 32)); + first = ics_find_free_block(ics, num, num); + } else { + first = ics_find_free_block(ics, num, 1); + } + + if (first < 0) { + error_setg(errp, "can't find a free %d-IRQ block", num); + return -1; + } + + return first + ics->offset; +} diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 73067f5ee8..ad4d7cfd97 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -4,7 +4,6 @@ #include "qemu/units.h" #include "sysemu/dma.h" #include "hw/boards.h" -#include "hw/ppc/xics.h" #include "hw/ppc/spapr_drc.h" #include "hw/mem/pc-dimm.h" #include "hw/ppc/spapr_ovec.h" @@ -16,6 +15,7 @@ struct sPAPRNVRAM; typedef struct sPAPREventLogEntry sPAPREventLogEntry; typedef struct sPAPREventSource sPAPREventSource; typedef struct sPAPRPendingHPT sPAPRPendingHPT; +typedef struct ICSState ICSState; #define HPTE64_V_HPTE_DIRTY 0x0000000000000040ULL #define SPAPR_ENTRY_POINT 0x100 @@ -110,6 +110,7 @@ struct sPAPRMachineClass { unsigned n_dma, uint32_t *liobns, Error **errp); sPAPRResizeHPT resize_hpt_default; sPAPRCapabilities default_caps; + sPAPRIrq *irq; }; /** @@ -780,14 +781,6 @@ int spapr_get_vcpu_id(PowerPCCPU *cpu); void spapr_set_vcpu_id(PowerPCCPU *cpu, int cpu_index, Error **errp); PowerPCCPU *spapr_find_cpu(int vcpu_id); -int spapr_irq_find(sPAPRMachineState *spapr, int num, bool align, - Error **errp); -#define spapr_irq_findone(spapr, errp) spapr_irq_find(spapr, 1, false, errp) -int spapr_irq_claim(sPAPRMachineState *spapr, int irq, bool lsi, Error **errp); -void spapr_irq_free(sPAPRMachineState *spapr, int irq, int num); -qemu_irq spapr_qirq(sPAPRMachineState *spapr, int irq); - - int spapr_caps_pre_load(void *opaque); int spapr_caps_pre_save(void *opaque); diff --git a/include/hw/ppc/spapr_irq.h b/include/hw/ppc/spapr_irq.h index 6f7f505488..0e98c4474b 100644 --- a/include/hw/ppc/spapr_irq.h +++ b/include/hw/ppc/spapr_irq.h @@ -29,4 +29,26 @@ int spapr_irq_msi_alloc(sPAPRMachineState *spapr, uint32_t num, bool align, void spapr_irq_msi_free(sPAPRMachineState *spapr, int irq, uint32_t num); void spapr_irq_msi_reset(sPAPRMachineState *spapr); +typedef struct sPAPRIrq { + uint32_t nr_irqs; + + void (*init)(sPAPRMachineState *spapr, Error **errp); + int (*claim)(sPAPRMachineState *spapr, int irq, bool lsi, Error **errp); + void (*free)(sPAPRMachineState *spapr, int irq, int num); + qemu_irq (*qirq)(sPAPRMachineState *spapr, int irq); + void (*print_info)(sPAPRMachineState *spapr, Monitor *mon); +} sPAPRIrq; + +extern sPAPRIrq spapr_irq_xics; + +int spapr_irq_claim(sPAPRMachineState *spapr, int irq, bool lsi, Error **errp); +void spapr_irq_free(sPAPRMachineState *spapr, int irq, int num); +qemu_irq spapr_qirq(sPAPRMachineState *spapr, int irq); + +/* + * XICS legacy routines + */ +int spapr_irq_find(sPAPRMachineState *spapr, int num, bool align, Error **errp); +#define spapr_irq_findone(spapr, errp) spapr_irq_find(spapr, 1, false, errp) + #endif From 54c86f5a4844d517d2dd09922dd33a70117d0c7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Thu, 9 Aug 2018 22:40:10 +0200 Subject: [PATCH 20/26] hw/ppc: deprecate the machine type 'prep', replaced by '40p' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - prep machine is a fictional machine, so has no specifications. Which devices can be changed/added/removed without impact? Are interrupts correctly mapped? - prep firmware (OHW) has support only for IDE drives (no SCSI). Booting from IDE has been broken approximatively 3 years ago, and nobody complained. - OHW is limited on IDE boot to a specific set of OS loaders. These operating systems are of the 2004 time frame. - OHW can use -kernel. Linux kernel freezes a long time after PS/2 mouse detection, and then screen becomes garbage. This was already broken in QEMU v2.7, 2 years ago, and nobody complained. On the other side: - 40p is a real machine, so emulation can be checked against hardware specifications - OpenBIOS has support for SCSI block devices, including 40p LSI adapter - OpenBIOS can start mostly all Linux kernels (including recent ones) and recent operating system (like NetBSD 7.1.2) Signed-off-by: Hervé Poussineau [dwg: Drop prep from boot-serial test to avoid deprecation warnings] Signed-off-by: David Gibson --- hw/ppc/prep.c | 1 + tests/boot-serial-test.c | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c index b26138e5c4..83083e4f1b 100644 --- a/hw/ppc/prep.c +++ b/hw/ppc/prep.c @@ -587,6 +587,7 @@ static void ppc_prep_init(MachineState *machine) static void prep_machine_init(MachineClass *mc) { + mc->deprecation_reason = "use 40p machine type instead"; mc->desc = "PowerPC PREP platform"; mc->init = ppc_prep_init; mc->block_default_type = IF_IDE; diff --git a/tests/boot-serial-test.c b/tests/boot-serial-test.c index fca5f2f5da..f123b15e3e 100644 --- a/tests/boot-serial-test.c +++ b/tests/boot-serial-test.c @@ -75,13 +75,11 @@ typedef struct testdef { static testdef_t tests[] = { { "alpha", "clipper", "", "PCI:" }, { "ppc", "ppce500", "", "U-Boot" }, - { "ppc", "prep", "-m 96", "Memory size: 96 MB" }, { "ppc", "40p", "-boot d", "Booting from device d" }, { "ppc", "g3beige", "", "PowerPC,750" }, { "ppc", "mac99", "", "PowerPC,G4" }, { "ppc", "sam460ex", "-m 256", "DRAM: 256 MiB" }, { "ppc64", "ppce500", "", "U-Boot" }, - { "ppc64", "prep", "-boot e", "Booting from device e" }, { "ppc64", "40p", "-m 192", "Memory size: 192 MB" }, { "ppc64", "mac99", "", "PowerPC,970FX" }, { "ppc64", "pseries", "", "Open Firmware" }, From 93323287bb5565a1be175e3d0263085eb0c20e67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Sat, 11 Aug 2018 00:46:45 +0200 Subject: [PATCH 21/26] qemu-doc: mark ppc/prep machine as deprecated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 40p machine type should be used instead. Signed-off-by: Hervé Poussineau Acked-by: Mark Cave-Ayland Signed-off-by: David Gibson --- qemu-deprecated.texi | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi index 67b721156f..87212b62f2 100644 --- a/qemu-deprecated.texi +++ b/qemu-deprecated.texi @@ -195,6 +195,12 @@ support page sizes < 4096 any longer. These machine types are very old and likely can not be used for live migration from old QEMU versions anymore. A newer machine type should be used instead. +@subsection prep (PowerPC) (since 3.1) + +This machine type uses an unmaintained firmware, broken in lots of ways, +and unable to start post-2004 operating systems. 40p machine type should be +used instead. + @section Device options @subsection Block device options From 0f08085971c4da52c390aaded82911b365323afa Mon Sep 17 00:00:00 2001 From: Mark Cave-Ayland Date: Fri, 10 Aug 2018 13:04:18 +0100 Subject: [PATCH 22/26] 40p: don't use legacy fw_cfg_init_mem() function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead initialise the device via qdev to allow us to set device properties directly as required. Signed-off-by: Mark Cave-Ayland Acked-by: Hervé Poussineau Signed-off-by: David Gibson --- hw/ppc/prep.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c index 83083e4f1b..47146ba12a 100644 --- a/hw/ppc/prep.c +++ b/hw/ppc/prep.c @@ -618,7 +618,7 @@ static void ibm_40p_init(MachineState *machine) uint16_t cmos_checksum; PowerPCCPU *cpu; DeviceState *dev; - SysBusDevice *pcihost; + SysBusDevice *pcihost, *s; Nvram *m48t59 = NULL; PCIBus *pci_bus; ISABus *isa_bus; @@ -711,7 +711,16 @@ static void ibm_40p_init(MachineState *machine) } /* Prepare firmware configuration for OpenBIOS */ - fw_cfg = fw_cfg_init_mem(CFG_ADDR, CFG_ADDR + 2); + dev = qdev_create(NULL, TYPE_FW_CFG_MEM); + fw_cfg = FW_CFG(dev); + qdev_prop_set_uint32(dev, "data_width", 1); + qdev_prop_set_bit(dev, "dma_enabled", false); + object_property_add_child(OBJECT(qdev_get_machine()), TYPE_FW_CFG, + OBJECT(fw_cfg), NULL); + qdev_init_nofail(dev); + s = SYS_BUS_DEVICE(dev); + sysbus_mmio_map(s, 0, CFG_ADDR); + sysbus_mmio_map(s, 1, CFG_ADDR + 2); if (machine->kernel_filename) { /* load kernel */ From 81a0705032213dd48c3c549bf6c71d4919b79986 Mon Sep 17 00:00:00 2001 From: Mark Cave-Ayland Date: Fri, 10 Aug 2018 11:27:56 +0100 Subject: [PATCH 23/26] mac_oldworld: don't use legacy fw_cfg_init_mem() function Instead initialise the device via qdev to allow us to set device properties directly as required. Signed-off-by: Mark Cave-Ayland Signed-off-by: David Gibson --- hw/ppc/mac_oldworld.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c index 064d7eb30a..80b5525775 100644 --- a/hw/ppc/mac_oldworld.c +++ b/hw/ppc/mac_oldworld.c @@ -309,7 +309,17 @@ static void ppc_heathrow_init(MachineState *machine) /* No PCI init: the BIOS will do it */ - fw_cfg = fw_cfg_init_mem(CFG_ADDR, CFG_ADDR + 2); + dev = qdev_create(NULL, TYPE_FW_CFG_MEM); + fw_cfg = FW_CFG(dev); + qdev_prop_set_uint32(dev, "data_width", 1); + qdev_prop_set_bit(dev, "dma_enabled", false); + object_property_add_child(OBJECT(qdev_get_machine()), TYPE_FW_CFG, + OBJECT(fw_cfg), NULL); + qdev_init_nofail(dev); + s = SYS_BUS_DEVICE(dev); + sysbus_mmio_map(s, 0, CFG_ADDR); + sysbus_mmio_map(s, 1, CFG_ADDR + 2); + fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, (uint16_t)smp_cpus); fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, (uint16_t)max_cpus); fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)ram_size); From 74887ed918a666695d11e717e6f1721139cee1ea Mon Sep 17 00:00:00 2001 From: Mark Cave-Ayland Date: Fri, 10 Aug 2018 11:27:57 +0100 Subject: [PATCH 24/26] mac_newworld: don't use legacy fw_cfg_init_mem() function Instead initialise the device via qdev to allow us to set device properties directly as required. Signed-off-by: Mark Cave-Ayland Signed-off-by: David Gibson --- hw/ppc/mac_newworld.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c index 2ca294664b..a6b95f024c 100644 --- a/hw/ppc/mac_newworld.c +++ b/hw/ppc/mac_newworld.c @@ -454,7 +454,17 @@ static void ppc_core99_init(MachineState *machine) pmac_format_nvram_partition(nvr, 0x2000); /* No PCI init: the BIOS will do it */ - fw_cfg = fw_cfg_init_mem(CFG_ADDR, CFG_ADDR + 2); + dev = qdev_create(NULL, TYPE_FW_CFG_MEM); + fw_cfg = FW_CFG(dev); + qdev_prop_set_uint32(dev, "data_width", 1); + qdev_prop_set_bit(dev, "dma_enabled", false); + object_property_add_child(OBJECT(qdev_get_machine()), TYPE_FW_CFG, + OBJECT(fw_cfg), NULL); + qdev_init_nofail(dev); + s = SYS_BUS_DEVICE(dev); + sysbus_mmio_map(s, 0, CFG_ADDR); + sysbus_mmio_map(s, 1, CFG_ADDR + 2); + fw_cfg_add_i16(fw_cfg, FW_CFG_NB_CPUS, (uint16_t)smp_cpus); fw_cfg_add_i16(fw_cfg, FW_CFG_MAX_CPUS, (uint16_t)max_cpus); fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, (uint64_t)ram_size); From 2c88b098e76fde0c7fcc0476dd3f80ce58409505 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Date: Fri, 10 Aug 2018 10:00:26 +0200 Subject: [PATCH 25/26] spapr_pci: factorize the use of SPAPR_MACHINE_GET_CLASS() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It should save us some CPU cycles as these routines perform a lot of checks. Signed-off-by: Cédric Le Goater Signed-off-by: David Gibson --- hw/ppc/spapr_pci.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c index 3791ced6c5..5cd676e443 100644 --- a/hw/ppc/spapr_pci.c +++ b/hw/ppc/spapr_pci.c @@ -267,6 +267,7 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, sPAPRMachineState *spapr, target_ulong args, uint32_t nret, target_ulong rets) { + sPAPRMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); uint32_t config_addr = rtas_ld(args, 0); uint64_t buid = rtas_ldq(args, 1); unsigned int func = rtas_ld(args, 3); @@ -334,7 +335,7 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, sPAPRMachineState *spapr, return; } - if (!SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { + if (!smc->legacy_irq_allocation) { spapr_irq_msi_free(spapr, msi->first_irq, msi->num); } spapr_irq_free(spapr, msi->first_irq, msi->num); @@ -375,7 +376,7 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, sPAPRMachineState *spapr, } /* Allocate MSIs */ - if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { + if (smc->legacy_irq_allocation) { irq = spapr_irq_find(spapr, req_num, ret_intr_type == RTAS_TYPE_MSI, &err); } else { @@ -401,7 +402,7 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, sPAPRMachineState *spapr, /* Release previous MSIs */ if (msi) { - if (!SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { + if (!smc->legacy_irq_allocation) { spapr_irq_msi_free(spapr, msi->first_irq, msi->num); } spapr_irq_free(spapr, msi->first_irq, msi->num); @@ -1558,6 +1559,7 @@ static void spapr_phb_realize(DeviceState *dev, Error **errp) sPAPRMachineState *spapr = (sPAPRMachineState *) object_dynamic_cast(qdev_get_machine(), TYPE_SPAPR_MACHINE); + sPAPRMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); SysBusDevice *s = SYS_BUS_DEVICE(dev); sPAPRPHBState *sphb = SPAPR_PCI_HOST_BRIDGE(s); PCIHostState *phb = PCI_HOST_BRIDGE(s); @@ -1575,7 +1577,6 @@ static void spapr_phb_realize(DeviceState *dev, Error **errp) } if (sphb->index != (uint32_t)-1) { - sPAPRMachineClass *smc = SPAPR_MACHINE_GET_CLASS(spapr); Error *local_err = NULL; smc->phb_placement(spapr, sphb->index, @@ -1720,7 +1721,7 @@ static void spapr_phb_realize(DeviceState *dev, Error **errp) uint32_t irq = SPAPR_IRQ_PCI_LSI + sphb->index * PCI_NUM_PINS + i; Error *local_err = NULL; - if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { + if (smc->legacy_irq_allocation) { irq = spapr_irq_findone(spapr, &local_err); if (local_err) { error_propagate(errp, local_err); From 0e3bf4890906fa7066a5deafd6ab033934b8d100 Mon Sep 17 00:00:00 2001 From: Roman Kapl Date: Tue, 14 Aug 2018 18:09:51 +0200 Subject: [PATCH 26/26] ppc: add DBCR based debugging Add support for DBCR (debug control register) based debugging as used on BookE ppc. So far supports only branch and single-step events, but these are the important ones. GDB in Linux guest can now do single-stepping. Signed-off-by: Roman Kapl Signed-off-by: David Gibson --- target/ppc/cpu.h | 5 ++ target/ppc/excp_helper.c | 11 ++-- target/ppc/translate.c | 107 ++++++++++++++++++++++++-------- target/ppc/translate_init.inc.c | 17 +++++ 4 files changed, 107 insertions(+), 33 deletions(-) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index 4edcf62cf7..ec149349e2 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -481,6 +481,11 @@ struct ppc_slb_t { #define msr_ts ((env->msr >> MSR_TS1) & 3) #define msr_tm ((env->msr >> MSR_TM) & 1) +#define DBCR0_ICMP (1 << 27) +#define DBCR0_BRT (1 << 26) +#define DBSR_ICMP (1 << 27) +#define DBSR_BRT (1 << 26) + /* Hypervisor bit is more specific */ #if defined(TARGET_PPC64) #define MSR_HVB (1ULL << MSR_SHV) diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c index d6e97a90e0..0ec7ae1ad4 100644 --- a/target/ppc/excp_helper.c +++ b/target/ppc/excp_helper.c @@ -348,19 +348,16 @@ static inline void powerpc_excp(PowerPCCPU *cpu, int excp_model, int excp) case POWERPC_EXCP_ITLB: /* Instruction TLB error */ break; case POWERPC_EXCP_DEBUG: /* Debug interrupt */ - switch (excp_model) { - case POWERPC_EXCP_BOOKE: + if (env->flags & POWERPC_FLAG_DE) { /* FIXME: choose one or the other based on CPU type */ srr0 = SPR_BOOKE_DSRR0; srr1 = SPR_BOOKE_DSRR1; asrr0 = SPR_BOOKE_CSRR0; asrr1 = SPR_BOOKE_CSRR1; - break; - default: - break; + /* DBSR already modified by caller */ + } else { + cpu_abort(cs, "Debug exception triggered on unsupported model\n"); } - /* XXX: TODO */ - cpu_abort(cs, "Debug exception is not implemented yet !\n"); break; case POWERPC_EXCP_SPEU: /* SPE/embedded floating-point unavailable */ env->spr[SPR_BOOKE_ESR] = ESR_SPV; diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 9eaa10b421..881743571b 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -211,6 +211,7 @@ struct DisasContext { bool gtse; ppc_spr_t *spr_cb; /* Needed to check rights for mfspr/mtspr */ int singlestep_enabled; + uint32_t flags; uint64_t insns_flags; uint64_t insns_flags2; }; @@ -251,6 +252,17 @@ struct opc_handler_t { #endif }; +/* SPR load/store helpers */ +static inline void gen_load_spr(TCGv t, int reg) +{ + tcg_gen_ld_tl(t, cpu_env, offsetof(CPUPPCState, spr[reg])); +} + +static inline void gen_store_spr(int reg, TCGv t) +{ + tcg_gen_st_tl(t, cpu_env, offsetof(CPUPPCState, spr[reg])); +} + static inline void gen_set_access_type(DisasContext *ctx, int access_type) { if (ctx->need_access_type && ctx->access_type != access_type) { @@ -313,6 +325,38 @@ static void gen_exception_nip(DisasContext *ctx, uint32_t excp, ctx->exception = (excp); } +/* Translates the EXCP_TRACE/BRANCH exceptions used on most PowerPCs to + * EXCP_DEBUG, if we are running on cores using the debug enable bit (e.g. + * BookE). + */ +static uint32_t gen_prep_dbgex(DisasContext *ctx, uint32_t excp) +{ + if ((ctx->singlestep_enabled & CPU_SINGLE_STEP) + && (excp == POWERPC_EXCP_BRANCH)) { + /* Trace excpt. has priority */ + excp = POWERPC_EXCP_TRACE; + } + if (ctx->flags & POWERPC_FLAG_DE) { + target_ulong dbsr = 0; + switch (excp) { + case POWERPC_EXCP_TRACE: + dbsr = DBCR0_ICMP; + break; + case POWERPC_EXCP_BRANCH: + dbsr = DBCR0_BRT; + break; + } + TCGv t0 = tcg_temp_new(); + gen_load_spr(t0, SPR_BOOKE_DBSR); + tcg_gen_ori_tl(t0, t0, dbsr); + gen_store_spr(SPR_BOOKE_DBSR, t0); + tcg_temp_free(t0); + return POWERPC_EXCP_DEBUG; + } else { + return excp; + } +} + static void gen_debug_exception(DisasContext *ctx) { TCGv_i32 t0; @@ -575,17 +619,6 @@ typedef struct opcode_t { } #endif -/* SPR load/store helpers */ -static inline void gen_load_spr(TCGv t, int reg) -{ - tcg_gen_ld_tl(t, cpu_env, offsetof(CPUPPCState, spr[reg])); -} - -static inline void gen_store_spr(int reg, TCGv t) -{ - tcg_gen_st_tl(t, cpu_env, offsetof(CPUPPCState, spr[reg])); -} - /* Invalid instruction */ static void gen_invalid(DisasContext *ctx) { @@ -3602,6 +3635,24 @@ static inline bool use_goto_tb(DisasContext *ctx, target_ulong dest) #endif } +static void gen_lookup_and_goto_ptr(DisasContext *ctx) +{ + int sse = ctx->singlestep_enabled; + if (unlikely(sse)) { + if (sse & GDBSTUB_SINGLE_STEP) { + gen_debug_exception(ctx); + } else if (sse & (CPU_SINGLE_STEP | CPU_BRANCH_STEP)) { + uint32_t excp = gen_prep_dbgex(ctx, POWERPC_EXCP_BRANCH); + if (excp != POWERPC_EXCP_NONE) { + gen_exception(ctx, excp); + } + } + tcg_gen_exit_tb(NULL, 0); + } else { + tcg_gen_lookup_and_goto_ptr(); + } +} + /*** Branch ***/ static void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest) { @@ -3614,18 +3665,7 @@ static void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest) tcg_gen_exit_tb(ctx->base.tb, n); } else { tcg_gen_movi_tl(cpu_nip, dest & ~3); - if (unlikely(ctx->singlestep_enabled)) { - if ((ctx->singlestep_enabled & - (CPU_BRANCH_STEP | CPU_SINGLE_STEP)) && - (ctx->exception == POWERPC_EXCP_BRANCH || - ctx->exception == POWERPC_EXCP_TRACE)) { - gen_exception_nip(ctx, POWERPC_EXCP_TRACE, dest); - } - if (ctx->singlestep_enabled & GDBSTUB_SINGLE_STEP) { - gen_debug_exception(ctx); - } - } - tcg_gen_lookup_and_goto_ptr(); + gen_lookup_and_goto_ptr(ctx); } } @@ -3668,8 +3708,8 @@ static void gen_bcond(DisasContext *ctx, int type) uint32_t bo = BO(ctx->opcode); TCGLabel *l1; TCGv target; - ctx->exception = POWERPC_EXCP_BRANCH; + if (type == BCOND_LR || type == BCOND_CTR || type == BCOND_TAR) { target = tcg_temp_local_new(); if (type == BCOND_CTR) @@ -3733,10 +3773,11 @@ static void gen_bcond(DisasContext *ctx, int type) } else { tcg_gen_andi_tl(cpu_nip, target, ~3); } - tcg_gen_lookup_and_goto_ptr(); + gen_lookup_and_goto_ptr(ctx); tcg_temp_free(target); } if ((bo & 0x14) != 0x14) { + /* fallthrough case */ gen_set_label(l1); gen_goto_tb(ctx, 1, ctx->base.pc_next); } @@ -7419,6 +7460,7 @@ static void ppc_tr_init_disas_context(DisasContextBase *dcbase, CPUState *cs) ctx->need_access_type = !(env->mmu_model & POWERPC_MMU_64B); ctx->le_mode = !!(env->hflags & (1 << MSR_LE)); ctx->default_tcg_memop_mask = ctx->le_mode ? MO_LE : MO_BE; + ctx->flags = env->flags; #if defined(TARGET_PPC64) ctx->sf_mode = msr_is_64bit(env, env->msr); ctx->has_cfar = !!(env->flags & POWERPC_FLAG_CFAR); @@ -7455,6 +7497,17 @@ static void ppc_tr_init_disas_context(DisasContextBase *dcbase, CPUState *cs) ctx->singlestep_enabled = 0; if ((env->flags & POWERPC_FLAG_BE) && msr_be) ctx->singlestep_enabled |= CPU_BRANCH_STEP; + if ((env->flags & POWERPC_FLAG_DE) && msr_de) { + ctx->singlestep_enabled = 0; + target_ulong dbcr0 = env->spr[SPR_BOOKE_DBCR0]; + if (dbcr0 & DBCR0_ICMP) { + ctx->singlestep_enabled |= CPU_SINGLE_STEP; + } + if (dbcr0 & DBCR0_BRT) { + ctx->singlestep_enabled |= CPU_BRANCH_STEP; + } + + } if (unlikely(ctx->base.singlestep_enabled)) { ctx->singlestep_enabled |= GDBSTUB_SINGLE_STEP; } @@ -7565,7 +7618,9 @@ static void ppc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs) ctx->exception != POWERPC_SYSCALL && ctx->exception != POWERPC_EXCP_TRAP && ctx->exception != POWERPC_EXCP_BRANCH)) { - gen_exception_nip(ctx, POWERPC_EXCP_TRACE, ctx->base.pc_next); + uint32_t excp = gen_prep_dbgex(ctx, POWERPC_EXCP_TRACE); + if (excp != POWERPC_EXCP_NONE) + gen_exception_nip(ctx, excp, ctx->base.pc_next); } if (tcg_check_temp_count()) { diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c index fe0cb98e6d..d920d3e538 100644 --- a/target/ppc/translate_init.inc.c +++ b/target/ppc/translate_init.inc.c @@ -498,6 +498,7 @@ static void spr_write_40x_pit(DisasContext *ctx, int sprn, int gprn) static void spr_write_40x_dbcr0(DisasContext *ctx, int sprn, int gprn) { + gen_store_spr(sprn, cpu_gpr[gprn]); gen_helper_store_40x_dbcr0(cpu_env, cpu_gpr[gprn]); /* We must stop translation as we may have rebooted */ gen_stop_exception(ctx); @@ -1769,6 +1770,14 @@ static void gen_spr_BookE(CPUPPCState *env, uint64_t ivor_mask) SPR_NOACCESS, SPR_NOACCESS, &spr_read_generic, &spr_write_generic, 0x00000000); + spr_register(env, SPR_BOOKE_DSRR0, "DSRR0", + SPR_NOACCESS, SPR_NOACCESS, + &spr_read_generic, &spr_write_generic, + 0x00000000); + spr_register(env, SPR_BOOKE_DSRR1, "DSRR1", + SPR_NOACCESS, SPR_NOACCESS, + &spr_read_generic, &spr_write_generic, + 0x00000000); /* XXX : not implemented */ spr_register(env, SPR_BOOKE_DBSR, "DBSR", SPR_NOACCESS, SPR_NOACCESS, @@ -1841,6 +1850,14 @@ static void gen_spr_BookE(CPUPPCState *env, uint64_t ivor_mask) SPR_NOACCESS, SPR_NOACCESS, &spr_read_generic, &spr_write_generic, 0x00000000); + spr_register(env, SPR_BOOKE_SPRG8, "SPRG8", + SPR_NOACCESS, SPR_NOACCESS, + &spr_read_generic, &spr_write_generic, + 0x00000000); + spr_register(env, SPR_BOOKE_SPRG9, "SPRG9", + SPR_NOACCESS, SPR_NOACCESS, + &spr_read_generic, &spr_write_generic, + 0x00000000); } static inline uint32_t gen_tlbncfg(uint32_t assoc, uint32_t minsize,