From 19e8d17334b04777f47749cf9bd5b60efd3283ee Mon Sep 17 00:00:00 2001 From: "James C. Bevier" Date: Thu, 2 Dec 2021 14:41:15 -0700 Subject: [PATCH] SEL32: Adjust polling rate for ethernet and com devices. SEL32: Update doc with latest disk drive specifications. SEL32: continue code cleanup. --- SEL32/sel32_com.c | 21 +++++++++++++++------ SEL32/sel32_ec.c | 4 +++- SEL32/sel32_hsdp.c | 2 +- doc/sel32_doc.doc | Bin 93696 -> 96256 bytes 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/SEL32/sel32_com.c b/SEL32/sel32_com.c index 015610a..9954752 100644 --- a/SEL32/sel32_com.c +++ b/SEL32/sel32_com.c @@ -31,9 +31,14 @@ /* Constants */ #define COM_LINES 8 /* lines defined */ -#define COML_WAIT 500 +//Change from 500 to 5000 12/02/2021 +//Change from 5000 to 4000 12/02/2021 +//#define COML_WAIT 500 +#define COML_WAIT 4000 +//Change from 1000 to 5000 12/02/2021 //#define COM_WAIT 5000 -#define COM_WAIT 1000 +//#define COM_WAIT 1000 +#define COM_WAIT 5000 #define COM_NUMLIN com_desc.lines /* curr # lines */ #define COMC 0 /* channel thread */ @@ -593,7 +598,7 @@ t_stat coml_startcmd(UNIT *uptr, uint16 chan, uint8 cmd) chan_write_byte(chsa, &ch); /* write status */ /* byte 2 modem status */ -// SNS_DELDSR will be set if just connected, clear at end + // SNS_DELDSR will be set if just connected, clear at end ch = (uptr->SNS >> 8) & 0xff; /* CTS & DSR bits in byte 2 */ chan_write_byte(chsa, &ch); /* write status */ @@ -946,7 +951,9 @@ t_stat comc_srv(UNIT *uptr) sim_debug(DEBUG_DETAIL, &com_dev, "comc_srv POLL DONE on chsa %04x\n", chsa); /* this says to use 200, but simh really uses 50000 for cnt */ - return sim_clock_coschedule(uptr, 200); /* continue poll */ + /* changed 12/02/2021 from 200 to 5000 */ +// return sim_clock_coschedule(uptr, 200); /* continue poll */ + return sim_clock_coschedule(uptr, 5000); /* continue poll */ // return sim_activate(uptr, 10000); /* continue poll */ // return sim_activate(uptr, 5000); /* continue poll */ } @@ -1049,7 +1056,8 @@ t_stat comi_srv(UNIT *uptr) if (uptr->CNT == com_data[ln].incnt) { /* input empty */ uptr->CMD &= ~COM_INPUT; /* no input available */ } - sim_activate(uptr, uptr->wait); /* wait */ +/* change 02DEC21*/ sim_activate(uptr, uptr->wait); /* wait */ +// change 02DEC21*/ sim_clock_coschedule(uptr, 1000); /* continue poll */ return SCPE_OK; } /* command is completed */ @@ -1063,7 +1071,8 @@ t_stat comi_srv(UNIT *uptr) chan_end(chsa, SNS_CHNEND|SNS_DEVEND); /* we done */ } } - sim_activate(uptr, uptr->wait); /* wait */ +// change 02DEC21 sim_activate(uptr, uptr->wait); /* wait */ +/* change 02DEC21*/ sim_clock_coschedule(uptr, 1000); /* continue poll */ return SCPE_OK; } /* not connected, so dump chars on ground */ diff --git a/SEL32/sel32_ec.c b/SEL32/sel32_ec.c index 4629881..78a4669 100644 --- a/SEL32/sel32_ec.c +++ b/SEL32/sel32_ec.c @@ -1144,7 +1144,9 @@ wr_end: //XX sim_clock_coschedule(uptr, 1500); /* continue poll */ //HH sim_activate(uptr, 1511); /* continue poll */ /* this is OK for mode 0, 1, 2, 3 */ - sim_activate(uptr, 2511); /* continue poll */ +//12dec21 sim_activate(uptr, 2511); /* continue poll */ + /* this is really a 50000 cnt poll by simh */ + sim_clock_coschedule(uptr, 1000); /* continue poll */ return SCPE_OK; } /* get queue length */ diff --git a/SEL32/sel32_hsdp.c b/SEL32/sel32_hsdp.c index 2e4f155..f1f11d2 100644 --- a/SEL32/sel32_hsdp.c +++ b/SEL32/sel32_hsdp.c @@ -501,7 +501,7 @@ hsdp_type[] = /* Class F Disc Devices */ /* For MPX */ {"MH040", 5, 192, 20, 407, 411, 0x40}, /* 0 411 40M XXXX */ - {"MH080", 5, 192, 22, 819, 823, 0x40}, /* 1 823 80M 8138 */ + {"MH080", 5, 192, 20, 819, 823, 0x40}, /* 1 823 80M 8138 */ {"MH160", 10, 192, 20, 819, 823, 0x40}, /* 2 823 160M 8148 */ {"MH300", 19, 192, 20, 819, 823, 0x40}, /* 3 823 300M 9346 */ {"MH337", 10, 192, 45, 819, 823, 0x40}, /* 4 823 337M 8887 DP337 */ diff --git a/doc/sel32_doc.doc b/doc/sel32_doc.doc index 1d195b653ccc89521129dd0ce6d668a3ba8b41e9..b3d4c440974330219efef9f6d5dddb38afd9795d 100644 GIT binary patch delta 17047 zcmbu{349G#|M>BlEC^CdV~d0v)V^d-ENy8~J4F|Y3P}@fB$33v+!WQPcmxNjSYqEQ zf*=|iu~aR!#TG$?2C1NF8``Fe|K~e5LwKIw|Mma9{<(eMIkVh3=X=hXnKN^*#$9ua zD{`Fg>5-Xm?H9&(ec+jg?weZ%wna*R*E!H0_X`rWIN=ttP8<58L_|r`K3s%zn-` z)U@Sn65dGD`Y}!QVn0lGGnK#pGHw1}S5)`Yv^9KkSAeE{T>8Np6#3S^muFZZGwheLbsLVB1PtAXk|=LBS-j*IL=uyf~HJ9Cgq%GgoszFV0J# zW&h0mlrB@J9hi}XKjE1#jhwI^*ft+x6(qNlZqr|t7*uC%Ywz;P!Z4fMQwnF_c4 znawu6nWoL7*=q5*3g$|tNtDioX&zJAr8KYn)i2$yUZ8EhDkW%5Qs%2_n!VPdR7}!z6noDVXl?hR0kdX8<+vVIDOU&Xu`&JY|W(Yi(8rVW?{|w|Cp+}<&&Nk z@juqS&>xLBYz) zwSL9mQ9+@xK~W*CN2d04ecUNsNmFLmj2ar=hSUpeRMrU{q5b9 z_r^Znybtne#`_GP*R2D?LM+|;_OnDrTY7ixXBib^35u|ciiiyfjSh+p3AT)kjEIen z3@6jF$=I-UjUX+t<0CBt-W<@~5}-6rU)MI&m`WMep@ZxuBqC@;cu265 zlanoF>^m~r*=azRfkxH-#|C`b+2Wj<>0{?=7vQIU8@Ms`wLaB#nyPQ#!4Ar6xQm+8 ztFgK{;Eao(#rEgp=V?m>di$s&1AnjQ;}hWI<>|yiUq2@&Uq2(sN*1sxHSL`ijC=?fup&^X+D8(EIgMy9{fu>z&o7AGWvi_EH%iUa(r)+V*ep3Uu=F z_qNTn^$#H7<>%S^4QHpoKyNSdYb$yB_&YiIc>9*!%Ewc-3Jmm-B6tPbR(Y3}nh)4g zUVgs*tO_tUmiT02t8D+DTetP`V!gMq^?=S4#4LcBx8=W%Xd4h-az zUcR0ZrLCj`I#UQIf-~Z=Qi*=vl76m)y5qn zQ7smuX)J+0vQIV)@TJ70eFD6wK(dmj6WdZ{jCHfq+*Ge|>|#P#%c9#wSqHLqY}&CfYsZ1!S)L<+G-p-2ew- zl>F9Au~T7_8Yzcq{Z#CPM(WVCdJC--&MJjFWOu}oeK*wIRKIC#6BnlDPV%(dP(d=Z zYf(Y=VdS~JJb7kS=u=J8`eNa9avMi((`~tVIF;t6!ltvEnWb6Hthewpvii)H)xwHq zRx{aVmMyDTXCtdWDnHF?T4f`vsFyWu3>N+?s^Np&^SPPHnMq5M;xeO>qlTZ)J>Tc) zBHP6)_29oM=|hkJ_ zs%1a8?R!iux~sCp6Z4|ZUcPMk8e~sBVeT!2w7JIw(z4ezSgSr=^s@CBspH7PdF0{- z?&AS|#~*O4qiN+(6SZK02U?&d{1Jd|C@#v+%P&61TVDRRd*p4Wk>0R|32&vdvbv4D zJ^y;v(nhLW%`jpmV`HkeFRr0JU))~ZTI{ZFd~LC6te<7AWvrL!i)VyaQz-n`kRT;M z2~Gl&pd_I3kboo@3B(Ly0O=8kLLBDeODx4E>_%oC`pQ8PSZ)sE>x| zjXsFOr%1&v+{XjF;-+bh;fHn@ieXmXMk5-Fu>{9(9Dm|3wB?Sk9mZiiHpA#t&-auZ zna#<|$-8j+!s!z^7bI!COUgDUOY$xpxsWN0^$sk^SF4tGRN)&dsM&LCm!k(cRVc3_ zme#TMs!OI)4Jjjg?a(TM)Vfv+X+Xpn2zQR@IeO*b#EUj%nxzP|~G&W~x z4OMiuHrJU-*6z~Z%qo=HlbVxSlNxJCEl5pCElCYY?c_pgMQTK9Lux{5ff_J^m%t@x z2{;B4MHvh&v>_Hmxa1-}o|B9wL<0bgO z7aw2>5rnb4~-;3@S-M>?G=YG-kJ6BGX@Opge*#@T$?ml>G_o>H3#+7r?#QMgSQH@HSZ%KPeTSz-d8%VuNolAX7T}wSn9ZUU6-AcVmol12|RZ2BV6-xC< zl}U9;Rc(M-HBv29NqM6_ZZuWr=4UDQ)ywG@7V8bxNv*h+MsH;rhYxw;GaNIq2H)c` zEIfwlg$Y=Pvp9z=oW}(e;y&u}V5vU3VKUa^I&A%uax*B)o$qE`tmkpTc3&PY+cz+8fy}!!7TP|((ybzR9J>XxP?bp)Pf5iK55Bi z9>WO7408r)33W9j+>?-yA3?&d--aF}vG;_;KORyCYhl)dSqJx6X4Zi_@tXDELHaF7 zeUuaz-MVn}!rr5Mk8U}7Yx%9BTP1Y4=Uz(|mK5EZSu}Ip%p%&yv1XW@WLj_ZcBLPY zH2RTDr5|aoHN&d-N2#i7>!_5CZtCvF+UmQF7S(L6ALpnFR=ONFjJ8e7bidY8lpdG_ zX`-oE2WhH}kf)Nna0K#H^dzo9nlT@@(U|9kP0$VlFahz{3C)L-y$^@Kg@gwhU<5{D zE!JZLHexTn#!;L{17F5z7>Qr<^Njzp^0SWQ=Vk2OwcYmGx_#HyRa+BRsn0*n`+V%@ zqsAI{sBiXvemtt`jVZ4VY_6fMZEonHRjv^h<}rdh+wSjhRi-**YSbb}ENL0*);HEs z(^q_hIV;yRK2he#RsU@0>SP|!uIlE}n(Fn96|B-8FOGzRdeqjMNrg#e-GNyTQU}5K z3@_G&)I&N(l*ZqiN8f!AkNMbxy%^xnqi}qJ=zvO`00Ov};BPf%ijSI>yv+|VlDCPWjp#9mWBo!b>yItlKM1`%(~K8 zp@_s{^rDbb_<4}ROTp71g|AMbUCu?p-iD^tIZ_${EbV#84aTwp? zJDkNOJitTzgw}!FR-(AzT0!yI?~k4>zLtJ=&-N{QidSA+S-dj7c*dUMsawWR-7s?Mi>@j2@W6=$8n-PXYFQ6n$B#}VXJAzDNWRz9N}s-*Yyk1 zY}4hO>1doP)v2#MtaZ6+nuY5^K}NtVlERt=okn^wq`-;T1}S)t zcAO8G7IP`AhOQ*x39}R z#-h{5WZ9QFxpR5tf=Qu9A{Zgqh7|mOyXe=MmcT?zLNOkpMHe2Iz>2>$^G{u$ zzm;a5uD)6Dn%e$DWvk!o^g9{xyGi6`MxT(LgJejCl38DNDw# z49&~~NKY#*L>$vEumo#x7X?zfkzI)nQ5b`0EWl!{z#bexCh~C`ckmNxzQrjB77WBY z7=kY_8*@;I%H3#U{8f~noqypp{}mlORP=R`_pw8N6(tvm{G!!Gs~0CPPA=lVzj(3A z_|I5tRv^8v@$Mj%lvhrDx;r{FPy&$13LphM2(y4vFe#7}VlHARzzVEHNe`Z;;MJZy z6hsh0unfy_8P&OlzKkKgIH~tjN$Z_e)%8udRdY6;SIKpE-a=;;pXjU}-tkq-6J6D- z`<#V-o#AmEV@OORs|)*DsGDgn);dxJV-O7~%`{BMEPRgnNW^kTN!MZ%Hsc%~;|Z+Y z8Oh@cCKJUL9LJCN17>s`h(aQ?Mc0CzGb17LB|~m@ZdUI1S@{K-1(~}FGB+*XG=JuV z`J0x9hm8o|RKRoKy45+S7WTJ1J&%%Bnc42@>fVdSF}3~cS`i**g&k(E=O7h#1No>% z<(ZY(i1Y_WW%8VhX%M0?1~V`dpJ5ihz|V!Z3vU$OzIx_xTI%5yUyS`?Me5Kll*(P5 zJO=QkI~fbDbB{U)3>fneT{A)%O1=RE4>%0sOIhKWUV97#A7j* zU>(+D6SiXqc47~t*!%De4&W%hLl(~C60RTzxwv=f(6&q4?j_DjjJ$O3(7i$1?rlr# zlKAXk;c!{uP+2uN+%$E1MsIy^P5F@2i$)zt-PoZV%EJkjPzBZC0(ZOusl(=IiPpHE zeIaAZqPRuj?}jgWqx~C;-jJqoX2jm|jgFev2vo}&Lac`P*E9@DJ{1pZjJ<@{WzkJC?;S zGt96~jFH*UWgoC8ewi7d?cs%S&AWQGh8lLhO09W)et3G!60R|PGQ!SorBaU9c>3ka z@$dYV$KjUh>bXY48c63hi`b?=<2A$}7Rzx2-{MdFg@6H^#t?)3_y!rcgS)6bP}4dh z1b?geb#)lwxEl8}avvl2FmnIWrqKDNAIwl>`h!}1ucP1fvWx!bne$~gJ4Fv{sg9j& zrINq(lCiWrfT$^zS&!nHAqA3-h8fyC(hIQ!66PMH?nd!T>?Gk4Tl9sBaD!yRG_=1>%p%nEMRsDF&@{CTUh19FZBh|Iz4OQw6 z50!h=hi0m+7GHN6?9RTlbI3wIZo{nNd!&n?QN>QEh$^UxYN(EvQ49C8?;pz8FmFO| zKmH5u5ZsR<)K}ZDw2;z-tEl1+)m8s|-)clN3E&It!4IhV4i{a7Vm6X- z7QdqAyWCTvJCbk&-{SE5q)~!D;XjD(hDms&GNT(a;&4?R?lw_v?)s{PLTBZC)meQI zuL~7$ncdJBJkxs(* z6akI2;l|e$#79?=ipwbtA@FiA2 zD&v43Z)S}+68-(`Bil+}iL;^;haJftmT3H!-D8+E4sG&nxsN$*H&(mOHBmpEZfd`x z#|`5&Zavjht^fXQx@VK}vfUQ9?^*6)b(8&?wcU-h)OZwPkbp$2gtWq1tixfLEt38o zr)lKl7qp;NTB0=q(FHy5AtqoFW?}&rzVF8+okZDYtaqYN;xzw*Scm{ z=Z?WD^H?i&F3X}uAFiMxFIQAovzn-d*K4ccw=1ic&iA9(P1NY~-Xm+9#gU?z#W1rs zvkW8Kh1iX3{0aR7MkNS9AjV??T!-*@1a5Fgmm$XewS05zo+3jqo{ZgU!g1lMKKy}^ z_(>U_$*{~-t_2+0<3Z7n@iKsr1-*5>dPCZFX&`l6L5bK?p)9 zq|BociFio)6R;HPun{TPft`@p_8=Ymupi&x6wX_Dy8sFPI&yIXdAN;xc!0;ys068; zf~<_JjI^~G@fmA*O}BtX)9Qi?z zqslx~Lyf%BRQ-4<*ZPWC_5S2yR)0s*<6t(!TGH!~jH5V?Qz%3on&ri2YRqg3+`>6LsubXSL;erTTK* z7?0n%FO&z#W_s3eUrDQq*H>8?j>_zd&(<4CehQ0VR`ycTN!W`_9ECK%Nu0uIoWWUS z;|i|h7Jk6}OIhh_=1!P9Va(9EL%YLog40~%YSCz1qFf#9SM>KYt`aFXUr`;-IHeZm zy69FHe@-jNkA(O7IUf8s8pHs0&bKqE9pD;W1k8C#ZY z$=H%{Kkk0^#4Q<1wv4pzy(NQct)n+r$u}D)Yo=4V<~75lr2Wn`Ry}UMB(oAgzcbCs z1khB~z0piBr{2EVMuug!2tBNIBqLAw;dMx_?TT*bg8>+da7b?+hw(^&^z7AG1L@%< zs62uz1^m$gui`xn#&8574m0r82%a~klGug&+=?b{o0WL~(6;-t?u%K`v!aJ>GhbXo z`FlE?GETw-LT@peD#EM5e>7S44QKUtZe26peurPNH!Eg*Ur#po2=%x{na%P_8Kqp? zN{h6c={*#p`ADweIEB;r3x8t<=l_}5i64-Ujv)+R@hMWUJw(ObYL*&*Ym9D{P-VYA z!rb>Sq?@rX$zvj>;Cq;PohSVh{)FT^ojlBZKPNp8@z?<=$Ja>5Etq9`opMmFE=Iw+ zG1DD!kV1Ze*?4wB-JO@Rd2NzPQlGE=bZwGQF-b9>jQk|&6AGZBZ}(6muGdvh3Yw|q zdCAts^671maDT(^=)qvSCxQ@$aKvIY)?+*N;%EGVrlAav&01)Va2%KMyF8*gdnBXuReWUUhQtkt#f#?6o)$eV`lIM+!w0LBAKmOZ z5gC_dtW8Dskta7_!sKe5g9wLw4Q={Sgc^la-_;BQulpr0=3GnV1=NFU_?N}kmvB=4*{vLxh!s9dj3*XP3Z|+zb{oGi zlSZ5LWA9H|O6^ENH-kbMWircS<}Z2ICGSAIjR>s5C0xeu_yaF7xo|xUn3p+@eM9O?rAUKGIDSg*T5HWkDn^y z+qlQ~^Kveo$T*R)Gh@Tf4H-LECfZ&L=Pmqf;k?A1#yPu(@m~5?&Gt3?=x&-r1jbg- zIpT~j-=F>vUFP^9I?F2s9OHh&{DC@is@sG5#t1I-K_|tr*@unj4A1@6M!vn5WybJ= z_3~RBFNt<9B-(wDXtQwz&mvR{?ztI*vQ_tNU%*NWPMzYKI{#smzVnwIUX`wK{8l#( zzp4rQ8|tmB&56s@N@A?Qxw|qay_XnyLw=rKu`0uR$dAWwAdx-Due;^<*$W}RihiRO z*W5aETX*g;8?n9_^IkkS_O*SbE#KP7S3L3+fIKsor@}mp?PEMmm1mFgq)MLl$nzDs z3zr*Mx$Tqt5E+=u@G*M0ZR8^teYp_HSzAsT(m|zt0~2nJ&|gkC*hsfn-y#-iIr1SF zIw{z_#;!GXt+8v3U2E)CW7MfJVw8c7#%?t(5gOMXjT4?mg=u7A{6jttJB_Tg2#}pN z2GNK?EXH9xCh}-jn@mD#vkNttRD)p=H6%YamY(r8bM=#&dKI+IP zyU15Aw#V)AY(;J)WqdDJdO1bQ2|~Jq1l*P^s93EVx`T?9C)-+I?R5@G68-TG-UIuQ zdnk=@w>BK?OXEzbaRh2n7>fy*gehs|8ta$&H<+ObH=5|hj*VH?DlNOIe$B4Op=w;( zYw{TnjADE7CF{e8v$-eP~t+21_&cbNTkW`BROzZvY$i~ap( z>@O{`rT&_3^`)=AhEC{-K6n>{5P~p76lZErk_V50ZXwQYq1equnTE80DBG=XCz@0mN(#`3~nJGO&T(=LRWOdZMw`u zoTS@ip&CbSUEFTN!HRb~(83+8+(wZ29wm4J`Ncw845C{M!nbQl(>wW zC`bQuLS0=YHo1<#4mA4`etzwur?sJFm^dD*1hpt1Z zHhhjb*v%oh7pG~@OUR;g=0N_%?@pv*H}+sJzQ#W6M-Hx|yyj*|$Zn(ml91a*chTJw zo_OlD5^_EDKv~cz;SDd{(`xnyX}_9~W|HPHo5ij=2QJ#W@CXFk>Qcp!-=_y59twN0 z54Ug!RouDU!VmHT?>NlFulOCV^|++hqks6((>o)mF&z>XdVCXfM?Xx#3~WF$zT{|F ziDoT1a#4*V!v!9GoL2BMM@KC@3Z%(Vr5(!H!9(;?wqiZ(UY1%A!^Z28CWlxiask@8Jf z3de9ds?eGI&>o?X?;;X$0+;asCGg~UZ;uH2)*>Y0C`NEni;xrBU^*+BK_2S$hCH+N1WbXx!)VGk7me z9x8B;oKU@;{;H4sdzUKJ2Wj#vzSK@bwZzFmnmmvw`DBD9gAaMA_mWG9)@@3NcDHA! z#>3-;h<19bm*u+_?jW@%wURWs0p%a$C9GsceHp08ID^N>+FG|$T;We^(*w_F!H(G) zkD3#5+Uf3|Jc-ier*xgl|7jG}tSXt&@uZ_2Cr0B>h8gqI>bKWJ?S1^6movvXMeAh8 zrLhW^bOL`#^JSTXHe>#Nrq3_kpZ4`@`iFYCDSU29sQgpsv>_e!b$Y62(GY#l8+xFw z`zN%0Q*Y{U)UvE!LdcuC#j?M~tMZS^?b+E&kg4ocrjng~+KxB%zAvd&4waYm*N;?} zOl6%ELZ(wf6E5}F^X-eZ`UxK8^o9v}1N7$RoO?p^fx73jxk=B>op^4}^_{X?M(Mgk zLc}|IOZl)G^N)K%dg*#&rsBJ{jhXRC81`wdy4k_U1UIO3vxAT8s-og@Y10PjBPw>BNVQDDWT_rZ zh5Sz%IDKew_!QGI12gd%X5n+lb_teXeMrzM=2l}3)?yuG?FObBu?d^81z%w+Wc@a# zDcFu3*ojo^f~^0$)ZVn?!Foe|$wzv)Q&f%LjsLSidcxR`bgMos;SrN^|Kby^0~02N avZy4XBvhZIuTK~o#$0mRqcFXa>=K*n7<QU5&O$9VA<5T7a7GP*z3Q zEim=vqdk0VsT}sUy&Dm%X?FIS=2}71j@W71XPZCm*a@zyp3X_}|%@6yhc&YV1M`O2%N(Z1FOo_A&T`+qrq zPrz*tquF}a(6msR?K?i_V!X-pkGh&xn(2F#GLWe>uRKl^Y!^k8<*_S3)9Mm+SuUYz z_F8%n<>*+~c;B|w>)K2C0$!EEcvqsS4m&oeY*hH~)7QO#CiJ&sYbFi3G(9M3o!i{vs)<+m zq+wq79qmVbI#%`c^-GHN?NT!7Qc!zcZ>1^)SLd~Da9v)bgKO}*A-Kuc8|r)61qP}{ zy`qvjcP^zT4eHXzK^5;CqJHavP*rB<* zYe-1lAXndpuB-@F#X5Nv59ZCF5Zji%bpzG1o)u~a*DtiL;LYHAMuI_-PjK)%9h$2l zeXH9028XD*eam;YX7f%1vgy`3sBWOEFFE;=CS{SO1`Qhq%LjSOwn^*e|FTJ4G6@O{ zlugvU&drl@2Q7C@nlr4mvrAC0hr2wI`n#0Sl|HJ4YBQ>yav19u^2>v(zocD#uxI0g zjq&s2AH>JW%Y*o_@x!cSe!znPj5+o)U}$BA=8iq3^>ESEvQb@Bog@!+bHAqw9Nj`K z8eLh99$isg9$iECPx#zU`Hk(Z9LD)ocy#0Pjg&_>w#F}*v|!|<1(P0al{Ft1tf7;Z zcdlvYGSPn6bJgUFs_JHxQ_||OWp%xR@*CG#IYjxX&nI+Li^o+^Hz)Y3ed9vZ`_T#N z_i+{MwDQU?D#B@baR#R1YE-Phx*1);#g^C=d)4%d2BhYv4vmdcgC><%+a?Cs-L_+O z6}`N2nGm5IVtv)DxInv9M^^et&g#g7Y;|T*y@VJ$-GANg{#QeRvsS)S z$#;4|zEcbGom!CZR9n8&Bb-LQrD>zyvgJF|$oF&iH}ZW^)S7QhQ6t|OBWgP`U^(I0 z-HRy~cW&INE>23BH2T@yXZ`OQtJ+=EY#|IUZj>!4VTOZFT!M8UxZcW!I1b=gIwtb$n47x2dMGoKtY9Ew4Nmw`my6R`t*nl43g;sYWv|DNl!_ zz7UebN~}`z7r$jnW$qXChk|>4p@Ih^apdnhL4SJv_2ICWq z#3)1~2D32-%gSk;wB^jK!;?F=cxE1#mm}7BS^nFCZPn}7-8cP^|CU2>$kxnx6lGa@q>1m`RX%3Y15QXuG z!B?081vA!T0}kT|P9q)Ha2h_OlsHQ4Bwi9C36F$E!XhD&Fi6#<+EQhyu2eM?Qls(M zf>azs)ry?SqAQ-OH4DqB^GE0!|6;~(?n-<-#$8p2cW0k3yj{dk^^}VDQmcP*FW{lR zjSnz6dTYfepSKHz=JI-e$RO)LQBJ}s1v&~Tlph5#3e}~cV9`utuo0V(iObM^>D;J= z+USlR7>@~93ez%P4&WfNaR)^?^>;@-)JI?R!(>ds7Hq{OWFjAb!oRYnRYPZV!Ave% zQgI9oIbCdochLo15#gtqw9lAXgvIy{DL9SWc!)YtiCl73j=sdF^?Sl!&_H0*#S$FC?|6YuTuj*tqkdTMwTh0Zr~2l( zt3!$IlxvK-xz5)l4J6s5K(fk$WamWkl4Vi6h5C@}yFiLC2~vy)$iqt%C(Cj$iq)KX zDcTT7@yw7S9)uM0x9aptDQhXp>5VF=h5G1#j*vR^K|h2d45^6Zs(TdZ9k~y4AKuNq z`!M(V-5<_A=b3-j=swT$&mR8v@Y!$A=0D$_zeY__)~0#=!U3nKnzgaJ8+|FQ?g8mb z>hU2THRbCeYS;3&Om!rCBir}6x^04in262D#7n$gN7H&?61F1|CvXyZT(JHDKdv=< zVIub8Fpl67G7-%+ZVYTqCWTZRmzGf1SGaSmbXU6%R8!{c$_ACdOi&lyy5!P9%O&ScAj3gwbzn+UID?h4e5qrgBEb2QV*{kA(za6C?&c zKq8m|iQ?1jr`eaYPwqRp`()zoe?Ctp>@IjNESj)zYQpZ=-PSIkqBeh^TsD^XqV*^1ZY-}xZ}c<;8Lf7ae5K`X;V~N1auW(#FplXABw`46 zDu!YsHsJy?a1piYX<8k8hDeOUWK6+SY{GYVj#~9O_SbLAc_A~akcrFq9$C1F+ps*& zv1C~?vMk55j$8KaPTXh7TDvc2<&qrBtgKmIGAJ*wJ$;+8)=MJs08ijTenz=IWZo!SIP=jk%6No%DdRQ#3Mp$4<&&~XIYY4& ziP(W}k%m(yUIvG7qKNJdIl>?gldv6$_yJe(6S8p!l^SVUWwb{kcHlTppwqhydWgb! zY{nLBMV=+klAC=q_iA45x$K))Pu9M9V9(A2=hi1&wIrNdd@kYDQ&#V>uA5;=uy9ME z%+Qab=2#Dtaz7!(Ttt1G)Ikk6?dilmFum_Am5}6bVi#Ce>YVie`)aq~ZCNLmWetp2 zNDNNlG^ENsAyt;@?toPHM;O(Ws#bwiw=;|?OLb48psH`Zs^?GCH5LhBnVWjB(o}|h#3+>Pz5%>%v5z?45 zDKx_S=#K#yh-p}jJvf1E_`J{MBEErX6EEAa3qRr-uH$FCfYyY}Q5<8j4cn23Jvf1T zsMeG-E7U+&bi*`EM-p}+0~cY*wdCYlvaVjbnib6axsxm%us##lT5?!(GDlV|$+a*B zST~j{fSg?E5`n=H)-Dm89IjR+d#KOT1Ju0aqAGEIMbkS*lq5nO-iVM99f`;w7?qSt zm4HzpqXJU+?vTPu!KKhn&A6M30f>PKvG`Ln9x5uPCZj;Lf|21j83|0hX>Hp2O(>5v z_UneWUhqrOjwB<=*MVfwACgTpjI5?IzaA%%hQBbZxuy-rB4ptX9-vqY+6yIGa18Tg zrWHOwYjnj@EW>iF#SR>VT}y65BL*hS#4OCl79?U1F5oJD#7k(cs2ki6gt~Ya|7q1u z(?&4!1=b?(x$T*gm63JsB!4+a@^bd_@;qlNw_3L5WaX^MS+i*CqOCdn$vqt2vi^~Y zy0EFddYS8?KH6VPsr?ZqIjc5y`bN?g5|~p3!LcI{5}XJugaoM|D6e8+#6apSb-DIN zU8D|D^!3<)IUi7W?1jgNR7F#Zo_hZ4{%zamo2i#EUIy={RN&R4@B&8^f9s`Tbd0=Gxvzq+Vf2P>FfcN}jC-nxR)I8lOX=#N>L4JqAH#A6K-uo>SX8B+2?IEqv}M9J11 zd$0_TV8P-xTsI&a%^j#_X-IX;pci_BT{7Ep#gdzGCgXTU%JE#wF3YZOEW1|BTQPZD z#N-w8!uuLERp$=nIkDFkD?Qk{*Y?{l19`=;%0`lsTpvt8EOsLqPf@Ea*Fg9J&zHq7#^( ziCI{QRWK@__xSeZ6NmS6rLcd;y30!!T{aExHQcm_K}_vSNmt)9BC7*Alq{ftAK79U!i z5f>TP>rlp~jAn~77RPb(-Xm#eY6o5IO(~_8r&Q?cA=^H~3rOR6(@@fYKB$Ds@Pj{U zA^>#|f~I(QB{gx&;<$+35iM)Cj40F!Nt=&%*H!Sb02Q3(XDTjROSh1*r!_uA7j#7* z^u+*t2I)GVV;PJtl*xP+q$}BTidGu__z0gN8k6wiPWqj_NWZi0&ip&kpZ1t9Px~It z=Brib1C%=1Srther@l|CuBx2~RNK?4s>mCzLu9}zCuzO|NmJ6Bj49ZM{dj>qbnd_j z6(+#DGZ8}=!Z96**nxYvk1Aa_^Fvq{b@+C9xm~G0{jYbZite!9k*fdmoBg}cLiU^Q z6kbplj`-Ivw5rf2FTeT8LJL3BIegTKvq44dtY<#wyGcZhQt76i7sDn2>RPG^fwed$k=Q$mJ zvRyhZw{`S~LOc@%NT}%sOe^`snwnmFYFiFUJOa zgN@jVb4bT|TtJ@XF(=}WEw<6aeSh-h&8sdaU;b*$SIPZokvgjVg+R6GqPzMn#arc` zcUSkaE2}5xhO6`G-scZ`E z-WhMcdH&6X)70Cug!LfXvgsh(X}E5u(lUMQQ-kBw(zCT~M__43t*iv`60RZ#zrunS z$ipAV$Dh!tx`f3EE^tFB_@Dx6KtlF5>L3txQ4b+#gvJPH$xBDbD9hiW#fLVTHZjWb z9G@|yOTp7tDdl@HRApSOrHU{T{&?C?oj5<)R6#y1Ez=F%(G$JV7oq5np%{iykQV#` zUt&BaVKQc74i-XM_W~{=6W5W2JGhU>kk)tY#uXp zM*#O9dvZ<%4pk4Y@JxM}xONH8g>$CQ;lwC>Nkq6jNiyl&6?a{Ice%Q>lgU>;f9$JP-zu)o z{#aL~Un#FT@zo2X-+~{?4)OhafsKM1g_D9Ag)$2BC+q$~o!(R&6R-+La1v?w3or40 zAA;3Kh70TYx7>lbe!H6Lu+{c;i=6SvwYU42YN~Ojka^kWpV#8aKb2JHua~iZ8OhhO znbl3@Bo;hYm5sH&Tmit6KAYdy509zz3~H|19$)`8W(%+S>pg4Bq+Rn><#s;Z*L-c}c~ z{04e8A=z8F4Y!Z@juP=)JFLVV+(of|gc^-70wb{n_i!IUp$whqgO4y1Nw@;XFmA<^ zw|Y^KqSRIv?nKnqy`_BI^3h2By5>18m>aayzaI-`IwtiX_+zybw;j}XB;EJYbhIvr<3E8-V z960r-iIHh5|`EZyaMOckBI0h+B zv4Py;L4ORuIG6@<4{Q=MGqDE;a02OY;jGUUP0$L1@d-v_0-`Yy%OF2q$j-Wwl`nEn z<)1pT??}GL-ko?VH>=>8pSyO+tR=JZr^edaMP8NHlfkOPkFHJ(+j5vmecV>Q!z;LR zrB3CuC8CgoUAT>( z5Xf;n2%$q>9X+{Qm9+Y4xNeeK8tHz+{2@r%*Ki#V@E9(nBl-ElADtli4!|cE2P6NT z%u5-J{O>XU2kKA;qb&Wb<NP?98XBg!#LfNGblZLU|_)}1+NDZ_>XAHq89EMT3W6VqCPC_bo8fS41=Wzk| z@iREX%(n3RpKRLe6&f%5$|cLWQ-^jQ+IfHH`upp5-e2jqY^C+NV9o-LE2RTyrl4Vs z**)wjAA_rPiC>(uKJ{I$HeRh~Nws-VQJG#eE5@7g!Hd~9tW&jZxsPgb%ai@BbhUa? z)H9HxrbCMQ2#@g#a=}mfMf2Tr5Se-=s_na%YIdkE0_wLHv02^P1{$} z^8KTH>2$Fv>sv9ze`veWD);QTo7UBOyGw3Z$ThHBP|9VNT(ro!vYdm;xr!Xo<)A2o zy^JK%dnHm&@D62eh(;hE?LG682)&vI*=XEk(>MvS{{I3gYu(I`>*!@oB&2b$(!#-z z$lyR<21AF&?x~Tu^*f%epX$qR2j#b6@_QTkiHrPZ zLcTthuLnC?Rd6Eb!3qFWsq)htj4<9$-mdtui3TzrX(k4 zWk{+Lw}W_NFJ(P~$Nwt1MqUq+oPgXSB5c0lFk?+tV(VPL+52v4!`O`t>3JvtG zZIemwDCzYhz2l^pLRuFwne@^~?>OlVAiZSLiz2-lr03d|7Nz>jNUs&?6(Iyq2PN-o zpuex18qnXGq6ONaBYI;rq7jSfFk>awU>kN|52U}QA`@A-g$HMLeuV;+_v9_t{#;(Le~A8rF+d}Tg}!#E13Ds&7~MKz?-6V75obqWZLz03t8 z>9AvQ8~5Nr=kVc#n_l!T$i-+8xTCCzm#=A?4LFAk^!teO1*}8@&U{P(AXfvA z;6WRf!QBCjbC7>fI*t=a!zrA>S)}7Ue!){XYvl`B+(>_}`hGA0?jX&W4{0uGC8KrjGyfPB8J2u8+naLWJzA_OA~6bPEW=?O!(;r4(zIwfgkc~u z@I7AOr4QYrG#$JOnli?hj4%#nT*Du553s4t zR65V#K#o%AM+Xw$G_V=_4r2?}(NWf;Of%cjrZ)XT%)~5IV&wH}MJH;*OgrrSfTKCe zw5B}~)rQg{0qY^(BQ-)O`ePl3)6JMo8_&b+npSyLlK)Cv#MDy>UhP z{cTdSe%i9}{WZBKA-AUZURrB2VX$_u-4Jt5bG?>5cVf&nTj;gA%hlP}<JMRc5iTwcCXT7?dGtj+Kei{X>uAT4`VQudAh9jvZ-AOndc$rbm7TI zTj)dVgB{i_I3epCv?*-mR-D_@G*2;&&ceD$^L8^WymohTzt(z~?lhlN<`0s8rQ7|X zzEQuQH;O2Y z#{@(p2JEt0EG8ljvfX5+Q!o|NFdb&!NWE_dd3Oy<3HTaou@3980rLJvrkk)CTd)<| zupRRLp9PYVuSe=t^!X!7FCL*sxXz1NVf}yAZ_Q&y=qCM3^D`z+llah#hUTb|tjaa# Wjnt#`)#fpySo$XU*(kk;