From 139dc5ed905e7efe63756d2401fac8eee88bb9cb Mon Sep 17 00:00:00 2001 From: yasinthanvickneswaran <147663006+yasinthanvickneswaran@users.noreply.github.com> Date: Tue, 19 Dec 2023 11:56:52 +0000 Subject: [PATCH 1/5] Update non_omv.yml to test WormNeuroAtlasReader --- .github/workflows/non_omv.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/non_omv.yml b/.github/workflows/non_omv.yml index 54e61abe..ad308b26 100644 --- a/.github/workflows/non_omv.yml +++ b/.github/workflows/non_omv.yml @@ -29,6 +29,7 @@ jobs: - name: Install c302 run: | pip install . + pip install WormNeuroAtlas pip list - name: Test OpenWormReader with owmeta @@ -36,6 +37,10 @@ jobs: owm bundle remote --user add ow 'https://raw.githubusercontent.com/openworm/owmeta-bundles/master/index.json' python -m c302.OpenWormReader + - name: Test WormNeuroAtlasReader + run: | + python -m c302.WormNeuroAtlasReader + - name: Run some examples run: | cd c302 From f7de589d54e8ff8528e0ae26d95414d9b7464872 Mon Sep 17 00:00:00 2001 From: pgleeson
\n", + " | Values | \n", "SpreadsheetData | \n", "UpdSpreadsheetData | \n", "UpdSpreadsheetData2 | \n", "OpenWorm | \n", "WormNeuroAtlas | \n", "
---|---|---|---|---|---|---|
Values | \n", - "\n", - " | \n", - " | \n", - " | \n", - " | \n", - " | |
Num Cells | \n", + "Num Neurons | \n", "302 | \n", "302 | \n", "302 | \n", @@ -117,7 +131,7 @@ "300 | \n", "|
Num muscles | \n", + "Num Muscles | \n", "97 | \n", "95 | \n", "95 | \n", @@ -125,7 +139,7 @@ "0 | \n", "|
Num conns | \n", + "Num N->N conns | \n", "3363 | \n", "5806 | \n", "5821 | \n", @@ -133,34 +147,45 @@ "1650 | \n", "|
#N->Musc | \n", + "Num N with ->M | \n", "127 | \n", "254 | \n", "254 | \n", "159 | \n", "0 | \n", "
Num N->M conns | \n", + "564 | \n", + "1118 | \n", + "1118 | \n", + "926 | \n", + "0 | \n", + "|
N neurotransmitters | \n", + "Acetylcholine (394) Acetylcholine_Tyramine (29) Dopamine (120) FMRFamide (247) GABA (200) Generic_GJ (1084) Glutamate (962) Octapamine (20) Serotonin (178) Serotonin_Acetylcholine (104) Serotonin_Glutamate (25) | \n",
+ " Acetylcholine (3581) GABA (57) Generic_GJ (2168) | \n",
+ " Acetylcholine (3596) GABA (57) Generic_GJ (2168) | \n",
+ " Acetylcholine (2008) Acetylcholine_GJ (222) Acetylcholine_Tyramine (29) Acetylcholine_Tyramine_GJ (13) Dopamine (98) Dopamine_GJ (13) FMRFamide (170) FMRFamide_GJ (90) FRMFemide (45) FRMFemide_GJ (33) GABA (182) GABA_GJ (76) Generic_GJ (1356) Glutamate (824) Glutamate_GJ (324) Octapamine (19) Octapamine_GJ (4) Serotonin (163) Serotonin_Acetylcholine (91) Serotonin_Acetylcholine_GJ (13) Serotonin_GJ (20) Serotonin_Glutamate (11) Serotonin_Glutamate_GJ (1) | \n",
+ " Generic_GJ (1650) | \n",
+ " |
M neurotransmitters | \n", + "**MISSING** (2) Acetylcholine (377) Acetylcholineplus_Tyramine (6) Dopamine (1) FMRFamide (3) FRMFemide (5) GABA (126) Glutamate (35) Serotonin (1) Serotoninplus_Acetylcholine (8) | \n",
+ " Acetylcholine (808) GABA (116) Generic_GJ (194) | \n",
+ " Acetylcholine (808) GABA (116) Generic_GJ (194) | \n",
+ " Acetylcholine (924) Generic_GJ (2) | \n",
+ " \n", + " |
eENFpczO;}+9Z-ST^T?o_$VNk*!&a>eBvj3+PTox{io z8#M2hL_y{|wC?Y}k8C*$AUMt}4-kINWvcU6BlszzKIkz29jABxo1z}nqtltr3Z?z- z0(lblw_lCgd*wPnkz8_uqG4doizs{)Pvd6g-sdGnbJbIbvW z6*X9W5_uo+PV?ziM(Hnn>wh1=E~h~QYd(NRU7d&41^deBsH1Iaj1|{?^*Bd|AIq2$ z86FhFcI_g+t-W(HOPkbxPsI+F_#yIAX|&H4^-_(Wdh|1BU5S5sqb}Y^J_+rlkT$(M z*W9g)J5k+RVztTw@U6d~DVEMq3E#9{DUv&eJ@08?XFPk*hV{c=Nl^(dSO GiDJ2110l`AQ2nt>zIt4Ywhlp~wsbM^Q8o2NG=XN4Saoj7( zInA5czzv>X@<={HQ}MT_mRm6138yZuJL@a%F*J{M7r*S^lvv=-wC#&QHbMDlU*XmT zK3<8{JD396jTS*hoF>}_%F&{$j*l`*Hje3O0X{+rKr#%WpXjt~V6Vr8F`NYIplH=s z2Fbl=?CTZ;&|_Uh*+Y4L^+Z}<(C}wIFDq={ zMr!2UST@!N)c6LUj%thq&@viIYjFChC@)P>)~Ne)JH63uOkosPCBHhI{i
CYJ?qVp z$JA5n9`E)7*{g2-Q*LRl6sEsGTyF)3;57n(;wgX6Kp9F(pU%nzdh-rc{H?lszyorG z;2nA$A 6oV8rJo>#5yOW?OMn)*JW%Uh>`>HE{WdaU4$$Nm`eu+-zh4_A8KAkYK zVvXWw#(E9KypWf+Sy)&d@$|b;$&)~n^WZd)D8TI<>MoC_> &7gb99Hy~5*BXKC9IZI$G+jA04$M*7*WlqS+^ zxU$A-t 7`>I<$){$mts}^yMIhnqxOF@@zN?9n4xBq-Q|ic_rUP;O+-9B z>yR(G0r+<9e!7sB_c|J3B29($+L)vK`|CQJcQ~n5s9pT>U5%9g>gGS^3&%R2U? 6G5eF$Tj@z572iburthYt)bA$#hiAfnx;R{CFzadz&6Ge zWuk~yNiFwh-wrdcEVyd!ocT{j-WjaO70*0= U~{Oups=)(-grPYK|Zl&$@BIR z_3z`9x~GV4xk^V@BN5(54vkIWAXAU~v{~Q9alidWtEBi#rw-=F0aE)VPAGWCa`Z+> zye6(kgNC5@5;e1+!gL{_r7s9rXMlXX)1zfeKte00AKx*sE4_PZzWbY3d+gYN7Ax hebNLz`$yb((Ghk}34kfZ^aI*mLNM{%DgIafNSu>SBjG{#EE8*+0k1L(U zrIX?)_(t^C(;H{_I?Ut5O-eaLrfJl`431N0g>W+~T%9VJITF(FH70N)=TO(n`Z)@j zO?JA#EP~O;0(8A|1vh9|coNEvuHFFog(dq3rAyaL2+4uUI7vO0QgyNc5qN>L_xP+0 zbl_*rVMtIflZcP#ZEXNZ`*h4a{`JlH%d!Iae6IDW&6HGwvLZ@yP4mliSQz5eF0!J< z(OGrujO+83GsXEYg{amm#ry0>b|Wv6u%p*e1F3YHu@Wm6rn)-*y1p)5W|BJ+R5nQz zFV_1yrJR523`AzV5M0?ZnNFL>U`6obfhw{tUHe!t2>RZuS>+H~n$V8ooZ}JDiX$q) z6d+LQ47@zCLsj=h7BGX!$V06bjr%Us0cxLHh3&5rJJv`t6ifQ%U5H7%-OzdWS%e}_ z-az$jAUTauc2x$Jy~oslvzbfA%l88)w4|Gsgt8BcaqBLj0(Wm#CfC~ms@IN%exfpy zmok5MM%|+GB=DjN+#qsG85xqc2fa>f5rYKRtIfNxpJ=m}JQ`^1*Z?&@O|!EvXzYqf zMbk_IROMW^5eF}=2jqf#jWlW$snK@B^fbH5S2ogc%jG|D+0dG51X!-Q$I)ZikGZLn zr^GpC099){(Zb+v*cyxWLp6(}Bu&o;5|Lqpliy&$EPa2U?=ZA-iS2zmHHg&&=1kDS z^a~*(#&(&iC_(Z=%XLlF9!+oBo1UNl4Ix+_;5ImPk_KhYsNbM|&ec-I@}(NfPW#+1 z^z#6>ynrz$q%QO1J#Ce#w!c8Pg}AI>{pRW>jRTLxr-GXh_@ROTDVI>-$3fW>34>2! zLtz&4qmGnaWGy>8QO?Zm#|BgrxR>dEy__4pjlgf^bM<50n>4Xo&P9u|3-Mpw$V7(U zttWf4vduKe5mo)vpZlg`L;$mr{W3^|C7maCQ`rQ@Zz4VU8uZgda89>O$1Ly`AIfyU zCxzwRkD>u5 xR%SO9N6v1gSy4D00>j&MA zXJR~r 8QEwS&z9L5)kU)Ola)3#N~9Pc^3phMH<=E zMQj!R{j|hh*E+;LduIe|Hnmb&XDF8xjKx!~Z67kpVpA8*{nGrKP+TwiQ|}uV#B$9= zEJ$PSbLAL=;?oA3m^g9jwwtJ1@ae+1k*%Q7yl(RISckV^@m8FC>2zexJiXBdgLPZ{ z)ywT-Gq{M6HRDkOxbQ84t`k3zYMrJ*23NNJ1Nz7i>mj)CBg|1?t)aoeMouLeMjRz; z0$&p0)YxjtPT?f~$zFsu*f>*~*-Q)?3DWMv@6*uyn#n_o@$%14zdo0Yq*$Dw=%n|{ zXUe7Pu!V;o1W|YhH?J5~@?Pj~scrN&{!0K6N|2XJ2G9w|q9-;k{jbeOW97~eXC>a0 z*y|5zak>Undz<#RPzRqh7hWCG!cN=_zjr >Ss?Hnz@qiN9s=SG&KVABf ztcPB_X9+Ew#uMsomezng0gU7}Cd9+nGeIJfZfKgl4R+%sR);tav&4bQlAo-9&S1*r zM@k)=53q&tllzwq1PUf#KOz007gK1D9qVC=!tFQW3 ;Vox>=X!ZJ zi}^=nDCFH5O4Q<=Y7DrL_(YwTIY3j9k(H5vf0yi;P(l84hv^5nzM*i#L{|jZ(|dK^ zaEDm5@860$JYKBIwI3 ) zVv^v$)U9miT^;iQ`W0)0MAF1SqHq{^SH1p+vDwJGiO%HV88kJ$8kr~((~w{yz6_Gh zM!dB66?6Pc&t9^BCK%D0f?c9Y+VwTV-%cr5HU<7~`OJJr)K^YH0e9uHJu{G-a$#~7 zxJoxV@h|<3Zympn1ibNp(h~=*K;Sk2CfiX-?IQ_^Dw(!c)Mf0u@UKUTB}8v9o(m|7 z-%iI@ihK+1>}>&KUM32M%Ka5FpH=0cr2TDoL@N4&es=89ePPt+G2QL5_uu83zsa8a zR0765E%77^EjuqDN7Uon+5fwomcRk@P7)go5}?j&+lY~0JEL0M#y_Wjy9Yg6Yg|qI zqFURp^vyZ~GSu4kDA5JS&acO}()-)C> lb?Z9!$F&A~&*9xVox(S+@V6q9e4U;eBCnza`+N2WSa+Ui z*W_YUW^F zu9$JKdi)VyHBe`vfK`H zX8_BSW(D-o{5b)Of;(g5zm08ZQs%koSGo`%o|`|yig&GI`oATMB}sI&>Y61< _)bl(&eGv45i|1y2DBKuS+XJHDc(7e8+w4X1Yk0|=## z0PcOasyBCcbbcCf@0%V4uz91fAFMt epQcNb?lt$*V^Sp5QsO8r#W2^|ha`S6fC>)FoLI{bR@O50K^ z;2ZzW&wIY>Cg$R+I;A&b5Yuf(0WqV)nx=C8;5H$v 3b6L=4O}C_Nf4`Irw#AAnEl_bnCI1m=D=Nqu+UyjoZba=3^e$FWzMLzmeJb@!9#= z*q49pV>Daz7sZgDX%Hd{8MPgr`G;ibiD|x@Rz|v6?B*Xj6d{ko#T8Eow6Qb@NEzK>fr7L zh(T&kMmKtdyqW9kfu>f_bC(JC3rw=H5YM+)AO2Dpt**5FE0A7y=#m@o`IWP7S2_HK zdoSCP@Thi&K5y%n^4~wAepuX|-~TcWQBbThT714I_i)-y`gQxNMwUZwI=FU(bn1Jx zIl0*F$*|ZlU-3Ta$Ly_uz2B)Pc_!{A!L>bk=G2vITq^YcI6GZFX8{4ST$u}h|77(Y z*YbXRzkk;yfOu%TSTn9%=F(?i`1&aNF(F0!<=0G^8HehaBRyI=yW<=>jKSZO-=q6n z6PIWDsit^K#H#T#czA>P2SEGdf5xZJnFj}_W tLQSMt$S7ESI7W3m%G{U!8{OQ|o$ z0tnfScsdAz&m*J}RtXV{W$+`a^Q&@;4eDuzi@~pK8R}GmYErE~>A=CDE`L^+!yj!T zyu*VTglv5|Wjym;o~TJ73AXjBUtIXJPvMT9kd-goCDX55XGh XclJ_&4I2tfse`gfY#Jyl7fSZIqI#t m5U>6+sloUS|6zZ} zvfg)j5@VDH%`SC5+?1zKI>#aC*p@&DciPn8oDELEQ<2qH3&TYB!OClafIkRWE~|1) z+VZRp- PIa3A9 @vqz;=cr^Pg&}elSrOhbwL&?Fs^nLdPn=Tto|=4_~9)* zHV n 02r`R(Og!O2EMWnZlRjJ#m zbtVVt)=>3(Z!?Rrn7-c$ymY>W!S|y!-zGNKXRHTOq7>NAp7Cc$_=(qrqx<4!a0Cbt zfqGq1P*R;{;L|lwTOCADUW116A )M&wbdjwABi{$#TotoLo zGtnQoC!Gi!=$_CS&ROoH0<}m+BP_J={#if-!e}AZo6NSoFKXmRU)HK2e4&69`H}$K z8ASf)XM7lAr)Ftn>_y}GDqpf$C}YaZ^6A=4YflM=`^u $^z@{TeC{P0 zCxD1WO`DRdBw(o0;dKPWf9Z55>C9EpX3>*wG$d5>&t1^g4RRoR^?m Ac}p -EaHi(B275YlJ{V0ky#wfJD9zBtTi zP;mR*+K6su`?y#?N@j4dr%`js+3DBn#vf(|?emoEM0@rD$9aJpKWu)zJgWG+L;e&< zhUHfqTa}{#lAChUHO3>qQesa$@H31qv3Sj|eNl5UTBPl@GmIkjCx;vWySt;V)s`h9 z$}Q~2k{ TMlz= zeVlU
o070Ifif%k`cC!~1K;4U~h$XU8A2F~mqI0@Vzt&?wg zfHof k|YAT-a@?fg*jc-YylJD zT^mn>-A8*DR2F?jRm 9n#MDRHDwe8*SGb zap}CHtIHEt2tirJla2SS{?02Zkzi``5^g>|v(V;ORy%2}o|~zEzlKy~u4!80J4sm_ zwDn!kDY=hR&C`t^1ip6o^Kf;3HD_6KfwBP8TjHdS&}(jb5bT7rRoak*#VN;tAARfW zvGH%q79_6(zZ&bxlPozvAH_#Cw@1@afXcAvBXZ*Xl^6N1eLFQxrE5MOg#F+!aZxwu zjJx$-a~BnOKQ 3o1pu;bzVQ7vW=q1ggNBRWbj z;m-kf4tk5TY1TlALUN?N+(-I8LT21)Kd2f0>(|GG`+O_IV#Rtd;Kd9d{nX8FqYVeg zXfqz0)QRdp9pKR-Vb@a^U%o0`QgJ5j#4{Y<<)LM+ppcLsP+99&%Y1MLW&m3oH8(yc zrqcBgj3!-Rx#U%@J^!zdMkCM}S2rlj%nZhfj3dTTW-o%RLLQDwgn!)}oD@?1VZYn| zp-Gz@FN-#*SawplMbKASERob2nAyP7@s+N?A;;}Ql0FxVyE3QAyLe`=#wz#of&63@ z#LA?Erk&yg4oU#KH<^AiPF6WX5Bk*6r-r$rhA(y+!lxa>Tw~q^Ml- + z=&hfq(j6gz_9tk$J9~ufuE>%XV+=>fig;{xZ(q>E#`w?jfKfQhp<|9EP*^#?u=* 3>KRD|i?bCAc*y<&3#&kRy^+qz7n?kK?+QhS{<;?@e0eeg(V*bWV<&r# 0gEh#(hY1 SQ|U(Xd>~1Z z`WbC|6bXj7pbsedn#5vf?u;>{n9KggKfve 7Qi@b^HcyLnwp(l6ifvj=bdsB0q= zKzkqkgj};1?DDoxF?=-nMPMu^wPsE5k3()2m&bb9&-1P%0!{#&$WB2REytU=^~y zm|!$dw3gjOCEe?c -PAoVUzxk$QH$_CAQ|WVOd#asHw4ez8+3qS0-+9Jb|9U~4Rqnq#rS#`3 zTYWK#HNy4{Ba_opKb2hcgj!a-XtZLP8LHg+rE56xRX=trfoQs+3LbAxVa|Dvusc4W zFPzfk*8F)x3qyd#!o7!~XIW}EUT-{pL>lGtKKS%;@c?osmUMe5*XbaPCpS6|^LBK^ zaoI;>-zG+zU)KYI0n-)~_6MiwW+TLEh|M#$IXo)vyE(^Oz1(tg^ReZhH7kZgS$Kv* zBzQ$^z63rTT^!oH7a&Lyzw|8fPzsr~otRxSq0~e2)9T&Z&Ddho3|3oOZp6_R(SjWq zte0v9UUHeO(@au0Ed_JVyahcsy`fGozj1W%ke%OgR-RoR$o?yx?ZT_)`u_hSS~z9! z4GB9H9y2BhX{koU)e}JC4=h+lr7I9+rc8a}tWrv<9a=8?tC|@T$KJ704$A
Kzil#@RgF3 WFtZA+WP2A6wBL|9b-X#iyF3 zldOX!j~g*yg#u5Js@VM*ucDCJ)eCmhq&c(4=H3$d#7IB#U z*c>pRcz;2$D^s>QHDTDDYr^X~{nm$yoUhOyj-T*o;6*vj+J!b7xxf_qzFn*^eLGRA zhn+{Yio8;Oxz*jaKOXCeQTEN~oS1!z;^gml2}Hy%2PcF>=d+jj9@%YNrKd;BS&h|! zrd^%6=H~e<70)~apH=Gxl%YTn8!E9!-ujy*13H~u6Nr=|1%|o`ZQyI-Ny}`w-3?P! z{heT!24+Yt3cuG_4ayW67YoH$M{8=dv-#c1UbWpgp&P7D06o3r*?`rXfBaF`IuaW_ z+q)%ogYLGvf%1lkXpJIyZdHuRLw+tfhNNA(0Iu?~{%J0$TaOZGQSM(R_P~#VH?U({ zzOkseyvVxTC{Ev%4+ie)d02g~
TmY+&MKmfgc(7zki zt!tZbXVQpld;oEa`6vXZQ>IA2v;29jnXo)#i9AB7otJqqboy_?y3NEjOnMz?P@58* z%%Rx}t)3-hFWvZ6LM_>V6aUe7+0~(sXf6I*rF=NsNK7=9PX$5H(C07kv?|pePn3j! zi`4RxN^F>zb(z)ogmDT`Z$EgYQEEWWdx q+BE~nMm!{s+*QQ1 zi4e$@l)^rgNhG2M2b31&kTqJJWsuT#Y&Q9@5R^`&EhL2PN)GPT4Ezv{U ?dW#p&dpbduSB-XjL~m zmE({uU!O@E-0ztu{Qz`4eSC@;1UPDbOP1%t0>c_x?nFc )AYJ1y=iDBvxrY!fs>2Ru47urZb41`3-X4c3}9mLW5ZW5aP5_1s< zJvegyn(9Qbz|;U)yd{qAJbl*UAzIVGfKjToaBcne{pU~&Te>JEds#&7KxFTL ine+Z0OfcZ(1n`gz z=&97FFmx#-`{$d?*u35W;g8=n4^F0h!^T@&{`_IXJC*+sL`0EYd)%6{9yexpFz)O) z;vn$eVd0cxQ(6@nGMOBE_buF4faaGjbL u9 zSk=L(%058%c}betGQ*=~N4o4}$1ksfA2-)GwW$96b9o7Ck+r-krRbt`+YqUIkUOlo zu(8S`8%x25_nEzT6epkPKxdRmZN=#+UkF2R-LNpsm6=tK8V7^TK}7vnuC$e5wg#9v z5yXewTa`PDYSQ(RIB@hO+w~dpXUhVjzjIZsXARB5`sUM)-*{w>W1PW1CNPl~gzAz> zKV8JIfsmIxQYqD;qI$#Uf^{3*m-Mn);;qSB>lz-|{F$7acZ6# h9BJ;BB_>Pd8X8mYY!Oe?MbLPthCwI?>tR!ChlUjlgHX-&{=*a0}s{E~xJv zmko!qX94FYPMrNPAF+Hz&8Deo;JFrxuK-%$k|@W8-NFI1)c}Sd6;KO46321Dcu? z+R=>2kDLxw9=i$97iah3h}R2pbtu*tX|&UnaFuQewM<&9Khs5Xif zH4K_$y{(slX)bPC_{(g|>r3l8mp#?LHs~F_v(n4mDF3w|oczZ>MuJgEdn}Uw jW5me#=6;TGLEIJa6#?&ROcTK81&8S148)xNnMYPHXyoPnTd~4`RJrD^W z=txKKMtWZka MCtm<_ zh>l;i(DNVOX!xkGM5!kGG<-{!nfw?qAW_FKRe#(_8J>5soUjscBcXhJ5;c1pkD=1w z`EYC05kZ~~9Q#Q+se4d{a#8YGr}%Hv`nPg}BMmg0KsK|^B2w|;(RSepR}C%O&bDPh zS}aoBsOl#B_N{h#+_I ;Bj!)N6qAT@%Q`SCTDl0 zj7|7kOlT0* 3AWfUjM0yMQwN~u}W4UpKxnn3AuUfQKmtJ8}5AWMj3`V6yYa4H%0Sa^&RMQ zg`P}D2DctILSSN0ybq;IaFG$5PEs8im(DyehL%hnWLG@6rOo1K0EUa%Zgw=%WXF!d z(apGi{p+6}`Xi@i^-!(Wv^VDuOvb|k@A&bWUbPlY>`SuU{F(AAmS=0<4~#STE1O%m zy27N~;Ot*&SV@*%o?SSC2m*bXHx0@{K}^cWYwh*y|JuK6@zlKqN&n*}J^kyv$@Q0W zV*W74`pej>d;TvH=RE&Wpzn9zzWvWS4e8?8<-e%s%8aHh!;4QQkCRCpMxw$)|2zKk zgab&(7oN2aDh0T-p(D_TQEK&{qVP=i0{B kCc CYrtp&corR6B9^uz`ZTY 3=p>I{t*ZPe5ez>l zq)^!sa;{JVM&^G2s101>_ch6#riR{B9!`Cf>|UovV#vueG1}rJvl2x7CJ7uS(VjDF zni%Ew-h9 ZZ?7K-j7-(AG=O} zNig*_;?O*oD$ur`82K+<{e|aQsJ~6ITQ`AMhZ5k5=Pe(AE}W~D@tR{sJl|4o3;6m- z{x?Ma-!b~nDPjjn=l-92DAG902WdH>3nF_&`t-GTywA49-;eo4R>~SpqCy_Fu &RaL)gmzluPxI7oS0+z3-rO?m#5Pfbmc^Ga34`Kis?B&fGxx|K@ z=`V_z?Qcn*554B5z{?q2J +qd10P zsjjFs4S$m(z6lrs7CW;v@f+`{OS!eMUdabxD2M1KlTYj0U{uC--x+e$!fvRHy7yl9 zYIZV@AKamxc9;=yK^9N|#65YL&{RW;L(dB=j?vn k`uM2^}_PTjizFmoHu0+XTSAw*~VN7zT=q$ zm-+q}{88qW5gm(|(pWc=kY}kSt29ee6G TZJxR7Mq@2iT5P7W98{I&`cBZ>;*b#0C+?QK=xzthR@?iq+V?$Nal zMK0E&Sa)OrLyL4?NxRb%f5BgE$0;E3x2i`Jp^ nyjjsos#-N}#_XZ0XXjwpTK zWbe>&!7yz>EpO{ERiLGaGuCJ@ulNGm@@AjzhB@4$`~Qy1>3G_C@9(?jw}&<5$??h5 z(Vui7^dr&_TY{G%V_rxBMciA?PI?UJbfOLk5G;SFaGGgn&z#oX!($5J vFJfyw zt`O@QYl{ctfRENu{E*)5eF|+d^NkT=kOFBQvQ0LFQeI
zr5K>DUPyItW9pID9Nz}qbvh%}ig00KFNNh90Sy0_jGfKm3dG|ranW+h8^pvHbt^Uc zpQnw6&K+0;7AJHah?n^xZr&MP02=5fo)tct(mUIwR|*@EwwRMy7y}wh;&}3_hMSG> z_^|jZtbPJ%?R+^#qb54SR)T2NzCFaTKhC=*8v5Sl2oY*PP0Y`VW(#&OfNnh|iw| zGM1 xrhvgmrEET7f!zdk7-=YB5NL+giPYek+!^^)!`F=t^cZ^*=`t< zd}sVy32z|@2{j@Nq+=$BR|wKgvcdY}n~kUc{1%YjT=O64{nz#xmzT)ihx^O&g8*ze zieY*J-u0YpUI )f9ABSbkXUvlgkH5@*8mUN$L0ul0TCjs $ 4#Ank+G(FZuVc;4cgSklxs zScG~=u2T7zAy)e^UO}ND1-7nmbu4aH#>+FpY$BL9bkwY#JXuaM>tlu`yGD4WtC_!; ze U&f<&u%IJhPRN{E#SXbV z--|^Gz#CDJ=dWxPt=2PBK9E9LW#`&2>?7sqDk#q&8CFBrfqrDaDSX(sKZeOQZev2o zQn4D{j$H7b4IsrUqJAvQEeDTVN4CO^){J+-#3vJWQF0eS2~68duPJO<-6z55Cp?}lwvfpQ9<+{KaQtSC*8 >Piyg siRat1Dwf#=OZCp`rQq-BRPouS z@4t{e7UgW|0W*JYOr{b274klqlCMyV12<_ B<8;a-)5dS(T%#2Y` z!JC2#E7I>Xa^kdJN 1Z3#XL>lHGoqKwao>b*_dTReU&R9K78oQ5VSH6CEy`3rs!c;@X z-}J#2zs~%05O)Ik$ HrZo(4??UB+PCN~8gy)Ym)S)kqLu8`>kVXZxOvF}uBnt>c zaUupWf?Fc!8WUqLRLfEcGaHT1YdhU!D12a#NS+(eEmZ0pv*uoH*-F?j?3SEG!^5~J z20*!)Ov^L(>6i)z S34WUZGt822Spu2Br! zmxo4WrB~`vam^jn^shy$Wr3x9Rk?|YvlGAXr^~hLuMdk*5mnw`54 y?D;3i^r^NF928eENvNlRW5h^rm-|=ia zm`ywq{fT_D8IZl0k3P~U80^XCBve1VR{cNRk9ND+vlVpZ>1^LAbkT$nkJjP>LUzY~ zO7cUjs8Y9;zu@rIIA@f1dc(pN&^HD~tLFXd{m>BaOx7b3kJE6ofC|sd#0F{7n|Ll< zQ9c`kO9wS>Q$j45>LB7;n0qQ0WRt5wv-oCc_`iZvOZv`$P~wEi>K>8vpK*2u(&gy1 zx_IFKs)e4HHq5D1;VeXGl@&YsY8xttz(jza6Wa&?K(y!ax$y`|+OyA#r3f47iA&V9 zq0W_)#9Wo7Sy7%yyZx rjTO zgY?m=UJS&Q(C?9OA+xQ6APnXnS8mAAwXR+UuQ|D=t0hPEi4ZcL>(L|01fFgkRrCg| zoBXO!KnABqB*KZ3SHxVdo$A;AVh=f%B{ws;Lfgg{QStj)8v1xy$j{Q1NdL$zj<=n5 zxgmg-2+roZ{^Q8_$|<&mL0>Y*y02>EGw-q3YZk_J(n%)pt-HT`nA3V(;i2WQ8Zy8W zt*Pyq+61L~S%x5RgYhoEEGFsWw9&_uw+oQg55r14H~1lG=Dd_?FG_EpB3~LpdgFX= z?}46VVJ~5dK|ZBirxQ{vq#MIH-!=eX<`Pn>?>K#=z$K&Pq44o>6yoI8bB76>C?Zs~ zydZ!yUmDkLvbcBV0xY$YWYH*DX#GYr{ALrzj>7kWT`r9BHO#KnjKxTS)1@6h?ToK| zXaH+Swx$y~GLMU6NL3_ODOG vHt`^&xzwleah&3RzmH8nzL7>6o}&EEr Ys|j1q+0%*`pS>fJ7Zm!|pfz;3 z;i<3EzpM}qj4OXTjtRWxVnxpecupweTR!R}hYtdfXYtQ?Bl`@YC5EO-B;tCguax|8 zqmcqAsP_{?V-Rtv*qKjQlFSKV&!@{v{mJw#=rtE<8>RavVq~i=gUU#fLCHp$U#w6h z2>Pzvggi@$ieCVzSdlKikkqq09UDm%j)772U-{qFNOwr0_98YFH=dw(d1Erp!Cy`D zpn$?J{!uO(U_*r}S2B_I{a4Tyi+BBHd*Ns{AkM#r@DR;712`oc{kfu%u5>z INkprHc}t4}r>3`M?y_v{lMfSHzu3PZGb|M!5?sVBvbRYT_^A*(Gam^s;*$ zg5=K*b-8qiP8=u2;cLM_G_z0%Dzf{C=NjHIN2zrCSYa(nw&TGi8G zEv@o5j<_v=jIiYQUjT-B+Bk{V`(@h>3XYZ7^KrsI0NnX@)U(6RIaoTc{P!Sox8Y7o zS^M86b)}BRg?Tp+bzz{UIrXS=H;RA0{77_`iRV9=;I|B}=Ki~W5yc%V470w+zeWr6 z71U~(-PRF2gG?`|TodaFqBcpR&+0_B4KQ>R{rD9XHkaiTI^Nr!M2wQ@$`Ocx_17b* zU17BNw00Be4a}7VJ5!<`1FC&y+pC3d8C@>>XG1wBNY;)xzcwXOK1KVing)wGgg!j{ z`V;!r@Rv|iT)~K1OeJm)KR?zx5?m1}X|)FzL5Ly$_rb(0ihWt4a*ZUqB+s<7JO*a| zk61qc9{>nJ_rB!nx&vF0s(j9kGYAnAsi6l)K>LI%MG8*iJ_k5zOhc@DL$;JP#zrU< z)@hVeeYt%5l-*`5wK+ekXO2uLm+s~hO_)!5*=kL?a>013okO+>-C-j)VZ&=l1TFd} zX=@^s@GV4i00eQ i2AbQU7rdYJTCumu=m z5T-Y8I|&G698t-#JJv?Vm?W^4;lV^J)A_5~sDTa~Nz=_|jKQv*H!T%OBr)OcZvz)w zmN&AtyEz)$f-QY!zDoCNTd9;NT>OEOMBRfz@Qa1dkro0Wdgc{8b7X|+=JLndSF0sW zLu6Y}r~`x7f;`#H*WH82GxOClX1#4n3yx~r8~4x0qczUK(fRnY9(CQ)>;_>hRtcFfuO=T7+3Chm9<8G3kIjS4c{(zs$I*gN@r^kg2M?xp78QpXntyU^9M}diQ5xD-m zMMnF^#p@m+*_ylsahjl&B@M?qiv}SYAj~N|lh;XM0UU|$dI%4U0 Jt;uTiA)A$JNW(2tsH88wZ>3MAyX&A#%LYcF8mu>TIpM)kDJ!yY ztfflO0dR`&+0(M_fM6Q#)tWVrP&kJsFh}iqYodrO?wL*{T5#lF5Lw+Zkxk3m$Tkt* zGf}I0NfwTEt_CfUNiJo_4mlU3u5he10x4S$TUej)U?yAp7}u%~yi9cCS!aCJYHT&u z_DrN`=WFjl7r@aPNNt%Wu~w0)&zYk~cASHw^YLXp^cr)7v(!m~p{7;}Wm8m^5UCU+ z`YIP6bolwT{`&N&OQ+Vc^F~$?qipT_l1bT><$|yD`a Ac^b7WjEtF;wUMq6rIlLnojmMwEsV@*UXB9x1|WawCHT+pGqYO1ioSRs(H zLb?!87&%niennMS+XBP>sau+Uqifrh2 5D3v5{J{fSEp-PftrGro6HZ-P*QjvcDO35X#g+*YGJIywu1`z7R^@k= zIcg=-hI8iVQ61;t=zM%xkEU$xoEoVuWfoyYg^L{0MkIrbD9Ui6XHl%w;c5MIk9vNL zR&6wN4OSyW(#dM5$Ug;krN` he6CLabZ_tM9^-t?AfTMQ4C@L@}CLzKq+kHbs#`L|r zpnHlIY0JzwN?mpvUlYJl3qBG&IO;ZeV>)nTTUkx@;7COhWrH6ohBRy qt#ic>>Ah#?@KES1z$|?G08N-nm%W%j1qJ(^i#KBv+iWar~@F`nfW}^)6hh& zV|wZ+A?a8$jTCJVW78e0Y=b7-O0mv!BrwKMnpMX{&7(mF<_Ai4E+!X3Rb?k3(y>ak zvYL=+p}V mzURG-ns88$9!Z}(+Sr=d_9GyA)oH=@Q$2mAU zA79p^?!b}3T1%6r7*V5?K{`h=7!s+x>-3FNIAOadx6e7}>9k{xl6VD1gGh**C2}+d zdA2QqQC~RcNLIR=PpXQ9h{l#65+cP~D~Z4y5tyTpy<*pZS9x*-fDTMgtQI7p47srt z!bWQ{UCYdb((4wCunvyeK5l+9OQQwWMkFr6NYgzzD{I%ljO!b6cHqdeXcpbZ*Qhn- zD9oo^d}b4E!ItY(vNc&PiBP6xwS-R?rkDNFH0^yufU4~pbL9U{xL#JPbVc56${9&( z0*_0oT7c`pQDPb|)5)&pyaSpNNCz1 ^`hdI=RNCG&CrWa%h<&(SaZd zL`};asbKDQ!T00AS+fpioM(E3wDcxlMI4gPm#XN1+ak()Fw^ea%JkQv0}Sov-XAkU z5M>FjD?SK~X9GRsnzmYP9UPryjzkNN5a_0%iF!G*R54KiAz59~hGw<0nzFWQ`Jy`$ zerx{raTlfO0ePX)u3B>-Ro8>f1?H$VkXuAAgRSKz8ELxvSBG^~;k=KE74ji)q}qzr zby-bz^c-4h24TKgJfIhlMfd%4UdjLHj&pEyKEA9++mZk@HHLC9L hC|{g z!?v=TkQjaq=4i3#Ow5^Dg3&1JkWLfr??GGH)wQGe!r(|X4ikCsp+sPgY=sa5Qc-u{ zsC}9gA_8Y|s+YgoQJ(l@cOB+S<&wljI2_v5D62aEM+c5tNvf5x)+^e|kPQ^7%akf{ zP7 CBdoQBV_bL%#r9) zo27t!l;LFWCz;0sl5juCxTMi4$ZD-&T%#Xmjzk~YD1<|`l3x_zVnMu4DVVkMW(^`R zM}BRs>0U9|^6C9cS&*$sO-(C<>DGkq&Rhq7O gkb?ngG(tpekEQl0S>V2a!8@*Om++j5g$EwCLWrECS**!wZMB+bj@mEq^|`CV zyTBTAL_ti1ZfOCV^s-v3FLhN^!BE{Y7XV#L1rN4t091*KXiT{Vj(jDce~m-7>{BZ( z8q2(%uQ5kH6i+3EXO4_Qk#r1$3YANKova
w&ApF)Y2@;1Ic(AjfmIgTP`JTO;$@==BT}AoJ89`Av+tVM55nln=J1 t*GCeqwotI9LPc}fpQmwlAPSgaO zCEy&k=_3$2;1-U{&_+%4%nU-1jz_o %e_3vG{s++G=2`+%GtyuN>UajY7Ej_zsWjm(F zI-2$C5d3~k;ty=JT6P{L5#(Ok=4P!|zo|C=OkiZ)v6aX1n4aYmy{yLhcvQzZI65C+ z*26R{Rjp|vjZ_IDuE?puG>o=)NaC!oRwKAVzCiX`b<#HUtjSG-)diV0MEm>x?*llJ zo##k?LFOncB`(nJsacV^n93F)2Sm%Gt|F`pi4zL29mC_Ae(lSn+y1!Q+#eb;=S{Qz zAL2JKM=cN%q6IPz5#*+58Oocb2QzKUk&Kv9FFOpSOb?FMnIqRW3pI}U;)r1YAWfK0 zL=7NFYUMpgXQBaGSQLOtn9~YDG#(SRY0ycVUkp-~SQ|0S21M)9Rnx4^*AE$zzgNwY zLFNDbI39Phnv6=8D|tp%^URU#WiSL)-2zug2Ptu&O>_i0i#t=Wj6B#9Yio d62#gake z)=CduUo~hSVvc0X90k+(C?zRFghLW}kSYX&Vo4KXyG^`Wlj+(N^44?K0|GCrImRIp z>?oNKr~Wvys=`_SGo@OEwVD1i);5uq{qX{nw(9P=SvtgI{!ZCRBAgBDqiqJe4vyL; ze=XH%sa4&bw?&d6fFitXv|4t}YFkEAwv3vPox!`$iW1ba>aOc78qz%mSo$_A=Z5S@ zcASHw^YLXpoNj$Jh9-7M8R3$G%r!V&d2p2F*tLzx3ik!Ye!Xb_ZOO246sBZQo{&8K zGyozzRf OV;F<&&3?c?tCWO8zh0%s?vl}xO__a3btXCd2qDm zVX~rU%39Ve3QzRQdfsiKhtUS3AX}+)g|!jNiZg&gJ9S3FDT6mFjwLFJh{Ao>WC9zD zZWC1LoY~AG5f6babp{++<2vSO6))Khm+v^=pjn$QN*6SGxCVG3X*4#-K4Ps3(-?zL zf|Z;x2>|3coj@$vZ(1-|AVhy1RL5XE b@R1Pf;K;VjQ43}oOC_uBSZB$I5ikwwn=BV#y= zcxG89IqM;iUF(r^S?!S>=iumkd|40IefMfi8u_H?L^Es(s%FMy?*dsi@FBu&b64T| z9r<(38QQ%&v1E6tDXbwc4oKhfW&mUhjyhRQLi4!^@;momMJGD|tP+iDViE&ZW(b)P zzxuJ>b7cFnVz8f6Rx=L{sM0MEzJf}NhM`MYR3`vLF7ISI*S0qxure)kq%FiTTEbw} znxY5cSQ>_*(&+H$CZcT$YTcTww$2=db6^~&cU}dc${-0ys!cl{*yKzpfAl$+BMOgR zoKhs0FLjJXk>qRyV56d`pHF7Q>ugWc^b8yl8#euR(>kq>*a@*oH?n;;!*Qo$54Ohh z73*0-<_yy#C{`huFp@|W5e0BnrwW}!3 Wh>_M>I`$#$!crhNH?Z4WUrz*d#8TB zyMt|rB^yl(wiXmBrE9bXDBX04=Ihd*wHBcSGk4tip-z(#E|xseMjWLJgzM$ahh;Uf zmP-^H$JCy7fMJ>BL}AUFi-2&1fv8>ssbRjZ5o E_J*GM}&Y#DHN6J!Hh{1PDsk32jx3)gwp{WNq^y`?V|y@#>lM ^=Y?(D{H$A)jHR+ zJhq?n^xh4?vnhkHIoAP13|&f`4|>m$HXUQuZu|Dc?<8V-3z ^ zflY`w3qV@%h7+{j {0PB^lC)fy#Sv2tfpDdPZre}?IviAr%NwEsSgpp^C zlDY*)F*a3R49cMEBV|m(?EKaSo2o$CveJ^L7vxRLrQ+tnx8iOGTv` z{^5W3BKJNy^Oeah%K?43&gY!df2lT6MZCN~#hA(BCO@@(ho8IobEsg3?qoG7Kd&MC z=-S6AQ~#y995&c;gQA%s)E)y>5$gii=Gt_$zXD7Tj@E!za=7fkmK)6}Rue`pW7$ke zhnJ8pLdzB~wgznH*{A@HjIoF~=6L9ste}p^;W!LMl`#x*$y}cxf@f!)Idb$>V6ErK z7|Zg=SJKsK#IP;bHW0~(lo+zJo}(V0hV>p#0g&5U%;_16gJ_>o88*SN!HmlE409A| z-OH1RPGW0&%|+TzR^^V_WWwe$oa+#JxVb3Ts>|NU9L;AQltq!iN=U (xg2zE;kIFj6AbzjQg%4#h*TAwe~mV^3W4KQqBhyH!{OTXYKEqywB z=Q( -?7T{5Q*{mGOwos1{j)*Ygk)k;-%b1jmbEd;kN zgoloMhdARI&?YcP%K3N?SZ9vHc{UEMmfd`}lU+6<-?Vou1;bSddK6AkV2;{$ByK%7 zscng4*`NBq(wPd?Z)--!bLQxgALroce0+Hi*ZNd6LZxJtW0`C+UX3^{CG(?_gO^L} z8grzD_`I^3v4+Tcuu$d@&$f_m%*pnQKmX|;=8t~xkFu~OTJ|0x$L9w}^Xo5B1g1xh zrzFcuOzQ_owa>= BthKp^)25p*9v-nOCT!XP)A|9{?fPcB9dp#? zx;UgzZ(xq5JCJCo5`VlRTTql6Y`P&$RMXfB8A|n~bshMyfK2l+SHIc21HWO;h8O%7 zi_{cN!ge-6ATY|EDR1w=RscsWbF{I^1ADiVnyyct^$jvq&8hIfb#$tTtUAjawfl^d zT|cq5sxA#VLgh#yGRe5`=b{Qs!lqu!V6qw`)LI6PU@;59e@b$wk2{ahVY-7GMr?#g z1ethXna0@}=BR09mo|vgSXPU+aqM-J1EU-_(>=&k$IO63%Z7-xAjn2zqO+TE+iUDW za>C9mn7i{Fa{oh !?RBI{D@S7d$L~0wa1g-JUZ^M|pPmV*Y?H@TJKtK@`&G0$BU@b*k|Iq# z0J`>)KhL6}k>T2{F;T9)LAvTP$ue598_wPR!46q4i$9q}6c_wwu2L%y4^^u{R~gp= zYGX}z|DFzp;T)`0kG6(valQpVs^k31oR2T>(SajNY!k8)>S%+c*rXAD(~nH-Jx49e zf$&eV?u`iP;KpZZ67MZoZYoq+v$ wn5aCzhb<=LF6Oj3q+D(yUEE0=?H923 z2(8I#+JmEV6u!JS{nK_jIG|Wf*mOhY_9QGNWV=`}t)bh2486`=XZkke$9@w!8C?Y+ z&QB zmORbR0FXwsOiFKHU(VXP@dp5uBY{kOHP|RHRV~38yES%3H*4VNtgLn~K4d?fx5L3E z_1LqV`OM$H $A}SfDN)#7o+W@2S